Programmiersprache mit schönem Design

Kirschbaum

New Member
Hallo,

ich studiere seit zwei Semestern Mathematik und möchte mich in meinen/r Semesterferien/vorlesungsfreien Zeit unter anderem mit einer Programmiersprache auseinandersetzen. Dabei würde ich mich gerne früher oder später mit ihrem Design bzw. generell mit den Dingen unter ihrer Haube auseinandersetzen. Demnach sollte es eine Sprache sein, die in dieser Hinsicht schön ist und einiges zu bieten hat, wenn möglich auch aus Sicht der Mathematik. Da ich an der Uni C und ein wenig C++ lernen muss, neige ich dazu eher eine sogenannte High Level-Sprache lernen zu wollen. Mit der Sprache möchte ich vor allem mathematischen Aufgaben lösen.

Ich hoffe, ich werde mich bald auf die ein oder andere tolle Empfehlung freuen können.

Herzliche Grüße
Kirschbaum
 
Werf mal einen Blick auf Julia, könnte für einen Mathematiker interessant sein. Im übrigen liegt Schönheit im Auge des Betrachters...:)
 
Nimm Haskell. Es ist eine funktionale Sprache mit Konzepten, die aus der Kategorientheorie entstammen. Also ziemlich viel mathematische Grundlagen sind unter der Haube.

Haskell ist nicht perfekt (sogar ich sehe einige Defizite, und ich bin da nicht so erfahren wie mit C), aber es entwickelt sich (und zwar an den richtigen Stellen!) und ist als eine universelle Sprache zu verstehen, also eine womit man gut allgemeine Probleme lösen kann und nicht zugeschnitten auf eine bestimmte Art von Anwendungen.
 
Für mathematische Probleme, würde ich zu folgenden Sprachen tendieren:

* Matlab/octave für wissenschaftliches Rechnen/Numerik
* R für Statistik und ähnliches
* Maple/Mathematica für algebraisches Lösen vobn Problemen (für den Raspberry Pi gibt es Mathematika für umsonst)
* Fortran für HPC mit Legacy-Code
 
Ich glaube wir gehen hier mit 2 verschiedenen Argumenten los. Ich habe eine Sprache geliefert, die mathematische Grundlagen hat und formal nach mathematischen Konzepten konstruiert ist. Die anderen liefern Vorschläge für Sprachen, die einige mathematisch-technische Probleme auf interessante Weise angehen.

Was soll's nun sein?
 
Ich glaube wir gehen hier mit 2 verschiedenen Argumenten los. Ich habe eine Sprache geliefert, die mathematische Grundlagen hat und formal nach mathematischen Konzepten konstruiert ist. Die anderen liefern Vorschläge für Sprachen, die einige mathematisch-technische Probleme auf interessante Weise angehen.

Was soll's nun sein?

Nicht ärgern, nimm's leicht.

Dabei würde ich mich gerne früher oder später mit ihrem Design bzw. generell mit den Dingen unter ihrer Haube auseinandersetzen. Demnach sollte es eine Sprache sein, die in dieser Hinsicht schön ist und einiges zu bieten hat, wenn möglich auch aus Sicht der Mathematik. Da ich an der Uni C und ein wenig C++ lernen muss, neige ich dazu eher eine sogenannte High Level-Sprache lernen zu wollen.

Haskell erfüllt das doch prima. Wobei auch „Literate Haskell" nicht uninteressant ist.
 
Überlaßt das doch einfach dem OP, Vorschläge hat er ja genug und auch reichlich zu tun diese zu prüfen. :)

Ich kann mich erinnern, auf nakals Beitrag geantwortet zu haben und, der OP bat um Empfehlungen. Wenn der OP oder, einer der Moderatoren damit ein „Problem“ haben sollte, werde ich es schon erfahren. Ansonsten sehe ich keinen Grund mich zu rechtfertigen oder, für Deine versuchten (unwirksamen) Provokationen.
 
Ich bin immer kühl! :) Im übrigen war das keine Provokation sondern Ironie. Ich muss noch lernen das nicht jeder Ironie versteht... EOT
 
1) Ich bin nicht sauer.
2) Ich wollte nur wissen in welche Ecke die Empfehlungen laufen sollen. Es ist schon ein Unterschied, wenn das Sprachparadigma auf Mathematik beruhen soll, oder ob man damit einfach nur einige mathematische Konzepte bequem erledigen will. Dann fehlt aber auch eine genauere Spezifikation der Probleme. Mathematik ist ja eigentlich sehr beweislastig, dann gibt es abseits der Mathematik das Rechnen, dann gibt es Logik und viele andere Konzepte. Das kann je nach Problem eine andere Sprache als Empfehlung nach sich ziehen.
 
Mathematik ist ja eigentlich sehr beweislastig, dann gibt es abseits der Mathematik das Rechnen
Zur numerischen Mathematik gehört auch eine Simulation, die zeigt, dass
  • die bewiesene Konvergenzordnung auch erreicht wird
  • die bewiesene Konvergenzordnung auch optimal ist, d.h. dass man keine bessere Konvergenz beobachtet.
