Nachfolger von C++ oder 'welche Sprache wofür'?

Moin,

wie lange wird sich c++ noch halten können? Ist ein Nachfolger in Sicht? Java wird’s ja wohl nicht sein… Kann man also erstmal weiterhin empfehlen, c++ als Basis sämtlichen Programmierens zu lernen? Oder was eher? Und vor allem wofür?

Kennt jemand eine Seite im Netz, wo man einen Überblick über die verschiedenen Sprachen und die konkreten Anwendungsmöglichkeiten bekommen kann?

thx
moe.

Hallo.

wie lange wird sich c++ noch halten können? Ist ein Nachfolger
in Sicht? Java wird’s ja wohl nicht sein… Kann man also
erstmal weiterhin empfehlen, c++ als Basis sämtlichen
Programmierens zu lernen? Oder was eher? Und vor allem wofür?

Also noch hat C++ sein Auskommen. Immerhin kann keine Programmiersprache -ausser C- näher und vor allem schneller an der Hardware programmiert werden.
Aber siehe auch das Editorial des .NET Magazin unter http://www.dotnet-magazin.de/itr/service/psecom,id,3…

Kennt jemand eine Seite im Netz, wo man einen Überblick über
die verschiedenen Sprachen und die konkreten
Anwendungsmöglichkeiten bekommen kann?

…nein (noch nicht :wink: )

HTH
mfg M.L.

… Kann man also
erstmal weiterhin empfehlen, c++ als Basis sämtlichen
Programmierens zu lernen? Oder was eher? Und vor allem wofür?

Hallo,

so nicht - zum reinschnuppern ist C++ als „Write Only“-Sprache ziemlich ungeeignet, so ziemlich jede andere Sprache ist für einen ersten Überblick besser. Natürlich ist C++ weiter eine der wichtigsten Sprachen, aber man sollte es nur lernen, wenn man es ernsthaft benutzen will/muss.

Gruss Reinhard

… Kann man also
erstmal weiterhin empfehlen, c++ als Basis sämtlichen
Programmierens zu lernen? Oder was eher? Und vor allem wofür?

Hallo,

so nicht - zum reinschnuppern ist C++ als „Write Only“-Sprache
ziemlich ungeeignet, so ziemlich jede andere Sprache ist für
einen ersten Überblick besser. Natürlich ist C++ weiter eine
der wichtigsten Sprachen, aber man sollte es nur lernen, wenn
man es ernsthaft benutzen will/muss.

Nein, es war schon als ernsthafter Einstieg gedacht, nicht nur zum Schnuppern…Geschnuppert hab ich schon mal mit Java, aber das ist alles schon wieder verflogen, und das hat sich ja irgendwie auch nicht durchgesetzt, oder? Was meinst Du mit „Write-only“-Sprache? Was wäre denn für den „Überblick“ Deiner MEinung nach geeignet?

thx
moe.

Hallo FlamingMoe.

Ich könnte mir vorstellen, das C# („Ze Scharp“) sich auf Dauer durchsetzen könnte, wenn erstmal .NET weiter verbreitet ist und als „Grundlage“ für die Anwendungsprogrammierung dient.

Viele Grüße
Carsten

Moin, moin,

wie lange wird sich c++ noch halten können? Ist ein Nachfolger
in Sicht?

Zum einen wohl c++0x
http://www.artima.com/cppsource/cpp0x.html

Java wird’s ja wohl nicht sein…

Das ist aber rasch mal nebenbei abgehandelt.
Als was ablösen? Als Anwendungsentwicklungssprache? Wo schon immer VB sein häßliches Haupt erhob?
War C++ mal die weitestverbreiteste Sprache? Eher nicht. C vielleicht.
Als meistgenutze Sprache hat Java z.Zt. die Fackel, aber natürlich v.a. als Serverseitige Sprache.

Kann man also
erstmal weiterhin empfehlen, c++ als Basis sämtlichen
Programmierens zu lernen? Oder was eher? Und vor allem wofür?

Sämtlichen Programmierens?
Skriptsprachen haben schon lange eine Nische intus, die so klein nicht ist, und da tut sich viel.

Spezialsprachen wie Prolog, wie funktionale Sprachen, die erwähnten Scriptsprachen, Textmanipulierer wie Perl, awk und sed, und was es sonst noch gibt - alle haben alle ihre Stärken und Berechtigungen.

