16 Stimmen

Suche nach einer funktionalen Sprache

Ich bin Wissenschaftler und arbeite hauptsächlich mit C++, aber ich würde gerne eine bessere Sprache finden. Ich bin auf der Suche nach Vorschlägen, ich bin mir nicht einmal sicher, ob meine "Traumsprache" (noch) existiert, aber hier ist meine Wunschliste;

WICHTIGE MERKMALE (in der Reihenfolge ihrer Bedeutung)

1.1: Leistung: Für die Wissenschaft ist die Leistung sehr wichtig. Ich weiß sehr wohl, wie wichtig die Produktivität und nicht nur die Ausführungsgeschwindigkeit ist, aber wenn Ihr Programm stundenlang laufen muss, können Sie es sich einfach nicht leisten, es in Python oder Ruby zu schreiben. Es muss nicht so schnell sein wie C++, aber es muss einigermaßen nahe dran sein (z. B. Fortran, Java, C#, OCaml...).

1.2: Hochrangig und elegant: Ich möchte mich so weit wie möglich auf die Wissenschaft konzentrieren können und einen klaren Code erhalten. Außerdem mag ich langatmige Sprachen wie Java nicht.

1.3: In erster Linie funktional: Ich mag funktionale Programmierung, und ich denke, sie passt sowohl zu meinem Stil als auch zur wissenschaftlichen Programmierung sehr gut. Es ist mir egal, ob die Sprache die imperative Programmierung unterstützt, das könnte ein Plus sein, aber sie muss sich auf die funktionale Programmierung konzentrieren und diese fördern.

1.4: Übertragbarkeit: Sollte gut auf Linux (vor allem Linux!), Mac und Windows funktionieren. Und nein, ich glaube nicht, dass F# unter Linux mit mono gut funktioniert, und ich bin nicht sicher, dass OCaml unter Windows gut funktioniert ;)

1.5: Objektorientiert, vorzugsweise nach der Philosophie "Alles ist ein Objekt": Mir wurde klar, wie sehr ich die objektorientierte Programmierung mochte, als ich mich vor nicht allzu langer Zeit mit reinem C beschäftigen musste. Ich mag Sprachen, die sich stark für die objektorientierte Programmierung einsetzen, nicht nur zaghafte Unterstützung.

NICHT WIRKLICH WICHTIG, ABER DINGE, DIE SCHÖN WÄREN

2.1: "Nicht zu starke" Typisierung: Ich finde das starke Typisierungssystem von Haskell lästig, ich möchte gerne implizites Casting durchführen können.

2.2: Werkzeuge: Gute Werkzeuge sind immer von Vorteil, aber ich denke, es hängt wirklich von den Sprachen ab. Ich habe mit Haskell gespielt und Geany, einen leichtgewichtigen Editor, benutzt, und ich habe mich nie behindert gefühlt. Andererseits hätte ich mit Java oder sogar Scala nicht dasselbe getan (vor allem bei Scala scheint es an guten Tools zu mangeln, was wirklich schade ist). Java ist hier wirklich die Sprache Nummer 1. Mit NetBeans und Javadoc ist das Programmieren mit Java einfach und macht Spaß.

2.3: Garbage collected, aber übersetzt oder kompiliert ohne virtuelle Maschine. Ich habe nichts gegen virtuelle Maschinen, aber die beiden Giganten auf diesem Gebiet haben ihre Probleme. Auf dem Papier scheint das .net-Framework viel besser und vor allem für funktionale Programmierung geeignet zu sein, aber in der Praxis ist es immer noch sehr Windows-zentriert und die Unterstützung für Linux/MacOS ist schrecklich nicht so gut, wie es sein sollte, also ist es nicht wirklich eine Überlegung wert. Java ist jetzt eine ausgereifte VM, aber sie ärgert mich auf einigen Ebenen: Mir gefällt nicht, wie sie mit ausführbaren Dateien und Generika umgeht, und sie schreibt schreckliche GUIs (obwohl diese Dinge gar nicht so schlimm sind).

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