User Tools

Site Tools


blog:the_server-side_scaling_evolution

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
blog:the_server-side_scaling_evolution [2013/01/27 21:08]
djo
blog:the_server-side_scaling_evolution [2014/10/17 22:08] (current)
Line 1: Line 1:
 +====== The Server-side Scaling Evolution ======
 +
 +Last Friday, I blogged about how we are undergoing a client-side seismic shift. ​ In this article, I'll talk about the somewhat less surprising changes that I see happening on the server. ​ However, in my opinion, these server-side changes will also have a pretty far-reaching impact on how we program that will play out particularly over the next five years or so.
 +
 +===== Multi-core programming =====
 +
 +Multi-core is here.  ​
 +
 +As I write in early 2013, 8-way servers are common and it's not uncommon to see much larger than that.  4-way cell phones are here.  The laptop on which I'm writing this blog has 4 cores; so does my tablet.
 +
 +But software development still mostly is written to utilize a single thread of execution.
 +
 +The more cores we have in our hardware, the more pronounced this mismatch will become, which will pressure the industry into changing software-development practices to take advantage of the new power.
 +
 +===== Functional Programming =====
 +
 +Functional programming is one promising means of taking advantage of multi-core processors. ​ When done in a pure manner, often the compiler can parallelize certain tasks automatically. ​ Other operations--such as applying a single function over a large collection of data--can also be parallelized more automatically if coded in a functional style. ​ And functional programming has given us the Actor model of concurrency,​ a promising way of managing concurrency that simplifies many of the problems typically associated with it.
 +
 +I believe that Java 8 will mainstream functional programming techniques, much like C++ mainstreamed object oriented programming.
 +
 +However, whether Java 8 will become the de-facto functional programming language or if it will just whet people'​s appetite for purer languages like Scala or Clojure remains to be seen.
 +
 +What seems clear to me is that functional programming is coming, and that it is wiser to "skate to where the puck will be" rather than scrambling to overcome a deficit later.
 +
 +===== Server-side Javascript =====
 +
 +Javascript can be used as a functional language, and using Node.js can run on the server side.  I have little contact with it and currently work in a large Java shop.  But to the extent that it crosses my radar, I'll make notes about that here too.  There seems to be a lot to be said for running the same language on the client and on the server...
 +
 +~~LINKBACK~~
  
blog/the_server-side_scaling_evolution.txt ยท Last modified: 2014/10/17 22:08 (external edit)