Ich hoffe .Net mit seiner proprietären Beschränkung auf die Windowsplattform wird es nicht werden.
Den erwähnten c++0x-Artikel habe ich aber selbst noch nicht studiert.

Das beste ist es ja nicht immer, was sich durchsetzt.

Hallo FlamingMoe

Nein, es war schon als ernsthafter Einstieg gedacht, nicht nur
zum Schnuppern…Geschnuppert hab ich schon mal mit Java, aber
das ist alles schon wieder verflogen, und das hat sich ja
irgendwie auch nicht durchgesetzt, oder? Was meinst Du mit
„Write-only“-Sprache? Was wäre denn für den „Überblick“ Deiner
MEinung nach geeignet?

Er meint wahrscheinlich mit ‚write only‘-Sprache,
dass man Teile eines einmal in C++ fertiggestellten
Projekts in >6 Monaten nicht mehr wiederverwenden
kann, um bei einem anderen Projekt Arbeit zu sparen.
'write only => nicht mehr lesbar nach gewisser Zeit :wink:

Gerade bei C++ ist das meiner Meinung nach aber
eher nicht der Fall, da die erzwungene statische
Typisierung einen zwingen sollte, ein bildhaftes
„Interface“ zu schaffen.

Ferner hat C++ nicht die Java-Krankheit, jedes
noch so triviale Programmierproblem in eine
„Klasse“ zwängen zu müssen, wo es in den meisten
Fällen gar nicht hingehört.

Ein nicht zu unterschätzender Vorteil von C++ ist seine
Portabilität auf alle möglichen System, seine Performanz
und seine einigermassen leicht verständliche und merk-
bare Syntax.

Nicht ohne Grund sind nahezu alle „anderen Programmier-
sprachen“ (auch Java) in C oder C++ geschrieben bzw.
verwenden sogar in C/C+±geschriebene Komponenten
(Bibliotheken) für eine brauchbare Performanz.

Nicht zu vergessen - auch der Linux-Kernel, alle
GNU-Tools, Windows-XP usw. sind auch in C oder C++
geschrieben.

Java war letztlich der Versuch, C++ zu „verbessern“,
in dem man die Hauptschwierigkeiten (Zeiger, Speicher-
management) entfernt und einen Zwang zu hierarchischer
Strukturierung aufoktroyiert. Dadurch unterwirft
man das „Heer von Feld-Programmierern“ von vorne-
herein unter „zentrale Entscheidungen“ bezüglich
des Aussehens von Code. Möglicherweise brauchen
das auch viele Leute oder profitieren davon, wenn
sie im Team mit vielen Leuten arbeiten müssen.

Meiner Meinung nach ist es unerheblich, welche
Programmiersprache man als Hauptwerkzeug zu be-
herrschen lernt, sofern sie sich einem bei der
Lösung der zu programmierenden Aufgaben nicht
in den Weg stellt.

Was möchtest Du denn machen? Welches Gebiet
interessiert Dich?

Grüße

CMБ

Hallo

wie lange wird sich c++ noch halten können?
Ist ein Nachfolger in Sicht?

C++ wird sich so lange „halten“, dass es sich
sicher lohnt, es zu erlernen. Es wird weiter-
entwickelt (siehe andere Anmerkung zu C++0x) -
aber alle Eigenschaften bis hinunter zum
„blanken C“ werden immer noch in jeder
Umgebung funktionieren.

Das Problem von C++ (und auch von C) ist das
„Samurai-Problem“. Mann kann einem Bauern kein
Samurai-Schwert in die Hand geben, beim ersten
Gefecht wird es sich den Fuß abhacken.

Es erfordert meiner Meinung nach jahrelanges Lernen
und ständige Praxis, um in C/C++ wirklich brauchbare
und beständige Dinge zu programmieren, die auch funktio-
nieren. Das liegt daran, dass C/C++ eine inhärente
Komplexität durch Zeiger, Speichermanagement, völlige
Freiheit beim Code- und Modullayout - und keinerlei
„Schutz“ gegen die Zerstörung des laufenden Prozesses
bzw. seiner Daten bietet.

Java wird’s ja wohl nicht sein… Kann man also
erstmal weiterhin empfehlen, c++ als Basis sämtlichen
Programmierens zu lernen? Oder was eher?

