What is Erlang?
A "niche" language (ranking more than 50)
A functional language (a variable can be assigned only once)
A dynamic type language (the variable type is determined at runtime,CodeIt must be compiled before execution. It is different from Python and Ruby)
A strong language
A concurrency Oriented Language
Storm in a cup (published in 《ProgramClerk, issue 9 and 10), and the large-scale multiplayer online system that easily achieves scalability, fault tolerance, and load balancing are two excellent introductory ArticlesArticle.
2. Start learning
First download the installation package
To http://www.erlang.org/download the latest Erlang/OTP version
Or download a more easy-to-use release version to the http://cean.process-one.net/download/, only 3 m size
Online Resources
Http://www.erlang.org/is an official website and it is recommended to subscribe to its Mail List
Subscribe to RSS http://www.planeterlang.org/
Http://www.trapexit.org/There are good articles and tutorials
There are many Erlang projects in http://www.process-one.net/en/
Http://yaws.hyber.org/A concurrency efficiency far exceeds Apache's Web Server
Http://ejabberd.jabber.ru/an Erlang Jabber server implementation
The http://kl.agile.com/contains potian and T1 which are frequently discussed.
There are some discussions in the http://groups.google.com/group/erlang-china
Http://computebank.spaces.live.com /? _ Signature = blogpartpartqs = cat % 3d % 25e5% 2588% 25e5% 25b8% 2586% 25e5% 25bc % 258f % 25e5% 25b9% 25b6% 25e8% 25a1% 258c % 25e8% 25ae % 25a1% 25e7% 25ae % 2597 this guy translated some Erlang documents, great.
You can also follow the integrated version of javaeye.
Editor
Erlide is an eclipse Erlang plug-in. The problem is not stable enough. Be ready to crash at any time.
Vim, after adding the vim-Erlang and taglist plug-ins, it is a good ide
Emacs. We recommend that you try it with Emacs.
Netbeans and dcaoyuan are developing an Erlang plug-in. If you are interested, stay tuned.
Notepad, you are too talented. In fact, there are a lot of C written in a notebook...
3. syntax and framework
Erlang syntax is not very difficult, but I am used to the OO program. It is quite strange at first glance. Take a look at the documentation and practice. It's easy to get started. When you have mastered the basic syntax, Process Communication, and distributed communication, it is time to enter the OTP (Open telecom platform) platform, if you want to develop a 99.9999999% High Availability System.
4.Algorithm, Architecture
Erlang, the FP language, provides a very high distributed program development efficiency, and does not need to work hard to use Ace. Nio constructs a communication underlying layer that supports high concurrency, so it no longer needs to carefully use lock, semaphore and so on. However, a more core issue arises. How can we parallel a large-scale computing task through a good algorithm and implement the inter-process communication architecture, this enables the system to achieve load balance and fail over, achieving high availability, robustness, and high performance.
In addition, we need to focus on the common bottleneck of Io. Joe Armstrong once wrote a pmap (parallel map) implementation, run a task that needs to interact with IO in parallel on a 32-core sun Niagara server. The following figure shows the performance improvement data.
# CPUs speedup
1 0,953
2 1,855
3 2,679
4, 44
5 4,012
6 4,624
7 5,093
8, 46
, 73
11 6,108
12, 47
13, 58
14, 6, 8
15 6, 67
16 7
17, 6, 99
18, 7, 29
19 6, 97
20 6, 97
21, 6, 74
22, 6, 86
23, 7, 07
24, 6, 85
It can be seen that I/O becomes a bottleneck after the performance reaches 7%. Whether it is C, Java, Ruby or Erlang, you must look directly at the problems brought about by Io.
I talked a lot about it, and the next notes will be written into the code.
This article from the csdn blog, reproduced please indicate the source: http://blog.csdn.net/skyremember/archive/2008/11/10/3265363.aspx