Der Beweis, dass C++ für Physik die beste Sprache ist



  • Mr. N siehs ein, das Ding ist bei weitem nicht unschlagbar was Physik angeht.



  • Gebt doch einfach mal CERN und C++ in eine Suchmaschine ein, und seht wie ernsthaft am CERN das C++ eingesetzt wird.
    Also, nach der verbreiteten Anti-C++-Fraktion (die hier immer in C++-Threads auftaucht), soll ja C++ völlig fehl am Platz sein. Was aber die Suchergebnisse und auch die CERN-Seiten widerlegen.

    Nur mal ein Beispiel was ich nach wenigen Sekunden gefunden habe:

    http://seal-reflex.web.cern.ch/seal-reflex/ schrieb:

    Reflex is a core ingredient in the software of the CERN experiments. Even though this web site doesn't reflect it: it is well maintained and tested, used daily on a large code base

    http://www.desy.de/user/projects/C++/HEProjects.html
    http://root.cern.ch/
    und viele andere über die Suchmaschine eurer Wahl. Auch die Begriffe Physik und C++ bringen einige Ergebnisse.

    Es natürlich klar, das nicht nur C++ in der Physik zum Einsatz kommt. Aber es ist mehr als nur trollig von einigen Anti-C++'lern zu behaupten, das C++ am ungeeignetsten ist!



  • -fricky- schrieb:

    ein marsraketenkonstrukteur wird aber in der regel kein c++ guru sein. und erstmal c++ zu lernen, um boost.units zu verwenden, steht in keinem verhältnis. du solltest deine anfängliche aussage 'c++ sei das beste für physikaufgeben' vielleicht noch mal überdenken.
    🙂

    Ein Raktenbauen wird hoffentlich nicht die Software zur Steuerung der Rakete schreiben und der Programmierer der die Steuerung schreibt wird hoffentlich nicht die Rakete fliegen und der Pilot wird hoffentlich nicht die Rakete designed haben.

    Wenn ich ein Projekt habe, dann lasse ich die Leute ihren Teil der arbeit machen den sie koennen. Und dazu ist natuerlich kommunikation noetig. Aber der Ingeneur wird hoffentlich keinen relevanten Code schreiben (maximal ein paar mock ups) sondern dem Programmiererteam sagen was zu tun ist - er kann dann die Simulationen ueberpruefen, aber als laie code schreiben...?

    und ob man jetzt ein paar kleine syntaaktischen sachen bedenken muss, wie zB dass power ueber pow geht und nicht ueber ^ (was uebrigens auch mathematisch nicht so ganz toll ist, genug leute werden von ^ auch verwirrt) und dass wurzel ueber sqrt() geht -> das sind details.

    worum es geht ist, eine formel ohne grossen aufwand im code wiedergeben zu koennen. und da ist c++ eigentlich recht gut.



  • Richtig! Für Gewöhnlich nennt man diese Trennung "Technik-Abteilung" und "Fach-Abteilung". Das fachliche Wissen hat der Physiker, und das technische Wissen der Informatiker/Programmierer. Jeder der Individual-Software entwickelt, weiß wie das abläuft: man geht zum Kunden/Fachabteilung und findet heraus, was man umsetzen muß. Und das geht über Kommunikation mit dem Anwender. Der kann mir sagen, wie etwas berechnet werden soll. Das ganze giesse ich nachher in Software.



  • Shade Of Mine schrieb:

    Wenn ich ein Projekt habe, dann lasse ich die Leute ihren Teil der arbeit machen den sie koennen. Und dazu ist natuerlich kommunikation noetig. Aber der Ingeneur wird hoffentlich keinen relevanten Code schreiben (maximal ein paar mock ups) sondern dem Programmiererteam sagen was zu tun ist - er kann dann die Simulationen ueberpruefen, aber als laie code schreiben...?

    stimmt schon, aber diejenigen, für die die rechnerei mit einheiten erforderlich ist, sind nun mal wissenschftler und ingenieure, die die rakete entwerfen. die software-bastler, denen die programmiererei irgendwelcher subsysteme der rakete anvertraut wird, brauchen sich nicht mit 'schub = ellenlange_formel_mit_vielen_variablen_und_einheiten' herumzuquälen, sondern haben überschaubare teilaufgaben, bei denen man meistens überhaupt nicht mit einheiten rechnen muss.
    🙂



  • -fricky- schrieb:

    Mr. N schrieb:

    Wie bitte? 2.3*newton ist gruselig? 9.81*meter/pow<2>(second)?
    Wenn du das findest, sorry, dann tust du mir leid.

    2.3*newton ist ok, aber bei pow<2>(second) würde ich mich zumindest fragen, was die spitzen und runden klammern da sollen. viele hier machen den fehler und gehen von ihrer lieblingssprache aus.

    Dann kannst du halt kein C++. Wenn ich ich in Python programmiere, muß ich auch deren Syntax kennen. Selbst wenn ich Mathematik mache, muß ich Mathe-Syntax kennen. Oder ist ein Wurzel-Symbol für jeden Menschen, der nie Mathe gelernt hat, intuitiv begreifbar? nein! Genauso mit den spitzen Klammern. Du gehst davon aus, das jemand ohne C++-Kenntnisse C++ programmiert? Aha, dann solltest du nochmal nachdenken, wie die Welt funktioniert. Ich muß etwas lernen, um etwas benutzen zu können. Autofahren muß auch gelernt sein, obwohl es am Ende jeder Idiot kann.

    Und was haben bitte in Sprachen wie Java, die runden Klammern zu bedeuten? Aha, die versteht natürlich auch jeder, der noch nie programmiert hat.

    manchmal denke ich, das du echt noch so 12 Jahre alt bist, und kein bisschen Lebenserfahrung hast... 🙄



  • Kenner der Physik schrieb:

    Es natürlich klar, das nicht nur C++ in der Physik zum Einsatz kommt. Aber es ist mehr als nur trollig von einigen Anti-C++'lern zu behaupten, das C++ am ungeeignetsten ist!

    Hat hier einer behauptet, dass C++ am ungeeignetsten ist oder verdrehst du nur Aussagen um Argumente zu haben? Ich hab nur gelesen, dass einer behauptet hat C++ wäre unschlagbar, wegen dieser Libraray und dann haben einige gesagt, dass es besseres gibt.



  • Shade Of Mine schrieb:

    -fricky- schrieb:

    ein marsraketenkonstrukteur wird aber in der regel kein c++ guru sein. und erstmal c++ zu lernen, um boost.units zu verwenden, steht in keinem verhältnis. du solltest deine anfängliche aussage 'c++ sei das beste für physikaufgeben' vielleicht noch mal überdenken.
    🙂

    Ein Raktenbauen wird hoffentlich nicht die Software zur Steuerung der Rakete schreiben und der Programmierer der die Steuerung schreibt wird hoffentlich nicht die Rakete fliegen und der Pilot wird hoffentlich nicht die Rakete designed haben.

    Wenn ich ein Projekt habe, dann lasse ich die Leute ihren Teil der arbeit machen den sie koennen. Und dazu ist natuerlich kommunikation noetig. Aber der Ingeneur wird hoffentlich keinen relevanten Code schreiben (maximal ein paar mock ups) sondern dem Programmiererteam sagen was zu tun ist - er kann dann die Simulationen ueberpruefen, aber als laie code schreiben...?

    und ob man jetzt ein paar kleine syntaaktischen sachen bedenken muss, wie zB dass power ueber pow geht und nicht ueber ^ (was uebrigens auch mathematisch nicht so ganz toll ist, genug leute werden von ^ auch verwirrt) und dass wurzel ueber sqrt() geht -> das sind details.

    worum es geht ist, eine formel ohne grossen aufwand im code wiedergeben zu koennen. und da ist c++ eigentlich recht gut.

    Gehts jetzt um physikalische Forschung oder um das Programmieren einer Echtzeitsteuerung, also das wo die physikalische Arbeit schon lange vorbei ist und nur noch Steuerungscode geschrieben wird?



  • total verwirrt schrieb:

    Gehts jetzt um physikalische Forschung oder um das Programmieren einer Echtzeitsteuerung, also das wo die physikalische Arbeit schon lange vorbei ist und nur noch Steuerungscode geschrieben wird?

    Was erwartest du in einem Trollthread, denn ich eröffnet habe in der Erwartung, dass er vor der ersten Antwort geschlossen wird? 😃



  • total verwirrt schrieb:

    Gehts jetzt um physikalische Forschung oder um das Programmieren einer Echtzeitsteuerung, also das wo die physikalische Arbeit schon lange vorbei ist und nur noch Steuerungscode geschrieben wird?

    Ich glaube, diese unschöne Vermischung der Anwendungsgebiete liegt an mir. Ich habe dummerweise am Anfang diese Marssonde erwähnt, ohne mir bewusst zu machen, dass die relativ wenig mit Programmierung innerhalb der Physik zu tun hat. Dein Punkt ist gut: Die Programmierung von Simulationen usw. innerhalb der Physik hat ganz andere Anforderungen als die Entwicklung von Eingebetteten Systemen im Zusammenhang von Raketen oder Marssonden. Mit diesen beiden unterschiedlichen Gebieten beschäftigen sich auch völlig unterschiedliche Leute.

    Bei den Eingebetteten Systemen sind Einheiten vor allem wegen der Schnittstelle zur Realität relevant. Man hat Sensoren und Aktoren und man sollte schon wissen, was die einem nun genau melden und was man ihnen sagt. Innerhalb des Gesamtsystems werden Einheiten in diesem Fall aber vermutlich weniger Relevanz haben. Andererseits beschäftigen sich mit der Entwicklung derartiger Systeme eher Leute, die weitreichende Programmiererfahrung haben.

    Bei Simulationen ist das anders. Hier sitzen meistens Leute, die aus dem Anwendungsgebiet kommen und somit keine weitreichende Programmiererfahrung haben. Dafür spielen Einheiten in diesem Zusammenhang im gesamten System eine relevante Rolle.



  • Kenner der Physik schrieb:

    -fricky- schrieb:

    Mr. N schrieb:

    Wie bitte? 2.3*newton ist gruselig? 9.81*meter/pow<2>(second)?
    Wenn du das findest, sorry, dann tust du mir leid.

    2.3*newton ist ok, aber bei pow<2>(second) würde ich mich zumindest fragen, was die spitzen und runden klammern da sollen. viele hier machen den fehler und gehen von ihrer lieblingssprache aus.

    Dann kannst du halt kein C++. Wenn ich ich in Python programmiere, muß ich auch deren Syntax kennen.

    richtig. aber ich habe auch im ganzen leben nicht eine zeile python geschrieben.
    woran kanns nur liegen, dass ich von den beispielen (die für boost.units oder die für python.unum) den python-code sofort verstanden habe und den c++ code nicht?

    Kenner der Physik schrieb:

    Selbst wenn ich Mathematik mache, muß ich Mathe-Syntax kennen. Oder ist ein Wurzel-Symbol für jeden Menschen, der nie Mathe gelernt hat, intuitiv begreifbar? nein! Genauso mit den spitzen Klammern. Du gehst davon aus, das jemand ohne C++-Kenntnisse C++ programmiert?

    äääh, nö. ich gehe davon aus, dass jemand ohne c++-kenntnisse keinen grund hat, sich diese anzueignen, wenn es einfachere mittel gibt, mit denen er sein ziel erreichen kann. warum, glaubst du wohl, ist das programmieren mit CAS wie matlab, derive, mathematica und was es da noch so gibt, an die mathematische notation angelehnt? weil's in etwa dem entspricht, was die anwender aus der fachliteratur kennen und was ihnen professoren an die tafel gekritzelt haben. warum sollte jemand, der computergestützt physikalische berechnungen machen will, zu c++ greifen. nur weil es boost.units gibt? das glaube ich nämlich kaum.
    🙂


Anmelden zum Antworten