The Future of Code by Ruby’s Father

Highlights from the book “The Future of Code”

Dale Ma
Programming Posts

--

“The Future of Code” is a book talks about software technologies that programmers should follow up. The author, Yukihiro Matsumoto is a genius who invented Ruby. Ruby is a famous dynamic programming language. Unfortunately, the book is only printed in Japanese and Chinese. There are some great highlights I want to share here in English.

The main concept is about the end of “ Moore’s Law”, cpu frequency has already frozen for quite a time, instead, people develop multicore technology to increase the performance. But it introduce a new issue, how do we program safely with multi-threads? And more, the cloud era is coming, how does programmers get along with it?

  1. Go language is worth to keep an eye on, it’s a static language but it has duck typing trait which was usually seen in dynamic language. And, it’s designed to take place of C in cloud computing field.
  2. “MapReduce” is well known, and there is another algorithm called “HashFold”, which is also great for big data evaluating. Although “Hash Fold” is not noticed by industries, it still worth to play around.
  3. Memcached framework is good, but it does not support distributed environment. Use Redis or similar frameworks.
  4. NoSQL and SQL both are great. MongoDB is the representative of NoSQL, and VoltDB is next generation SQL database. VoltDB is dead fast, but hard to manipulate , it does not provide SQL client query tools. Every query in VoltDB is pre-compiled to increase the access speed. (i.e. you have to write codes to communicate with VoltDB)
  5. About multi-threading, Mr. Matsumoto suggests multi-processes more than multi-threads. Processes does not share the memory, which avoid to face the resource competing issues. he recommends pipe for process communication if it deploys in one machine. Or use TCP/UDP sockets for distributed environment.
  6. ZeroMQ is a framework for communication between distributed processes. It provides pipe / SysV IPC / TCP socket / UDP socket / UNIX socket. But it does not support authentication, which is a flaw for high security services.

Follow me on twitter @eguitarz. If you want to share any ideas use #futureofcode on twitter.

I recently built a rails startup. Nowadays read later services made people greedy on snatching knowledges, but at last there are just tons of un-reads. I want to help solving this issue. The knowledge is useful only when you assimilate it. The startup called Listone. Advices are welcome.

--

--