welche programmiersprache für Programme benutzen?


  • Mod

    Das Buch "Windows Programmierung" von Charles Petzold ist sehr gut und der
    Petzold (http://www.charlespetzold.com/) zeigt bei einem Hallo Welt mit Sprachausgabe, dass er nicht betriebstaub ist. 🙂 Man darf sich von der Dicke des Buches nicht abschrecken lassen. Man kann viel lernen und es macht Spaß, den Petzold zu lesen.



  • Tim schrieb:

    chrische5 schrieb:

    C ist schnelle als C++ und demnach deutlich besser. Java ist total lahm und absolut ungeeignet.

    🤡

    Fängt das schon wieder an? 🤡

    derdefeckter schrieb:

    hallo,
    und welche wäre jetzt so die geeignete Programmiersprache für windowsanwendungen?

    Die Frage ist viel zu unpräzise. Du kannst alle Sprachen verwenden. Python, Perl, Ruby, Java, C#, C, C++, hauMichWeg



  • derdefeckter schrieb:

    wie wäre es wenn man als erstes mal visual basic lernt und dann c# und sich dann an .net ranmacht oder visual basic und danach .net und dann c# danach .net

    vergiss visual basic. ich hab' den fehler gemacht ein paar kleine tools der einfachkeit halber mit visual basic anzufangen, und darf die jetzt immer noch warten. glaube mir: visual basic nervt nur. schon allein deswegen weil die meisten .NET sample-codes die man irgendwo findet in C# sind. weil die syntax grauenhaft ist, weil bestimmte dinge die man in C# machen kann garnicht oder nur umständlich gehen etc.

    wenn du dich auf die .NET plattform stürzen willst (was ich an und für sich für eine gute idee halte), dann fang gleich mit C# an. ist IMO auch nicht wirklich schwerer als VB, und hat den vorteil dass man es auch für ernsthafte projekte angenehm einsetzen kann.



  • chrische5 schrieb:

    Hallo

    C ist schnelle als C++ und demnach deutlich besser. Java ist total lahm und absolut ungeeignet.

    chrische

    Soll das jetzt eine Provokation sein?
    Mit C kann man dafür nicht wirklich plattformunabhängig proggen, außer man nimmt ein Toolkit aus C++ mit einer C-Anbindung oder so was, das wird dann ja wohl eher langsamer sein als gleich C++.
    Gerade für grafische Anwendungen sollte das bisschen, was Java langsamer ist, nicht viel ausmachen, da ist man trotzdem nicht schlechter dran als mit C#, von VB gar nicht zu sprechen.
    http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=javasteady&lang2=csharp
    Java hat mir zur GUI-Programmierung auch besser gefallen als C++, kann aber auch am Toolkit liegen.

    Von Funktionaler Programmierung wollte ja sowieso noch keiner sprechen, da ist es im C++-Forum natürlich nicht neutral genug 😃



  • also meine erfahrungen zu gui:

    c++ + qt = sehr schöne kombi

    java + swing = sehr schön

    .NET boykottiere ich !



  • Die Frage ist zu allgemein. Aber ja, wenn du wirklich schöne Benutzeroberflächen bauen willst (und mehr nicht), dann würde ich dir zu XAML mit WPF raten :p



  • shisha schrieb:

    also meine erfahrungen zu gui:

    c++ + qt = sehr schöne kombi

    java + swing = sehr schön

    Java + SWT = auch schön, natives Design, Viele Internet-Programme.

    Noch ein Vorteil von Java: Eclipse! :p

    shisha schrieb:

    .NET boykottiere ich !

    Warum?

    BTW: Was ist mit JavaScript?



  • wxSkip schrieb:

    Java + SWT = auch schön, natives Design, Viele Internet-Programme.

    Glaubt ihr das eigentlich? Die Userinterfaces sind in jedem OS anders. Das gleiche Interface für mehrere Betriebsystem ist einfach sinnlos und hässlich. Ich gehe so Programmen immer aus dem Weg. Gute Programme wie Transmission haben die core engine in einer Sprache und dann verschiedenen Guis darauf die verschiedene Sprachen nutzen für die verschiedenen System (gtk/cocoa/web).

    Ich würde nehmen:
    Linux: Zeitkritisches in C Gui in Python oder Ruby.
    Windows: c# wpf
    Mac OS X: objective-c mit cocoa

    BTW: Was ist mit JavaScript?

    Das Problem ist das es von Programmen und nicht Webseiten spricht. Für den Desktop gibt es nicht wirklich sinnvolle Frameworks.



  • IPH schrieb:

    wxSkip schrieb:

    Java + SWT = auch schön, natives Design, Viele Internet-Programme.

    Glaubt ihr das eigentlich? Die Userinterfaces sind in jedem OS anders. Das gleiche Interface für mehrere Betriebsystem ist einfach sinnlos und hässlich. Ich gehe so Programmen immer aus dem Weg. Gute Programme wie Transmission haben die core engine in einer Sprache und dann verschiedenen Guis darauf die verschiedene Sprachen nutzen für die verschiedenen System (gtk/cocoa/web).

    Ich würde nehmen:
    Linux: Zeitkritisches in C Gui in Python oder Ruby.
    Windows: c# wpf
    Mac OS X: objective-c mit cocoa

    SWT ist ja nativ, du hast vielleicht ein paar Möglichkeiten weniger als wenn du ein speziell zugeschnittenes plattformabhängiges Toolkit nimmst. (SWT musst du halt für jedes OS neu ausliefern, weil es nicht wie Swing bei der JRE dabei ist)



  • HTML5/CSS/JavaScript



  • asdafh89zgfasfi schrieb:

    HTML5/CSS/JavaScript

    IPH schrieb:

    wxSkip schrieb:

    BTW: Was ist mit JavaScript?

    Das Problem ist das es von Programmen und nicht Webseiten spricht. Für den Desktop gibt es nicht wirklich sinnvolle Frameworks.



  • wxSkip schrieb:

    asdafh89zgfasfi schrieb:

    HTML5/CSS/JavaScript

    IPH schrieb:

    wxSkip schrieb:

    BTW: Was ist mit JavaScript?

    Das Problem ist das es von Programmen und nicht Webseiten spricht. Für den Desktop gibt es nicht wirklich sinnvolle Frameworks.

    Im Ausgangsposting steht was von graphischen Programmen. Wie kommst du darauf dass sich das auf Desktop Software beschränkt? Oder inwiefern sind Web Applikationen keine Programme???



  • asdafh89zgfasfi schrieb:

    Im Ausgangsposting steht was von graphischen Programmen. Wie kommst du darauf dass sich das auf Desktop Software beschränkt? Oder inwiefern sind Web Applikationen keine Programme???

    War ja nich meine Idee. Aber ungesehen dessen wird der TO wohl eher weniger Unterstützung für HTML5 finden, da es noch in der Entwicklung ist und jeder Browser andere Features implementiert.



  • toilettenpapier schrieb:

    In wo?

    Es heißt worin.
    Fragewörter sterben leider auch aus.

    Ich versuche mal eine halbwegs objektive Zusammenfassung zu geben:

    C ist eine maschinennahe und sehr einfache Sprache mit sehr einfacher Syntax. Schon nach einer Woche kannst du auf praktisch beliebigen C-Code sehen und weißt was dort passiert. Nicht was es bedeutet, aber was es tut. C überlässt es dir deinen Code zu strukturieren und du musst dich generell um alles selbst kümmern, sehr effizient aber umständlich.

    C++ ist eine Erweiterung von C. C++ hilft dir deinen Code zu organisieren. Du kannst immernoch C-Code schreiben, aber zusätzlich unterstützt es Klassen und Vererbung. In C musst du Vererbung selbst organisieren, in C++ gibt es vorgefertigte Ausdrücke um es zu machen. Gleichzeitig geht aber damit auch Übersicht verloren. "i++;" ist ein Ausdruck der in C bedeutet, dass i um eins hochgezählt wird. In C++ er auch k um 1 verringern. Oder ein Fenster aufmachen. Oder sonst irgendwas tun. Und um das herauszufinden musst du eventuell viele Klassen und Elternklassen durchsuchen. C++ funktioniert mehr nach dem Prinzip "du musst es nicht verstehen, es reicht wenn du es benutzen kannst".

    Java ist "objektorientiert". Das heißt im Prinzip "alles ist ein Objekt" und du musst für alles Klassen und Methoden schreiben. Damit zwingt es dich deinen Code zu organisieren. Während man in C und C++ allen möglichen Blödsinn schreiben kann, gibt es in Java weniger Möglichkeiten dazu. Java kümmert sich um deinen Speicher, weniger effizient als du es könntest, aber schon nett. Ich mag Java allerdings nicht, denn die Vereinfachung die man sich durch Performanceverluste erkauft hat, bedeutet nicht weniger Entwicklungsaufwand, sondern mehr.

    Python ist so nah an der menschlichen Sprache, dass es kinderleicht ist darin Programme zu schreiben. Du kannst dich voll auf das eigentliche Programm konzentrieren, organisatorischer Krimskrams wie Variablentypen macht Python für dich. In den vorherigen Sprachen hatten zum Beispiel Zahlen (ints) einen gewissen Speicher und damit einen Wertebereich. Wenn dieser überläuft kommt Blödsinn raus. In Python nicht, der Speicher den eine Variable beansprucht wird automatisch angepasst. Diese automatische Anpassung sorgt dafür dass die Operationen immer funktionieren, es macht sie aber auch langsam.

    Du solltest dich nicht für eine Sprache entscheiden, sondern dir überlegen worauf du Wert legst. Ausführungsgeschwindigkeit? Entwicklungsgeschwindigkeit? Organisierst du deinen Code selbst oder soll das die Sprache machen? Bist du bereit CPU-Zyklen zu opfern damit du dich nicht um Speicher kümmern musst?
    Sollten sich deine Prioritäten irgendwann ändern ist es relativ leicht auf eine andere Srache zu wechseln.



  • nwp2 schrieb:

    C++ ist eine Erweiterung von C. C++ hilft dir deinen Code zu organisieren. Du kannst immernoch C-Code schreiben, aber zusätzlich unterstützt es Klassen und Vererbung. In C musst du Vererbung selbst organisieren, in C++ gibt es vorgefertigte Ausdrücke um es zu machen. Gleichzeitig geht aber damit auch Übersicht verloren. "i++;" ist ein Ausdruck der in C bedeutet, dass i um eins hochgezählt wird. In C++ er auch k um 1 verringern. Oder ein Fenster aufmachen. Oder sonst irgendwas tun. Und um das herauszufinden musst du eventuell viele Klassen und Elternklassen durchsuchen. C++ funktioniert mehr nach dem Prinzip "du musst es nicht verstehen, es reicht wenn du es benutzen kannst".

    Das tut ja schon beim lesen weh, Autsch...




  • Janjan schrieb:

    Das tut ja schon beim lesen weh, Autsch...

    Absolut nicht. nwp2 hat nichts falsches geschrieben.



  • Es wurden allgemeine Behauptungen aufgestellt und mit eher Kleinigkeiten untermauert. Von objektiv kann da auch nicht die Rede sein. Natuerlich kann "i++" viel bedeuten, aber: Wenn ich "Buch" sage, dann kann das auch was anderes fuer mich bedeuten (gerade die Bedeutung, die ich ihm gebe). Aber es gibt einen allgemeinen Konsens, was "Buch" in Deutschland bedeutet. Genauso gibt es einen allgemeinen Konsens, was "i++" bedeutet. Es wird kein Fenster aufmachen. Und ich werde auch nicht in der Klassenhierarchie danach suchen. Zu Python: Ich fand es ganz und gar nicht nah an der menschlichen Sprache.



  • nwp2 schrieb:

    Bist du bereit CPU-Zyklen zu opfern damit du dich nicht um Speicher kümmern musst?

    kommt von jemandem der seinen code mit malloc spickt 😕

    nwp2 schrieb:

    Schon nach einer Woche kannst du auf praktisch beliebigen C-Code sehen und weißt was dort passiert. Nicht was es bedeutet, aber was es tut.

    frag mich was ich hier die ganze zeit im forum mach und mir bei 500 seiten C99 standard immer noch ein paar sachen "unklar" sind. 😮

    und um nicht total zum troll zu mutieren kann ich nur den vorschlag machen, ein möglichst schönes framework mit gui-editor zu nehmen da sparst dir ne ganze menge getippe. gui code von hand zu schreiben ist einfach nicht lustig...

    lg lolo


  • Administrator

    veritySeeker schrieb:

    Janjan schrieb:

    Das tut ja schon beim lesen weh, Autsch...

    Absolut nicht. nwp2 hat nichts falsches geschrieben.

    Bereits der erste Satz zu C++ ist falsch. C++ ist keine Erweiterung von C, sondern eine eigenständige Sprache. Wenn es eine Erweiterung wäre, müsste es ja zum Beispiel rückwärtskompatibel zu C99 sein, ist es aber nicht!
    Es ist unteranderem aus C heraus entstanden, dass wäre richtig. Heutzutage ist es aber eine vollständig eigenständige Sprache.

    Und auch die restliche Argumentation ist ziemlicher Murks. Es wird kein vernünftiger Mensch darauf kommen, dass i++ eine Reduzierung der Variable auslöst. Man kann es zwar machen, aber es tut keiner, weil es einfach nur verwirrend und unlogisch wäre. Also wozu sowas unsinnges aufführen?

    Aber naja ... bevor es noch wie in den anderen Threads endet, höre ich besser auf.

    nwp2 schrieb:

    Du solltest dich nicht für eine Sprache entscheiden, sondern dir überlegen worauf du Wert legst. Ausführungsgeschwindigkeit? Entwicklungsgeschwindigkeit? Organisierst du deinen Code selbst oder soll das die Sprache machen? Bist du bereit CPU-Zyklen zu opfern damit du dich nicht um Speicher kümmern musst?
    Sollten sich deine Prioritäten irgendwann ändern ist es relativ leicht auf eine andere Srache zu wechseln.

    Der erste Satz ist absolut richtig. Aber danach wird es recht sinnlos. Wie willst du die Auführungsgeschwindigkeit bewerten? Wie willst du die Entwicklungsgeschwindigkeit bewerten? Nach welchen Kriterien? Sowas ist vielfach nur sehr schwer definierbar.
    Man sollte vielmehr bewerten, in welche Richtung man eigentlich möchte, was einem interessiert. Will man im Low-Level Bereich Programmieren, zum Beispiel Treiberprogrammierung, Betriebsysteme, usw.? Oder vielleicht lieber Business-Software? Vielleicht Monitoringwerkzeuge für einen bestimmten Bereich? Usw. usf.
    Auch in diesen Fällen gibt es dann immer noch mehrere Sprachen zur Auswahl, aber man kann es zumindest ein wenig eingrenzen. Zum Beispiel wirst du für die Treiberprogrammierung eher C# nicht verwenden.
    Wie man dann aus den noch übrigbleibenden Sprachen aussucht, läuft dann am Ende oft einfach nur auf den Geschmack hinaus.

    Grüssli



  • Zu C++: Klassen und Vererbung sind zwar das, was man an C++ vielleicht am meisten spürt, aber Prozentual ist das halt trotzdem nicht so viel. Außerdem bringen diese kleinen "Erweiterungen" sehr viel für das Programmieren von Bibliotheken, vergleiche halt mal WinAPI mit einem modernen GUI-Toolkit (auch wenn so was wie wxWidgets auch nicht modernstens programmiert ist).

    @Dravere: Ich denke schon, dass man die Ausführungsgeschwindigkeit bewerten kann, deshalb nimmt man ja kein C# für Treiber usw. Bei GUI-Programmen ist der Umfang hingegen relativ groß, von C bis zu den ganzen Skriptsprachen.


Anmelden zum Antworten