Web Development: which one will you follow?

After reading Frank’s post on Java vs PHP, I had my personal thought on which is the “Best” language for the future.

Well, in this excerpt I will analyze three different language:

Different Web Languages

  • C# (.Net)
  • Java
  • PHP

Which are the point that you can rely on to choose one instead of another?

I will write down my personal ideas, in order to bring a little discussion on. I will keep in mind some important details on the utility, the reliability, the costs, the flexibility and whatsoever of the three languages.

I agree with Frank’s final, when he told “Don’t marry the toolâ€?. He is correct, as long as you are able to find the right one to chose! :)

Ok, let’s GO!

Environment:

First of all you have to think about the environment you want to apply your skills. If you are looking to become a developer to bring home your own bread, day after day, you need to check the market. What is London market searching for (in my example)? A lot of Java and .Net. A Lot! and PHP? PHP has only a little hollow, very deeply hidden into the rare Open Source Jobs market, but it is not the main skill the enterproneurs are interested in!

.Net: 1 - Java: 1 - PHP: 0

IDE:

I am a big fan of Microsoft Visual Studio, indeed! In My Humble Opinion it is shaped on the requirements of .Net, well integrated with the Microsoft OSs and very flexible (the 2005 version more than the others). Of course this is very personal point of view, but the “Code Completion” is perfect, you have the right number of add-ins and you can create your own. Of course it is NOT Open Source and the price for a complete copy is very high! From the Java side I’ve always used Eclipse, that is the best solution I’ve tried, but it does not convinced me a lot. Installing it is a mess, because you have to make a choice between a million of add-ins you probably don’t know. Under Windows and Linux it worked after few try, but there are some parts that are not convincing me too much. PHP? Oh, God, after two points it is still at the block! The best IDE I’ve seen is something slow, with a lack of Code Completion and a total lack of integration with the OS. As far as I know the Zend is the most interesting one, but it has never fit my expectation. Differently from Eclipse, Zend is not for free, this mean that you have to PAY to have an IDE that can help you, but not as much as Visual Studio or Eclipse… sometimes a text editor is better!
.Net: 3 - Java: 2 - PHP: 1

Debuggability:

I started my development carreer as ASP developer. I HATED IT! I fastly switched to PHP, because it was better, but it lacked the possibility to be debugged! Terrible! .Net amazed me with its debugging functions. WOW, it was GREAT! Really, the best thing a PHP developer should have had! I fastly switched to C# and the .Net framework, and the life became easier! As far as I know the debuggability of PHP remains a features implemented by some IDE, but it is not completely stable (I have never been able to made it work under Zend). Java has a good debuggability, but you are taken around the call stack so easily thet sometimes you cannot understand any longer where your code is. Microsoft is keeping the things as easy as it can, but you can go deeply down… I’m Sorry Open Source…

.Net: 3 - Java: 2 - PHP: 1

Costs:

Of course, not al that glitters is gold! PHP rules!Completely Open Source, no hidden things (except for the Zend, if you want it), free! This is one of the key to the success of PHP! Java is told that will become completely Open Source too, but as long as I will not see the press release, these are only speculations! .Net is as far from being Open Source as North Pole is from South Pole. In .Net there is Nothing “Open”. Micro$oft Rules!

.Net: 1 - Java: 2 - PHP: 3

Freedom

When you think about the infrastructure costs, you need to consider which OS you will install on your server, which WebServer and Database… If you are doing it for yourself, to increase your skills and your choice has been .Net… you are screwed man! .Net works on Microsoft OS ONLY, on their IIS ONLY… need more specs? Someone can tell me something about “Mono”, but Mono will never reach the spectrum width of the REAL .Net Framework! So, if you are “thinking different”… .Net is NOT for you! Java is a good middleway: it works practically in any OS and with some WebServer, a good mixture of choice, but if you wanna think out of the border, if you wanna have your world without OS limitation, jumping from Windows to Linux, from Solaris to MacOS and back PHP is the right one! The freedom to chose is there!

.Net: 1 - Java: 2 - PHP: 3

Object Orientation

Well, starting from the fact that C# is the clone of Java, the two things are quite the same. No, wait, not “quite” but “Exactly” the same. Considering that both of the Languages rely on a framework, .Net is Microsoft copy of Java! It is! PHP? Since version 5 it is “quite a OO” language. But “quite” is not enough!

.Net: 1 - Java: 1 - PHP: 0
Ok, I will not sum up the numbers, because everyone of us has it’s own weight for every one for the point I’ve kept in mind!

I can repeat you that “Tying yourself to a single language will sink you!” because I believe that the extreme specialization of a group (or a single) blinds it, facing it to death!

Be “Open Minded”, try to find the right porting for your application, try to use the Language that more adapts to the NEEDS!

NEEDS!

Needs drive Everything! If you already have a Linux server with apache, in a pentium 3 with 256MB of RAM you will chose PHP. If you have paid your Windows2003Server license and you have the need to create a link between a Windows Service and your Web Application, you will use .Net, and if you are thinking about a solid, distributed application (on multiple OS) maybe java is a good solution.

The point is that you shouldn’t chose a language for your entire life, but you should try to stay updated on the various things.

Be free…

…also to CHOSE!