Uses of Erlang in Telecom [closed]
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this questionI'm a web developer and a college student majoring in telecommunications. This means I'm decent at programming and I know a little about telecom networks (at a high, non-technical level).
I keep reading that Erlang is used all over the telecom industry (supposedly for its performance).
I'm wondering if there's anyway I can combine my programming skills with my telecommunications major with Erlang. Is most of the Erlang/telecom stuff closed source? Are there any open source telecom projects written Erlang?
UPDATE: sipwiz's comment makes me think in terms of a question larger than "uses of Erlang". How can I leverage a high-level understanding of telecom networks and the telecom regulatory environment with programming. I hope this hasn't veered too off-topic for SO.
I've been doing telecommunications software for more than 20 years. I regret that I've only gotten involved in using Erlang in the last 12 months. Most telecom development is done in C, C++, etc.
IMHO, this is because we didn't know better. If you want to maximize your job opportunities, Erlang isn't your best choice. I regret that this is true. Would I tell my son to learn Erlang and go where the work is? Yes, I would.
Carl Wright Service Level Corporation
There is big difference between high level web development, and implementing a network application using a hex editor and an incomprehensible protocol specification, regardless of the language.
If you want to program telecom applications, you have to be prepared for learning a lot more than a new language.
I believe you're confusing Erlang, the programming language, with erlang, a unit of measurement, which is "used all over the telecom industry" precisely because it is a key measure of performance. From my experience in telecom, you can get a lot done just with Perl.
One open source telecom project in Erlang is YXA, a SIP server.
I have been working with telecom software for 2-3 years now. I would say that there is nothing that is very specific for this field. The programming is quite generic, implementing protocol stacks (clients and servers), parsing records out of file formats, identifying bottlenecks and improving performance, and debugging of problems at customer sites.
What you need to know as a software engineer is a bit of the terminology for the various telecom system technologies (they really like acronyms). This will make it easier to understand requirements and what customers are actually talking about when describing their environment. My employer sent me to a one-day course for that, so I wouldn't worry too much about it.
I would recommend you to get good at generic programming, working with big systems, maybe dwell into how databases and file systems work at a low level, as well as how to write parsers (by hand and by using parser generators, and not rely on regexps for everything).
Online systems generally need the "soft-realtime" qualities that Erlang have, so you need to understand garbage collectors and how they introduce gc stops and what tuning can be done about that. It is also quite invaluable to know tools one can use to debug a running production system without risking performance degradation.
Ericsson created Erlang for their telecom systems, they use it quite a lot for signaling implementations and fault-tolerant applications. Outside of Ericsson, very few telecom companies use it. However, they should, it has many advantages as a high-level functional language with lightweight threads and a build-in messaging system. It is a good language to explore, but you probably will not need to know it.
Unfortunately no. I know of a bunch of telco/voip applications in Erlang but the telco business is notoriously closed source. You are more likely to get the Windows source code than getting a telco to release their code.
Erlang is named after ERiccson LANGuage, as it was decided at Ericcson in the mid 80's to build a language that had "all the best features" of languages like Lisp, Prolog and Parlog for their telecom switches. It is a language best suited to telecoms, financials, and other data intensive communications driven industries.
精彩评论