The Internet has changed tremendously over the past few years. What started off as a platform to share research has become the hub of communication, commerce and entertainment. However, we are at the verge of the next stage in the evolution of web applications: the normalization of real-time applications.
There have been dramatic changes in technology in order for change to happen. With the advent of SSDs and multi-core processors as well as architectural shift towards distributed systems, we suddenly have a lot more processing power at our disposal. These changes did not happen solely because we wanted to build real-time applications but rather, they arose out of a need to scale our sites to monolithic proportions.
As such, consequences will be dire for languages, frameworks and implementations that do not have first-class support for creating asynchronous or concurrent applications. Many will claim that non-real time web applications will survuive, but they will survuive the way that static html pages (with little to no styling) do. In other words, they will become artifacts of a bygone era.
Language-wise, golang and scala will become much more popular than they already are. Languages like Python and Ruby will no longer remain in the positions they currently hold until and unless they get their acts together to support this new paradigm or find another use case entirely. Although both Python and Ruby have their asynchronous frameworks and/or libraries, they are not powerful enough to face off against go, scala and nodejs as they do not have an implementation fast enough to compete with the likes of go, which has concurrency primitives and Scala which has many libraries for paralell code execution.
But languages alone will not face the consequences of this change; databases will need to evolve as well. One example of a database built solely for real-time applications is rethinkdb, which already has many adherents. Rethinkdb started off as a MySQL engine, but has evolved to become an independent database in and of itself, touting features like atomic changfeeds in its latest release.
So, when trying to master language, framework or database, make sure to take into consideration the eventual rise of real-time applications and do your best to avoid languages, frameworks and databases that do not support this new paradigm. Otherwise, the skills that you're building might eventually have very little value in the near future.
|||Python has already found a good niche in the realm of education and data-science, so I feel that it will still remain quite relevant or even as popular as it is now in the years ahead simply because data is blowing up in everyone's face.|