Why the Multi-language Wave Changed my Mind
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. 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.
Recent Posts
Can We Trust Marathon Pacers?
Introducing LibRunner
Clojure Books in the Toronto Public Library
Once Upon a Time in Russia
FHIR: A Standard For Healthcare Data Interoperability
First Release of CSVSource
Astonishing Carl Sagan's Predictions Published in 1995
Making a Configurable Go App
Dealing With Pressure Outside of the Workplace
Reacting to File Changes Using the Observer Design Pattern in Go
Provisioning Azure Functions Using Terraform
Taking Advantage of the Adapter Design Pattern
Applying The Adapter Design Pattern To Decouple Libraries From Go Apps
Using Goroutines to Search Prices in Parallel
Applying the Strategy Pattern to Get Prices from Different Sources in Go