Die Mutter aller Programmiersprachen
LISP ist eine der ältesten, universellsten und ausgereiftesten Programmiersprachen und gilt auch 50 Jahre nach ihrer Erfindung immer noch als die Sprache, bei sich andere Sprachen alles abschauen müssen. Trotzdem fristet LISP aus anderen Gründen ein Mauerblümchen-Dasein, das teilweise gerechtfertigt teilweise unverständlich erscheint.
Im Gespräch mit Tim Pritlove erläutert Hans Hübner die Eigenschaften, Vorzüge und Einschränkungen von LISP. Dabei werden viele Teilaspekte ausführlich dargestellt, darunter die Syntax, der Umgang mit Listen, Anonyme Funktionen, Namensräume, Lisp-Dialekte, das Common List Object System, Multiple Dispatch und Metaobjektprotokolle. Dazu wird viel zur Entstehung und Vergangenheit von Lisp, den Lisp Machines, verfügbaren LISP-Implementierungen, Open Source LISP-Compilern und geeigneter Literatur berichtet.
Shownotes
Links:
- WP: LISP
- CRE031 Programmiersprachen und Dylan
- WP: Hans Hübner
- Hans Hübners Blog
- WP: Jack Tramiel
- WP: CeBIT
- WP: Sinclair ZX80
- WP: Elo
- WP: Chip
- WP: Elektor
- WP: Elrad
- WP: c’t
- WP: Clive Sinclair
- WP: Sharp PC-1210
- WP: BASIC
- WP: Apple II
- WP: Sinclair ZX81
- WP: Amstrad CPC (Schneider)
- WP: Commodore VC20
- WP: Commodore 64 (C64)
- WP: Akustikkoppler
- WP: Mailbox
- WP: Pascal
- WP: Turbo-Pascal
- WP: Borland Delphi
- WP: Forth
- WP: Virtual Address eXtension
- WP: Virtual Memory System (VMS)
- WP: C++
- WP: Objektorientierte Programmierung
- Journal of Object Oriented Programming
- WP: Perl
- WP: Anonyme Funktion
- WP: Funktionale Programmierung
- WP: Heiliger Gral
- WP: Dylan
- WP: Lisp-Maschine
- WP: Interrupt
- WP: Tom Knight
- WP: John McCarthy
- WP: Minirechner
- WP: Transistor-Transistor-Logik (TTL)
- WP: Flipflop
- WP: Symbolics
- WP: Integrationsgrad (VLSI)
- WP: Genera
- WP: Richard Stallman
- WP: Massachusetts Institute of Technology (MIT)
- WP: Liste
- WP: Domänenspezifische Programmiersprache (DSL)
- WP: Extensible Markup Language (XML)
- WP: Künstliche Intelligenz
- WP: Strategic Defense Initiative (SDI)
- WP: Common Lisp
- WP: Namensraum
- WP: Scheme
- WP: Common Lisp Object System (CLOS)
- WP: Grady Booch
- OOD-Buch von Booch
- WP: Smalltalk-80
- WP: Multimethode (Multiple Dispatch)
- WP: Metaobject
- WP: Closure
- WP: Emacs
- WP: Emacs Lisp
- WP: AutoLISP
- Franz Inc.
- Allegro CL
- LispWorks
- SBCL
- CMUCL
- Clozure CL
- CLISP
- Armed Bear Common Lisp (ABCL)
- Paradigms of Artificial Intelligence Programming (Peter Norvig)
- Practical Common Lisp von (Peter Seibel)
- On Lisp (Paul Graham)
- Hackers and Painters
- Arc
- Object-Oriented Programming in Common Lisp (Sonya Keene) [ISBN 0201175894]
- The Art of the Metaobject Protocol (Gregor Kiczales) [ISBN 0262610744]
- Lisp IRC Channel
- BKNR Lisp Application Environment
Ich finde, dass die Zeit für einen Spenden-Button im Portal gekommen ist.
Ja, ich weiß, Du magst die Statistiken gerne ansehen. Aber 30kb/s muss 2008 doch echt nicht mehr sein. Genau für so etwas wurde doch Bittorrent geschaffen. Notfalls kannst Du ja die heruntergeladenen torrents zählen. :)
Ansonsten weiter so. Ich könnte Chaosradio den ganzen Tag hören. :)
irgendwie habt ihr da einen langsamen server wo die podcasts zu latden sind.
mir zeigt es die downloadzeit fuer diese mikrige mp3 datei fuer eine halbe stunde an. das ist nicht normal. habt ihr denn so grosse auslastung?
ich weiss es haengt nicht mit lisp zusammen aber die sache ist die ich wollte es noch heute hoeren aber das faellt wegen der geschwindigkeit flach.
„Ich könnte Chaosradio den ganzen Tag hören. :)“
Ich auch!!
Danke Dir recht schön!
Also Tim, wenn du einen Paypal-Button oder besser ev. eine Amazon Wunschliste veröffentlichst werd ich auch einen kleinen Obulus nach Richtung Berlin schicken. Ich finde den Podcast insgesamt große Klasse und bin uach gerne bereit das auf freiwilliger Basis zu honorieren.
Dann noch ungehört der Verweis auf
http://www.se-radio.net/podcast/2008-01/episode-84-dick-gabriel-lisp
Grüße Jan
Ich habe jetzt einen Hinweis auf meine Spenden-Seite in die Chaosradio Express Seite integriert.
Um 7:00 morgens lädt sich die Episode in knapp zwei Minuten :-)
LISP?
Cool – das ist so eine der Sprachen von denen man heute an den Unis (bzw an meiner Uni) garnix mehr hört und von denen die meisten da wahrscheinlich auch noch nie was gehört haben. dabei sind so viele moderne konzepte drinne.
ich freu mich auf jeden fall schon das zu hören.
ich find CRE einfach klasse :)
Ja Tim, weiter so! Ich bin immer traurig wenn ich keine Episoden mehr zu hören habe.
Schließ mich den anderen an – Chaosradio is echt super :)
Freu mich immer, wenns neue Sendungen gibt und find auch diese sehr gelungen.
Großes Lob an Tim – mach bitte weiter so!
Danke natürlich auch an Hans Hübner, der nen wirklich guten Einblick in die Sprache gegeben hat, die man unbedingt kennen muss – wie der Bazaar-Mann ja im Jargon-File schreibt und die die einzig wirklich schöne Sprache ist und überhaupt ;-)
http://xkcd.com/224/
Die Stimme kennst du doch!? Richtig, CR40 ‚UNIX‘
Vielen Dank für einen weiteren interessanten Podcast! Weiter so! Und wenn die Frequenz etwas nachlässt, so macht das nichts. Denn die Qualität ist entscheidend. Und die stimmt bei CRE.
Nochmals Danke, Tim!
Sehr schöne Sendung. Danke! Aber jetzt mußt Du noch eine scheme-Folge hinterschieben ;-)
Ich finde CRE echt super (riesigen Dank, Tim). Allerdings muss man beim Zuhören doch immer ein wenig aufpassen und das funktioniert einfach nicht, während ich gerade etwas anderes am Rechner mache, das die Aufmerksamkeit auf sich lenkt… Entsprechend hänge ich mittlerweile etwa 10 Folgen zurück. ;-)
Nichtsdestotrotz freue ich mich auf weitere Folgen. :-)
@Nightwolf: Oh ja, das ist der Unterschied zum normalen Chaosradio. Da kann man prima nebenbei coden, aber bei CRE braucht man seine Sinne beisamen.
Großes Lob, toller Podcast. Hans Hübner? Der Name kommt mir irgendwoher bekannt vor… *grübel*
CRE ist spitze!
Viele Grüße aus Österreich!
Das war mal eine richtig gute Episode.
…wieder einmal eine super Folge. Wenn ich hier mal Wünsche äußern dürfte, lieber Tim:
kannst du die eine oder andere Folge über die Historie der Rechner machen? Vielleicht über die 60er und 70er? Die Gründergeneration von Zuse, Nixdorf und Co. ist ja leider verstorben. Aber den einen oder anderen, der damals an den grossen Kisten gearbeitet hat (vielleicht auch im Osten) wäre toll. In Hamburg hattest du es ja schonmal angeschnitten.
Was mich immer wieder begeistert: Man hat immer den Eindruck, dass sich sowohl Interviewer und auch der Gast auf das Thema vorbereitet hat – ein Factum, was heute selbst im Abendprogramm des hiesigen TV nicht mehr selbstverständlich ist. Das, so scheint es mir, ist der Grund, warum die CRE immer sehr professionell rüberkommen und beim Publikum hier so gut ankommen.
Vielen Dank hierfür. Und gerne mehr :-)
Für Legacy-Hardware gibt es ja schon das perfekte Intro: http://www.youtube.com/watch?v=-c4nhGS0OL4
Um mal kurz zu diesen objektlosen Funktionen zurückzukommen. Also das mit der Funktion sex() finde ich nicht ganz zu treffend. Warum muss ich die außerhalb eines Objekts auslagern? Ich würde es als richtig ansehen, wenn sie vom Objekt Wirbeltier runter vererbt wird. Denn jedes Tier implementiert sex() anders, oder? Ansonsten muss ich ja in der Funktion sex() eine Objektunterscheidung machen (ist es nun sex mit dem Staubsauger, mit ner Frau, mit ’nem Mann usw…)
@korvin: Genau dieses „Objektunterscheidung in der Funktion“ wird durch Multimethoden verhindert. Die Unterscheidung geschieht bereits _bevor_ die Methode ausgewählt und aufgerufen wird allein durch die Deklaration der Methode. Man schreibt schlicht für jeden Fall eine Methode die sich schlicht durch die Spezifikation der Parameter unterscheidet. Die jeweils „spezifischste“ Methode erhält den Zuschlag.
Damit lagert man die Fallunterscheidung in die Sprache aus und muss sie nicht im Code selbst machen. Dadurch gibt es einerseits weniger Spaghetticode und andererseits erhält man wirklich zu 100% separierte Methoden und Objekte.
Hi Tim. Ich höre seit drei Monaten CRE und empfinde das als äusserst unterhaltsame lehrreiche Art der Wissensvermittlung. Ich bin auch Dein jahrgang, früher HyperCard programmierer, Mac evangelist und jetzt total auf dem Social Network Baukasten Trip mit Ning. Jedenfalls finde ich fast deine Specials über Programmiersprachen die besten – wobei das Energiesparhaus heute nachgehört auch klasse war – toll die Randthemen. Schriften war etwas zäh – aber sonst alles sehr erfrischend und du frägst einfach genial nach und kitzelst Wissenwertes (aus Erlang – man war das super) heraus. Übrigens könnte ich dir einiges über Ning erzählen – schlummert noch schön im Verborgenene – wird aber bestimmt gross und plötzlich ein Thema… Also – freu mich schon auf die nächste Show. Genial die Links als Liedtext – besoners auf dem iPhone. Kann man prima mitlesen und scrollt butterweich… gruss von den Canaren…
Vielleicht etwas nettes für den Gesprächsgast:
http://www.mikrocontroller.net/topic/94193
Ein Ein-Chip Heimcomputer mit Forth und Videoausgabe.
Ein schönes Lisp-CAS
http://de.wikipedia.org/wiki/Maxima_(Computeralgebrasystem)
http://xkcd.com/297/
Also ich bin eindeutig CRE-süchtig. Da ist der langsamem Download dann besonders unangenehme wenn man der neuen Folge entgegen fieber. Hab gleich mal was gespendet. Vielleicht hilft das ja.
War ja mal wieder eine schöne Sendung…
Eine kleine Ergänzung hätte ich aber noch für die Leute von der Art&Beauty Fraktion… Schaut euch mal CommonMusic an, das ist eine nette kleine ziemlich mächtige Kompositions Application auf LISP. Schmeißt im wesentlichen Csoundscores und Midi aus und macht viel Freude…
Ich höre zwar erst seit kurzer Zeit CRE, aber ich bin davon sehr begeistert. Der Podcast zum Thema LISP war äußerst informativ und zugleich unterhaltend. Es ist eigentlich schade, nachdem so detailliert auf einige der vielen LISP-Features eingegangen worden ist, hierzulande nur wenige LISP verwenden.
Ich hoffe, es werden noch viele der interessanten CRE Beiträge folgen.
Grüße
Tolles Interview. Den historische Überblick fand ich sehr interessant. Schön war auch der kritischen Umgang mit Lisp und die vergleichende Darstellung in Sachen Teamentwicklung.
In einer Sache muss ich allerdings zu Gunsten der Lisp-Community widersprechen: Die meisten Lisper, die ich bisher kennenlernen durfte, sind zwar tatsächlich nicht in meiner (Mitte 20) Generation. Dafür sind sie ausnahmslos sympathisch und keineswegs borniert.
Hi,
danke für die sehr interessante Sendung!
Ciao
Veit
Ich möchte auch mal recht herzlichen Dank sagen! Ich höre jede Sendung mit Begeisterung, meist beim Bügeln. Die Themen fesseln mich so, dass Bügeln fast erträglich wird. Ich hoffe die Frequenz der Sendungen bleibt hoch, andernfalls stapelt sich hier die Wäsche ;)
Danke! Danke! Ich bin beruflich viel mit Bahn und Bus unterwegs, und CRE verkürzt mir den Transit jede Woche gewaltig! Ich freu‘ mich immer schon auf die nächste Sendung; diese Verbindung von technischem Anspruch, persönlicher Atmosphäre und gesellschaftlicher Reflexion ist einzigartig + ganz große Klasse! Charlie Rose für Hacker. Die regelmäßigen Retro-Schwärmereien sind mir auch sehr sympathisch (ist wohl so ein Generationen-Ding)… Ist das ausbaufähig? Nochmal: danke!
Auch ich muss mal ein grosses LOB aussprechen. Tim, ich höre deine Podcasts rauf und runter und kann gar nicht genug davon kriegen. Auch die technische Tiefe finde ich sehr ansprechend. Mach weiter so, es gibt ja noch sooo viel interessantes, worüber man erzählen könnte :)
Sehr schöne Sendung, allerdings bricht sie hier etwas abrupt ab. So bei 1.35:20 setzt Tim zu ’ner Frage an: «Sag’ mal, hast du dich denn schon mal mit …»
Ist das nur hier so?
@Moss: Davon wurde mir schon mal berichtet und ich habe das aber noch nicht nachvollziehen können. In welcher Konfiguration passiert das? Ich hatte die Datei schon einmal ausgetauscht, daher verwundert es mich doppelt, dass es immer noch an der gleichen Stelle Probleme gibt.
Gerade lief CRE084 bei mir – für mich als spätberufenen Lisp-Anhänger ist diese Folge der Anlass, mich endlich für Chaosradio und Chaosradio Express zu bedanken. Insbesondere CRE ist einer der besten Podcasts, die ich kenne. Dankedankedanke!
Auch ich fand es erfrischend, dass Hans Probleme in der Sprache, aber insbesondere auch im Umfeld der Sprache klar benannt hat.
Was das Entwickeln im Team angeht, war ich ein wenig überrascht, wie drastisch hier das Urteil von Hans ausfiel. Wohlgemerkt, ich sehe das auch so, dass andere Sprachen (und insbesondere die drumherum entstandenen Entwickler-Ökosysteme) hier Vorteile gegenüber Lisp haben. Teamarbeit ist aber auch in Lisp durchaus möglich – in meiner Firma betreiben wir das nun schon seit mehr als 17 Jahren (Appetithappen).
Nochmals vielen Dank, und weiter so!
Den ganzen positiven Kommentaren hier kann ich mich nur anschließen. Weiter so!
http://xkcd.com/312/ beschreibt die Lisp auch sehr schön…
Wieder eine sehr informative und unterhaltsame Sendung.
Wenn du Tim die Lust an Sendungen über alternative Programmiersprachen noch nicht verloren hast, dann wäre vielleicht das Thema Eiffel für dich interessant. In vielerlei Hinsicht ist Eiffel ein Kontrapunkt zu den funktionalen und dynamischen Sprachen, teilt aber deren Schicksal in weiten Teilen ein Nischendasein fristen zu müssen, obwohl dort viele Dinge einfach „richtig gemacht“ werden. Design by Contract sei hier nur beispielhaft genannt.
Wie ich gerade in der Wikipedia gelesen habe, gibt es sogar Berührungspunkte zu Apple, denn die Programmiersprache AML des Apple Media Tools hat auf Eiffel basiert ;-).
Mal eine kleine Frage an Tim:
Welche Programmiersprache(n) kannst du und welche benutzt du eigentlich?
Was würdest du empfehlen? (für Linux und Windows)
@Duc: Ich habe mich in verschiedenes reingelesen, nutze aber aber selbst produktiv eigentlich nur C und XSLT. Empfehlen kann ich Dir nichts, weil das viel zu sehr davon abhängt, was Du damit machen willst.
Hallo,
da man bei Deinen Sendungen nichts Vernünftiges machen kann (außer zuhören), ist CRE mein staendiger Begleiter beim Spaziergang mit dem Hund.
Auch im Rueckblick wieder mal eine sehr gute Sendung. Ich bin damals von Pascal, Prolog, Lisp nach Smalltalk gekommen und habe immer noch nicht verstanden, warum diese Sprache außer in großen Projekten keine weitere Verbreitung gefunden hat.
Vielleicht gibt es doch mal ne Sendung über Smalltalk/Squeak/Pharo?!
Weiter so.
Pingback: podcasts and documentaries « Invalidmagic's Blog
Sehr interessant, leider habt ihr nicht über Clojure gesprochen und viele andere Dialekte wie Scheme kammen auch relativ kurz. Dennoch hat mir der Podcast einen guten Überblick verschafft, danke dafür.
In der Folge habt ihr euch gefragt, welche Sprachen in „dem Booch“ in Beispielen vorkamen. Falls euch das nach 12 Jahren noch interessiert, es waren laut Inhaltsverzeichnis in der ersten Edition C++, Smalltalk, Ada, Object Pascal, Eiffel und Common Lisp.