
t one time or another, every software engineer makes the mistake of banking on a technology that becomes obsoleteleaving customers or users stuck in a dead-end. This scenario can make or break a company or product. Anyone who has worked in the tech industry for a while knows that it is very hard to predict what technologies will become obsolete.
Occasionally, however, a technological shift comes along that is so crystal clear that adopting the emerging technology is a no-brainer. One of those transformations is happening today: a slow, but steady, shift toward web architectures written in dynamic languages that rely on open source software.
For many years, static languages such as C, C++, and Java have been the bread and butter of software engineering. Even as use remains strong, these languages are losing ground, on a percentage basis, to dynamic programming languages such as JavaScript and PHPlanguages commonly used in web applications.
Explanation of the Shift
One of the main reasons these newer languages are more attractive is their ease of use. With languages like JavaScript and PHP developers can write code much more quickly. Historically, people have always been attracted to languages that are easier to use: machine code gave way to assembly language, which yielded to procedural languages like C, COBOL and FORTRAN, which in turn were succeeded by object-oriented languages like C++ and Java.
On the downside, dynamic languages tend to be much less compact and efficient than their static counterparts, but hardware has typically reduced the impact of this flaw. As hardware costs and capability double every 18 months, software gets a free ride. Faster processors and denser memories continuously speed up the performance of legacy applications. Virtualization takes machine scalability to a whole new level. Cloud computing could push the trend even further. With plentiful hardware resources today, the programmer's time has become the most precious resource. Companies are turning to the most productive programming languages. Scripting languages such as Ruby and PHP are often the fastest way to get an application deployed.