Die Programmiersprache für Gleichzeitiges, Robustes und Verteiltes
Die Programmiersprache Erlang nimmt eine Sonderrolle unter den Programmiersprachen ein, weil sie sich von Beginn an auf Disziplinen spezialisiert hat, deren Eigenschaften zunächst auf die Steuerung von Telefonanlagen ausgerichtet waren, aber heutzutage zunehmen auch Anwendung bei Internetanwendungen findet, die sich durch eine besondere Skalierbarkeit und Robustheit auszeichnen müssen. Ben Fuhrmannek stellt im Gespräch mit Tim Pritlove die Eigenschaften und Vorzüge von Erlang vor.
Shownotes
- Intro
Erlang: The Movie
- “Hello Mike.” (Joe) “Hello Joe. System working?” (Mike) “Seems to be.” (Joe) “Okay, fine.” (Mike)
- CRE Intro
- Begrüßung
Kölner Dom
Bürgerhaus Stollwerck
Easterhegg
CCC
Chaos Communication Congress
Easterhegg 2008
Erlang
Ben "bef" Fuhrmannek
Vortrag von Ben
Wissenswertes über Erlangen
Max Goldt
- Hackcenter
- Freifunker
- Origami-Workshop
Phone Operation Center (POC)
- Programmiersprache Erlang
Agner Krarup Erlang
- Computer Science Laboratory
Ericsson
- “Ericsson Language”
Telefonanlage
Phone Operation Center (POC)
DECT
- Anforderungen einer Telefonanlage
Asterisk
FreeSwitch
Yate
YXA
Lisp
- “Lisp gab’s schon immer!” (Tim)
C
Pascal
Prolog
Funktionale Programmierung
Prozedurale Programmierung
Programmierparadigma
Erlang (Einheit)
Erlang-Verteilung
- Fehlerbehandlung
Verteiltheit
Hebdrehwähler
Nebenstellenanlage
Dienstgüte
- Geschichte von Erlang
- Seit 1998 ist Erlang Open Source
Erlang: The Movie
CTV068 Erlang – Declarative Real Time Programming Now!
- Software in Erlang
ejabberd
jabber.org
jabber.ccc.de
Jabber (XMPP)
- Nebenläufigkeit
Nebenläufigkeit
Threads
Betriebssystem
Prozess
Interprozesskommunikation
Shared Memory
Semaphore
- “Das braucht man in Telefonanlagen und was man in Telefonanlagen braucht, das braucht man auch sonst im Leben.” (Tim)
spawn
!-Operator
- Ben und Tim spielen Erlang Prozesse
Locks
Deadlock
- Message Queue
Queue
Pattern Matching
- Geschwindigkeit
Freizeichen
BASIC
Stresstest
Tsung
- erlang-projects.org
- Ruby on Rails
CRE072 Moderne Webentwicklung
ErlyWeb
ErlyWeb
Yaws
Apache HTTP Server
lighttpd
Word Wide Web
Twitter
Twitter Ausfälle
- Erlang ist für Serverprozesse
- Zuverlässigkeit
Exception Management
Pointer
- Erlang und das Betriebssystem
Mehrkernprozessor
- Erlang SMP Support
SMP
- Erlang Transportprotokoll
Endianness
Skriptsprache
Kompilierung
Bytecode
- Erlang VM
Java
escript (Stand-Alone Erlang)
Runtime
- Verteiltheit
DNS
- Speicherverwaltung
mnesia
SQL
Erlang List Comprehensions
- Datentypen
- Liste
Tupel
Integer
Float
- Strings sind Listen
Python
XML
- Übertragung eines objektorientierten Programms in Erlang
Smalltalk
- Datenbanken
CRE078 Zope und Plone
Zope
Plone
Objektdatenbank
- mnesia ist auch verteilt
XSLT
- Einsatzgebiete
- ejabberd
- POC
BSD
- Verteilte Anwendungen im Asterisk
Amazon Web Services
Amazon SimpleDB
Amazon S3
- Open Telecom Platform
OTP
- Erlang Behaviours
Interfaces
Mehrfachvererbung
Templates
- Empfehlungen
Joe Armstrong: Programming Erlang
Manpages
erlang.org
- “Richtige Menschen sozusagen benutzen das auch, nicht nur diese Zombies aus dem Video.” (Tim)
- “Die müssen inzwischen auch ziemlich alt sein.” (Ben)
Erlang: The Movie
- “Es ist eine Erfrischung für das Gehirn.” (Ben)
Wings 3D
- "Es gibt ja immer so Leute, die meinen: ‘Wann haben wir denn mal endlich die Programmiersprache, die alle Probleme löst?’" (Tim) "Und jetzt haben wir sie gefunden, so einfach ist das!" (Ben) "Zumindest wenn alle Probleme sich mit ‘Muss sich verhalten wie eine Telefonanlage’ zusammenfassen lassen." (Tim)
Erlang Dokumentation
Trapexit Erlang Community
Bens eMail-Adresse
erlang-questions
- Abschluss
- Danke an Ben
- Tim verlangt nach Feedback
- CRE Outro
- Max Goldt: Wissenswertes über Erlangen
Oh Mann, Tim, Du bist wirklich immer wieder für ’ne Überraschung gut. Erlang … wie geil (und wie abgefahren)! Ich hab’ immer noch dieses CTV-Video über Erlang und die Kunst, eine Telefonanlage zu programmieren, im Hirn. Und natürlich Max Goldt. Ich bin jetzt schon begeistert — mal sehen, was ich sage, wenn ich das Ding gehört haben werde … ;-)
Also der Hall ist echt schrecklich, aber Inhaltlich eine super Sendung.
Was für ne verpeilte Musik am Schluß. 8)
(War richtig überascht das da noch was kam…)
Äußerst löblich mal wieder dein Einsatz Tim,
für die unbedarften Hörer Dinge zu erklären die für Dich
oder den Gast halt selbstverständlich sind (hier z.B. das POC)
oder den Bogen auch mal weiter zu spannen,
wie mit den alten mechanischen Telefonanlagen.
Das ist IMHO auch das tollste am CRE das jedes Thema
eine ziemliche „Bandbreite“ bekommt, und auch die Themen
rechts und links vom eigentlichen Thema erwähnt werden.
Tim schafft es auch immer wieder, gerade das Thema auszuwählen, das einen interessiert. :)
Noch ein kleiner Hinweis: Jedem, dem thematisch schon dieser Podcast gefallen hat, kann man auch gleich eine kürzlich erschienene Ausgabe des Software Engineering Radio empfehlen, bei dem gleich der Erschaffer der Sprache, Joe Armstrong, interviewt wird: http://www.se-radio.net/podcast/2008-03/episode-89-joe-armstrong-erlang
Thematisch wie meistens gelungen! :) Gibt’s von der EasterHegg eigentlich Aufzeichnungen von Veranstaltungen?
@mds: Leider nein.
Klasse Podcast, cooles Intro :)
@mds: Nö. Das Easterhegg ist halt nicht der Congress. Und irgendwann wollen auch wir mal eine Veranstaltung ohne Kameras haben ;-)
Inhaltlich stellenweise etwas schwammig, aber ansonsten unterhaltsam wie immer.
Huhu!
Kleine Ergänzung zum Thema Erlang: Erlang [Erl] ist eine Pseudoeinheit, welche die Auslastung einer Telefonleitung in leitungsvermittelten Netzen (PSTN, ISDN) beschreibt. 1 Erl = 24 h Kanalauslastung / 24 h Zeit. Details gibt, wer hätte es gedacht, in der Wikipedia ( http://de.wikipedia.org/wiki/Erlang_%28Einheit%29 ). Die Einheit ist nach Agner Krarup Erlang benannt, bei der Programmiersprache bin ich mir aber unsicher. Sie kann entweder ebenfalls nach dem Ingenieur Erlang oder n ach der EInheit benannt sein.
LG
Seb
So oder so ist die Sprache nach dem Ingenieur benannt, entweder absichtlich oder über Vererbung ;)
Ein interessantes Erlangprojekt und gewissermaßen das OpenSource-Pendant zu SimpleDB blieb leider unerwähnt, CouchDB:
http://incubator.apache.org/couchdb/
Hi,
vielen Dank für den schönen Podcast!
Ich möchte der Fairheit halber darauf hinweisen, dass trapexit.org die Community Webseite der Beratungsfirma Erlang Training und Consulting darstellt.
Erlang ist zwar Open Source, es ist jedoch nicht so Community-getrieben, wie z.B. FreeBSD, wo FreeBSD.org herstellerunabhängig die Entwicklergemeinde repräsentiert.
Die Situation ist eher mit der von Java/Sun vergleichbar.
Erlang wurde bei Ericsson so von 1985 an entwickelt, als closed source Projekt für die Firma.
1998 fiel Erlang dann bei Ericsson in Ungnade, der neue Chef wollte lieber C++. Die Entwicklertruppe im Forschungszentrum Älvsjö (Stockholm) konnte jedoch erreichen, das das System als Open Source Projekt veröffentlicht wurde.
Und auch heute noch findet die Weiterentwicklung fast ausschliesslich durch dieses Erlang/OTP Team statt, von Ericsson finanziert, weil Erlang wohl doch noch in einigen Produkten Verwendung findet.
Hat Vor- und Nachteile. Die Community ist daher halt durch das OTP Team und ehemalige Mitglieder dominiert. Allenfalls mal von den Universitäten Göteborg und Upsala kommt auch mal was, da sitzt wohl noch Know How.
Ich habe Euch hier
http://best-of-erlang.blogspot.com/2008/04/chaos-radio-express-on-erlang.html
erwähnt. Man findet dort auch die Links mit mehr Infos zum Erlang Film aus dem Intro.
Sehr interessant. Bin schon mal über Erlang gestolpert, als ich mit Wings3D herumgespielt habe.
http://www.wings3d.com/
Erlang hat nicht nur zufällig Syntax-Ähnlichkeiten zu Prolog, wie vom Gast bemerkt, sondern wurde ursprünglich in Prolog implementiert. Das sagt zumindest der Meister selbst in dem von Sebastian (Kommentar 3) erwähnten Podcast.
Pingback: MM086 Deutschland wurde heruntergeladen | mobileMacs