When technical problems are really people problems
By Steve Claridge on 2015-01-14.
There's at least six or seven programming languages and environments that are ideal for creating websites and webapps that will meet the requirements of 99% of the companies producing stuff on the Web. I'm thinking any one of Java, C#, PHP, Python, Ruby, Go or Perl will get you a maintainable, robust, scalable and correct Web project. You could probably add a bunch more languages that run on the JVM or .NET platforms to that list as well. All of the above have shown themselves to be able to produce great websites or webapps and they all have IDEs, build tools, deployment tools and other developer-friendly stuff to help get the job done.
So which language is best? Frankly, I don't care. They all can meet the needs of those 99% of companies on the Web who are not working at the scale of Google, Amazon, Dropbox or Yahoo. Those companies working at the cutting-edge of scale need to worry about getting a few extra milliseconds of performance from their system, but you don't - you do need a fast Web presence but any of those languages I listed can meet your needs and them some.
I mentioned scaling but the same argument can be applied to any other requirement of your Web project. Security? All those languages can be secure. Usability? Design issue. Stability? They can all do that. Maintainability? Nice, well-documented code can be written in any language.
For a company thinking about what technology to use for a new project, or, worse, thinking of rewriting an existing system in a different language , if you are asking "which language should we use?" then you are asking the wrong question, you should be asking, "do we have developers good enough to build this system and if not where do we get them from?". A great developer will build you a system that meets your requirements, exceeds your expectations and, hopefully, moves your business forward. A poor developer will build something unusable in twice the time no matter what language they are using.
Pick your people. Find the talent and the right technology choices will follow. Don't pick the wrong people to fit the technology.