C++ Zukunft für Programmierer?

du hast Verilog oder VHDL vergessen ;) :biggrin:
VHDL is ein Buh-Wort bei mir; das benutze ich nicht freiwillig :evil:
da bleibe ich trotzdem dabei, dass man mit leichter zu lernenden Sprachen anfangen sollte.
Ich halt dagegen. Wenn man die Wahl hat, sollte man imho mit C anfangen :yes:

Das mag zwar schwer sein - also man sollte sich bewusst sein, dass man einen schwierigen Weg gewählt hat! -, aber wenn mans kann, tut man sich in weiteren Sprachen entsprechend einfacher.
 
Das mag zwar schwer sein - also man sollte sich bewusst sein, dass man einen schwierigen Weg gewählt hat! -, aber wenn mans kann, tut man sich in weiteren Sprachen entsprechend einfacher.
Moment, dies ist unlogisch.
Mit jeder Sprache, die man schon gelernt hat, hat man es in weiteren Sprachen einfacher.
C(++) könnte es nur einfacher machen, weitere Sprachen mit Pointern und/oder manuellem Memory-Management zu lernen.
 
Mit jeder Sprache, die man schon gelernt hat, hat man es in weiteren Sprachen einfacher.
Aber vergleich mal die Schritte von z.B.

  • C -> Java
  • Basic -> Java

  • C -> PHP
  • Basic -> PHP
C(++) könnte es nur einfacher machen, weitere Sprachen mit Pointern und/oder manuellem Memory-Management zu lernen.
Nicht unbedingt Pointer. In Java gibts keine Pointer in dem Sinn. Aber das Call-by-reference is genau dasselbe. Kommst du von Basic, hast du damit nichts am Hut.
 
Basic spielt da aber eine Sonderrolle und gehört mit verwandten Sprachen in eine Kategorie.

Ich denke mal wir beziehen uns hier nur auf C ähnliche Sprachen oder?
Also: C(++), C#, Java, PHP, Python, Perl ....
Und unter diesen kann man nach einer Sprache fast wild hin- und herwechseln.

Natürlich wird es dir schwer fallen von einer C ähnlichen Sprache auf eine Basic-Sprache oder eine funktionale Sprache (Lisp, Haskel, Scala ...) zu wechseln.


Von daher ist dein Argument in seiner ganzen Struktur sinnlos, denn auch C(++) statt z.B. PHP oder Java hilft dir nicht, Basic besser zu verstehen.
 
Von daher ist dein Argument in seiner ganzen Struktur sinnlos, denn auch C(++) statt z.B. PHP oder Java hilft dir nicht, Basic besser zu verstehen.
Nicht unbedingt. Der zweite Absatz gilt noch.
Von den C-ähnlichen Sprachen, die du aufgelistet hast, Java, PHP, Python, Perl, verfügt keine über richtige Zeiger. D.h. du hast mit C ein Mehrwissen, dass dir (von Java weiß ich es) von Vorteil sein kann.
 
Dem kann ich mich nur anschließen:

Kannst du C(++), hast du auch einen schnellen Einstieg in z.b. PHP und anderes garantiert, umgekehrt kann es für den PHP-Programmierer ziemlich schwierig sein, wenn du dich plötzlich um diese ganzen Datentypen kümmern musst.

Außerdem sollte da keine Frage sein, ob er mit C++ anfängt oder mit etwas anderem. Natürlich sollte er mit C++ anfangen, keine Sprache wird sooft gebraucht und benötigt und so wenig gelernt, weil jeder denkt : "Ach, C++.. ich lern lieber php oder perl oder basic oder so"

Mal ein Beispiel: Wenn er wirklich vorhat später Berufe-technisch etwas Richtung Programmierung zu machen, was nicht Webdesign ist (ja bei Webdesign wird mehr php und java gebraucht), wo soll er sich denn mit Perl oder Basic oder C# bewerben ? Schau mal in die IT-Stellenausschreibungen, du wirst nirgendwo Delphi/Pascal und nur ganz selten C# sehen, sondern fast nur C++.
 
Direkt im Speicher arbeiten = einfach schnellere Anwendung, ohne den Mist drum herum.

LG

Primus

Direkte Adressierung ist das richtige Wort dafür.
Oder eventuell auch lineare Programmierung.

Dennoch ist jede Operation die von einem Prozessor ausgeführt wird, im Speicher! Diesen Speicher nennt man auch Stack.

Ob man nun Push(ed)/Pop(ed)[Assembler Äquivalent ist jmp] [ kein S*x ], ist hier egal. Direkte Adressierung ist einfach folgendes:
Man beachtet nicht die Sicherheitsvorkehrungen des internen Microsystems.
Es wird also wild
Code:
mov ff00300,eax
herumgeschrieben, ob das register für die operation nun vorgesehen ist oder nicht, weil gerade zuvor dort eine Zahl gepuffert wurde, somit überschrieben wird.

