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?

1voto

Kathy Van Stone Punkte 24475

Von den Vorschlägen, die ich bisher gesehen habe, mag ich Lisp (siehe Secko) und Smalltalk (siehe brett), da beide einen anderen Blick auf Sprachen ermöglichen. Prolog sogar noch mehr.

Eine andere Sprache, die anders ist, ist Erlang - ich hatte noch keine Gelegenheit, sie zu lernen, aber sie behandelt Gleichzeitigkeit auf eine andere Weise. Der beste Link, den ich Ihnen geben kann, ist die Haupt-Website .

Was die Empfehlungen betrifft, so ist Lisp gut, sowohl weil es derzeit verwendet wird als auch weil es sehr alt ist. Bei den anderen müssen Sie sich die Quellen ansehen und sehen, was Ihnen am meisten zusagt.

1voto

Coding With Style Punkte 1682

Versuchen Sie es also mit FORTRAN? Ich habe gehört, dass es immer noch aktiv von der wissenschaftlichen und mathematischen Gemeinschaft verwendet wird, und es sollte so unterschiedlich sein, dass es eine Herausforderung beim Lernen darstellt.

Kompilatoren:
http://gcc.gnu.org/wiki/GFortranBinaries
http://www.g95.org/
http://www.fortran.com/compilers.html
http://www.thefreecountry.com/compilers/fortran.shtml

IDEs:
http://www.eclipse.org/photran/
http://force.lepsch.com/ (nur FORTRAN 77)

Tutorials:
Einführung in Modernes FORTRAN: http://www-uxsup.csx.cam.ac.uk/courses/Fortran/
FORTRAN 90 Tutorial: http://www.cs.mtu.edu/~shene/COURSES/cs201/NOTES/fortran.html

Sie könnten auch Visual Basic.NET lernen, falls Sie jemals gezwungen sein sollten, es zu pflegen. Offensichtlich hat mono eine funktionierende Linux-Implementierung davon: http://www.mono-project.com/Visual_Basic

1voto

Faktor unterscheidet sich ziemlich radikal von allem, was Sie sagten, dass Sie es wissen, und auch von allem anderen, was aufgelistet ist. Es ist Stack-basiert, wie Forth, hat aber eine ziemlich umfangreiche Bibliothek und eine Menge interessanter Funktionen.

Ada ist sehr praktisch - es gibt einen Compiler, der auf gcc basiert - aber auch ganz anders als die anderen imperativen Sprachen, die Sie kennen. Ich finde das Typensystem ein bisschen erdrückend, aber es war es wert, etwas darüber zu lernen.

0voto

Secko Punkte 7294

Lisp ist eine großartige HLL, sie hat alles, was anderen Sprachen fehlt. Meiner Meinung nach ist dies eine sehr gute Sprache, die die Bedürfnisse jedes Programmierers "befriedigen" kann.

Perl ist auch eine HLL wie Lisp, es ist interessant und macht Spaß zugleich. Es leitet sich von C ab, so dass man es im Laufe der Zeit erlernen kann. Es kann manchmal schwierig sein und manche Leute neigen dazu, sich beim Lernen zu verirren, aber es ist es wert, es zu kennen.

Beide Sprachen sind frei verwendbar und werden mit Linux geliefert.

Links

Lisp: Wenn Lisp so toll ist , Eine Einführung und ein Tutorial für Common Lisp

Perl: PERL -- Praktische Extraktions- und Berichtssprache

Bücher

Über Lisp - Großartiges Buch von Paul Graham über die Sprache Lisp. Es ist kostenlos und Sie können es herunterladen aquí .

0voto

Marcus Downing Punkte 9754

Scala hat mir sehr geholfen, das Programmieren in einem neuen Licht zu sehen. Ich habe es noch nicht für irgendetwas Berufliches verwendet, aber es hat sich dennoch darauf ausgewirkt, wie ich Code in anderen Sprachen schreibe - nicht nur Java, sondern auch PHP. Ich habe vor kurzem einen einfachen Parser für ein WordPress-Plugin geschrieben, und der Code ist wesentlich funktionaler und unveränderlicher als er es vor sechs Monaten gewesen wäre, und er ist besser geworden, trotz der fehlenden Durchsetzung in PHP.

Die einzige andere Sprache, die meine Arbeitsweise so dramatisch beeinflusst hat, ist Perl, fast ein Jahrzehnt früher. Perl hat viel dazu beigetragen, wie ich pseudo-code, auch wenn ich nie die Sprache selbst berühren.

Viele Leute vergleichen die funktionalen Aspekte von Scala mit Haskell. Man kann sich sogar vorstellen, dass die Kenntnis von Haskell bedeutet, dass man bereits alles weiß, was man von Scala lernen kann, aber das glaube ich nicht. Die Art und Weise, wie Scala OO und Funktion kombiniert, lässt es so erscheinen, als ob es die wahrhaftigste Form von beiden wäre.

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