You can notice that I'm deeply involved with Java if you read my posts. Java is so powerful and complete that I haven't needed anything else in the last 8 years. I could develop everything, from academic works to widely distributed systems, thus I can consider me as a master in Java.
Suddenly, with a strong influence from the Agile Manifest and from the Domain-Driven Design, people started to program using many other languages outside the Java/.NET world. Groove, Ruby, PHP, Python, JavaScript, Scala, and many others won their own space and their adoption is growing every day.
Until some months ago, I was not yet convinced about the need for a language different from Java, since all my programmer abstractions are perfectly mapped to the Java technology. I realized my blindness when I saw how much I paid to use the infra-structure of my application service provider. Every single month I've paid something around US$30/month. It is too expensive for a very simple website. Then I realized that if I do the same thing using PHP or Ruby, instead of JSP running in a complex environment like Tomcat, I can reduce my costs to US$6/month! :O That's a good reason to scape from Java sometimes. Actually, I thought the same in the past, but I didn't do it because of a feeling of guilty, the guilty of developing a non-object oriented application, limited in terms of connectivity, extensibility, robustness, etc. The wave of learning multiple languages taught me that adopting a new language for a certain kind of problem could be more cost effective than forcing the use of Java technology.
Now, I'm learning PHP to develop the website of my company (small but still a company). I hope you don't mind. I have to say it's pretty annoying for me to migrate from a well designed language to a quite scaring and messy language like PHP, but it doesn't matter when the cost is a concern.
Because I'm still conservative, I do not recommend PHP for developing products, internal applications or when there is high availability of infra-structure. Believe me: you will need some level of integration with your existent applications and with applications of your partners and costumers. Adopting a new language is a matter of responsibility and common sense.
Only do not agree with the last paragraph of his text, but for those who did not see need for other languages to some time already is a great pleasure to read something like this.
ReplyDelete:)
Only one observation in the text, with time you'll see that there could be directed to objects and with (almost) all patterns and best practices that we used with Java.
Today I see the use of other languages as needed at specific points where the facility in certain operations is superior to Java.
The book I chose to learn PHP is "PHP in Action". It teaches PHP using an object-oriented approach, passing through many design patterns.
ReplyDeleteI understand your concern about the last paragraph, but I still have doubts whether a language like PHP or Ruby can be used to develop really complex algorithms in a readable way. I'm not talking about CRUDs.
Maybe, a clear tendency is to put all languages working together, instead of putting all the responsibility in only one of them.