29 Stimmen

Was soll ich lernen? Lisp oder OCaml oder...?

Ich habe bereits einige Sprachen gelernt (in einer groben Reihenfolge der Kenntnisse): Python, C, C++, PHP, Javascript, Haskell, Java, MIPS, x86-Assembler. Aber es ist schon fast 2 Jahre her, dass ich eine neue Sprache gelernt habe, und langsam juckt es mich in den Fingern. Ich habe ein paar Kriterien:

  1. Muss (ich wiederhole: muss) eine freie Linux-Implementierung haben
  2. Es sollte anders sein als die Sprachen, die ich bereits kenne. Mit anderen Worten, sie sollte Funktionen haben, die mich dazu bringen, Probleme auf eine neue Art und Weise zu lösen.
  3. Das sollte ein gewisses Potenzial für den praktischen Einsatz haben. Es muss nicht das nächste Java sein, aber das schließt Brainf* und Shakespeare aus :) Es ist mir egal, wie viele Stellenausschreibungen es hat, aber praktische Anwendungen und Bibliotheken sind ein Plus.
  4. Es sollte zumindest genügend kostenloses Lernmaterial vorhanden sein, damit ich damit anfangen kann.

Ich dachte an Lisp (CL? etwas anderes?) oder OCaml. Mit Haskell habe ich bereits einige Erfahrung mit funktionalen Sprachen (ja, ich weiß, dass Lisp/OCaml multiparadigmatisch ist). Ich bin kein Experte - z.B. können Teile des Codes von Real World Haskell immer noch mein Gehirn verwirren, aber ich verstehe die grundlegenden Konzepte und einige fortgeschrittene (Funktoren, Monaden).

Welche soll ich wählen? Gibt es noch andere Sprachen, die ich übersehen habe? Könnten Sie bitte auch einige nützliche Links zu guten Büchern/Tutorials usw. angeben?

5voto

Ionuț G. Stan Punkte 168218

Ich werde Ihnen etwas empfehlen, das ich noch nicht ausprobiert habe, aber noch ausprobieren möchte, so dass Sie es selbst beurteilen müssen. Es gibt diese Sprache, genannt IO die sich dadurch auszeichnet, dass sie wie JavaScript auf Prototypen basiert, aber auch Konzepte aus vielen anderen Sprachen aufgreift. Sein Arbeitsmarkt ist wahrscheinlich nicht existent, aber ich dachte, ich erwähne diese Sprache.

Andernfalls kann eine Sprache aus der Lisp-Familie ziemlich anders sein als das, was Sie bereits kennen. In dieser Hinsicht würde ich empfehlen Schema das meiner Meinung nach eleganter ist als Common Lisp. Das neue Konzept, das Sie in Scheme interessant finden könnten, ist Fortsetzungen .

Wenn Sie sich für das Schema entscheiden, nehmen Sie sich etwas Zeit, um die diese Videos aus dem Jahr 1986. Sie sind erstaunlich.

5voto

Werfen Sie einen Blick auf Smalltalk! Entweder Cincom VWST oder Smalltalk/X - lassen Sie die Finger von Squeak, denn die Schnittstelle ist schrecklich.) VAST ist auch gut, aber wirklich nur für Windows geeignet. Und kümmern Sie sich nicht um die Skeptiker, die Smalltalk verachten - sie benutzen es nicht und stecken im Morast der Edit-Run-Debug-Zyklus-Sprachen und mehrfach verknüpften Bibliotheken fest :-)

Warum diese Smalltalks - nun, sie kommen komplett mit ausgezeichneter IDE, eingebauten GUI-Tools, dem besten Debugger, den Sie je gesehen haben, Online-Hilfe, und sind völlig unabhängig vom zugrunde liegenden Betriebssystem. Z.B. kann eine ST/X Programmierung, die unter Linux läuft, auf einen Windows ST/X übertragen werden (Quellcode) und sie sollte ausgeführt werden.

ST/X ist kostenlos mit nur sehr geringen Lizenzeinschränkungen, Cincom bietet eine kostenlose NC (Not Commercial) Version an, die NICHT eingeschränkt ist. Ich benutze ST/X, weil ich das Standard-Look & Feel das es bietet. Ihre IDE-Schnittstellen sind sehr ähnlich.

Sprachen ohne IDE und GUI-Tools sind reine Zeitverschwendung, denn die Welt ist wirklich eine GUI, egal wie toll die zugrunde liegende Sprache ist. Z. B. Ruby ist großartig, aber ohne IDE oder einfache GUI-Tools seine wirklich frustrierend.

Smalltalk ist nicht einfach zu erlernen, und es ist nicht perfekt (welche Sprache ist das schon?), aber es ist sehr befriedigend zu lernen und zu benutzen. Und jetzt, wo die Hardware und die Betriebssysteme endlich mit den Bedürfnissen von Smalltalk Schritt gehalten haben, ist es sehr effizient.

5voto

Leslie P. Polzer Punkte 2970

Ich schließe mich Rainers Empfehlung für Common Lisp an.

CL hat alles, was Sie suchen, und bietet eine wirklich neuartige Erfahrung, die auch Ihre Codierungsbemühungen und -ansätze in anderen Sprachen verbessern wird.

Aber bringen Sie Geduld und Ausdauer mit, denn Sie werden viele Konzepte verstehen müssen, die Ihnen zunächst fremd erscheinen werden.

3voto

David Thornley Punkte 55244

Sie könnten es mit Tcl versuchen. Es war so anders, dass es eine negative Reaktion in meinem Gehirn auslöste, also kann ich nicht wirklich sagen, wie ich es anders fand, aber es wurde eine Menge gutes Zeug darin geschrieben (vielleicht heutzutage weniger als früher).

2voto

Robert Harvey Punkte 173098

C# hat eine freie Implementierung in Linux unter dem Mono Projekt, und es ist wohl eine sehr vermarktbare Fähigkeit, es sei denn, man ist völlig gegen Microsoft.

Mein Lieblings-C#-Buch ist Pro C# 2008 und die .NET 3.5 Plattform, Vierte Ausgabe.

Wenn Sie wirklich exotisch sind, ist F# eine OCaml-ähnliche Sprache, die auf der .NET-Plattform und Mono läuft und heutzutage viel Aufmerksamkeit erhält.

http://msdn.microsoft.com/en-us/fsharp/default.aspx

Bücher für F#:
http://www.amazon.com/s/ref=nb_ss_gw?url=search-alias%3Daps&field-keywords=f%23

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X