Und dann gibt es noch die Kandidaten, die vorab per Simulation überprüfen, ob man etwas überhaupt versuchen sollte zu beweisen.
 
Es tut mir Leid, dass ich erst jetzt antworte. In den letzten Tagen hatte ich viel zu tun. Um ehrlich zu sein, habe ich nicht mit so vielen Beiträgen gerechnet. Vielen Dank!

Ich würde es als schön empfinden, wenn das Sprachparadigma möglichst nah an der Mathematik ist, allerdings steht das Lösen von mathematischen Aufgaben eindeutig im Vordergrund. Die Probleme entstammen meistens aus der Numerik, Zahlentheorie oder Stochastik. Mir ist bewusst, dass ich das eigentlich mit jeder Sprache machen kann. Jedoch ist es bei mir so, dass man mit C/C++ zwar vielleicht "alles" machen kann, ich es aber meistens nicht möchte, weil ich das Gefühl habe, dass es in dieser Sprache meistens zu umständlich ist. Deshalb suche ich nach einer Sprache, die möglichst stark auf mein Aufgabengebiet ausgerichtet ist mit der ich aber trotzdem "allgemeine Aufgaben" (Schreiben eines GUI, Kommunikation mit einer Datenbank, usw.) bewältigen kann. Es scheint mir so als wäre Julia dabei der passendste Kandidat für mich, würde mich aber trotzdem über weitere Empfehlungen und Meinungen dazu freuen.
 
Ich würde erst einmal schauen ob du Julia überhaupt installiert bekommst (http://julialang.org/downloads/). Unter einem der BSDs wirst du es vermutlich aus den sources kompilieren müssen. Falls das geht wäre ein Erfahrungsbericht von Interesse.

Mit Haskel etc wirst du solche Probleme nicht haben. Eine weitere Möglichkeit ist übrigen eine Scriptsprache als Frontend zu verwenden und eine beliebige mathematische Biblothek einzubinden. Vielleicht das allerflexibelste. Lua oder auch Python sind dazu gut geeignet, oder auch ein Scheme wie Chicken wenn es schneller und Lisp sein soll. An C- und Fortranbiblotheken gibt es wohl alles was du dir nur wünschen kann.

Datenbanken sind i.d.Regel kein Problem, GUI schon eher.
 
Ich finde Scala ganz nett. Es ist als funktionale Sprache vor allem auf den Produktiveinsatz ausgerichtet. Damit werden auch so große Projekte wie Twitter und LinkedIn realisiert. Keine Ahnung ob sie Mathematiler glücklich macht. Aber wenn die Sprache ruhig pragmatisch sein darf und noch nur der reinen akademischen Lehre dienen soll, ist sie einen Blick wert.
 
Dann stimme ich rubricanis zu mit seinen Vorschlägen. Er sagt auch richtig, dass bei C eher alles Bibliothek kommt, was man nutzen möchte. Die Sprache alleine zu betrachten, ist hier nicht angebracht. Allerdings muss auch C gut gelernt sein, sonst wird das eher eine Katastrophe. Bei den anderen Sprachen hat man eher sowas wie Kindersicherungen und läuft nicht ins offene Messer.
 
Ich habe interessehalber mal in den Julia sources gestöbert und bin dabei auf ein nettes, kleines Scheme-Lisp gestoßen dass sie wohl intern für alle möglichen Zwecke verwenden und das auf flisp beruht. Wenn ich mich an die Lisp ((())) gewöhnen könnte würde ich das als Frontend zum einbinden von Biblotheken wohl dem von mir ansonsten bevorzugten Lua noch vorziehen da es noch kompakter ist. Kleine Sprachen haben ihre Vorzüge!

Mal sehen, vielleicht nehme ich das zum Anlaß zu einem weitern Versuch mit den ((())) klarzukommen. :)
 
Scheme hat gegenüber Common Lisp eigentlich keinen mir bekannten Vorteil. Die (()) sehen nur ungewohnt aus, machen das Leben aber deutlich leichter.
 
Scheme verhält sich zu CommonLisp etwa wie C zu C++. Das eine ist eine kleine, das andere eine große und umfangreiche Sprache. Kommt halt drauf an was man will oder braucht. Aber diese Diskussion brauchen wir hier nicht fortzusetzen und die wird auch niemals eine Ende nehmen, - die gibt es seit es Lisp gibt. :)
 
Ohje, blöder Fehler:
Aber wenn die Sprache ruhig pragmatisch sein darf und NICHT nur der reinen akademischen Lehre dienen soll, ist sie einen Blick wert.

In diesem Zusammenhang könnte das Buch Sieben Wochen, Sieben Sprachen interessant sein. Da bekommt man eine kleine Einführung in sieben durchaus unterschiedlichen Sprachen. Ich hatte seit dem Kauf leider nie die Zeit es mal wirklich durchzuarbeiten, sondern hab es nur mal kurz Quergelesen. Vielleicht ist es ja Hilfreich zur Findung der eigenen nächsten Sprache?
 
Zurück
Oben