Ich habe in letzter Zeit eine Menge Threads über funktionierende Programmiersprachen gelesen (fast im letzten Jahr sogar). Ich würde wirklich gerne eine auswählen und es gründlich lernen.
Im letzten Semester wurde ich in das Schema eingeführt. Ich liebte es. Liebte die extreme Einfachheit der Syntax, das Homoikonizitätsprinzip , die Makros ( hygienisch und nicht hygienisch), die n-Arität der Prozeduren usw.
Das Problem bei Scheme ist, dass es sich um eine akademische Sprache handelt. Ich denke nicht, dass es wirklich in Produktionsumgebungen verwendet wird. Ich glaube auch nicht, dass es besonders gut ist, in unserem Lebenslauf zu haben. Also habe ich mich nach Alternativen umgesehen. Es gibt viele von ihnen und sie scheinen alle einen ähnlichen Bekanntheitsgrad zu haben.
Einige Gedanken zu anderen funktionalen Sprachen, die ich bisher in Betracht gezogen habe:
- Clojure: Es klingt großartig, weil es auf die Java-Welt zugreifen kann, auf Skalierbarkeit und Parallelität ausgerichtet ist, aber ist die Java-Welt im Moment nicht am Rande? Ich kenne Java bereits ziemlich gut, aber wäre es sinnvoll, abhängig von der JVM noch mehr Energie hinzuzufügen?
- Haskell: Sieht nach einer sehr geschätzten Sprache aus, aber nach dem, was ich gelesen habe, ist es auch eher eine akademische Sprache.
- Lisp: Es gibt es schon seit Ewigkeiten. Es scheint das meiste zu haben, was ich von Schema mag. Es hat eine große Community. Soweit ich weiß, ist es wahrscheinlich die am weitesten verbreitete funktionale Programmiersprache in der Industrie (?).
- F #: Ich habe es nicht wirklich bedacht. Ich bin kein großer Fan von MS-Sachen. Ich habe nicht das Geld, um ihre Software zu bezahlen (ich könnte sie von Universitätsallianzen befreien, aber ich bin eher geneigt, auf Community-basierte Lösungen zu setzen). Obwohl ... ich denke, es wäre die beste karriereorientierte Wahl.
Heute Nacht neige ich mich zu Lisp. Vor einer Woche war es Haskell. Vorher war es Clojure. Im vergangenen Jahr habe ich ein Scheme zum Spaß gemacht und es nicht aus dem Grund gepusht, den Sie kennen. Jetzt möchte ich ernsthaft werden (über das Erlernen eines, über das Durchführen echter Projekte, über die mögliche professionelle Arbeit damit). Mein Problem ist, dass ich sie alle gründlich lernen muss, bevor ich mich für eine entscheiden kann.