Ich bin hauptsächlich ein .NET-Entwickler, daher verwende ich normalerweise Windows / VisualStudio (das heißt: Ich bin verwöhnt), aber ich genieße Haskell und andere (meist funktionale) Sprachen in meiner Freizeit.
Jetzt ist für Haskell die Windows-Unterstützung in Ordnung (Sie können die Haskell-Plattform erhalten), aber später habe ich versucht, eine grundlegende Clojure / Scheme-Umgebung einzurichten, und es ist nur ein Problem für Windows.
Ich denke also darüber nach, ein anderes Betriebssystem auszuprobieren, um bessere Tools und Sprachunterstützung zu erhalten. Das lässt mich natürlich mit MacOS oder einer Linux-Distribution zurück.
Ich habe noch nie MacOS verwendet und natürlich wäre Linux billiger (kostenlos) und ich glaube nicht, dass ich MacOS auf Ihrer normalen PC-Hardware parallel booten kann (oder?). PLUS: Ich habe keine Ahnung, welche Tools Sie auf diesen (für mich) ausländischen Betriebssystemen verwenden können.
Um es kurz zu machen: Ich möchte mehr über Haskell, Clojure, Scala, Scheme erfahren und brauche natürlich zumindest gute Werkzeuge für JavaScript / HTML5 / Css. Die Unterstützung für .NET / Mono / F # wäre großartig, aber dafür werde ich immer noch meinen Win7-Boot haben.
Daher möchte ich wissen: - Was ist Ihr bevorzugtes Betriebssystem, Distribution (ist Ubuntu funktionsfähig?) - Welchen Editor / welche IDE verwenden Sie?
Danke für Ihre Hilfe!
PS: Ich bin mir nicht sicher, ob dies der richtige Ort für diese Frage ist, aber ich hoffe es sehr - wenn nicht, lassen Sie mich bitte wissen, wohin ich das verschieben soll (StackOverflow scheint meiner Meinung nach nicht der richtige Ort zu sein).
Antworten:
Der Weg, den ich derzeit gehe, um mit solchen Sprachen und anderen Dingen zu experimentieren, mit großem Erfolg und einfacher Bedienung:
Auf diese Weise erhalten Sie die Vorteile beider Betriebssysteme.
quelle
Kurze Antwort: Es gibt eine einfache Lösung für Ihr Problem. Installieren Sie einfach die virtuelle Maschine unter Linux (Ubuntu) - sie ist kostenlos.
Ich bin auch ein hauptsächlich .NET-Entwickler, der es liebt, verschiedene Dinge zu experimentieren oder verschiedene Frameworks und / oder Entwicklungstools auszuprobieren. Die Hauptsache hier ist, Ihre Hauptentwicklungsumgebung nicht durcheinander zu bringen. Daher ist die Installation aller Komponenten in einer virtuellen Maschine (das native Betriebssystem, die Frameworks, die Konfiguration und Einrichtung usw.) für die Art der Entwicklung, die Sie durchführen möchten, der logischste und optimalste Weg.
Bearbeiten: Sie können eine andere Virtualisierungslösung in Betracht ziehen, um Ihre virtuelle Maschine zu erstellen. Meine persönliche Präferenz gilt VirtualBox . Es handelt sich um eine kostenlose x86-Virtualisierungslösung, mit der eine Vielzahl von x86-Betriebssystemen wie Windows, DOS, BSD oder Linux auf einem Linux-System ausgeführt werden können.
quelle
Ich benutze Haskell und Scala (und mache auch einige Scheme, Common Lisp, SML, OCaml, Erlang) alle unter Linux (Ubuntu).
Alle oben genannten Sprachen (Compiler und Interpreter) können recht einfach installiert werden (es gibt Pakete, die mit apt-get oder einem anderen Paketverwaltungssystem installiert werden können).
Scala hat eine gute Integration mit Eclipse und die Scala-Plugins werden aktiv entwickelt. Wenn Sie mehr erfahren möchten, gibt es derzeit einen Kurs über Scala bei Coursera, in dem die Verwendung von Scala unter Windows, Linux und Mac erläutert wird. Vielleicht haben Sie nicht alle Funktionen und die Integration von Visual Studio, aber ich habe ziemlich große Projekte in Eclipse entwickelt und es funktioniert einwandfrei.
Für die Bearbeitung von Haskell (und den anderen oben aufgeführten Sprachen) verwende ich gvim, was für kleine Projekte in Ordnung ist. Sie können einen anderen Editor (z. B. EMACS) verwenden, sofern er über eine Syntaxhervorhebung für Haskell verfügt. Ansonsten können Sie sich haskellwiki ansehen (danke an Zach L für den Vorschlag).
Für die Verwaltung des Quellcodes (Versionierung) verwende ich SVN über Eclipse für alle diese Sprachen.
quelle
Für MacOS ist Mac-Hardware erforderlich, oder Sie können sie auf VirtualBox ausführen, aber beim letzten Mal habe ich versucht, dass sie nicht funktioniert. Und da Sie Ihre aktuellen Konfigurations- / Setup-Probleme nicht durch andere Probleme ersetzen möchten, empfehle ich Ihnen, entweder viel Geld auszugeben oder Linux auszuprobieren. Ich habe Ubuntu für die Entwicklung von Haskell, Scala und Lisp mit Eclipse, Netbeans, IntelliJ und Emacs verwendet, und ich hatte keine großen Probleme, diese einzurichten.
quelle
Alle Unix-ähnlichen Betriebssysteme haben sehr gute Befehlszeilen-Tools . Ich persönlich habe gute Erfahrungen mit Ubuntu sowohl für die Entwicklung als auch für die Bereitstellung gemacht. Viele meiner Freunde schwören auch auf MacOS. Ich habe keinen offensichtlichen Grund gesehen, den einen oder anderen zu bevorzugen, sie sind alle IMO besser als Windows für die Befehlszeilenarbeit.
Insbesondere auf der Clojure / Scala-Seite ist Windows möglicherweise ziemlich gut, wenn Sie eine der Java-IDEs mit dem entsprechenden Clojure / Java-Plugin verwenden. Ich persönlich verwende Eclipse mit Gegen den Uhrzeigersinn als meine Hauptentwicklungsumgebung für Clojure in Windows 7. Es gibt auch eine Scala-IDE zum Auschecken. Dies ist ein guter Ansatz, wenn Sie IDEs mit vollem Funktionsumfang mögen und / oder Polyglot-Programmierung in derselben Umgebung durchführen möchten. Ein zusätzliches Plus bei der Verwendung von Eclipse ist, dass die Integration von git / svn / maven sehr gut ist.
quelle
Obwohl ich ein großer Mac- und Linux-Fan bin, gibt es keinen Grund, warum Sie keine dieser Sprachen unter Windows ausführen können. Auch wenn Sie eine funktionale Sprache unter Windows wünschen, übersehen Sie nicht F #, eine .net-Sprache
quelle
Ich habe Haskell unter Windows, OS X und (Ubuntu) Linux verwendet, daher kann ich einige Anmerkungen dazu machen. Jetzt wird alles, was Sie von der Haskell-Plattform erhalten können, wahrscheinlich einwandfrei funktionieren, egal was passiert, aber danach:
Relativ wenige Haskell-Programmierer verwenden Windows. Auf Hackage finden Sie Dinge, die eine Unix-ähnliche Umgebung voraussetzen, ohne dies wirklich explizit anzugeben.
Viele nützliche Dinge stammen aus FFI-Bindungen an C-Bibliotheken, und das Fehlen einer sogar vage konsistenten und zuverlässigen C-Kompilierungs-Toolchain unter Windows bedeutet, dass die Installation von FFI-Bindungen aus Hackage meiner Erfahrung nach bestenfalls ein Crapshoot ist.
Alles, was notwendigerweise plattformspezifisch ist, was amüsanterweise plattformübergreifende GUI-Bibliotheken umfasst, funktioniert unter Linux eher "nur".
Cygwin hilft nicht so viel, wie Sie denken.
Zusammenfassend: Alles funktioniert unter Linux, die meisten Dinge funktionieren unter OS X, aber einige Dinge sind seltsam, und unter Windows sollten Sie bei der Verwendung von Bibliotheken mit vielen interessanten Kopfschmerzen rechnen.
Wenn Sie nur Spaß daran haben möchten, mit Dingen zu experimentieren und Haskell zu lernen, tun Sie sich selbst einen Gefallen und verwenden Sie eine Ubuntu-VM oder ähnliches.
Soweit Redakteure und solche Go-Emacs und Vim wie immer beliebt sind. Ich habe auch nie gelernt, es zu benutzen (obwohl ich es wirklich sollte ...) und kümmere mich nicht um die meisten IDEs, deshalb bleibe ich im Allgemeinen bei SciTE - es ist ein dünner Wrapper um ein Editor-Widget namens Scintilla, von dem Sie vielleicht wissen, was es ist Notepad ++ verwendet.
quelle
Anstatt ein Betriebssystem auszuwählen, möchte ich dies aus dem IDE-Blickwinkel betrachten. Wenn Sie sich für Scheme interessieren, würde ich Sie ermutigen, DrRacket auszuprobieren, das vor einigen Jahren aus dem Scheme-Dschungel hervorgegangen ist. Die IDE läuft gut unter Windows, OS X und Linux.
Jetzt müssen Sie nur noch das richtige Betriebssystem auswählen, um alle anderen Funktionssprachen auszuführen .
quelle
Simon Peyton-Jones, einer der Entwickler von Haskell, ist ein Windows-Benutzer. Soweit ich weiß, bietet Haskell eine hervorragende Windows-Unterstützung.
Ihre Frage ist ein wenig vage, um ehrlich zu sein. Ihre Wahl des Betriebssystems ist nicht an das Paradigma der von Ihnen verwendeten Sprache gebunden.
Persönlich glaube ich, dass außerhalb der C # - und Java-Welt (wo die Entwicklungsumgebung von Ihrer IDE vorgegeben wird) eine Entwicklungsumgebung immer eine Variante von Unix sein sollte, egal ob BSD, Linux oder OSX.
quelle