Blick in die Kristallkugel
-
wenn du die stl nicht benutzen willst, ist das genauso wie wenn du das schlüsselwort "class" meidest. Ansonsten: C++ ist wohl die sprache deiner wahl, da das kommitee nie irgendetwas rauswerfen wird.
-
Ganz einfach: COBOL und FORTRAN waren und sind spezialisiert auf einen
Zweck, da ist die Konkurrenz klein. C,C++,Java,C# dagegen sind universell
und für fast alle Zwecke zu gebrauchen - da ist die Konkurrenz größer.(Wo sind eigentlich ALGOL,PASCAL,ADA und PL/M heute ?)
Ich hoffe, daß Du recht hast und C/C++ langlebig wie FORTRAN wird.Also ich sehe zu C++ keine direkte Konkurrenz! C#? Java? Sorry, aber diese Sprachen benötigen eine VM, eine Runtime-Lib um vernünftig zu funktionieren (ich will jetzt keinen Roman schreiben, ihr wisst was ich meine?).
Bei C++ sieht die Welt ganz anders aus. C++ gibt es für JEDE Platform. Kann ich Java, C#, Perl, Phyton für meine SEGA Dreamcast (SuperHitachi4-CPU), für meinen Acorn Archimedes/RiscPC (ARM-CPU), für den AmigaOne (PowerPC-CPU) benutzen??? Nein! Aber einen C++ Compiler habe ich für jede der genannten Platformen. Java, C# usw. gibt es für diese nicht. Ja, jetzt kann jeder ankommen und sagen: "Da muß doch nur jemand die VM implementieren". Ja, eben! Und das macht keiner!
Selbst für meinen Acorn hab ich den aktuellen GCC-Compiler sammt Standard-Lib und Firefox wurde sogar auf RiscOS portiert, in dem man einfach den GCC genommen hat und die Libs portiert hat. Auf dem Amiga wird gerade OpenOffice portiert (ist komplett C++ und nicht Java, wie von vielen Java-Fans behauptet!).
Ich habe auf meiner Dreamcast folgendes gemacht: http://www.kharchi.de/dcscode/index.html
Auf der Dreamcast gibt es massig Hobby-Software die mit C und C++ programmiert wurden.
Egal ob zeta (BeOS), PalmOS... ich kann garnicht alle Platformen aufzählen, für die es C++ Compiler gibt. Also, wo ist bitte die Konkurrenz die C++ wirklich ersetzen kann???
Gibt es nicht!
Wieviele C++ Compiler gibt es eigentlich? GCC von GNU, Codewarrior, MS C++, Digital Mars, Intel C++, Acorn C/C++, Storm C (Amiga) uvm. Das sind nur die die mir spontan einfallen. Soll diese Vielfalt aussagen, das C++ in Zukunft keine Bedeutung haben wird? Das beweist eher, trotz Hyper-Duper-Giga-Marketing für Java und C#, das C++ _ohne_ Marketing sehr verbreitet ist. Ich finde das sehr beachtlich und ohne SUNs Marketing wäre Java ein Fliegenschiss.
-
Ja, jetzt kann jeder ankommen und sagen: "Da muß doch nur jemand die VM implementieren". Ja, eben! Und das macht keiner!
Den GCC musste aber genauso irgendjemand mal für diese oder jene Plattform portieren.
Ein Compiler allein ist halt nicht so komplex wie ein Compiler mit beiliegendem Framework.Btw. warum sollte man sich so ein Rießenprojekt auch antun, wenn keine wirkliche Nachfrage danach besteht.
Wenns das Projekt verlangt muss man halt eben eine andere Sprache einsetzen ..Das beweist eher, trotz Hyper-Duper-Giga-Marketing für Java und C#, das C++ _ohne_ Marketing sehr verbreitet ist. Ich finde das sehr beachtlich und ohne SUNs Marketing wäre Java ein Fliegenschiss.
Das ist mir persönlich scheiß egal, solang ich professioneller wirke,
wenn ich mit dem Strom fließe. Ist natürich nur ne persönliche Meinung ..Also ich sehe zu C++ keine direkte Konkurrenz! C#? Java? Sorry, aber diese Sprachen benötigen eine VM, eine Runtime-Lib um vernünftig zu funktionieren (ich will jetzt keinen Roman schreiben, ihr wisst was ich meine?).
Und aus genau dem selben Grund hat sich DirectX letztendlich nie durchsetzen können ..
-
außenstehender schrieb:
Das ist mir persönlich scheiß egal, solang ich professioneller wirke,
wenn ich mit dem Strom fließe. Ist natürich nur ne persönliche Meinung ..ROFL
-
außenstehender schrieb:
Und aus genau dem selben Grund hat sich DirectX letztendlich nie durchsetzen können ..
WTF
-
Artchi: blablabla! Bist du immer noch sauer, dass du im Beruf mit Java programmieren mußt und nicht mit C++? Oder hast du inzwischen die Firma gewechselt? Hört sich ja schrecklich an, dein Text.
OpenOffice ist übrigens genausowenig komplett C++, wie es komplett Java ist. Es beinhaltet Teile von Java. Hast du die entsprechende Diskussion vor einiger Zeit nicht mitgekriegt? War auf allen IT-News-Seiten präsent.
Deine C++-Compiler-Liste ist ja wirklich sehr beeindruckend (wobei ich auch JVMs von 10 verschiedenen Herstellern aufzählen kann). Sind die C++ Compiler eigentlich inzwischen alle Standardkonform? Vermute ich einfach mal. Aber wie lange soll es nach dem nächsten Standard dauern, bis die Compiler nachziehen? Wer garantiert in dem Fall eigentlich Standardkonformität? Gibt es ein Tool, mit dem man das Testen kann oder muss man ausprobieren und hoffen? Ich würde auch nicht behaupten, dass die Kompatibilität in der Zukunft garantiert ist: Heutzutage wird einem das "void main" um die Ohren gehauen, während es vor ein paar Jahren keine Probleme gemacht hat. Abgesehen davon darfst du nicht vergessen, dass auch die Bibliotheken, die du nutzt, auf alle Plattformen portiert sein müssen, sonst kannst du die Portabilität mit C++ vergessen und du landest wieder da, wo du auch mit Java oder C# bist. Die "Hauptplattformen" werden unterstützt und es gibt ein paar mehr oder weniger nutzbare Implementierungen für die Nebenplattformen.
-
Klar ist nur die generelle Marschroute des "Mainstream": Weg von "technischen" Sprachen und hin zu problemorientierten Sprachen (siehe Entwicklung von Assembler zu C#). In 10-20 Jahren wird der Standardprogrammierer mit Sicherheit nicht mehr mit Pointern rumfummeln (hoffe ich zumindest
)
-
Plattformunabhängigkeit ist erst erreicht, wenn es nur noch eine Plattform gibt.
@Artchi: Java und C# sind nicht wirklich mit C++ vergleichbar, die Sprachen verfolgen in ihrer Entwicklung komplett unterschiedliche Ziele. Außerdem bin ich der Meinung, dass sie auf verschiedenen Ebenen liegen. Java und C# sind highleveliger (Gibts dafür ein anderes Wort
) als C++. Je nach Einsatzzweck wird man wählen. Genauso wie Assembler für RAD ungeeignet ist, ist Java ungeeignet um auf einem Toaster Programme auszuführen, weil eben niemand daran interessiert ist JVMs für Toaster zu schreiben. Außer der Syntax und dem leichten Hang zur OOP haben die beiden Sprachen doch ziemlich wenig miteinander zu tun. Diese ewigen Diskussionen sind doch komplett sinnlos
Einzig und allein im Bereich der Anwendungsprogrammierung überschneiden sich die Sprachen. Hier wird man nach detaillierteren Kriterien vorgehen und die für den jeweiligen Zweck geeignetere Sprache suhcen. Doch das entscheiden meistens Projektleiter und Direktoren, der Programmierer sieht bloß zu.
MfG SideWinder
-
Weg von "technischen" Sprachen und hin zu problemorientierten Sprachen
Kommt ganz auf den Anwendungszweck drauf an, wenn du Treiber programmierst wirst du auch heute nicht um eine "technische" Sprache herumkommen. Doch der Teil der Programme der bestimmt welche Sprache nun Mainstream ist, sind offenbar GUI-Programme auf PC-Betriebssystemen. Dort ist eine problemorientierte Sprache derzeit die bessere Wahl, da man sich mehr auf die Aufgabe an sich, auf das Problem wie schon im Namen steckt, konzentrieren kann.
MfG SideWinder
-
interpreter schrieb:
(siehe Entwicklung von Assembler zu C#)
Ja, die Assembler haben sich wirklich erstaunlich entwickelt
Jetzt weiß ich auch, warum die Pakete bei C#.net Assemblies heißen.
-
@SideWinder: Ich habe explizit vom Mainstream gesprochen.
@SeppSchrot: Ich habe von der Entwicklung der Sprachen geredet und nicht der Entwicklung einer Sprache.
-
SideWinder schrieb:
Java und C# sind highleveliger (Gibts dafür ein anderes Wort
) als C++.
Das würde ich nicht unbedingt sagen. C++ bietet einige Abstraktionsmöglichkeiten, die Java oder C# so nicht bieten. Insofern kann man mit C++ auch auf sehr hohem Level programmieren. Das Problem von C++ ist einfach nur die absolut unzureichende Standardbibliothek. Wenn C++ ein Äquivalent zur Standardbibliothek von Java hätte, dann würdest du Java oder C# sicherlich nicht mehr als "highleveliger" bezeichnen.
---> Wenn man von Kleinigkeiten, wie Unterstützung von Threads usw. absieht.
-
otze:
wenn du die stl nicht benutzen willst, ist das genauso wie wenn du das schlüsselwort "class" meidest.<<
hast mich überredet -
na gut, dann nehme ich ab jetzt class string statt char...[80] und wehe, in 20 Jahren kennt der Compiler die STL nicht mehrAnsonsten: C++ ist wohl die sprache deiner wahl, da das kommitee nie irgendetwas rauswerfen wird.<<
Den Eindruck habe ich langsam auch gewonnen - hab mir gerade das Stroustroup-Paper
über die Entwicklung von C++0x durchgelesen, und Stroustroup schreibt dort
tatsächlich, daß die Gewährleistung der Compilierbarkeit von Standard ('98) C++-Quellen mit C++0x -Compilern vordere Priorität hat.Bleibt noch das Risiko, daß die C-C++-Linie in Jahren abgelöst wird durch
eine ganz andere Art Programmiersprachen und C++0x nie die Bedeutung haben
wird, die C++ heute hat.
-
cacheline schrieb:
Ansonsten: C++ ist wohl die sprache deiner wahl, da das kommitee nie irgendetwas rauswerfen wird.<<
Den Eindruck habe ich langsam auch gewonnen...
???
void main?
iostream.h?Warum steht das denn in den alten Büchern drin, wenn es nie korrekt war? Wer weiß schon, was als nächstes verändert wird? Es könnte zum Beispiel ein neues Schlüsselwort eingeführt werden, das ne Menge Code ungültig macht.
-
das war nie standard
-
Gregor! Die .h-Header und void-main waren doch nie im Standard drin, also konnten sie auch nie rausfliegen. Und es wird sicherlich auch nichts rausfliegen, höchstens depricated gesetzt werden. Ist ja bei Java auch so: es kommt ein Ersatz für etwas altes, aber das alte kann immer noch verwendet werden. Aber ich glaube nicht das sowas in C++ passieren wird, weil die Standard-Lib einfach viel zu klein ist, im Gegensatz zur Java-Lib. Da gibts nicht viel raus zu schmeissen.
-
Gab es keinen C++ Standard vor 98?
Bei Java gibt es durchaus einige Dinge, bei neuen Versionen, die alten Code ungültig machen. ...zum Beispiel das neue enum-Schlüsselwort, das mit 5.0 kam. So gesehen bist du schon auf alte Compiler angewiesen, wenn du alten Javacode kompilieren möchtest. ...der Bytecode sollte dann allerdings auch auf aktuellen JVMs lauffähig sein.
-
iostream.h schrieb:
das war nie standard
Naja, ist eigenlich ziemlich egal, was es nun war. Vor 10 Jahren hat man es in C++ genutzt und jetzt geht es nicht mehr. Wie kann man da so sicher sein, dass soetwas nicht in Zukunft auch passiert?
-
Gab es keinen C++ Standard vor 98?
richtig
-
Gregor@Home schrieb:
Vor 10 Jahren hat man es in C++ genutzt und jetzt geht es nicht mehr.
oft geht's noch. man bekommt aber ein warning. bei java erscheinen ja auch die deprecated meldungen