(9) What are the advantages of Erlang over other programming languages? - Quora



(9) What are the advantages of Erlang over other programming languages? - Quora

the language makes it easy to build a system out of single purpose actors that communicate only via immutable message passing. The language also makes it easy to build systems that can have isolated subsystems that can crash without bringing the whole system down and be restarted without intervention. Single assignment makes it very easy to reason locally. First class functions make it easy to write programs as a series of small functions that operate on both data and functions as data. It makes it easier to write distributed systems because you are already just sending messages to actors so they might just end up living on a different machine.

The language makes it hard to use shared mutable data structures that require locks, it makes it hard to crash the whole vm because of a single bug, it makes it hard to write confusing large functions where a single variable takes on many meanings, it makes it hard to write imperative loops without clear invariants (because there are no loops and recursive functions with argument pattern matching makes invariants obvious).

You can write code in this style in any language, it is just often easier to do the dangerous, non-scalable thing in other languages and harder to do the safer, easier to scale things.

All of those unsafe things tend to also be done for performance. You can write nifs in C and link them into an Erlang vm and take the whole thing down with a small bug. You can use shared ETS tables and screw yourself if you don't lock properly. So the language is flexible enough to let you shoot yourself or optimize if you do it right, but it purposefully makes the thing that is right 98% of the time also the easy thing.

Read full article from (9) What are the advantages of Erlang over other programming languages? - Quora


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts