IDEs für funktionale Sprachen
-
Hi.
Gibt es eigentlich ambitionierte Entwicklungsumgebungen für bestimmte funktionale Sprachen (zum Beispiel Haskell)? Wenn ja, was können die? Inwiefern wird der Programmierer von ihnen unterstützt.
Welche Werkzeuge nutzt man ansonsten eigentlich bei der Entwicklung mit funktionalen Sprachen?
-
http://stackoverflow.com/questions/68504/what-are-my-ide-editor-choices-for-haskell http://www.haskell.org/haskellwiki/Editors Ansonsten bringt Haskel schon vieles mit, z.B. Profiler oder Threadscope.
-
Die meisten Sprachen dürften sehr ambitionierte Emacs-Modi haben. zB für Common Lisp gibt es Slime, für Erlang gibt es Distel, für Ocaml gibt es Tuareg oder wie das heißt und Haskell scheint auch einige erweitere Emacs-Modi anzubieten.
-
Haskell Plug-in für
- Eclipse (http://eclipsefp.github.com/)
- IntelliJ IDEA (im Plugin Repository)
-
Zeus schrieb:
Haskell Plug-in für
- Eclipse (http://eclipsefp.github.com/)
- IntelliJ IDEA (im Plugin Repository)Die repository-Adressen für Eclipse passen nicht mehr, oder im Moment nicht. Es gibt zwar auch ein offizielles Skala-Plugin (Basierend auf Eclipse) aber das installiert sich bei mir aufgrund Abhängigkeits-Fehlermeldungen nicht (vermutlich ist meine Eclipseversion zu alt und ich sollte vielleicht mal updaten).
@Gregor zu deiner Frage:
Eher Nein und wenig Unterstützung außer bei Scala ( Guckst du hier: http://scala-ide.org/ )
(Haskell bräuchte viel Unterstützung, weniger beim Tippen, mehr beim Lernen, Coden, Überblicken, inspirieren lassen, Windowswizards usw. Die eigenständige klein-Ide Leksah ist noch zu baustellenhaft, zu amateuerhaft, aber hier sollte sich jeder selbst ein Urteil machen. (Tip: im ghci reverse "Leksah" machen)
(Mit python Gedöns hatte ich kein bißchen Ärger in Eclipse, ist alles kinderleicht, ohne düstere Exotenabhängigkeiten: runterladen, loslegen)Aktuell:
http://www.haskell.org/haskellwiki/Haskell_IDE
http://www.yesodweb.com/blog/2012/09/building-haskell-ideViele benutzen eigentlich die klassischen Unixtools und sind damit zufrieden. Wie auch Paul Hudak schreibt, arbeitet er mit dem emacs + haskell-mode.
Ambitioniert würde ich das ganze was wir bisher für Haskell gesehen haben, nicht nennen. Es wäre sehr schön, eine professionelle Ide für Haskell oder Skala zu haben, noch dazu eine gute, Lernunterstützende. Eine Lern-Ide wie Greenfood (oder der Logoansatz) würde Haskell auch gut zu Gesicht stehen, denn letztlich hatte man sich ja im Komitee zum Ziel gemacht, Haskell für Industrie und Lernen zu entwickeln. Aber wer mit Dos und Windows im Kinderzimmer groß geworden ist, Pech gehabt? Es gibt hervorragende Profientwickler für Windows, die wissen nicht mal, dass es Linux Latex und Konsorten überhaupt gibt.
Es ist aber auf jeden Fall schon mal ein Riesenfortschritt (Wirklich!) dass man nicht Cygwin vorinstalliern muß, um GHC/GHCI unter Windows zum Laufen zu bekommen.
Und man muß auch sagen, das die Windowsintegration zwar nicht so gut ist wie die vom OpenWatcomSDK, aber fast und im Grunde viel besser als der Durchschnitt.Das Scala-Plugin für Eclipse wird ja u.a. vom Scala Schöpfer Odersky mitentwickelt, und das würde ich schon ambitioniert nennen.
Vor ein paar Jahren gab es mal einen Ansatz mit Unterstützung von Haskellkomittemitglied Simon Marlow
http://community.haskell.org/~simonmar/papers/vshaskell.pdf
Ist aber wohl in der Versenkung verschwunden.Stattdessen kann man vielleicht für Visual Studio F# benutzen.
http://msdn.microsoft.com/de-de/library/vstudio/ee803793.aspxFür Clojure ganz guter Überblick:
http://www.bestinclass.dk/index.clj/2010/03/clojure-ides-the-grand-tour-getting-started.html
( http://writequit.org/blog/?p=386 ; Entwickelt mit Vim...sagt schon wieder (mal) alles...;) )Und: letzlich nicht zu vergessen: REPLs - Also Interpreter/-fenster - sind eine gute Hilfe.
-
Gregor schrieb:
Hi.
Gibt es eigentlich ambitionierte Entwicklungsumgebungen für bestimmte funktionale Sprachen (zum Beispiel Haskell)? Wenn ja, was können die?
z.B. den Ausdruck auswerten, wo gerade der Cursor steht. Man plaziert den Cursor hinter (mario-jump 10), drueckt C-x C-e und Mario springt 10 Pixel.
D.h. der Editor startet das Programm und waehrend es laeuft wird der Code getippt und nachgeladen.
Fuer common-lisp geht das z.B. mit emacs slime.