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