Ein Pointer macht das auch, allerdings kommt es bei einem 2ten Pointer der auf dem Selben bereich arbeitet, dann zu einer Verletzung (sicherheit im Speicher -> Programmabsturz !), was sicher nicht gewollt ist.

DAHER KEINE DIREKTE ADRESSIERUNG, wenn man keine Ahnung davon hat!

...D.h. du hast mit C ein Mehrwissen, dass dir (von Java weiß ich es) von Vorteil sein kann.

Java arbeitet für mich nicht mit Zeigern, aber die Struktur Objekt->Objekt->Methode(Variable) ist doch dem Konstrukt sehr ähnlich.
Das Verständnis von Java auf C++ zu übertragen ist wohl eher incht günstig, dann lieber auf Delphi. Dort ist selbiger Strukturaufbau und es ist leichter zu lernen.

1> Lerne Java ( Speicherverwaltung / Garbage Kollektor )
2> Lerne Delphi ( Zeiger )
3> Lerne C/C++ ( Zeiger )
 
Hä?! :hö:
Oder eventuell auch lineare Programmierung.
Du weißt, was lineare Programmierung ist? :roll:
Richtig: Ein mathematisches Problem. Siehe https://de.wikipedia.org/wiki/Lineare_Programmierung#Mathematische_Formulierung.
Also falsche Baustelle :LOL:
Dennoch ist jede Operation die von einem Prozessor ausgeführt wird, im Speicher! Diesen Speicher nennt man auch Stack.
Falsch! Der Stack is nur ein Teil des Speichers. Lokale Variablen werden vom C-Compiler auf den Stack gelegt, ebenso wie man Parameter über den Stack übergibt. Niemand zwingt dich aber, ihn zu benutzen. Du kannst alle Operationen auch mit einer Speicheradresse außerhalb des Stacks durchführen (was wohl auch meistens so gemacht wird).
Direkte Adressierung ist einfach folgendes:
Man beachtet nicht die Sicherheitsvorkehrungen des internen Microsystems.
Es wird also wild
Code:
mov ff00300,eax
herumgeschrieben, ob das register für die operation nun vorgesehen ist oder nicht, weil gerade zuvor dort eine Zahl gepuffert wurde, somit überschrieben wird.
Und wenn du indirekt adressierst, passiert das nicht?
Direkte Adressierung ist, wenn der Operand einer Operation direkt an der spezifizierten absoluten Speicheradresse liegt.

Greifst du auf eine ungültige Speicheradresse zu (kann es nur geben, wenn ein Betriebssystem die Kontrolle hat), trappt die CPU, das Betriebssystem übernimmt und schießt normalerweise die Anwendung ab.
Das hat aber null mit der Adressierungsart oder der Programmiersprache zu tun. Das is ein Feature deines Betriebssystems, was Prozessor- und MMU-Features ausnutzt, um seine Prozesse zu schützen.
DAHER KEINE DIREKTE ADRESSIERUNG, wenn man keine Ahnung davon hat!
Bitte, wenn man keine Ahnung hat, sollte man auch nicht posten! :pray:
Es mag sich zwar toll lesen, was du geschrieben hast, wenn der Leser keine Ahnung hat. Aber hier lesen nun mal auch Leute, denen das sofort auffällt, dass die Begriffe wild und absolut sinnlos zusammengewürfelt sind.
 
:) schön das es so ist !

Spielt man mit der internen Speicherseiten Verwaltung herum, verbiegt dort die Zeiger die vom Index auf weitere "Minispeicher" zeigen, was würde passieren ?

Gäbe es deswegen ein vom Betriebssystem ausgenutztes Feature, das dann zum Absturz führt ?

Egal, Du weißt wovon du sprichst.
Ich nicht :)

Nachsatz:
Lineare Programmierung nutzt man zu folgendem...
- eine Cosinus-/Sinusgleichung über ein Gitternetz aus Punkten gelegt, die sich dann nach einem Muster bewegen

1> Man nutzt eine Formel aus, die die Ergebnise berechnet und bringt die Punkte danach auf Position (nicht linear)
2> Man errechnet alle Positionen und schreibt diese in eine "Tabelle", und liest diese einfach nur aus. (linear)
 
Zuletzt bearbeitet:
wo soll er sich denn mit Perl oder Basic oder C# bewerben ? Schau mal in die IT-Stellenausschreibungen, du wirst nirgendwo Delphi/Pascal und nur ganz selten C# sehen, sondern fast nur C++.

na du hast aber ein beschränktes Weltbild.
Für jede Sprache im TIOBE-Index (und natürlich vielen weiteren) existieren mehr als genug Stellenausschreibungen von hunderten Firmen. Das fast nur C++ gesucht war vor 10 Jahren vielleicht mal so.
 
Der Index ist aber mit Vorsicht zu behandeln. Suchmaschinen als Popularität sind alles andere als Präzise, um die Marktverbreitung einer Programmiersprache zu messen, sind aber denke ich doch relativ nah an der Realität.
 
