I would like react to last week marc andreessen's words (netscape founder during
the php/zend conference andreessen basically says that
PHP will beat Java and succeeds where Java is not. Most of the reasons that
Andreesen used to justify this saying are because of PHP simplicity. Do you
think he is talking about the language or the application server -yeah, let's
call it this way... (J2EE...)..
Let's talk about J2EE first, it is true that when you take a look to the
learning curve of J2EE and PHP it is a no brainer.. PHP is effectively more simple.
But we can start with the acronyms themselves: J2EE==Enterprise, where
PHP==Personal Home Page ( since then renamed Hypertext Processor). So from the
origins the 2 technologies were not here to achieve the same goals. But PHP has
proven that it could be used for complex application/Web sites, and still keep
it simplicity.
So PHP is simple this is true, but Java on the server could be also. I think
that the complexity comes from the fact that J2EE its expert always see an
application as a enterprise application, and what that means in term of life
cycle, development process, packaging and so on.... Why am I
saying that it is coming from the expert? Just take a look to a PHP tutorial
and a J2EE one? This is clear that you must be a very good and experienced
developer to start with J2EE... But this is is not coming from the technologies,
but mainly the way we talk about it. I think we should talk a little more about
simple development with Java. For example focusing o JSP and JSTL for simple
stuff. I agree that putting too much logic in JSP and reduce the number of
layer is 'bad' for complex applications, but it could be used for some. Why do
we need to always package a WAR or EAR file? Yes you can technically deploy exploded
archive and modify the information after the fact. This is not necessary the
best practices but it could be useful for some applications (not necessary only
in development environment.
About the language itself, sure that Java is more complex, it is considerate as
a System Level Language, where PHP is a scripting language. Do we still compare
Shell and C? No we need both of them isn't?
In the same time, Java as a language must be simplified, or let be more precise...
I think Java developers need the simplicity of scripting languages such as PHP
but with the power of Java under the cover. And this is happening right now. JavaScript
is now integrated to Java 6, Groovy provided a well integrated JVM with a very powerful
and simple syntax. Grails -Groovy On Rails- provided a simple framework for
CRUD applications.
Still skeptical about the simplicity of PHP, try it...
Still skeptical about Java being simple, try a scripting language... for example Groovy
In conclusion the platform of my dream should:
- Keep the simple case simple
- Made the impossible possible
And I am sure that Java is the good language and platform for that; but
Groovy and other scripting languages will help. And I will also
continue to develop using PHP too. And both worlds will coexists and be
integrated using Web Services and or JSR-223.