|
Community
Szene & News
Locations
Impressum
|
Forum / Bits und Bytes
Programmiersprachen

bassmaster - 48
Profi
(offline)
Dabei seit 10.2004
631
Beiträge
|
|
Geschrieben am: 20.08.2007 um 17:22 Uhr
|
|
Zitat von DjKoma: Zitat von bassmaster: also ich hab mir mal den senf von wikipedia durchgelesen über skriptsprachen... ich kann ja noch verstehen, dass javascript eine skriptsprache sein soll, aber perl, python, php??? zum teil haben sie objekt orientierte ansätze (also durchaus geeignet für große projekte) auch haben sie die möglichkeit zum debuggen. man kann auch sehr wohl eine typenprüfung einschalten usw... also ein sehr fragwürdiger artikel. vermutlich wurde er geschrieben von nichtsblickern....
Wenn du also der große "Blicker" bist, dann zähl doch mal schnell ein paar PHP oder Perl Compiler auf?
So dumm sind die "Nichstblicker" wohl garnicht, wenn sie im Gegensatz zu dir erkannt haben, dass diese Sprachen als Skript von einem Interpreter abgearbeitet werden.
du scheinst nichtmal fähig zu sein google zu benützen...
http://www.heise.de/ix/artikel/2000/07/169/
du hast wohl den text nicht gelesen. es steht drin, dass skriptsprachen, sprachen sind, die man für kleine / schnelle projekte verwendet. also lässt man alles weg, was ein lagwieriges programmieren ausmacht, wie z.b. objektorientiert, variablentypisierung und ähnliches... das mag richtig sein, dann zähle ich aber keine programmiersprachen auf, die dafür nicht in frage kommen.
wenn du denkst dass eine interpretersprache eine skriptsprache ist, dann ist java und c# auch eine skriptsprache, denn es sie werden zwar kompiliert, aber NICHT in maschienencode. das kompilat ist NICHT lauffähig. es ist ein zwischencode und wird vom just in time compiler ausgeführt - nichts anderes wie ein interpreter. aus einem "print" wird dann einfach ein 0x22 z.b. das lässt sich schneller ausführen.
es gibt für c# eine möglichkeit mit "ngen.exe" echten maschienencode zu kompilieren, der dann auch nicht mehr vom just in time compiler ausgeführt wird, sondern wirklich echter maschienencode erzeugt wird und auch schneller ist. das ganze hat einen nachteil, dieser maschienencode funktioniert nur auf der localen maschiene oder einem gleichen pc. wechselt man das motherboard und man macht anstatt einem intel prozessor einen amd64 rein, kann es sehr gut sein, dass das kompilat nicht mehr lauffähig ist, da ngen prozessor speziefischen code erzeugt....
http://www.impala64.de/blog - http://www.impala64.de/ - www.myspace.com/impala64lowrider
|
|
silver-cloud - 39
Halbprofi
(offline)
Dabei seit 07.2005
312
Beiträge
|
|
Geschrieben am: 20.08.2007 um 19:54 Uhr
|
|
ich will dir ja nicht vorwerfen den wiki text selbst nicht gelesen zu haben...
Zitat: Abgrenzung
Während Skriptsprachen anfangs nur für kleinere Automatisierungen verwendet wurden, werden sie heute teilweise auch in Bereichen eingesetzt, die früher den klassischen Programmiersprachen vorbehalten waren. Dadurch wurde es nötig, die Sprachen um einige der Eigenschaften von kompilierten Sprachen zu erweitern, wodurch sich der Unterschied zu diesen verringerte. So können in vielen der selbstständigen Programmiersprachen Variablen optional deklariert werden. Dies dient einerseits einer besseren Fehlerüberprüfung, andererseits kann der Interpreter dadurch schneller ausgeführt werden.
Andere Techniken haben den Geschwindigkeitsunterschied zu den kompilierten Sprachen verringert. So wird zum einen der Quellcode nicht direkt interpretiert, sondern zuerst in einer Zwischenform, dem sogenannten Bytecode, zu Laufzeiten umgewandelt, der dann wesentlich schneller interpretiert werden kann. Des Weiteren werden häufig verwendete Funktionen oder rechenintensive Teile eines Programms selbst in einer kompilierten Sprache geschrieben und damit stark beschleunigt. Dadurch kann dann das Programm in ähnlicher Geschwindigkeit ausgeführt werden.
(zitat Wikipedia : Skriptsprachen)
Die Grenzen zwischen den verschiedenen "arten" werden immer mehr verwischt weil man natürlich versucht die vorteile von allen zusammen zu bringen...
Du sollst nur soviel Zeit in eine Antwort verschwenden, wie der Anfragende in seinem Startpost.
|
|
Polaris
Experte
(offline)
Dabei seit 07.2006
1766
Beiträge
|
Geschrieben am: 21.08.2007 um 00:05 Uhr
Zuletzt editiert am: 21.08.2007 um 00:13 Uhr
|
|
@bassmaster:
auch wenn wiki wirklich nicht immer zuverlässig ist: die Merkmale von Scriptsprachen passen relativ gut und wenn du sie siehst, wird dir acuh einleuchten, warum Perl, Python etc. Scriptsprachen sind
Zitat: Häufig vorhandene Merkmale sind:
* implizit deklarierte Variablen; dazu gehören auch dynamische Funktionsnamen (Funktionsnamen müssen nicht einem Compiler vorab bekannt sein)
* dynamische, automatische Typumwandlung, bzw. ganz fehlende Typunterscheidung
* automatische Speicherverwaltung, vor allem automatische Speicherbereinigung
* dynamische Klassenzugehörigkeit oder prototypenbasierte Vererbung
* werden in der Regel ohne getrennte Übersetzungsphase ausgeführt (d. h. sie werden „interpretiert“)
Bei einigen Skriptsprachen kann der Programmcode selbst, wie andere Daten auch, manipuliert werden, was die Sprache besonders flexibel macht.
Der OOP Ansatz ist mit C++ genausogut erlernbar wie in C# - auch wenn C++ OOP nicht so zwingend benötigt wie C# (C# ist übrigens auch nicht rein objektorientiert - das ist dann z.B. Objective C).
Gameengines gibt es für C# viele, aber Games werden heute nicht klassisch mit einer Programmiersprache einfach so runtergehackt, sondern man verwendet eben eine Art Grundgerüst (häufig C++ eben), dass durch Scriptdateien (meist in einer eigenen Scriptsprache(nstruktur)) zum Spiel hin erweitert wird (vergleiche GTA ...).
((Hinzufügen möchte ich noch, dass mir deine dauernde Werbesendung für C# aufn Geist geht, obwohl ich die Sprache nach C++ am liebsten habe. Es nerrvt leicht.))
/Edit:
Ja im Bezug aufs Lernen ist C++ nach java/c# vom Prinzip her kein schlechter Ansatz, aber viele Java/c# Programmierer neigen dazu unter C++ jeden Scheißdreck mit new anzufordern (vergessen dann die Freigbe per delete natürlich), jemand der C++ programmiert sollte man auch erkennen, wann es sinnvoll ist eine Stackvariable zu verwenden, auch wenn man gerade lernt mit Pointern und manueller Speicherverwaltung umzugehen.
Patriotismus ist die Tugend der Bosheit! (Oscar Wilde)
|
|
bassmaster - 48
Profi
(offline)
Dabei seit 10.2004
631
Beiträge
|
|
Geschrieben am: 21.08.2007 um 02:57 Uhr
|
|
Zitat von Polaris:
Der OOP Ansatz ist mit C++ genausogut erlernbar wie in C# - auch wenn C++ OOP nicht so zwingend benötigt wie C# (C# ist übrigens auch nicht rein objektorientiert - das ist dann z.B. Objective C).
Gameengines gibt es für C# viele, aber Games werden heute nicht klassisch mit einer Programmiersprache einfach so runtergehackt, sondern man verwendet eben eine Art Grundgerüst (häufig C++ eben), dass durch Scriptdateien (meist in einer eigenen Scriptsprache(nstruktur)) zum Spiel hin erweitert wird (vergleiche GTA ...).
((Hinzufügen möchte ich noch, dass mir deine dauernde Werbesendung für C# aufn Geist geht, obwohl ich die Sprache nach C++ am liebsten habe. Es nerrvt leicht.))
/Edit:
Ja im Bezug aufs Lernen ist C++ nach java/c# vom Prinzip her kein schlechter Ansatz, aber viele Java/c# Programmierer neigen dazu unter C++ jeden Scheißdreck mit new anzufordern (vergessen dann die Freigbe per delete natürlich), jemand der C++ programmiert sollte man auch erkennen, wann es sinnvoll ist eine Stackvariable zu verwenden, auch wenn man gerade lernt mit Pointern und manueller Speicherverwaltung umzugehen.
lassen wir das thema scriptsprachen, denn man kann sich da gneauso streiten wie um linux / windows... für mich ist perl und php beides keine skriptsprachen, obwohl ich zugegebenermaßen perl schon oft als skriptsprache verwendet habe. man muss aber dazusagen, dass ich die programme die ich in perl geschrieben habe immer kompiliert habe um nicht auf die perlinstallation angewiesen zu sein. kostenlose (mit werbeeinblendung) compiler gibt es ja.
der anteil der skriptsprache bei den spielen, von dem du die codes runterladen kannst in ein bruchteil von dem reinen c++ sourcecode, selbst wenn man die eigentliche gameengine weglässt.
also ich würde mich als c++ experte einschätzen und trotzdem hasse ich die programmiersprache. ich bin leider gezwugen zwei alte projekte die auf pocketpc / wm5 / wm6 laufen weiter auf c++ zu warten und zu erweitern. ich habe auch seit mehreren jahren keine memoryleaks mehr gehabt. man muss einfach professionell programmieren, dann kommt das nicht vor. smart pointer verwenden wo man auf pointer angewiesen ist, referenzen verwenden mit copyconstruktoren um pointer zu vermeiden. usw... aber c++ als lieblingssprache zu nennen ist schon krass, wenn man mal eine rad (rapid application development) sprache kann wie c#. mir scheint du musstest noch nie einen comserver programmieren, wo es von mehrfachvererbung nur noch hagelt. du scheinst wohl auch noch nie große projekte von pfuschern übernommen zu haben, wo es nur noch defines gibt und andere schweinereien. ich muss zugeben c++ ist mit einer anständigen framework (was mfc definitif nicht ist) schon sehr angenehm. z.b. mit qt oder mit der .net framework / managed extension. trotzdem wird c++ nie zu einer rad programmiersprache und wird auf lange sicht aussterben. halbjährliche statistiken auf codeproject bestätigen es. alle neuen projekte die wir anfangen werden ausschließlich in c# programmiert. es gibt nicht einen einzigen grund, wieso wir ein projekt in c++ programmieren sollten.
oop mit c++ zu lernen ist nur die halbe miete. man kann zwar schön vererbung, ableitung und polymorphie usw.. lernen, aber zeig mir doch mal bitte objetorientierte callback methoden in c++. sowas möchte ich nicht mehr missen.
http://www.impala64.de/blog - http://www.impala64.de/ - www.myspace.com/impala64lowrider
|
|
Polaris
Experte
(offline)
Dabei seit 07.2006
1766
Beiträge
|
Geschrieben am: 21.08.2007 um 12:33 Uhr
Zuletzt editiert am: 21.08.2007 um 12:34 Uhr
|
|
Zitat von bassmaster:
also ich würde mich als c++ experte einschätzen und trotzdem hasse ich die programmiersprache. ich bin leider gezwugen zwei alte projekte die auf pocketpc / wm5 / wm6 laufen weiter auf c++ zu warten und zu erweitern. ich habe auch seit mehreren jahren keine memoryleaks mehr gehabt. man muss einfach professionell programmieren, dann kommt das nicht vor. smart pointer verwenden wo man auf pointer angewiesen ist, referenzen verwenden mit copyconstruktoren um pointer zu vermeiden. usw... aber c++ als lieblingssprache zu nennen ist schon krass, wenn man mal eine rad (rapid application development) sprache kann wie c#. mir scheint du musstest noch nie einen comserver programmieren, wo es von mehrfachvererbung nur noch hagelt. du scheinst wohl auch noch nie große projekte von pfuschern übernommen zu haben, wo es nur noch defines gibt und andere schweinereien. ich muss zugeben c++ ist mit einer anständigen framework (was mfc definitif nicht ist) schon sehr angenehm. z.b. mit qt oder mit der .net framework / managed extension. trotzdem wird c++ nie zu einer rad programmiersprache und wird auf lange sicht aussterben. halbjährliche statistiken auf codeproject bestätigen es. alle neuen projekte die wir anfangen werden ausschließlich in c# programmiert. es gibt nicht einen einzigen grund, wieso wir ein projekt in c++ programmieren sollten.
Die meisten Projekte, die ich gemacht habe, waren - bis auf eine Ausnahme - meine eigenen - bin noch nicht im Berufsleben^^, sondern mache das mehr als Hobby nebenher zur Schule.
Na ja C++ lässt sich - wie du schon angesprochen hast - wenn man es als C++-CLI oder auch im Codegear Studio oder mit Qt oder wxWidgets nimmt auch für RAD verwenden.
Na ja und Aussterben halte ich für sehr überzogen - MS selbst rudert momentan mit dem .NET Framework mittlerweile etwas zurück und Vista wurde ebenfalls mit C++ programmiert, gleiches gilt für die allermeisten Treiber. Wenn man hardwarenah programmieren muss, dann ist C++ immer noch die erste Wahl (zumindest hab ich für meine ATmel Microcontroller noch nie ne Java VM gesehen - wobei bei ATmels natürlich auch sehr viel mit ASM und C gearbeitet wird).
Und Sprachmittel wie templates finden sich in C# auch nicht in der Form wieder (ja ich weiß, es gibt Generics, aber die sind bei weitem nicht so vielseitig wie templates).
Vllt denke ich später anders, aber gerade mit Dingen, wie Speicher selber verwalten, template-Programmierung machen mir momentan einfach viel Spaß ^^
Zitat: oop mit c++ zu lernen ist nur die halbe miete. man kann zwar schön vererbung, ableitung und polymorphie usw.. lernen, aber zeig mir doch mal bitte objetorientierte callback methoden in c++. sowas möchte ich nicht mehr missen.
Gut, dass mit den Callbackmethoden stimmt, aber dafür ich kann ja unter C++ den ()-Operator überladen und das ganze so lösen.
Ach ja:
Ich wusste gar nicht, dass man dem Copykonstruktor auch einen Pointer übergeben kann, ich war davon ausgegangen, dass eine Referenz zwingend ist ...
- mal kurz testen - tatsächlich ein Pointer geht sogar, aber gut, ich meine, wer bei nem Cpykonstruktor n Pointer verwendet ist echt dämlich und in keinem meiner C++ Referenzen findet sich so ein Konstrukt und man wird selten einen guten C++ Programmierer finden, der hier einen Pointer einsetzt.
Und nochwas:
Meiner Meinung nach hat jede Programmiersprache von Pascal bis J# ihre Daseinsberechtigung und es kommt immer auf den Zweck drauf an - für eine einfach Windowsapplikation z.B. würde ich auch immer C# verwenden, aber als es z.B. darum ging mit Sockets zu programmieren, war ich schnell wieder bei boost::asio angelangt .
Patriotismus ist die Tugend der Bosheit! (Oscar Wilde)
|
|
bassmaster - 48
Profi
(offline)
Dabei seit 10.2004
631
Beiträge
|
|
Geschrieben am: 21.08.2007 um 15:52 Uhr
|
|
leider ist die welt nicht immer so schön, wie du sie erlebt hast. wenn man alleine ein kleines projekt macht, dann kennt man sich wunderbar aus, macht nur seine dirty hacks rein und alles ist gut. die realität sieht leider ein bischen anders aus. mitarbeiter werden gekündigt, manche gehen weil sie wo anders mehr verdienen und du stehst vor einem projekt mit mehreren hundert tausend zeilen code, wo 4 frameworks verwendet werden, die alle ihre eigenarten haben, von denen du aber nur 2 kennst. zusätzlich haben ein paar "spezialisten" an den projekt programmiert, die quellcode in defines gemacht haben, mehrfach vererbung, friend classen, und c code, der in c++ wrapper klassen eingebaut worden sind usw... jetzt sollst du unter zeitdruck abstürze fixen, performanceprobleme eliminieren, threadprobleme wie race conditions abfangen, korrupten stack oder buffer overflows entfernen usw... glaube mir du wirst deine meinung über c++ gewaltig ändern.
http://www.impala64.de/blog - http://www.impala64.de/ - www.myspace.com/impala64lowrider
|
|
SpongeBernd - 34
Champion
(offline)
Dabei seit 06.2006
2277
Beiträge
|
|
Geschrieben am: 21.08.2007 um 16:00 Uhr
|
|
meiner meinung nach ist Basic am einfachsten zu erlernen (jetz nicht gerade VB, wobei man damit auch anfagnen kann...siehe ich^^)...aber für komplexere sachen würd ich C++ oder Java empfehlen...
Jetz kommts halt noch drauf an, was du programmeren willst
|
|
Polaris
Experte
(offline)
Dabei seit 07.2006
1766
Beiträge
|
|
Geschrieben am: 21.08.2007 um 17:07 Uhr
|
|
Zitat von bassmaster: leider ist die welt nicht immer so schön, wie du sie erlebt hast. wenn man alleine ein kleines projekt macht, dann kennt man sich wunderbar aus, macht nur seine dirty hacks rein und alles ist gut. die realität sieht leider ein bischen anders aus. mitarbeiter werden gekündigt, manche gehen weil sie wo anders mehr verdienen und du stehst vor einem projekt mit mehreren hundert tausend zeilen code, wo 4 frameworks verwendet werden, die alle ihre eigenarten haben, von denen du aber nur 2 kennst. zusätzlich haben ein paar "spezialisten" an den projekt programmiert, die quellcode in defines gemacht haben, mehrfach vererbung, friend classen, und c code, der in c++ wrapper klassen eingebaut worden sind usw... jetzt sollst du unter zeitdruck abstürze fixen, performanceprobleme eliminieren, threadprobleme wie race conditions abfangen, korrupten stack oder buffer overflows entfernen usw... glaube mir du wirst deine meinung über c++ gewaltig ändern.
Nun, dass dich solche Dinge ankotzen kann ich gut verstehen. Aber das was du beschrieben hast liegt weniger daran, dass C++ ne schlechte Sprache ist, sondern, dass es zu viele unfähige C++ Programmierer gibt (bzw. die, die eben mehr C als C++ schreiben). In ner Sprache wie C++, die eben viele Dinge zulässt, kann sowas fatale Auswirkungen haben.
Na ja, schauen wir mal, was die Zukunft bringt^^.
Patriotismus ist die Tugend der Bosheit! (Oscar Wilde)
|
|
bassmaster - 48
Profi
(offline)
Dabei seit 10.2004
631
Beiträge
|
|
Geschrieben am: 21.08.2007 um 17:46 Uhr
|
|
Zitat von Polaris:
Nun, dass dich solche Dinge ankotzen kann ich gut verstehen. Aber das was du beschrieben hast liegt weniger daran, dass C++ ne schlechte Sprache ist, sondern, dass es zu viele unfähige C++ Programmierer gibt (bzw. die, die eben mehr C als C++ schreiben). In ner Sprache wie C++, die eben viele Dinge zulässt, kann sowas fatale Auswirkungen haben.
Na ja, schauen wir mal, was die Zukunft bringt^^.
c++ ist eine programmiersprache, die über die jahre gewachsen ist. leider musste man alte relikte mitnehmen um kompatibel zu bleiben. es liegt nicht an den unfähigen programmieren unbedingt, dass es scheiße ist, es liegt einfach daran, dass man alles machen kann. du kannst einen pointer in einer klasse casten in was du willst ohne fehler. wenn du dann später auf membervariablen zugreifst oder methoden aufrufst, wirst du dich wundern was passiert. sowas geht einfach nicht. in c# oder java bekommt man einfach eine invalid cast exception und alles ist gut... oft stürzt das c++ programm minuten oder stunden später deswegen erst ab.
bücher wie "effektiv c++ programmieren" und "mehr effektiv c++ programmieren" mussten geschrieben werden und sind einer der besten c++ bücher, weil die sprache zu viel mist zulässt. genau aus diesen fehlern hat man gelernt und von null auf sprachen wie java und c# geschrieben.
ich könnte aus meiner jahrelangen erfahrung stunden lang über c++ reden, wie schlecht die programmiersprache ist. aber vermutlich muss man erst die ganzen probleme erst in riesen projekten mitmachen um mitzufühlen.
http://www.impala64.de/blog - http://www.impala64.de/ - www.myspace.com/impala64lowrider
|
|
Polaris
Experte
(offline)
Dabei seit 07.2006
1766
Beiträge
|
|
Geschrieben am: 21.08.2007 um 18:13 Uhr
|
|
Zitat von bassmaster:
c++ ist eine programmiersprache, die über die jahre gewachsen ist. leider musste man alte relikte mitnehmen um kompatibel zu bleiben. es liegt nicht an den unfähigen programmieren unbedingt, dass es scheiße ist, es liegt einfach daran, dass man alles machen kann. du kannst einen pointer in einer klasse casten in was du willst ohne fehler. wenn du dann später auf membervariablen zugreifst oder methoden aufrufst, wirst du dich wundern was passiert. sowas geht einfach nicht. in c# oder java bekommt man einfach eine invalid cast exception und alles ist gut... oft stürzt das c++ programm minuten oder stunden später deswegen erst ab.
Nun, dynamic_cast wirft ebenfalls Exceptions; static_cast kann nur verwandte Typen casten.
Wenn man aber mit Gewalt über reinterpret_cast und const_cast Mist macht, dann gibt man damit dem Compiler zu verstehen "Ich habe Recht" und wenn man da dann Scheiße baut, ist man selbst Schuld, wenn man in Segfaults etc. reinrennt - wer intelligenter sein will als der Compiler muss wohl auch die Konsequenzen tragen^^.
Zitat: bücher wie "effektiv c++ programmieren" und "mehr effektiv c++ programmieren" mussten geschrieben werden und sind einer der besten c++ bücher, weil die sprache zu viel mist zulässt. genau aus diesen fehlern hat man gelernt und von null auf sprachen wie java und c# geschrieben.
ich könnte aus meiner jahrelangen erfahrung stunden lang über c++ reden, wie schlecht die programmiersprache ist. aber vermutlich muss man erst die ganzen probleme erst in riesen projekten mitmachen um mitzufühlen.
Nun, die Bücher Scott Meyers sind echt gut und wie gesagt, mal gucken, was ich noch für erfahrungen mit C++ mache.
Patriotismus ist die Tugend der Bosheit! (Oscar Wilde)
|
|
spark82 - 43
Halbprofi
(offline)
Dabei seit 11.2006
240
Beiträge
|
Geschrieben am: 21.08.2007 um 18:15 Uhr
Zuletzt editiert am: 21.08.2007 um 18:18 Uhr
|
|
Zitat von bassmaster:
ich könnte aus meiner jahrelangen erfahrung stunden lang über c++ reden, wie schlecht die programmiersprache ist. aber vermutlich muss man erst die ganzen probleme erst in riesen projekten mitmachen um mitzufühlen.
...und genau bei diesen Projekten kann man lernen, wie man sauber programmiert. (Vorrausgesetzt, man ist in der richtigen Firma!) In dem, was du als Nachteil von C++ siehst, sehe ich einen Vorteil, nämlich die Mächtigkeit der Sprache. Nur weil fast alles möglich ist, kann man auch in C++ trotzdem sauber codieren. Wenn du deine bösen Casts in einer Klasse kapselst, nach außen hin unsichtbar, dann ist das doch kein Probem. Die Linux-Menschen konnten einen ganzen Kernel in C++ schreiben, und - er tut.
Wer nicht weiß, was beim Casten passiert, bzw. dass er sich vollkommen im Klaren sein muss, was passiert, der sollte es besser lassen.
Es gibt aber leider viel zu viele Entwickler die eine gewisse Hacker-Metalität an den Tag legen. Wenn im Code mal Komentare wie "//Trick!" oder so auftauchen, weil per #define ein Header durch einen anderen ersetzt wurde - sorry, dann kann man wirklich nicht mehr helfen! Aber die Unfähigkeit solcher Entwickler als Nachteil der Spache auszulegen ist mMn falsch.
EDIT: Auch wenn ich mich in dem Beitrag hauptsächlich auf CASTs beziehe gilt das natürlich für alle unsauberen Sachen, die C und C++ erlauben.
Das schlimmste an Zensur ist XXXXXXXX XXXXXX.
|
|
Polaris
Experte
(offline)
Dabei seit 07.2006
1766
Beiträge
|
Geschrieben am: 21.08.2007 um 18:19 Uhr
Zuletzt editiert am: 21.08.2007 um 18:25 Uhr
|
|
Zitat von spark82: Die Linux-Menschen konnten einen ganzen Kernel in C++ schreiben, und - er tut.
Falsch, der Linux Kernel ist in ANSI-C programmiert und wenn du ihn dir mal anschaust:
einen derart hässlichen Code hast du noch nie gesehen^^.
Wie da gecastet wird, mit Pointern um sich geschmissen wird und auch dadurch versucht wird eine Art Objektorientierung reinzubringen, das ist nicht mehr feierlich.
Ansonsten stimme ich deinem Post voll und ganz zu.
/Edit:
Aber der Vistakernel ist in C++ geschrieben^^
Patriotismus ist die Tugend der Bosheit! (Oscar Wilde)
|
|
silver-cloud - 39
Halbprofi
(offline)
Dabei seit 07.2005
312
Beiträge
|
|
Geschrieben am: 21.08.2007 um 21:25 Uhr
|
|
Es gibt einen spruch zu C++ "Man bekommt genug Seil um sich damit zu erhängen", es ist ne leichtigkeit mit C++ mal kurz seinen PC schrottreif zu bekommen, aber genau das kann man auch als vorteil sehen.
Nur weil es nicht idiotensicher ist, es als schlecht abzustempeln ist ein wenig voreilig oder? An einer Drehbank kann man sich locker schwer verletzen wenn man mist baut und es absolut nicht drauf hat, trotzdem ist es kein schlechtes Werkzeug oder?
Natürlich hat C++ schwächen, aber die sind Situationsabhängig, wie halt jede Programmiersprache situationsabhängig ist. Und natürlich wird C++ ausstreben, genau wie Java, C# VB Delphi etc. ist nur die frage wann. Ewig lange wird es nicht dauern ^^
Als Wissenschaft in den Kinderschuhen wird die Informatik da sicher schnellere Fortschritte machen mit der Zeit.
Was sich sicher nicht ändern wird, ist das manche etwas für besser halten als andere und umgekehrt. Ich kann kein C# alles was ich bisher gemacht hab, hab ich in PHP (einer scriptsprache :P ) in Delphi oder in C++ gemacht wobei in den letzten Jahren nurnoch C++ dran war und das reicht mir und wird mir auch im Studium helfen, warum? Weils mehr um die Konzepte geht nicht um die spezielle SPrache :D
Du sollst nur soviel Zeit in eine Antwort verschwenden, wie der Anfragende in seinem Startpost.
|
|
Rifleman - 40
Experte
(offline)
Dabei seit 09.2003
1540
Beiträge
|
|
Geschrieben am: 21.08.2007 um 21:54 Uhr
|
|
Zitat von Polaris: Falsch, der Linux Kernel ist in ANSI-C programmiert und wenn du ihn dir mal anschaust:
einen derart hässlichen Code hast du noch nie gesehen^^.
Auch nicht richtig. Neben ein paar arch-Sachen in Assembler ist der größte Teil C, aber nicht ANSI-C.
Der GCC ist auch der einzige Compiler, mit dem er sich übersetzen lässt...zumindest war das lange Zeit so..
Es sind die kleinen Dinge, die einen zum Wahnsinn treiben.
|
|
bassmaster - 48
Profi
(offline)
Dabei seit 10.2004
631
Beiträge
|
|
Geschrieben am: 22.08.2007 um 01:52 Uhr
|
|
Zitat von spark82: Zitat von bassmaster:
ich könnte aus meiner jahrelangen erfahrung stunden lang über c++ reden, wie schlecht die programmiersprache ist. aber vermutlich muss man erst die ganzen probleme erst in riesen projekten mitmachen um mitzufühlen.
...und genau bei diesen Projekten kann man lernen, wie man sauber programmiert. (Vorrausgesetzt, man ist in der richtigen Firma!) In dem, was du als Nachteil von C++ siehst, sehe ich einen Vorteil, nämlich die Mächtigkeit der Sprache. Nur weil fast alles möglich ist, kann man auch in C++ trotzdem sauber codieren. Wenn du deine bösen Casts in einer Klasse kapselst, nach außen hin unsichtbar, dann ist das doch kein Probem. Die Linux-Menschen konnten einen ganzen Kernel in C++ schreiben, und - er tut.
Wer nicht weiß, was beim Casten passiert, bzw. dass er sich vollkommen im Klaren sein muss, was passiert, der sollte es besser lassen.
Es gibt aber leider viel zu viele Entwickler die eine gewisse Hacker-Metalität an den Tag legen. Wenn im Code mal Komentare wie "//Trick!" oder so auftauchen, weil per #define ein Header durch einen anderen ersetzt wurde - sorry, dann kann man wirklich nicht mehr helfen! Aber die Unfähigkeit solcher Entwickler als Nachteil der Spache auszulegen ist mMn falsch.
EDIT: Auch wenn ich mich in dem Beitrag hauptsächlich auf CASTs beziehe gilt das natürlich für alle unsauberen Sachen, die C und C++ erlauben.
man liest raus, dass du noch nie mit klassen hantieren musstest, die mehrfach vererbt wurden und abgeleitet sind ohne ende und dann doch ein paar friend klassen haben.
ich weiß, kein guter programmierer verwendet mehrfachvererbung... wieso gibt es das dann??? ach ja, alle com server sind mehrfachvererbt...
ich kann dir nur das buch "go to com" empfehlen. das ist einer der wenigen bücher, die sich wirklich mit comserver beschäftigen und was genau dahinter steckt. ein com server mit den wizard herzustellen kann ja jeder. was aber dahinter steckt, wissen eine handvoll.
wenn du das buch gelesen hast, wird dir vielleicht klar, wieso es nicht ganz so einfach ist mit dem casten....
http://www.impala64.de/blog - http://www.impala64.de/ - www.myspace.com/impala64lowrider
|
|
Forum / Bits und Bytes
|