I noticed that Concurrent Programming, Functional Programming and Parallel Programming became one of phenomenon for developer from SD West 2009.
There are many session which focus on concurrent Programming such as F#, Scala, Clojure, Ruby and Java with multi-thread.
With coming multi-core cpu, concurrent programming seems inevitable choice for developer who are daily meeting scaling issue.
1. Object-Oriented Programming: Java with multi-thread
Java already supported multi-thread, but it’s not simple to handle synchronize mutable variable. Especially when we are doing TDD, creating unit test for code with unsafe thread is very hard. However java supports rich concurrent api: java.lang.concurrrent.
But still writing concurrent programming with thread needs a lot of effort to solve synchronization issue.
2. Functional Programming
Writing concurrent programming with functional language is much easy to solve synchronization issue, because all the variables are immutable in functional programming. There is nothing to synchronize. It enables developers to feel free to write concurrent program.
F#, Scala, Clojure, Erlang and Ruby are a few examples of functional languages meeting this requirement.
For solving scaling issues or using multi-core processor, concurrent programming is not an option to us anymore. It becomes one of the essential parts of our development.
By: Henry Ha