Concurrent user updating stock with php
Rails took Ruby out of obscurity and some years later even many non-programmers had heard about this web framework.
It was very interesting to see how quickly Rails went from being used by a handful of people to being the “it-framework” and the default choice for startups that needed web based software.
It was made at Ericsson in the 1980s to allow for better development of telephony applications.
If you use 4G data on your phone it is more likely than not that the data is going through equipment from Ericsson. Have you ever thought about how phone operators do not disconnect everyone’s phone calls in order to apply software updates?
With mutable state and forking of native processes it is also often slow and uses a lot of memory.
By the way, seeing μs (the microsecond symbol) in web server logs because of sub 1ms response times is quite nice ;) Efficiency and speed are important for the end user experience, and also means less waste of energy and money on servers.The way Scala handles concurrency made it easier for Twitter to handle the growth.There is another language that is both functional and has an even longer history of handling massive concurrency: Erlang.Elixir has its own package management system, macros, an easy to use build tool and unicode handling. So it has all of the benefits of the mature, battle proven system and you can use the existing Erlang libraries with no performance penalty. But syntax does matter, and especially for Ruby developers the Elixir syntax will be very familiar. After having worked with immutable data for a while, I have realized how beneficial it is. To mention a few: The trend in hardware is more and more CPU cores.Even for single threaded programming, mutability brings an uncertainty about how a program will execute. Functional programming and immutability helps to clarify things and makes it easier to reason about code. The CPU manufacturers are not going to improve single core performance at the same rate as before. Also the world is concurrent and you do not want end users or other software services to needlessly wait for a response because your single threaded software is busy. Not only is it dangerous and hard to do synchronization.
Erlang is made to allow phone switch system to run continuously and supports hotswapping: software updates while the software is running. On most other platforms handling more than ten thousand concurrent connections on one machine is seen as challenging, but Whatsapp have individual servers with more than 2 million concurrent connections.