Frage

Ich denke ernsthaft daran, meine neue Hacking -Sprache zu machen, da ich Lisp liebe, aber einige Probleme mit CL und Schema habe. Ich habe noch nie in der Java -Umgebung gearbeitet und meine Lisp -Erfahrung beschränkt sich darauf, "SICP" und "The Little Schemer" zu arbeiten.

Was muss ich wissen? Gibt es gute Ressourcen auf "The Clojure Way"? Irgendwelche Ressourcen zum Clojure -Stil? Ich habe Mark Volkmanns ausgezeichnete Seite gefunden, aber die Bücher, die ich durchgesehen habe, scheinen ein wenig frei zu sein.

Was muss ich über Java wissen? Ich würde lieber Java nicht lernen, nur um Clojure zu lernen, aber ich kann mir vorstellen, dass ich zumindest ein wenig wissen muss. Wie ist der Workflow? Meine Erfahrung beschränkt sich auf dynamische Sprachen, daher habe ich keine Ahnung, was ich tun müsste, um eine Anwendung ohne Quelle auf dem JVM zu verteilen.

Ich habe das offensichtlich gegoogelt, aber es gibt eine große Menge an Informationen und nicht viel "clojure -spezifische" Dinge.

Ich denke, ich suche nach vernünftigen Vorschlägen zu der Art der Literatur, die ich in einer Art logischer Reihenfolge lesen sollte.

War es hilfreich?

Lösung

Sie können nichts falsch machen wie viele der Clojure Videos auf blip.tv wie Sie es bewältigen können, besonders die von Rich Hickey selbst. Diese tragen wirklich dazu bei, die konzeptionellen Punkte und Aspekte nach Hause zu bringen, die für Clojure einzigartig sind.

Wenn Sie mit Lisp -Konzepten ausreichend vertraut sind, möchten Sie sich vielleicht zunächst darauf konzentrieren, wie Clojure "Karten" zu den LISPs, mit denen Sie gespielt haben, "Karten". Sehen Sie sich die Videos von Rich Hickey an "Clojure für Lisp -Programmierer."

Sie müssen sich mit Java vertraut machen, weil Clojure nicht scheut, es zu benutzen. Es ist nicht irgendwie un-clojurey (soweit ich das sagen kann) Java zu verwenden, wo es klug ist. Ich würde zumindest durch das überfliegen API -Dokumente für die java.lang und java.io Pakete, weil java.lang ist in Ihren Clojure -Programmen automatisch verfügbar und java.io wird häufig verwendet.

Mit meinem Clojure-to-Lisp-Wörterbuch in meinem Kopf und meinen Java-Grundlagen hinter mir würde ich auswählen ein kleines Projekt zum Arbeiten. Halten Sie die Clojure- und Clojure-Contrib-API-Dokumente von Handy (entweder im Web oder verwenden Sie den Befehl (doc) aus der Reply) und lesen Sie die vielen, viele Clojure-Blogs da draußen. Zwei meiner Favoriten sind http://nakkaya.com/ und http://stuartsierra.com/. Wenn Sie Diigo verwenden, wurden eine ganze Reihe von Blogs mit einem Lesezeichen versehen. Clojure -Gruppe.

Hinweis: Lassen Sie sich nicht in Ihrer Entwicklerumgebung aufhalten. Es gibt eine Vielzahl von Optionen, die auf dem aufgeführt sind Erste Schritte Wiki Page. Um Clojure und Ihre ersten kleinen Projekte zu lernen, wählen Sie einfach Ihren einfachen Texteditor der Wahl, lernen und verwenden Sie die Grundlagen von LININGEN Um ein schönes Projektverzeichnis mit all Ihren Pfaden und Abhängigkeiten zu erhalten, die sich um sie kümmern, verwenden Sie den Befehl "Lein Repl", um eine Wiederholung mit allen geladenen und verfügbaren Abhängigkeiten zu starten. Bei der Annahme, dass Sie EMACs verwenden (basierend auf Ihrer vorherigen Lisp -Erfahrung), können Sie describe-variable dein inferior-lisp-program sein lein repl, und starten Sie einfach EMACs von der Wurzel Ihres Beispielprojekts, damit alles automatisch funktioniert.

Es gibt Bücher Sie können lesen, insbesondere die Freude an Clojure, Programmierung von Clojure und praktischem Clojure. Die beiden letzteren sind "praktischer" als die erste, was "philosophischer" ist (entschuldigen Sie die groben Verallgemeinerungen). Praktische Clojure ist mit Clojure 1.2 auf dem neuesten Stand, während das Programmieren von Clojure etwas älter ist.

Gehen Sie schließlich auf den #Clojure IRC -Kanal und verwenden Sie die Clojure -Google -Gruppe, denn es gibt eine Reihe kluger, freundlicher Leute, die gerne anderen helfen.

Andere Tipps

Nur eine kurze Perspektive von jemandem, der aus der anderen Richtung zu Clojure kam (Java -> Clojure)

  • Ich fand tatsächlich die lispyen Teile von Clojure leicht zu lernen, sobald ich meine rund um die Syntax und gemeinsame Redewendungen bekam. Ich gehe davon aus, dass Ihnen das noch einfacher wird.
  • Sie brauchen nicht wirklich viel Wissen über Java, um die meisten Dinge zu tun - Sie können so ziemlich alles in reinem Clojure tun, wenn Sie möchten.
  • Es ist wahrscheinlich nur dann, wenn Sie Java -Bibliotheken verwenden möchten, die Sie in Java Interop eintauchen müssen. Glücklicherweise ist der Interop sehr einfach - es ist mehr Lisp -Stil als Java -Stil. Das einzige, was Sie also herausfinden müssen, ist, wie Sie Java -Schnittstellen verstehen und den entsprechenden Aufruf von der Clojure -Seite tätigen.

Für meine Umgebung benutze ich Finsternis + Gegen den Uhrzeigersinn. Dies funktioniert außergewöhnlich gut, wenn Sie IDES mögen und/oder glauben, dass Sie letztendlich auch in Java arbeiten möchten. Es erfordert keine weiteren Abhängigkeiten, gibt Ihnen einen hervorragenden Debugger, hat eine vollständige Wiederholung (eine eingebettete Nrepl Ich glaube), ist das gesamte Projektdateimanagement (Git, SVN usw.) und behandelt automatisch Dinge wie das Java -Klassenpfad -Setup für Sie (was ein wichtiges Hindernis für Neulinge von Java sein kann!). Ich würde empfehlen, es zu überprüfen, wenn Sie der Meinung sind, dass dies Ihrem Stil entspricht. Ich habe auch gute Dinge gehört Grack auch.

Wenn Sie sich nicht mit IDEs befassen, sind Sie wahrscheinlich am besten mit Ihrem bevorzugten Texteditor und Befehlszeilen -Tools, wie Semperos in seiner hervorragenden Antwort vorschlägt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top