Erstmal interessant, was alles aufgeführt ist, in dieser Liste.
Das es sogar mind. eine funktionale Programmiersprache bis in die Liste geschaft hat ist ja witzig.
Ein Komilitone hat damals sogar ein Webserver in Haskell spaßhalber mal gebaut.
Lustig was alles geht.

Dennoch Danke !
 
Der Link ist mal wirklich cool!
Ansonsten muss man sich einigen Vorrednern anschliessen. Es ist immer eine Frage der Aufgabenstellung, welche Programmiersprache und welches Framework den Job am besten macht.
Allgemein ist aber auch C++ noch lange nicht tot, das merke ich in meinem Job tag täglich!
 
Um hier mal eine interessante Entwicklung aufzuzeigen:

Vor 6 Monaten noch, wurde die C++ Welt im wesentlichen so gesehen, wie sie in den obigen Posts dargestellt wurde. Jetzt sieht die Welt anders aus:

- Google sucht fast nur C++
- Apple sucht fast nur Objective-C
- Microsoft macht eine Renaissance von C++, da sie festgestellt haben, dass sie mit .NET den Zug verpasst haben.

Native Renaissance bei Mircrosoft => https://channel9.msdn.com/Shows/Going+Deep/Craig-Symonds-and-Mohsen-Agsen-C-Renaissance (ziemlicher Kampf dort zu beobachten in den Videos)

Seit neuster Studie auch folgendes: ca. 45% aller jungen Programmierer lernen/können C++. (Quelle folgt)

Ergo: C++ ist wieder auf dem Vormarsch, ist doch interessant, wie sich die Dinge so entwickeln =)

Gruß
Drakor
 
ehrlich gesagt, wegen einem Artikel würde ich da keinen Rückschluss führen, meiner Meinung nach hat C++ noch genausoviel Relevanz wie vor Monaten, ob das viel oder wenig sein mag, bleibe jedem selbst überlassen.

Und das Google fast nur nach C++ sucht, halte ich direkt für eine Falschaussage, schaue ich mir die aktuellen Stellenausschreibungen an fällt z.B. auf dass ein "Software Engineer" in München für PHP, C++, Java/Python benötigt wird.
 
@ice-breaker:
schau dir das verdammte Interview an, auf das ich verwiesen habe, ich kam aus dem Lachen nicht mehr raus, als diese beiden Leute eingestehen mussten, dass sie den Zug verpasst haben ^^ (man achte auf die Mimik des rechten xD)

Und Google mag suchen wen sie wollen, aber deren Hauptaugenmerk was die Programmierung angeht, siehe Chrome/Android/Golang , als C++ Programmierer kommst du bei Google ganz gut an.

Gruß
Drakor
 
Ich habe nie behauptet, dass C++ keine Relevanz mehr hat, nicht das wir uns falsch verstehen, die ist immernoch so da wie zuvor, und da hat sich auch in letzter Zeit nichts verändert.
Es ist aber eben auch noch immer so, dass nicht jede Software in C(++) geschrieben werden muss, denn bei vielen ist es einfach egal ob die Software 5% oder 10% schneller ist, es gibt aber natürlich noch immer genug Bereiche in denen es ohne C(++) nicht geht.

Btw.: hat sich der TIOBE-Index in Richtung C(++) auch nicht wirklich signifikant verändert.
 
Ich kenne niemanden, der Programmiert, weil er damit (viel) Geld verdienen will. Die machen das alle aus Leidenschaft und weil sie merkwürdig sind. (Bevor die Schreie kommen: Ich bin Programmiererin und beziehe mich da voll mit ein)
 
  • Like
Reaktionen: ryk
Hmm, eigentlich ging es mir jetzt mehr darum zu zeigen, dass selbst Microsoft, die jahrelang C++ "vernachlässigt" haben jetzt wieder zurückkehren. Und es ging mir darum darzustellen, dass Google viel Software auf C++ aufbaut, während Apple bei Objective-C bleibt (was ja noch ganz gut läuft...noch).

@ice-breaker: Was meinst du mit Relevanz ? Ich erwähnte nichts dergleichen.
Und wenn du deine Stellenausschreibungen nochmal durchliest wirst du feststellen, dass die ganz klar Schwerpunkt C++ haben, während die anderen Sprachen an zweiter Stelle stehen (sprich ob nun Perl oder Python, ob Java oder sonstwas, hauptsache was in die Richtung),die aber eben aus Google's Sicht zur Erfüllung des Jobs notwendig sind.
Mit der Relevanz von C++ hat das nichts zu tun, es ist jetzt halt auf Google's Firmenpolitik bezogen und soweit ich weiß geben die in dem Bereich noch nicht die Relevanz von Dingen an (wie bei den Suchergebnissen).

@schanedde: Gilt vllt. nicht für die Allgemeinheit, aber ich würds im Großen und Ganzen so unterschreiben :D.


Gruß
Drakor