Je höher eine Hoch-/bzw. Programmiersprache entwickelt ist, desto weniger Spaß macht sie



  • NES-Spieler schrieb:

    Wieso haben so viele Computerkenner diese Einstellung?

    Testosteron.



  • cooky451 schrieb:

    hustbaer schrieb:

    Muaha.
    Troll.

    👍
    (Muss sein, da ich keinen Facebook Account habe, aber trotzdem mit der Zeit gehen möchte ;))

    Im übrigen.. ich kann mich (in gewisser Weise) anschließen. Ich hasse es, nicht zu verstehen was dieser oder jener Befehl jetzt eigentlich macht. Aber sobald man etwas mehr Durchblick hat, ist man froh einen std::string zu haben.
    (Und Python ist einfach hässlich, das hat nichts mit High-Level zu tun!)

    Gute Frage, was macht std::string intern genau?

    Wird jedesmal immer die Länge mit jedem weiteren Zeichen das eingegeben wird geprüft und dann die alte Zeichenkette an einen anderen Ort kopiert wo dann wieder etwas mehr Speicherplatz ist?
    Denn Speicherplatz zu reservieren ist ja immer eine endliche Sache, std::string abstrahiert das doch nur. Und wenn der endlich reservierte Speicherplatz am Stück nicht groß genug ist, dann muß entweder neuer Speicher angefordert werden und das ganze in den neuen Bereich umkopiert werden oder es muß am Ende des zuvor reservierten Speichers so ne Art Zeiger angebracht werden, der den alten Speicherblock mit dem neuen verknüpft.

    Also, was macht std::string da genau, wer kann das beantworten?
    Bei C ist es sofort klar was die Funktion macht.



  • Low Level vs. High Level schrieb:

    cooky451 schrieb:

    hustbaer schrieb:

    Muaha.
    Troll.

    👍
    (Muss sein, da ich keinen Facebook Account habe, aber trotzdem mit der Zeit gehen möchte ;))

    Im übrigen.. ich kann mich (in gewisser Weise) anschließen. Ich hasse es, nicht zu verstehen was dieser oder jener Befehl jetzt eigentlich macht. Aber sobald man etwas mehr Durchblick hat, ist man froh einen std::string zu haben.
    (Und Python ist einfach hässlich, das hat nichts mit High-Level zu tun!)

    Gute Frage, was macht std::string intern genau?

    Warum schaust du es dir nicht selber an - std::string ist ein Template (und heißt mit vollem Namen std::basic_string<char,std::char_traits<char>,std::allocator<char>> ), da kannst du direkt im Header ansehen, wie er arbeitet. Ich würde mal vermuten, daß er sich immer etwas mehr Speicherplatz holt als für die momentane Stringlänge erforderlich ist - entsprechend muß er nur selten neuen Speicher anfordern.



  • NES-Spieler schrieb:

    Je höher eine Hoch-/bzw. Programmiersprache entwickelt ist, desto weniger Spaß macht sie

    Finde ich auch. Ich vermisse auch die alten Gasherde.

    Ich auch.

    Mit den alten Gasherden kann man besser braten und kochen, weil die erreichbare Temperatur viel höher ist.
    Wer mal mit nem Wok gearbeitet hat, der lernt Gasherde zu schätzen.

    Und heutige Autos sind ja nun wirklich der letzte Rotz. Einfach einsteigen und losfahren kann doch jeder. Früher, als man noch vorne eine Kurbel drehen mußte, war es viel besser. 🙄

    Auch da stimme ich dir zu.
    Früher konnte man an den Autos noch selber rumschrauben, denn es war nur Mechanik. Und Dellen im Blech liesen sich leicht mit etwas Hämmern und neu lackieren reparieren. Bei dem Plastikzeug von heute muß man das ganze Ding komplett austauschen wenn es kaputt ist und wegen der ganzen Elektronik im Fahrzeug kann man selber da fast gar nichts mehr rumschrauben.
    So begrenzt sich heute das Autotuning auf das bemalen des Autos.

    Jetzt mal ganz ehrlich: Wieso ist es bei Informatikern so verbreitet, daß sie der alten Zeit hinterhertrauern, in der alles komplizierter und fehleranfälliger war? "Ein Compilerlauf dauerte drei Tage. Ein einziges falsches Leerzeichen konnte ein ganzes System lahmlegen." Wow! Ja, das ist wirklich was Tolles.

    Low Level Programmierung hat auch den Vorteil, daß man den Fehler auf alle finden kann.
    Bei dem abstrahierten Zeug kann der Fehler in der abstrahierten Bibliotheksfunktion stecken und was die intern mit dem Rechner tut, das weiß kaum einer.

    Mit Low Level Programmierung ist es also möglich, zu 99 % zu garantieren, daß der Code fehlerfrei arbeitet.

    Deswegen werden kritische Systeme, wie z.B. die Software von Raumsonden und Raketen überwiegend immer noch in Assembler programmiert.
    Lediglich Ada abstrahiert etwas, die Sprache selbst ist da sicher ok, aber keiner weiß genau, was der Compiler mit dem Code macht.



  • Bashar schrieb:

    NES-Spieler schrieb:

    Wieso haben so viele Computerkenner diese Einstellung?

    Testosteron.

    Lötkolben



  • NES-Spieler schrieb:

    Ich vermisse auch die alten Gasherde.

    Profiköche angeblich auch 😃



  • Low Level vs. High Level schrieb:

    Mit Low Level Programmierung ist es also möglich, zu 99 % zu garantieren, daß der Code fehlerfrei arbeitet.

    Ja und dafür baut man Angriffsflächen für 100 Buffer Overflows ein. Spitze.

    Ich würde mich lieber in ein Flugzeug setzen, in dem Code mit std::strings arbeitet als mit char*.



  • Ich kann das Problem (dass High-Level langweilig ist) nicht bestätigen. Im Gegenteil: OOP und Generetik sind absolut geil!



  • Oldtimer Coder schrieb:

    ...
    Daher die berechtigte Frage:
    Wird Programmieren immer langweiliger, je weiter die Programmiersprache bezüglich ihrer Abstraktion entwickelt ist?

    Assembler->C->C++->WinAPI->MFC->...
    .NET->C#->Bytecode
    C->C++->Java
    ...

    Das was du beschreibst nennt sich Fortschritt. Ich code auch lieber in C/C++, aber um mein weiteres Leben zu sichern entwickle ich zu 90% mit Java, Delphi, PureBasic, ...
    Und es wird nicht langweiliger. Mit neuen Möglichkeiten ergeben sich neue Probleme mit dementsprechend neuen zu erarbeitenden Lösungswegen...
    Aber ich muss sagen Hochsprachen "verdummen" uns allmählich. Kaum einer weiß noch, was das simple LIFO Prinzip ist. Und was zum Teufel ist der Stack-Overflow bei 64KB reservierung, mein Arbeitsspeicher ist doch 4 GB groß!!!????!!!!!
    In dem Sinne, leb in deiner Welt, hab Spaß dort und viel Erfolg, jemand wie ich jedoch geht mit der Zeit und passt sich an, sonst wird man noch gefressen :p



  • Low Level vs. High Level schrieb:

    Deswegen werden kritische Systeme, wie z.B. die Software von Raumsonden und Raketen überwiegend immer noch in Assembler programmiert.

    Quellen?



  • hustbaer schrieb:

    Low Level vs. High Level schrieb:

    Deswegen werden kritische Systeme, wie z.B. die Software von Raumsonden und Raketen überwiegend immer noch in Assembler programmiert.

    Quellen?

    www.nasa.gov
    www.esa.eu



  • hustbaer schrieb:

    Low Level vs. High Level schrieb:

    Deswegen werden kritische Systeme, wie z.B. die Software von Raumsonden und Raketen überwiegend immer noch in Assembler programmiert.

    Quellen?

    Und hier:
    http://code.google.com/p/virtualagc/source/browse/trunk/Luminary099/LUNAR_LANDING_GUIDANCE_EQUATIONS.s?r=258

    http://code.google.com/p/virtualagc/source/browse/trunk/Comanche055/CM_BODY_ATTITUDE.s?r=258

    http://weblog.cenriqueortiz.com/computing/2007/08/18/on-self-modifying-code-and-the-space-shuttle-os/





  • shadow schrieb:

    Assembler->C->C++->WinAPI->MFC->...

    Du denkst C++ wäre mehr "low-level" als WinAPI 😕
    WinAPI dürfte sogar noch vor C stehen 😃



  • Oldtimer Coder schrieb:

    Daher die berechtigte Frage:
    Wird Programmieren immer langweiliger, je weiter die Programmiersprache bezüglich ihrer Abstraktion entwickelt ist?

    Nur wenn die Aufgaben gleich bleiben. Wenn du mal komplexeres zu bewältigen hast, wirst du auch die Abstraktion zu schätzen wissen.



  • cooky451 schrieb:

    shadow schrieb:

    Assembler->C->C++->WinAPI->MFC->...

    Du denkst C++ wäre mehr "low-level" als WinAPI 😕
    WinAPI dürfte sogar noch vor C stehen 😃

    Die WinAPI ist der Wrapper für die Windows-C-Bibliotheken. Assembler ist natürlich immer mit dabei, aber mir selbst ist nur MenuetOS bekannt, wo das System zu 90% in Assembler entwickelt wurde.



  • Oldtimer Coder schrieb:

    Wird Programmieren immer langweiliger, je weiter die Programmiersprache bezüglich ihrer Abstraktion entwickelt ist?

    Aus meiner Sicht hat die Frage, wie viel Spaß das Programmieren macht, mehr mit dem Anwendungsgebiet zu tun, als mit der Art der Programmiersprache. Man kann in allen Programmiersprachen langweilige Sachen programmieren, die keinerlei Herausforderung bieten. Ich würde sogar vermuten, dass das 95% aller Hobbyprogrammierer machen. In dem Fall ist es dann natürlich interessant, sich künstliche Herausforderungen zu schaffen, wie zum Beispiel den Einsatz von Programmiersprachen, die für die Thematik eigentlich schon längst überholt sind.

    Also: Du musst ein interessantes Projekt finden!



  • Low Level vs. High Level schrieb:

    hustbaer schrieb:

    Low Level vs. High Level schrieb:

    Deswegen werden kritische Systeme, wie z.B. die Software von Raumsonden und Raketen überwiegend immer noch in Assembler programmiert.

    Quellen?

    Und hier:
    http://code.google.com/p/virtualagc/source/browse/trunk/Luminary099/LUNAR_LANDING_GUIDANCE_EQUATIONS.s?r=258

    http://code.google.com/p/virtualagc/source/browse/trunk/Comanche055/CM_BODY_ATTITUDE.s?r=258

    Du willst mit Code von 1969 beweisen, dass man in der Raumfahrt "immer noch" in Assembler programmiert?

    http://weblog.cenriqueortiz.com/computing/2007/08/18/on-self-modifying-code-and-the-space-shuttle-os/

    1990, schon besser, genauso nah dran an 1969 wie an 2011.



  • shadow schrieb:

    Die WinAPI ist der Wrapper für die Windows-C-Bibliotheken.

    Also schonmal klar vor C++.

    shadow schrieb:

    Assembler ist natürlich immer mit dabei

    Also könnte man es sogar vor C stellen 😃



  • Die WinAPI ist der Wrapper für die Windows-C-Bibliotheken.

    Die WinAPI ist streng genommen weder nen Wrapper noch ne Bibliothek.
    Sondern nen INTERFACE !!! implementiert durch die Systembibliotheken (kernel,gdi,user ...etc) von windows. Und zwar für die Programmiersprache C und damit fuer alle zu C binaerkompatiblen Sprachen, was c++ und ne ganze Menge Scriptsprachen mit einschliesst.

    Der Vergleich hinkt also gewaltig. Die WinAPI gehoert also ned in die Auflistung, weil sie keine Programmiersprache ist ... Und die Komplexitaet sollte genau gleich C sein, weil sie eben zutiefst C ist, auch wenn sie von Visual basic, Python, Java etc auch adhoc verwendet werden kann.

    Ciao ...


Anmelden zum Antworten