Ich würde mit C anfangen. C ist das A und das O
der heutigen Programmwelt. Ob man mit C dann
tatsächlich größere Projekte angeht, bleibt zu
entscheiden (in den meisten Fällen nicht), aber
können sollte man es schon - und probiert haben
auch. Aber wer würde heute noch mit dem blanken
Schwert ins Gefecht ziehen :wink:

Und vor allem wofür?

Um die zu Grunde liegende Maschine und
die Daten im RAM „direkt“ in „Software“
abbilden zu können.

Wenn man damit rechnen muss, irgendwann auf
freiem Felde mit dem Schwert in der Hand zu
stehen, so sollte man auch beizeiten anfangen,
mit dem Schwert umzugehen.

Ein Problem der Informatik-Abgänger, wie ich es
sehe, ist - dass sie die der Programmierung zu
Grunde liegende Maschine nicht mehr verstehen
bzw. kein „Gefühl“ mehr für die Hardware haben.

Die frühe und starke Fokusierung auf Java
verdirbt imho den Instinkt für die Hardware :wink:
Möglich, dass man das „nie braucht“, weil
man sein leben lang zum ackern auf dem Feld
ist - und nicht zum … :wink:

Kennt jemand eine Seite im Netz, wo man einen Überblick über
die verschiedenen Sprachen und die konkreten
Anwendungsmöglichkeiten bekommen kann?

http://en.wikipedia.org/wiki/Categorical_list_of_pro…

Grüße

CMБ

Was meinst Du mit
„Write-only“-Sprache?

Hallo,

ein Grund, warum es überhaupt so viele verschiedene Sprachen gibt, ist dass die Entwickler ganz verschiedene Design-Ziele im Auge hatten. Bei C++ war eines davon, dass man alles möglichst kurz hinschreiben kann, ob es später noch einer lesen kann, war dagegen völlig egal. Ganz im Gegensatz dazu Cobol: furchtbar viel Schreibarbeit, aber im Ergebnis hat man fast normale englische Sätze und lesen kann das Programm zu grossen Teilen selbst jemand, der kein Cobol kann. Das erleichtert natürlich die Wartung bestehender Programme, sonst gäbe es nicht mehr soviel Cobol-Software.

Man kann mehr solche „Antipoden“-Paare von Computersprachen bilden, das ist vielleicht für deine Entscheidung auch hilfreich:

Pascal wurde von Niklaus Wirth ausdrücklich zur Ausbildung von Programmierern entworfen und hat deshalb auch sehr strenge Regeln; bei Basic war dagegen wichtig, dass man ohne Vorkenntnisse schnell was zusammenhacken kann, möglichst ohne irgendwelche Regeln beachten zu müssen, didaktisch ist Basic eine Katastrophe.

Der schnellen Erlernbarkeit von Basic steht wiederum C++ gegenüber: da hat niemand auf die Verkürzung der Lernkurve Wert gelegt.

Vielleicht macht sich mal jemand die Mühe, alle Programmiersprachen in einer mehrdimensionalen Matrix nach solchen Gesichtpunkten anzuordnen.

Für die Verbreitung sind natürlich auch andere Tatsachen entscheidend, z.B. welche Sprache MS für die Programmierung von Windows verwendet. Und man kann APIs nur einsetzen, wenn man Funktions-Deklarationen in der gewünschten Sprache hat - wenn Borland nicht windows.h in windows.pas (für Delphi) übersetzt hätte, müsste ich die C-Deklarationen von vielen hundert Funktionen selbst umschreiben, das wäre kaum sinnvoll. Schon die Tatsache, dass es fast alle solchen Interfaces in C, viele davon aber in keiner anderen Sprache gibt, übt einen starken Druck in Richtung C/C++ aus.

Meistens ist es so, dass für spezielle Zwecke, sagen wir mal Bildverarbeitung, sowohl Hardware als auch Libraries mit Funktionen wie z.B. Kantendetektion angeboten werden, aber eben nur mit Deklarationen für C, damit ist die Entscheidung schon gefallen. In was die Library selbst geschrieben ist, ist dagegen ziemlich egal, solange die Funktionsaufrufe dokumentiert sind.

Gruss Reinhard

1 Like