Welche Programmiersprache besser geeignet für Höhere Mathematik C oder C++?



  • Ich habe mich für C++ entschieden, es ist ja schließlich eine Erweiterung. :'D
    Nur allerdings nicht gerade für Kernelprogrammierung brauchbar(?), na ja, wie dem auch sei.



  • fantax23i394 schrieb:

    Nur allerdings nicht gerade für Kernelprogrammierung brauchbar(?)

    Das ist ein dummes Gerücht.
    Man kann bloß nicht völlig unvorbereitet ein pretty OS reinhax0rn, sondern muss die tools vorher erziehen.



  • berniebutt schrieb:

    Gregor schrieb:

    Ich waere ja fuer Fortran! 😉

    Weil in den Jahren 1980-1990 nahezu alle FORTRAN-Programmierer auf C umgestiegen sind? 🙂

    Fortran wird auch heute noch massiv engesetzt, wenn es um Numbercrunching geht. Und das Fortran der 80er hat mit heutigem Fortran nicht mehr so viel zu tun.
    (Man darf jetzt Variablennamen mit mehr als 6 Zeichen nutzen und Zeilen duerfen auch mehr als 72 Zeichen haben!!! 😉 ...inzwischen wird sogar OOP unterstuetzt.)



  • Man darf jetzt Variablennamen mit mehr als 6 Zeichen nutzen und Zeilen duerfen auch mehr als 72 Zeichen haben

    wow, mehr als 6 Zeichen, das ist aber echt ein tolles Feature. Ich steige sofort um auf Fortran.



  • fortran ftw schrieb:

    Man darf jetzt Variablennamen mit mehr als 6 Zeichen nutzen und Zeilen duerfen auch mehr als 72 Zeichen haben

    wow, mehr als 6 Zeichen, das ist aber echt ein tolles Feature. Ich steige sofort um auf Fortran.

    Naja, das ist Steinzeit der Programmierung lange vor 1980 wie das mit der nur impliziten Typvereinbarung auch
    (i ... n = integer, alles andere float).

    Ich wüsste aber doch gerne, was heute FORTRAN besser bieten kann als die C-Familie.
    Ich stelle die Empfehlung FORTRAN für Neuentwicklungen und Programmiereinsteiger sehr in Frage!



  • berniebutt schrieb:

    Ich wüsste aber doch gerne, was heute FORTRAN besser bieten kann als die C-Familie.
    Ich stelle die Empfehlung FORTRAN für Neuentwicklungen und Programmiereinsteiger sehr in Frage!

    Der Einstieg in Fortran gelingt wesentlich schneller als der in C++. Man kann fast schon direkt anfangen, sinnvollen Code zu schreiben. Ich meine, letztendlich ist die Frage, wer ueberhaupt in die Verlegenheit kommt, sich die Frage zu stellen, ob er als Programmiereinsteiger etwas in C++ oder in Fortran realisieren soll. Das sind eher keine Informatiker, sondern Leute aus dem Bereich der Naturwissenschaften oder vielleicht der Mathematik. Es geht darum, hoechstperformanten rechenintensiven Code zu schreiben, bei dem die Herausforderung nicht die Programmierung sein sollte, sondern die davor stattfindende anwendungsspezifische mathematische Modellbildung.

    Der Grund, warum der Einstieg schneller als in C++ gelingt ist, dass die Sprache weniger Freiheitsgrade bietet. Das ist sowohl fuer Leute gut, die die Sprache lernen, als auch fuer optimierende Compiler. Ich glaube, man muss schon echt gut in C++ sein, um von Compileroptimierungen genauso profitieren zu koennen wie weniger erfahrene Programmierer mit Fortran.



  • fanta12345 schrieb:

    Hi,

    macht es einen Unterschied, ob ich nur in C programmieren will?

    Nachteile/Vorteile?

    In den so gut wie allen Jobs ist es für C++ ausgeschrieben, aber kommt man in der Versicherungsmathematik auch mit C gleich weit, wie mit C++?

    C++ halte ich für besser hinsichtlich Mathe, da man in C++ eigene Operatoren definieren kann. Das geht in C nicht. 😞



  • fdsfsfsf schrieb:

    Ansonsten: nimm Python! Mit den vielen Erweiterungen kann man es fast schon als Matlab Ersatz verwenden, siehe z.B. https://www.scipy.org/

    Wenn schon Python genannt wird, sollte wohl auch Julia genannt werden.



  • Gregor schrieb:

    fdsfsfsf schrieb:

    Ansonsten: nimm Python! Mit den vielen Erweiterungen kann man es fast schon als Matlab Ersatz verwenden, siehe z.B. https://www.scipy.org/

    Wenn schon Python genannt wird, sollte wohl auch Julia genannt werden.

    Vom Namen und Logo sehr sympathie-heischend. Doch letztlich nur alter Wein in neuen Schläuchen. Es betrübt mich. 😞


  • Mod

    Es spricht einiges für C++:
    - leichte Integration von C
    - Bibs (neben den üblichen Verdächtigen wie STL, Boost usw.) wie die Intel MKL oder c-xsc oder Schnittstellen zu Grafikengines.
    - Spracherweiterungen wie Lambda Ausdrücke
    - hatte mal einen guten Artikel C++ vs Haskell gelesen. Der Autor meinte C++ hat Vorteile, weil bei Haskell zuviel Umdenken blöd (z.B. mit Hilfsfunktionen, Akkuvariablen und Co). Naja das Argument ist zwar oberflächlich, aber kommt schon ein wenig hin.
    - Code für Cuda ist standardmäßig an C angelehnt aber es gibt für viele Programmiersprachen Cuda Support, so auch für C++:
    https://devblogs.nvidia.com/parallelforall/power-cpp11-cuda-7/
    - Code von aktuellen Spielen o.ä. ausborgen.
    - C++ Ecke im C++ Forum wird noch immer am besten besucht.

    Was spricht für Fortran? Die Programmiersprache ist ähnlich supereinfach wie Basic und auf mathematische Berechnungen/Code optimiert.
    Basic vs Java? -> Bibs und Community.



  • Kann man bei C++ eigentlich irgendwie Array Boundary Checks per Compilerswitch aktivieren? Bei Fortran geht das naemlich. Man kriegt dann Fehlermeldungen, die einem explizit sagen, in welcher Sourcecodedatei in welcher Zeile welcher Arrayindex welches Arrays welchen falschen Wert hat und was der hoechstens zulaessige Wert ist.

    Ebenso gibt es Schalter, die zu direkten Fehlern fuehren, wenn nichtinitialisierte Variablen genutzt werden oder Pointer ins Nirvana zeigen. 😋



  • Gregor schrieb:

    Kann man bei C++ eigentlich irgendwie Array Boundary Checks per Compilerswitch aktivieren? Bei Fortran geht das naemlich. Man kriegt dann Fehlermeldungen, die einem explizit sagen, in welcher Sourcecodedatei in welcher Zeile welcher Arrayindex welches Arrays welchen falschen Wert hat und was der hoechstens zulaessige Wert ist.

    Ebenso gibt es Schalter, die zu direkten Fehlern fuehren, wenn nichtinitialisierte Variablen genutzt werden oder Pointer ins Nirvana zeigen. 😋

    Fanboy, man nimmt einfach Klassen, die das checken.



  • volkard schrieb:

    Gregor schrieb:

    Kann man bei C++ eigentlich irgendwie Array Boundary Checks per Compilerswitch aktivieren? Bei Fortran geht das naemlich. Man kriegt dann Fehlermeldungen, die einem explizit sagen, in welcher Sourcecodedatei in welcher Zeile welcher Arrayindex welches Arrays welchen falschen Wert hat und was der hoechstens zulaessige Wert ist.

    Ebenso gibt es Schalter, die zu direkten Fehlern fuehren, wenn nichtinitialisierte Variablen genutzt werden oder Pointer ins Nirvana zeigen. 😋

    Fanboy, man nimmt einfach Klassen, die das checken.

    Checks, die man bewusst in den eigenen Programmcode einbaut sind irgendwie etwas völlig anderes als Compilerswitches. Wenn man so etwas in den Programmcode einbauen muss ist man nämlich auf den guten Willen, die Disziplin und das Know-How jedes einzelnen Programmierers angewiesen, der zu dem Code beiträgt.



  • Gregor schrieb:

    Wenn man so etwas in den Programmcode einbauen muss ist man nämlich auf den guten Willen, die Disziplin und das Know-How jedes einzelnen Programmierers angewiesen, der zu dem Code beiträgt.

    C und C++ vertrauen auf die Kompetenz des Programmierers. Bei anderen Sprachen mag das nicht so sein. 🙂



  • Andromeda schrieb:

    C und C++ vertrauen auf die Kompetenz des Programmierers. Bei anderen Sprachen mag das nicht so sein. 🙂

    Schreib doch mal nen Fantasy-Roman "Der unfehlbare Programmierer". 😉



  • Gregor schrieb:

    Andromeda schrieb:

    C und C++ vertrauen auf die Kompetenz des Programmierers. Bei anderen Sprachen mag das nicht so sein. 🙂

    Schreib doch mal nen Fantasy-Roman "Der unfehlbare Programmierer". 😉

    Den gibt es nicht. Aber es gibt den Programmierer, der erst zur Höchstform aufläuft, wenn er keine Grenzen mehr sieht.

    Btw, meine Lieblingssprachen sind C und Java.



  • Andromeda schrieb:

    Den gibt es nicht. Aber es gibt den Programmierer, der erst zur Höchstform aufläuft, wenn er keine Grenzen mehr sieht.

    Naja, wie schon gesagt, die Zielgruppe für Fortran sehe ich nicht bei Informatikern, sondern bei Leuten, die ein mathematisches Modell in performanten Code umsetzen müssen und jenseits davon keine besondere Leidenschaft bezüglich des Programmierens haben. Fortran ist ein Werkzeug, mit dem man bestimmte Dinge sehr gut erreichen kann. Ich behaupte nicht, dass es eine Sprache ist, die einem ans Herz wächst. 🙂 Ich glaube, die Leute, die Fortran nutzen, sehen sich in erster Linie nicht als Programmierer, auch wenn das Teil ihrer Tätigkeit ist.



  • Gregor schrieb:

    Andromeda schrieb:

    C und C++ vertrauen auf die Kompetenz des Programmierers. Bei anderen Sprachen mag das nicht so sein. 🙂

    Schreib doch mal nen Fantasy-Roman "Der unfehlbare Programmierer". 😉

    Aber es ist auch kein guter Ratgeber, Inkompetenz zum neuen Gott zu erheben.
    Was das bringt, haben wir doch bei Java gesehen.



  • volkard schrieb:

    Was das bringt, haben wir doch bei Java gesehen.

    Was genau haben wir denn da gesehen? 😕



  • volkard schrieb:

    Gregor schrieb:

    Andromeda schrieb:

    C und C++ vertrauen auf die Kompetenz des Programmierers. Bei anderen Sprachen mag das nicht so sein. 🙂

    Schreib doch mal nen Fantasy-Roman "Der unfehlbare Programmierer". 😉

    Aber es ist auch kein guter Ratgeber, Inkompetenz zum neuen Gott zu erheben.
    Was das bringt, haben wir doch bei Java gesehen.

    Java ist Spitze und eine der am meisten genutzten Sprachen. Wie auch C (siehe Tiobe Index)

    C++ ist eher langweilig. Phythhon auch. 😋


Anmelden zum Antworten