Frequently Asked Questions about Erlang
Cover
Expand All
Contract All
Table of Contents
What is Erlang
Top of chapter
In a nutshell, what is Erlang?
What is OTP?
What sort of applications is Erlang particularly suitable for?
What sort of problems is Erlang not particularly suitable for?
Who uses Erlang for product development?
Who uses Erlang for research and teaching?
Can I get commercial support for Erlang?
Questions about this FAQ
Top of chapter
Where can I get the latest version of the FAQ?
What's new?
Where do I ask questions which are not answered in this FAQ?
The answer to question 2.4 is wrong!
Disclaimer/Distribution
Obtaining Erlang/OTP and books/articles about it
Top of chapter
Where can I get Erlang/OTP?
What's the current version of (Open Source) Erlang?
Which licence is Open Source Erlang shipped with?
Where is the Erlang documentation?
Which book about Erlang should I read?
What advanced Erlang documentation is there?
What documentation is there in related subjects?
Is there public repository for the Erlang source?
How can I contribute to Erlang?
How can I propose changes to the language itself?
How do I report a bug?
Where is Erlang discussed in the real world?
Where is Erlang discussed online?
Where can I find Erlang programmers/employers?
Getting Started
Top of chapter
How long does it take to learn Erlang?
How can I learn Erlang?
What does "hello world" look like?
How do I quit the Erlang shell?
Why does Erlang print "ok" after my program's output?
How do I...
Top of chapter
...compare numbers?
...represent a text-string?
...convert a string to lower case?
...convert a text string representation of a term to a term?
...use unicode/UTF-8?
...destructively update data, like in C
...run an Erlang program directly from the unix shell?
...communicate with non-Erlang programs?
...write a unix pipe program in Erlang?
...communicate with a DBMS?
...decode binary Erlang terms
...decode Erlang crash dumps
...estimate performance of an Erlang system?
...measure performance of an Erlang system?
...measure memory consumption in an Erlang system?
...estimate productivity in an Erlang project?
...use multiple CPUs (or cores) in one server?
...run distributed Erlang through a firewall?
...distribute the Erlang programs I write to my friends/colleagues/users?
...write to standard error (stderr)?
Erlang Libraries
Top of chapter
What's in the OTP libraries?
Is there a collection of data structures, e.g. balanced trees?
Is there a serial port driver for Erlang?
Is there a toolkit for building GUIs?
I've written an application/library. How do I package it so others can use it?
I've written a library to handle XYZ. How do I get it into the standard Erlang distribution?
Erlang Tools
Top of chapter
Is there a pretty printer for Erlang?
Is there an erlang formatter for CI?
Where is the source for LEEX (the erlang lexer)?
Is there a diagram tool specifically for Erlang?
What code testing tools and suites exist for and in Erlang/OTP?
Is there a way to benchmark an Erlang implementation?
Does anyone have a magic file for Erlang?
Which IDE should I use for Erlang development?
Are there Erlang Coding Guidelines?
What refactoring tools are there for Erlang
What static code analysis tools are there?
Is there a "reverse compiler" for BEAM files?
Implementations and Ports of Erlang
Top of chapter
Open Source Erlang
What Experimental, Research and Historical Implementations are there?
Which version of Erlang am I running?
What operating systems does Erlang run on?
What implementations of the Erlang Virtual Machine are there?
Can Erlang be compiled under Microsoft Windows?
How can I cross-compile Erlang?
Is Erlang small enough for embedded systems?
Troubleshooting, Problems and 'Gotchas'
Top of chapter
Why can't I write a = 3 (badmatch)?
Why can't I change the value of a variable?
Why do lists of numbers get printed incorrectly?
Why can't I call arbitrary functions in a guard?
Why can't I use "or" in a guard?
Why does 'catch' give me a syntax error?
What is a sticky directory?
Why won't my distributed Erlang nodes communicate?
When distribution won't work
Avoiding DNS
Why does my application die every second time I load new code into it?
Why can't I open devices (e.g. a serial port) like normal files?
Why doesn't the stack backtrace show the right functions for this code:
What do I do if I get an error when compiling Open Source Erlang?
Why do errors in the shell kill other processes?
Why do I get incorrect answers for floating-point operations?
Academic and Historical Questions
Top of chapter
Why is Erlang called "Erlang"?
Who invented Erlang?
Where does Erlang syntax come from?
Why is Ericsson giving away Erlang?
What does soft realtime mean?
How did the first Erlang compiler get written?
Erlang Syntax and Semantics Details
Is the order of message reception guaranteed?
If I send a message, is it guaranteed to reach the receiver?
What limits does Erlang have?
Do funs behave during a code change?
Examples of bound funs causing surprises
Is it just me, or are records ugly?
Can a process receive messages with varying priorities?
What's the history of static type checking in Erlang?
How does type checking in Erlang compare to Java/Python/C/C++/Haskell?
What's Erlang's relation to 'object oriented' programming?
How are strings implemented and how can I speed up my string code?
How does the Garbage Collector (GC) work?
Can I exploit knowledge about my program to make the GC more efficient?
Could the Java Virtual Machine be used to run Erlang?
Is it possible to prove the correctness of Erlang programs?
I've heard it's a bad idea to program defensively in Erlang. Why?
Mnesia Database Questions
Top of chapter
What is Mnesia good at?
What is Mnesia not so good at?
Is Mnesia good for storing blobs?
Is there an SQL interface for mnesia?
How much data can be stored in Mnesia?
Frequently Asked Questions about Erlang
March 8 2024