1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Programmieren als Physiker

Dieses Thema im Forum "AppleScript" wurde erstellt von Max87, 31.03.08.

  1. Max87

    Max87 Gast

    Hallo,
    Ich habe ein Anliegen, bei dem mir hoffentlich jemand weiterhelfen kann:
    Ich bin Physikstudent und möchte programmieren lernen, da das als Physiker denke ich mal sehr nützlich ist und auch erwartet wird.
    Okay, nun stellt sich für mich die Frage? Was ist am sinnvollsten, welche Sprache, welche Dinge usw.
    Ich habe in den letzten Wochen eine C++-Einführung durchgearbeitet (falls es jemanden interessiert: C++-Tutorial ) und bin also etwas vertraut mit den Konzepten der objektorientierten Programmierung in C++ wie Klassen, Vererbung, Schablonen, virtuellen Funktionen usw..

    Okay, das hab ich gemacht, nur waren das bisher immer reine Konsolenprogramme.
    Jetzt möchte ich Programm mit grafischer Benutzeroberfläche erstellen und frage mich was am sinnvollsten ist.
    Ich hab ein MacBook und möchte auch mit dem progammieren, daher liegt natürlich Cocoa und Objective-C nahe, allerdings möchte ich mein Wissen nicht nur zum privaten Spaß einsetzen sondern eventuell später auch im Beruf und daher ist es wahrscheinlich nicht sehr ratsam, sich voll und ganz auf den Mac zu fixieren, da der Großteil der Rechner ja nun mal auf Windows basiert.
    Also ist meine Frage:
    - Kann man Objective-C auch auf Windows nutzen oder ist es ratsamer, etwas anderes zu lernen?
    - Ist Carbon im Prinzip dasselbe wie Cocoa nur für C++? Und ist es dann ratsamer, so etwas zu lernen?

    Vielleicht gibt es unter euch ja auch Physiker, die mir weiterhelfen können, wie das ganze speziell für Physiker aussieht. Was wird sich später am meisten auszahlen, was benötigt man am meisten als Physiker?

    Ja ich hoffe, mir kann jemand weiterhelfen. Danke schonmal für die Hilfe,
    Gruß
    Max

    P.S.: Ich bin momentan zuhause und kann nicht an die Uni, also geht es momentan darum, das zuhause zu machen. ;)
     
  2. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    Aaaaalso... Physiker sind ja extrem kluge Menschen, und deshalb traue ich Dir zu, dass Du durchaus Objective-C und noch etwas anderes lernen kannst.

    Objective-C nützt Dir ausserhalb Mac OS X sehr wenig. Es gibt da Mittel und Wege, aber das ist eine Thread-Füllende Diskussion.

    Gleichzeitig ist Objective-C/Cocoa die "schönste" Sprache für grafische Oberflächen auf OS X. Carbon ist eine Möglichkeit, aber das ist aus verschiedenen Gründen sehr, sehr zäh.

    Du kannst einerseits deinen "Kerncode" problemlos in C++ machen, und dann ein Objective-C/Cocoa Frontend draufsetzen.

    Oder Du nimmst eins von diesen (IMHO: schauderhaften) CrossPlatform Frameworks, wie z.B. Qt von Trolltech (wahrscheinlich das beste unter den schauderhaften Frameworks)

    Die m.E. nach coolste Lösung für Dich als Physiker im Bezug auf Dein Studium ist aber vielleicht (wieder, meiner unbedeutenden Meinung nach), Dich mit dem X Window System (X11) zu beschäftigen.
    Das wird Dir mit sehr grosser Sicherheit auf allen Rechnern, mit denen Du zu tun hast zur Verfügung stehen (EDIT: Natürlich auch auf OS X), und damit kannst Du dann auch mal grafische Simulationen auf irgendeinem Hochleistungsrechner Remote berechnen lassen.

    Hinweis: Die o.g. Tips sind meine Empfehlung speziell für Physiker, nicht notwendigerweise für andere Anfänger

    HTH

    Alex
     
  3. _ebm_

    _ebm_ Gala

    Dabei seit:
    30.03.08
    Beiträge:
    53
    Hi Alex, (ja ich treibe ab sofort auch hier mein Unwesen)

    Du hast ihm eben nicht wirklich XLib/Motiv empfohlen? ;) Da bekomme ich das Schaudern! X11-Programmierung ist inzwischen komplett gekapselt (QT oder GTK+, letzteres gefällt mir wiederum besser).

    Zu dir Max:
    Ich kenne die Bedürfnisse in der Programmierung in der Physik nicht genau, denke aber, du bist mit C/C++ ganz gut bedient. Eure Messcomputer werden nahezu alle mit in diesem Programmiersprachen erstellten Programmen gefüttert und gesteuert (Abgesehen von ein paar mathematischen Modellen in Fortran). Damit gehst du schonmal einen richtigen Weg.

    Objective-C ist mit Sicherheit die bevorzugte Programmiersprache für den Mac und OS X. Du hast Cocoa, du hast die Core-Libraries,... Auf anderen Systemen wirst du damit aber nicht glücklich werden. Es gibt ein paar Exoten, die den Objective-C-Compiler von GCC unter Linux benutzen, die Bibliotheken fehlen dir dann immernoch.

    Was X11 angeht, ja - ein mächtiges grafisches Ausgabesystem aus der Urzeit von UNIX. Jedes eurer wissenschaftlichen Workstations wird das unterstützen. Ich habe die Programmierung dafür zu hassen gelernt. Wenn du anfängst, grafische Programme zu schreiben, schau dir QT, GTKMM oder (wenn es sehr einfach sein soll) TCL/TK an. Letzeres ist sowieso meine Empfehlung für kleine schlanke Tools, bei denen es nicht auf Performance ankommt. Es gibt dafür auch Anbindungen an C und C++, sodass der geschwindigkeitsabhänige Kern flott genug läuft..

    Jedenfalls viel Spaß!

    Gruss Carsten

    Edit: Auch bei mir gilt: Das sind Tips für einen angehenden Physiker. Wissenschaftliche Programmierung hat andere Anforderungen als Tetris und Co. Und wer sich über das Aussehen von TK-Oberflächen beschwert..... *ggg*
     
    #3 _ebm_, 31.03.08
    Zuletzt bearbeitet: 31.03.08
  4. zendo

    zendo Boskoop

    Dabei seit:
    23.02.06
    Beiträge:
    41
    Hallo Max!

    Also dann oute ich mich auch mal als Physiker. Habe während meiner UNI-Zeit auch viel programmiert. Vor allem Datenauswertungen natürlich. Das waren auch zumeist Konsolenprogramme. Erste GUI-Erfahrungen habe ich dann mit AppleScript-Studio gemacht und so um die Kommandozeilenprogs nette GUIs gestrickt. Das ging soweit ganz gut. Einige Sachen habe ich dann unter OS9 noch in C auch mit GUI geschrieben. Aber das Problem war natürlich die Portabilität.
    Inzwischen bin ich bei Java gelandet, ist zwar auch nicht optimal, aber man kriegt doch recht ansehnliche Programme mit netter Oberfläche hin (wenn man sich etwas Mühe gibt). Gut, ist natürlich Lichtjahre hinter Cocoa hinterher, aber eben halt portabel alles und das mit sehr wenig Aufwand. Das ist mir äußerst wichtg. Zeit ist knapp und mit Insellösungen hab ich schlechte Erfahrungen...zum Beispiel haben die WinLinux Leute beim Newton-Programm (s. unten) 1200 mal zugeschlagen und nur etwa 1/10 davon die Mac-Fraktion.

    Falls es interssiert, hier dann mal zwei, drei Links zu den Java-Programmen.
    - http://newton2.slueck.de
    - http://schule.slueck.de/projekte/LogGl.php
    - http://schule.slueck.de/projekte/Magnetpendel.php

    Vor allem das erste ist hinsichtlich GUI zu empfehlen (sieht fast, wie ein original OSX-Proggi aus).

    Hoffe, ich konnte etwas weiterhelfen...wenn's Fragen gibt, immer heraus damit. :)

    Gruß,

    Stephan
     
    Skeeve gefällt das.
  5. Skeeve

    Skeeve Pomme d'or

    Dabei seit:
    26.10.05
    Beiträge:
    3.121
    Hättest Du das nicht empfohlen, hätte ich es getan.
     
  6. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.252
    Moderne Libraries für Physikprobleme sind fast ausschließlich in C++ geschrieben, ältere aussschließlich in Fortran. Die meisten Institute setzen auf Linux oder früher auf kommerzielle UNICES. GUIs braucht man für Simulationen nicht, da werden meist Programme auf Clustern ausgeführt und ein GUI stört da nur.

    Für Meßaufbauten wir je nach Budget entsprechende Spezialsoftware (LabView o.ä.) oder was freies verwendet. GUIs solltest Du mit den üblichen Techniken umsetzen, die es unter Linux oder Windows gibt. MacOS X Cocoa ist eine reine Insellösung ohne jede Bedeutung auf anderen Plattformen, genauso sieht es mit Objective-C aus. Diese Sprache hat im kommerziellen Umfeld abseits der Mac-Programmierung keinerlei Bedeutung.
     
  7. Max87

    Max87 Gast

    Also danke erstmal für Eure Antworten.

    Was sind denn die "üblichen Techniken"? Also so etwas dieses X Window System oder was kann ich mir vorstellen?
     
  8. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.252
    X11 programmiert man in den seltesten Fällen direkt, da dies relativ aufwendig ist. Man wird irgend ein Framework nutzen, welches im Umfeld sich schon bewährt hat. Für UNIX ist das mittlerweile meisten Qt (KDE), GTK+(Gnome), aber es gibt noch eine ganze Reihe anderer Frameworks siehe hier.
     

Diese Seite empfehlen