Keneequa Brown Chris Duzan Navaid Khalfay
Originally developed in 1986 by Joe Armstrong as a proprietary language within Ericsson Released as open source in 1998 Currently on release R15B03 The origin of it's name is not confirmed An abbreviation of “Ericsson Language” Named after Daish Mathematician Agner Krarup Erlang
Designed as a control program for a small telephone exchange Designed to solve problems involving: Telecommunication systems/applications, Servers for internet applications, and Database applications that require soft real-time behavior. Accidentally created in the process, Ericsson didn't set out trying to make a new language
1986 First developed Initial version was implemented in Prolog and influenced by the programming language PLEX Erlang went from lab product to real application following the collapse of AXE-N.
1998 Erlang was banned in new Ericsson products, causing Armstrong to leave and Erlang becoming open source by the end of the year Native symmetric multiprocessing support added to the runtime system and virtual machine. 1995
Eight primitive data types: Integers Atoms Floats References Binaries Pids Ports Funs
Two compound data types Tuples Lists Two forms of syntactic sugar Strings Records
Integer arithmetic is exact Only limited by available memory Floats have a range of +/ Support for concurrency Small but powerful set of primitives to create processes and communicate among them Processes are the primary reason to structure an Erlang project
Else → semicolon ( ; ) End if or 'function end' → period (. ) Comment → percent sign ( % )
Quicksort Example
Erlang Java Functional vs. Imperative Servers & embedded systems Erlang uses pattern matching which allows for more compact code Imperative Web Apps Use virtual machines Support multi- threading Provide “garbage collection” Don't have to worry about returning allocated space BOTH
Facebook Chat service Yahoo Social bookmarking service T-Mobile SMS and authentication systems Amazon Implement SimpleDB (database services)