C zu C++ - Einfacherer Übergang?



  • Cabanossi schrieb:

    Nein, es geht um Syntax.

    Es geht nie um Syntax. Die hast du bald einmal verinnerlicht (oder auch nicht). Nein, es geht um Semantik. Wenn du Programmieren lernen willst, nimm am besten eine Sprache, die möglichst viele semantischen Konzepte einfach umsetzen kann.

    Übrigens konkurrieren C und C++, wenn überhaupt, nur sehr selten.
    🙂


  • Administrator

    Cabanossi schrieb:

    Lohnt es sich denn garnicht noch C zu lernen, weil C++ sie komplett ersetzt?

    Abgesehen von dem sehr richtigem was loks gesagt hat:
    C++ hat C nicht komplett ersetzt. Beide haben ihre unterschiedlichen Einsatzgebiete. Die Sprachen unterscheiden sich auch in vielen Punkten inzwischen. C++ hat nur eine gesicherte Rückwärtskompatibilität zu C89, während C inzwischen beim C99 Standard ist.

    Cabanossi schrieb:

    Entschuldige bitte, aber ich halte diese Antwort für hochgradig sinnbefreit. Man muss sich schon auf eine Programmiersprache festsetzen, zumindest zu Beginn. Ich glaube nicht, dass du "Programmieren" lernen kannst und somit alle Sprachen dieser Welt beherrscht. Nein, es geht um Syntax.

    Es geht überhaupt nicht um Syntax. Es hat keinen Sinn, wenn du PHP lernst und dabei Treiberprogrammierung lernen möchtest. Du musst die Programmiersprache nehmen, welche für den Bereich Sinn ergibt, wo du einsteigen möchtest.

    Grundsätzlich gibt es drei Programmiersprachen-Typen (würde ich jetzt mal behaupten):
    - Objektorientiert
    - Prozedural
    - Funktional

    Wenn du mal eine Programmiersprache aus einem Typ gelernt hast, dann kommst du auch relativ leicht in Programmiersprachen des gleichen Typs rein. Da C++ eine multiparadigmen Sprache ist, dass heisst prozedural und objektorientiert ist, kommst du leicht in C rein. Während dem du von C aus, welche prozedural ist, nicht so leicht in die Objektorientierung von C++ reinkommst.

    namespace invader schrieb:

    Wenn man "eigentlich" C++ lernen will, ist es natürlich eine Möglichkeit, C zu überspringen und gleich mit C++ anzufangen, man wird dann wahrscheinlich durch Zusammenkopieren von Codebeispielen usw. schneller zu Ergebnissen kommen. Es wird aber wesentlich schwieriger sein, die Sprache vollständig zu verstehen, weil man Probleme haben wird, die ganzen mehrfach vorhandenen Teile (sowohl "alte" C-Bestandteile als auch dazugekommene C++-Features) auseinanderzuhalten. Man wird dann wahrscheinlich ekelhaften C/C++-Mischcode produzieren.

    (Und wieso "wertende Aussagen"? Es wird doch wohl niemand ernsthaft bestreiten wollen, dass C++ eine objektiv unschöne Sprache ist 🤡 )

    Absoluter Unsinn von A bis Z. Wieso C und C++ Dinge auseinander halten, wenn man C++ lernen will? Man lernt ja nicht C und darauf ein "++", dass ist genau die verkehrte Art, wie man C++ lernen soll. Also wirklich, noch selten so einen Unsinn gelesen. Ich finde es daher absolut niederträchtig von dir, wie du hier bewusst auf einen Flamewar hinsteuerst auf die Kosten des Interesse eines Anfängers.

    namespace invader schrieb:

    C++ kann C niemals ersetzen, und in vielen Bereichen, in denen C++ eingesetzt wird, wäre C eine bessere Wahl, wobei in einigen Bereichen die Verwendung von High-Level-Sprachen noch sinnvoller wäre.

    Und man am besten gleich C++ ganz vergessen sollte, schlussfolgere ich das richtig? Und du willst jetzt wirklich gegenüber Cabanossi die Meinung vertreten, dass dies die allgemeingültige und objektive Meinung ist und nicht nur die Meinung eines Trolls oder C Fanboys?

    Sicher, sehr glaubwürdig ...

    Es gibt Menschen auf dieser Welt ... 🙄

    Grüssli



  • Leute, ich wollte mit Sicherheit keinen Streit vom Zaun brechen an dieser Stelle, prinzipiell ging es mir nur darum ob es sich noch lohnt C zu lernen, da mir diese Sprache etwas sympathischer ist als C++. Das würde ich aber ignorieren, wenn ich damit eine (bald) tote Sprache lerne.


  • Administrator

    Cabanossi schrieb:

    Das würde ich aber ignorieren, wenn ich damit eine (bald) tote Sprache lerne.

    C wird definitiv nicht bald tot sein. Nicht mal in weiter Zukunft 😃

    Grüssli



  • Das hört sich soweit super an, jetzt bräuchte ich noch eine IDE Empfehlung für C - kostenlos/-pflichtig ist unwichtig - und dann hoffe ich, dass ich einigen von euch bald verstärkt auf den Keks gehen kann. 😉



  • Dravere schrieb:

    Grundsätzlich gibt es drei Programmiersprachen-Typen (würde ich jetzt mal behaupten):
    - Objektorientiert
    - Prozedural
    - Funktional

    Eigentlich gibt es vier:
    - Objektorientiert
    - Prozedural
    - Funktional
    - Perl

    🤡



  • Cabanossi schrieb:

    Das hört sich soweit super an, jetzt bräuchte ich noch eine IDE Empfehlung für C - kostenlos/-pflichtig ist unwichtig - und dann hoffe ich, dass ich einigen von euch bald verstärkt auf den Keks gehen kann. 😉

    Kannst du eigentlich in irgendeiner Sprache programmieren? Wenn nein: bitte fang weder mit C, noch mit C++ an. Nimm was einfaches. Viele empfehlen Python oder Scheme.
    🙂



  • Cabanossi schrieb:

    Das hört sich soweit super an, jetzt bräuchte ich noch eine IDE Empfehlung für C - kostenlos/-pflichtig ist unwichtig - und dann hoffe ich, dass ich einigen von euch bald verstärkt auf den Keks gehen kann. 😉

    code::blocks scheint ordentlich zu sein. Wobei als Anfänger auch eine Kombination aus gutem Editor und Compiler + Kommandozeile nicht schlecht ist, da man so auch gleich den/die Compiler kennenlernt. Als Compiler empfehle ich so oder so den gcc. Visual Studio/C++ ist für C nicht wirklich prickelnd weil der C-Compiler nicht den aktuellen C-Standard (C99) versteht.



  • Cabanossi schrieb:

    Entschuldige bitte, aber ich halte diese Antwort für hochgradig sinnbefreit. Man muss sich schon auf eine Programmiersprache festsetzen, zumindest zu Beginn. Ich glaube nicht, dass du "Programmieren" lernen kannst und somit alle Sprachen dieser Welt beherrscht. Nein, es geht um Syntax.

    Dann nimm mal _nur_ das Thema Design Patterns. Da geht es überhaupt nicht um Programmiersprachen sondern um Konzepte, da diese Patterns in jeder Sprache implementiert werden können (mehr oder weniger aufwendig). Ohne Konzepte ist die Syntax nutzlos.



  • Und ohne Syntax sind Konzepte nicht umsetzbar. Sehr sinnfreie Teildiskussion.



  • Tim schrieb:

    Und ohne Syntax sind Konzepte nicht umsetzbar. Sehr sinnfreie Teildiskussion.

    Nein. 👎



  • Leute, die zuerst C lernen und darauf "aufbauend" dann C++, die kann man immer super am code erkennen 😃



  • Also, UMSETZBAR ist es ohne korrekte Syntax kaum, denn ohne Syntax gibt's auch keinen Compiler der es in ein Programm umsetzt.
    Aber selbst "darstellbar" ist es nicht. Selbst eine rein einfache, verbale Darstellung des ganzen verwendet nunmal den sprachlichen Syntax.

    Deswegen sehe ich auch kein Problem daran, Konzepte anhand eines Syntaxes zu erlernen, der sich auch praktisch einsetzen lässt.

    Worauf du (Cabanossi) halt achten musst, wenn du C und nicht C++ (oder auch umgekehrt) lernst, dass du nicht in eine Art "Lagerdenken" abgleitest, wie's bei manchen Leuten halt so ist. Siehst es ja hier. Darauf ziehlt das "Lern programmieren, nicht Programmiersprachen" letztlich ab. Eine Programmiersprache ist nur ein Syntax, der gewisse Konzepte ermöglicht, fördert, oder behindert.

    Ich sehe kein Problem mit C anzufangen, und Tod ist die Sprache sicher noch lange nicht, solange du eben aufgeschlossen bleibst, und auch bereit bist später für andere Aufgabenbereiche und Ideen teilweise radikal umzudenken.
    Programmieren ist ein recht großes Feld, und selbst eine Multiparadigmensprache wie C++ deckt dort nicht alles ab - insbesondere würde ich behaupten, C++ deckt nicht C ab, denn wer C++ wie C schreibt macht eben nunmal was falsch. 🙂

    Praktisch gesehen ist C++ komfortabler zu verwenden, hat aber manchmal unglaublich böse Fehler im Detail, also Sachen die man machen kann, bei den man auf den ersten Blick nicht sofort sieht, WARUM das jetzt falsch ist, weil einige Automatismen im Hintergrund laufen.



  • Cabanossi schrieb:

    Hallo liebes C-Plusplus Forum!

    Ich hätte nur eine kurze Frage, undzwar hatte ich mir vorgenommen mich vorerst in C einzuarbeiten, und dann in ferner Zukunft, falls nötig, auf C++ umzusteigen. Würde mir der Übergang mit C Kentinssen leichter fallen als direkt C++ zu lernen, oder ist mein ganzer Plan im Prinzip Mist?

    Der erste Gedanke ist oft der beste. Aber letztlich kommt es doch immer auch
    darauf an, was für eine Hardware du programmieren willst, welche Apis dir zusagen, welche du brauchst, was genau du programmieren willst und wie oft. Außerdem, welche Informationsquellen gibt es, welche sagen dir zu? Welche Ansprechpartner laufen in deiner Nähe herum, wie coden deine Freunde?
    Wenn du ein gutes Buch für dich in C findest, dann lerne C. Wenn du ein gutes
    Buch für dich in C++ findest, dann lerne C++.
    Aber die Zukunft gehört weder C, noch C++ ! (!)
    (und schade, dass es gar keine Power7 Notebooks gibt;)

    Eine gute Orientierung zum Thema Vorausschau ist z.B. auf der Seite

    http://knol.google.com/k/computing-with-nvidia-s-cuda-and-opencl#

    zu bekommen.



  • Ich denke ich kann sagen meine Hauptaugenmerke liegen in der Socket-Programmierung und Programme per Debugger zu beobachten und mit entsprechenden Programmen darauf zu reagieren (Reverse Engineering).



  • Wer zuerst C lernt um dann C++ zu lernen ist mit Anlauf gegen einen Baum gerannt. C++ war die erste Sprache, die ich konsequent gelernt hatte und ich war sehr zufrieden damit. Ich hab auch mal in C reingeschnuppert, doch ich musste diese Sprache einfach auslachen, weil sie in meinen Augen primitiv ist. Wenn C++ objektiv nicht schön ist, frag ich mich was C ist. C hat eigentlich nicht mal den Ansatz von Objektivität. Wie kann man über über C++ klagen, wenn man in C nur Funktionen bereit gestellt bekommt?
    Wer objekt orientiert programmieren will, dem würde ich sowieso C# oder Java empfehlen, wobei ich eher zu C# tendieren würde.



  • FreakY<3Cpp schrieb:

    Bla Bla

    Jemand musste sich auf dieses Niveau begeben. Und jetzt entsteht wieder ein Krieg, C vs C++. Sowas von erbärmlich 👎



  • Mit Socket-Programmierung kenn ich mich nicht aus. Aber bei Google gleich
    mal nachgeguckt, ergab die erste Seite:
    http://www.pc-adviser.de/socket_programmierung.html
    gar nicht so schlecht...;-)
    Letztlich hängts auch ein bißchen vom System ab, - (gcc vs Vcc vs etc.)

    Derweil kannst du mir vielleicht eher helfen zum Thema Debugger. Ich fange gerade an, nach einem Ersatz für das Windowsinterne Werkzeug Debug.exe zu suchen.
    Com Programme werden in 64bit Windowsen nicht mehr unterstützt.
    In diesem Zusammenhang nützt Ollydebug nur wenig.



  • Cabanossi schrieb:

    Ich denke ich kann sagen meine Hauptaugenmerke liegen in der Socket-Programmierung

    Da ist C gut geeignet.

    Cabanossi schrieb:

    und Programme per Debugger zu beobachten

    Das geht in so ziemlich jeder Sprache für die es debugger gibt ...

    Cabanossi schrieb:

    (Reverse Engineering).

    Für echtes reverse engineering dürften wohl tiefgreifende asm-Kenntnisse notwendig sein denn Programme kommen in der Regel nicht mit ihrem Sourcecode (naja, ausser MSIL basierten Sachen, aber C# war ja kein Thema)

    Source-Code von anderen lesen ist kein reverse engineering 😉



  • FreakY<3Cpp schrieb:

    Wer zuerst C lernt um dann C++ zu lernen ist mit Anlauf gegen einen Baum gerannt. C++ war die erste Sprache, die ich konsequent gelernt hatte und ich war sehr zufrieden damit. ...

    Du bekommst ja nicht mal nen 3.5-Zeiler richtig hin ohne gegen nen Baum zu rennen.
    http://www.c-plusplus.net/forum/viewtopic-var-p-is-1870594.html#1870594


Anmelden zum Antworten