Einzelnen Beitrag anzeigen
#5
Alt 10.01.09, 14:34:17
Zahl
Benutzerbild von Zahl
Senior Member
Registriert seit: 29.01.03
Alter: 38
Geschlecht: ♂
Beiträge: 11.522
IRC Zeilen: 181312
Quizrunden gewonnen: 76

Goldener Topposter Silberne Postauszeichnung Bronzener Topposter Blecherner Postaward Core-Award 

Zahl eine Nachricht über ICQ schicken
Das Problem ist immer, den richten Blickwinkel zu haben, welchen es wahrscheinlich nicht mal gibt.
Ich bin auch jemand, der lieber bescheid weiß, was unter der Haube passiert, darum habe ich mich schon intensiver mit C und C++ beschäftigt, mit einfachen Datenstrukturen, der Speicherverwaltung des Computers an sich, etc...
Nun ist es ja in den höheren Sprachen wie Java und C# so, dass vieles vereinfacht wird und schon vorgegeben ist, z.B. gibt es Vektoren, Listen, Collections, und Leute die direkt in diesen Sprachen eingestiegen sind, wissen oft nur, wie diese zu Benutzen sind, nicht aber, was wirklich passiert, wenn man dort Elemente einfügt oder entfernt.
So ist es mir im Studium schon ein paar mal so gegangen, dass sich jemand über ein extrem langsam laufendes C# oder Javaprogramm beschwert hat, und wenn man sich das dann angeguckt hat sah man, dass dort beispielweise irgend eine Liste o.ä. völlig ineffizient genutzt wurde, und man musste der entsprechenden Person erstmal erklären, was dort eigentlich noch alles im Verborgenen passiert, beispielweise wird zig mal die gleiche Berechnung ausgeführt, und durch eine kleine Umstrukturierung spart man mal eben 100000 Rechenoperationen pro Schleifendurchlauf mit dem gleichen Endergebnis.

Andererseits war es mit C++ Anfangs nicht anders. Auch dort wird schon viel abstrahiert im Vergleich zu C oder Assembler, wo sich vielleicht zu Zeiten des 75MHz Computers einige alteingesessene Programmierer die Hände überm Kopf zusammen geschlagen haben, wenn sie mal den Assemblercode gesehen haben, den C++ so generiert.
Z.B. verwendet der delete Befehl in C++ auch mehr oder weniger nur den free() Befehl aus C, mit einigem Kram drumrum, den man sicher bei direkter Verwendgun von free() besser umsetzen könnte. Heute macht es lediglich keinen Unterschied mehr, da wir 3GHz in unseren Rechnern haben.
Genau so wird es denke ich weiter gehen. C# eignet sich schon heute hervorragend für einige Aufgaben, und wenn wir in 5 Jahren irgend welche ineffizienten Programme auf 6GHz 8kern CPUs Laufen lassen mit 64GB Hauptspeicher, dann weint dem auch keiner mehr nach.
Die Frage ist immer, wo man sich im Jetzt plaziert.
So gibt es auch heute noch Leute, die nur auf C setzen und ab und zu mal C++, und alles was in einer VM läuft für Teufelswerk halten. Ich denke, man sollte sich einfach in der Mitte plazieren (wobei das wahrscheinlich auch schon wieder Definitionssache ist.)
Nicht jeden neuen Scheiß der gehyped wird sofort mitmachen, aber auch nicht noch 10 Jahre mit Windows 2000 rumgurken. Erstmal abwarten, bei etwas Solidem bleiben, aber das neue nicht aus den Augen verlieren. Es kann sich schließlich immernoch etablieren.
Ich bastel z.B. gerne in C++ rum, vor allem weils schnell ist. Für simple GUI Anwendungen setze ich immernoch auf VB6, es hat zwar nur sehr beschränkte OOP Möglichkeiten, aber die Anwendungen lassen sich schnell zusammen schustern, es gibt keine Overflows, und das Debuggen ist auch bequem. Für Anwendungen wo man viel Fertigzeug gebrauchen kann hält dann schonmal C# her, da wird man ja mit Klassen für alle möglichen und unmöglichen Einsatzgebiete nahezu erschlagen.


風向轉變時,有人築牆,有人造風車