welche Programmiersprache wird am meisten benutzt



  • c++eus schrieb:

    Marc++us schrieb:

    Was ich nicht verstehe, warum bezeichnet Ihr C# als Interpretersprache?
    😕

    Hi,

    das .Net-Framework ist doch der interpreter des IL-Code.

    Der Code wird vor der Ausführung compiliert, aber erst kurz vor Ausführung während der Laufzeit. Und jede Funktion wird nur einmal compiliert, also nicht immer wieder.

    @Gregor: naja, die Bezeichnung P-Code-Language ist nicht schlecht. Es ist nicht so einfach, eigentlich passt das klassische Verständnis aus dem Alltag mit Compiler/Interpreter nicht so gut. Begrifflich versteht man Compiler und Interpreter "digital", also es gibt Compilersprachen und Interpretersprachen. Letztere führen Befehl für Befehl zur Laufzeit aus, Compiler arbeiten offline und bereiten den Assemblercode vorher vor.

    Aber der Ansatz über eine virtuelle Maschine macht es schwieriger das zu trennen, denn wenn man sich ansieht was der Unterschied zwischen einem JIT-Compiler und einem Interpreter mit Cache wäre, so gibt es natürlich Berührungspunkte... da aber bei JIT-Compiling der MSIL- (oder VM-) Code nach Assembler übersetzt wird vor der Ausführung und dann der Assemblercode komplett aufgerufen wird, kann man nicht von einem Interpreter sprechen.



  • Daniel E. schrieb:

    Hä? Entweder, Du schaust dir die Definition der Klasse an, dann stellst Du fest, ob 'set{}'/'get{}' existieren, oder Du schaust Dir das nicht an und rätselst rum. Wie in C++.

    Wieso sollte ich mir die Definition einer Klasse ansehen? Ich sehe in die Doku, oder meistens reicht mir das Intellisense vom VC++.

    Ich will zB den ausgewaehlten Index in einer Liste (GUI) auswaehlen. Also suche ich nach 'SelectedIndex' - und schwupps, ich sehe, da gibts ein property mit dem Namen - doch kann ich es jetzt nur lesen oder lesen und schreiben, etc.

    Wie gesagt, ich mag das nicht so - ich finde getter und setter besser.

    Aber ich habe auch gesagt, dass es egal ist, ob man getter und setter hat, oder Properties. Properties bringen keine Vorteile mit.

    Zu dem if:
    Ich finde es halt klarer, wenn man auch einen int als bool ansehen kann. Wenn du das anders siehst, OK - aber dann verrate mir trotzdem wo der Vorteil darin liegt int als bool zu verbieten.

    Ich habe noch keine Software geschrieben, oder es bei jemanden anders gesehen, dass ein if(i=1) ein Fehler war, der nicht in Null-Komma-Nix gefunden wurde. (und in release Versionen habe ich sowas sowieso noch nicht gesehen)



  • Ein paar Worte zu Properties.
    Properties sind in erster Stelle gedacht (IMHO) nicht um Schreib-/Lesezugriffe auf eine Klassenvariable zu steuern (dafür würde get und set vollkommen ausreichen), sondern für die Unterstützung der "visueller" Programmierung. (Und schreit jetzt nicht, dass jede IDE mit Notepad oder Vi ersätzt werden kann). Außerdem sind sie, wie man bereits erwähnt hat, um einiges bequemer bei der Benutzung.

    Man kann jetzt unendlich streiten, ob es Sinn macht, neue Sprachen zu entwickeln, oder nicht, ob einige Features gebraucht werden oder nur Ballast sind, aber hätte man seinerzeit uf diese Entwicklung verzichtet, würden wir immer noch mit Basic programmieren und es gäbe dann kein C/C++, Delphi, Java, C#, etc. und es gäbe dann auch diese Diskussion hier nicht.



  • Shade Of Mine schrieb:

    Ich habe noch keine Software geschrieben, oder es bei jemanden anders gesehen, dass ein if(i=1) ein Fehler war, der nicht in Null-Komma-Nix gefunden wurde. (und in release Versionen habe ich sowas sowieso noch nicht gesehen)

    👍 genau, es ist nur so, dass bei C# oder Java, hättest du den Fehler erst gar nicht...



  • Shade Of Mine schrieb:

    Daniel E. schrieb:

    Hä? Entweder, Du schaust dir die Definition der Klasse an, dann stellst Du fest, ob 'set{}'/'get{}' existieren, oder Du schaust Dir das nicht an und rätselst rum. Wie in C++.

    Wieso sollte ich mir die Definition einer Klasse ansehen? Ich sehe in die Doku, oder meistens reicht mir das Intellisense vom VC++.

    Und der sieht selbstverständlich nicht im Quelltext nach, sondern telefoniert mit dem Programmierer persönlich. Spaß beysaite: Wenn dieser Assistent das bei C# nicht kann, dann ist das ein Mangel von Intellisense, nicht von C#.

    Ich will zB den ausgewaehlten Index in einer Liste (GUI) auswaehlen. Also suche ich nach 'SelectedIndex' - und schwupps, ich sehe, da gibts ein property mit dem Namen - doch kann ich es jetzt nur lesen oder lesen und schreiben, etc.

    Das hängt nicht nur von der Klasse, sondern auch vom Objekt ab.

    Wie gesagt, ich mag das nicht so - ich finde getter und setter besser.

    Ich hatte dich gefragt, wieso Du es als zulässig findest, in einem Fall mit der Gleichheit von Konzepten zu argumentieren und im nächsten Punkt mit emotionalten Beziehungen daherkommst. Um weiteren Mißverständnissen vorzubeugen: "Ob ich nun [...] schreibe, ist ja wohl egal." vs "Ich schreibe aber gerne:". Eine sachliche Aussage zum Thema habe ich nicht gemacht.

    [quote}Aber ich habe auch gesagt, dass es egal ist, ob man getter und setter hat, oder Properties. Properties bringen keine Vorteile mit.[/quote]
    Richtig, im Endeffekt überflüssig. Das dürfte auf ziemlich jede Abstraktionsschicht zutreffen.

    Zu dem if:
    Ich finde es halt klarer, wenn man auch einen int als bool ansehen kann. Wenn du das anders siehst, OK - aber dann verrate mir trotzdem wo der Vorteil darin liegt int als bool zu verbieten.

    Ich habe noch keine Software geschrieben, oder es bei jemanden anders gesehen, dass ein if(i=1) ein Fehler war, der nicht in Null-Komma-Nix gefunden wurde. (und in release Versionen habe ich sowas sowieso noch nicht gesehen)

    Eventuell besteht ja ein Zusammenhang, zwischen dem, was Du schreibst und dem, was Du gelesen hast. Mit dem, was ich geschrieben habe, hat es allerdings nichts zu tun.



  • Xqgene schrieb:

    Außerdem sind sie, wie man bereits erwähnt hat, um einiges bequemer bei der Benutzung.

    Könntest du mir hier nochmal die Stelle zeigen, wo das gesagt wurde? Ich muss die überlesen haben. Ich denke, hier wurde sehr eindeutig gezeigt, dass der Unterschied absolut minimal ist.



  • Xqgene schrieb:

    Properties sind in erster Stelle gedacht (IMHO) nicht um Schreib-/Lesezugriffe auf eine Klassenvariable zu steuern (dafür würde get und set vollkommen ausreichen), sondern für die Unterstützung der "visueller" Programmierung.

    Hat C# nicht Metadaten (die bei Java erst - etwas anders - mit Java 1.5 kommen)? Metadaten sind IMHO genau die richtige Unterstützung für "visuelle Programmierung". Damit braucht man keine Properties und keine getter/setter mehr (zumindest für diesen Zweck).



  • Hehe, ehrlichgesagt verstehe ich diese Diskussion hier nicht.

    Seid froh, dass es Java, C++, Delphi, Cobol, etc gibt!
    Ich mein sicherlich gibt es Unterschiede zwischen ihnen und einige sind gut, andere sind blöde/inperformat.

    Letztendlich arbeiten alle Sprachen auf das selbe hinaus, und zwar eine abfolge von Befehlen in Maschinensprache um zu setzen.

    Ihr könnt ja gerne mal ein Lagerverwaltungsystem in Assembler implementieren.

    ...

    Es gibt Leute, die können sich tagelang darüber streiten, ob ihre Waschmaschine besser ist, weil die eine mehr Knöpfe hat (und für jede Art von Wäsche einen Satz verschiedener Knöpfe anbietet), die andere wesentlich leichter zu Bedinen ist und die nächste dir auf die Finger haut, wenn man rote mit weisser Kochwäsche zusammenschmeisst. 🙄
    Aber ich habe auch gehört, es gibt Menschen, die wandern 5km zum nächsten Fluss um dort ihre Wäsche zu waschen. 😮

    🤡



  • @ Ingo:

    1. Ich weiß nicht, ob du gesehen hast, wie der Thread hier angefangen hat. Da hat jemand gefragt, welche Sprachen am Arbeitsmarkt gefragt sind. Wenn der anhand der Antwort entscheidet, was er lernen möchte, dann wäre es doch sehr unangebracht, ihm etwas, wie "Alle Sprachen sind toll, lern doch Delphi (bzw. Pascal) oder C#!" zu sagen. Dann ist er nämlich am Schluss der Dumme, weil er etwas gelernt hat, was nahezu überhaupt nicht gebraucht wird.

    2. Es macht durchaus Sinn, sich über die Vor- und Nachteile verschiedener Sprachen zu unterhalten (bzw. sich darüber Gedanken zu machen). Wie soll man sich sonst darüber klar werden, was wofür gut geeignet ist?



  • Gregor schrieb:

    @ Ingo:

    1. Ich weiß nicht, ob du gesehen hast, wie der Thread hier angefangen hat. Da hat jemand gefragt, welche Sprachen am Arbeitsmarkt gefragt sind. Wenn der anhand der Antwort entscheidet, was er lernen möchte, dann wäre es doch sehr unangebracht, ihm etwas, wie "Alle Sprachen sind toll, lern doch Delphi (bzw. Pascal) oder C#!" zu sagen. Dann ist er nämlich am Schluss der Dumme, weil er etwas gelernt hat, was nahezu überhaupt nicht gebraucht wird.

    2. Es macht durchaus Sinn, sich über die Vor- und Nachteile verschiedener Sprachen zu unterhalten (bzw. sich darüber Gedanken zu machen). Wie soll man sich sonst darüber klar werden, was wofür gut geeignet ist?

    👍



  • @Shade: Tut mir leid, aber deine Argumentation in diesem Thread is totaler Mist. Die eine IDE untstützt mich beim Programmieren von C++. Meine C#-IDe kann das nicht, desshalb ist C++ viel besser.

    Ich finde Propertys gut. Eine alternative Wäre vielleicht Ds Art: Methoden mit einem Parameter können auch durch eine Zuweisungssynthax aufgerufen werden und die ohne Parameter auch ohne Klammern:

    objekt.foo = 5;
    bar = objekt.foo;
    objekt.foo(5);
    bar = objekt.foo();
    

    Oder Wie wäre es mit einer BETA-artigen Synthax: Zuweisungen und "Funktionsaufrufe" sehen gleich aus:

    5 -> objekt.foo;
    objekt.foo -> bar;
    


  • Helium schrieb:

    @Shade: Tut mir leid, aber deine Argumentation in diesem Thread is totaler Mist

    OK, dann nehme ich meine Argumentation zurueck.
    Properties sind fuer mich persoenlich (was ich nebenbei gesagt auch in jedem Post betont habe) nicht unpraktisch.

    So, nun meine neue Argumentation:
    Properties sind schlecht.

    So, hiermit Argumentiere ich genauso wie du. Ist das besser?



  • Ich habe nie für oder gegen Propertys argumentiert, sondern lediglich gesagt, dass sie mir persönlich gefallen und außerdem habe ich gezeigt, wie einige anderen Sprachen das lösen, um zu zeigen, dass es neben set und get Methoden und C#s Propertys auch noch was anders gibt.

    Properties sind schlecht.

    Das lege ich jetzt mal als deine Meinung aus, auch wenn es so formuliert ist, als wäre es allgmein gültig.



  • Für eine sinnvolle Diskussion müßte man vorher vielleicht mal für und wieder mindenstens aufzählen. Ich hab hier jedenfalls noch kein Gegenargument gesehen, ausser "brauch ich nicht".



  • Hi,

    ob eine Sprache Eigenschaften unterstützt, oder nicht, dass ist doch eigentlich egal. Ich meine nur, es währe ein praktisches Konstrukt. Aber eigentlich ist C# eine gute Anfängersprache. Man kann damit OO sehr gut lernen. Und ob man jetzt C# oder C++ kann, das ist ziemlich egal. Meiner Meinung nach ist es sogar einleuchtend, beide Sprachen zu lernen. Sie überlappen sich bei der OO-Programmierung. C++ ist eher eine low(-> C), C# (-> Java) eher eine hight - Level - Sprache.


Anmelden zum Antworten