Warum programmiert ihr in C?



  • -lowbyte- schrieb:

    soeinfachisnich schrieb:

    Die meiste die hier geantwortet haben sind wahrscheinlich auch nur Anfänger. In einem C++ Forum werden wohl kaum C-Programmierer wie Linux Torwalds sich zu Wort melden, die haben schon an anderer Stelle mit C++ abgerechnet.

    Du wirst es ja wissen ... 😃

    Solche Kommentare kann man gar nicht ernst nehmen ... Aber richtige Argumente hab ich bis jetz noch nicht gehört !
    Es wird immer unterschiedliche Meinungen geben ... von daher kann ich diese unnötige Disqusionen gar nicht mehr ernst nehmen.

    Was ist eine Disqusion?



  • Diskussion entschuldige ...



  • -lowbyte- schrieb:

    Diskussion entschuldige ...

    Man macht vor Satzzeichen keine Leerzeichen. Wieso können eigentlich alle Cler kein Deutsch? Hat wohl auch was mit Intelligenz zu tun..



  • Aufällig schrieb:

    -lowbyte- schrieb:

    Diskussion entschuldige ...

    Man macht vor Satzzeichen keine Leerzeichen. Wieso können eigentlich alle Cler kein Deutsch? Hat wohl auch was mit Intelligenz zu tun..

    Ist das alles ?

    Ich bin aus England und versuche so gut Deutsch wie möglich zu schreiben.



  • -lowbyte- schrieb:

    Aufällig schrieb:

    -lowbyte- schrieb:

    Diskussion entschuldige ...

    Man macht vor Satzzeichen keine Leerzeichen. Wieso können eigentlich alle Cler kein Deutsch? Hat wohl auch was mit Intelligenz zu tun..

    Ist das alles ?

    Ich bin aus England und versuche so gut Deutsch wie möglich zu schreiben.

    Dass man vor Satzzeichen keine Leerzeichen macht, ist aber in jeder Sprache so. 🙄

    Ansonsten liefert dieser Thread eh nix mehr konstruktives. Die meisten fähigen Poster waren durch die Bank registriert und C++er (Michael E., volkard etc.). Der größte Quatsch kam von unregistrierten C-Kindern, die offensichtlich C++ nichtmal ansatzweise kennen.

    /Diskussion



  • Dass man vor Satzzeichen keine Leerzeichen macht, ist aber in jeder Sprache so. 🙄

    Ist ja schlimm... besser so? 🙄

    Du willst mich ein C Kind nennen?

    Ich frage mich immer mehr ob ich das hier noch nötig habe. Könnte ja auch einfach unreg. schreiben...



  • -lowbyte- schrieb:

    Diskussion entschuldige ...

    Ich fragte nach, weil ich *keinen* Schreibfehler vermutete, sondern einen Jargon-Ausdruck mit einer Hintergrundbedeutung, die ich nicht kannte. (Klingt so nach disguise.)



  • Aufällig schrieb:

    -lowbyte- schrieb:

    Diskussion entschuldige ...

    Man macht vor Satzzeichen keine Leerzeichen. Wieso können eigentlich alle Cler kein Deutsch? Hat wohl auch was mit Intelligenz zu tun..

    Falsch!
    Das Leerzeichen war hier vollig korrekt.
    Die Auslassungszeichen haben ganze Wörter ersetzt, damit man sich damit dann einen Satz bauen kann.

    Diskussion, entschuldige ...

    Diskussion, entschuldige mich ob meiner Nachlässigkeit.

    Das Leerzeichen gehört nicht dahin, wenn man Wörter abbricht und deren Edne freistellt.

    Ich baue mir ein Haus...

    Ich baue mir ein Haustürschild.

    Ich baue mir ein Haus ...

    Ich baue mir ein Haus und hole mir dann einen runter.

    Man darf zwar das Leerzeichen weglassen, aber hier ist es mit Leerzeichen besser verständlich, denn mir als Leser wird nicht mehr die quälende Qual gelassen, ob ich das Wort und den Satz fortsetzen soll, oder nur wortweise den Satz.

    Diesbezüglich ist noch zu beachten, daß "korrekt" lokal ist. Zum Beispiel kennt unser Rechtschreibguru vom Zwiebelfisch nicht die Bedeutung der Anführungszeichen für das Quoten. Deutschlehrer eh nicht. Wir natürlich. Und in der Sprache sowohl draußen als auch in bedeutender Literatur wird gequotet wie sau.



  • -lowbyte- schrieb:

    Ich bin aus England und versuche so gut Deutsch wie möglich zu schreiben.

    Sprich, so gut wie möglich, und alles ist paletti. Kommas braucht nur, wer vor dem Absenden, um die Lesbarkeit zu erhöhen, seine Satze nicht umsortiert.
    Sprich so gut wie möglich und alles ist paletti. Kommas braucht nur jemand der vor dem Absenden seine Satze nicht umsortiert um die Lesbarkeit zu erhöhen. (Und Füllsel wie hier "jemand" einsetzt und so Sachen halt.)

    Ich bin aus England und versuche Deutsch so gut wie möglich zu schreiben.
    Ich bin aus England und versuche so gut Deutsch wie möglich zu schreiben.
    Ich bin aus England und versuche so gut wie möglich Deutsch zu schreiben.
    "so gut wie möglich " hätte ich als Leser gerne zusammen dann vermisse ich auch kein Komma. Aber wurstegal, es war auch ohne Kommas viel leichter zu lesen, als so manches hier. 🤡



  • anmerker schrieb:

    Dass man vor Satzzeichen keine Leerzeichen macht, ist aber in jeder Sprache so. 🙄

    Französisch.



  • Kein Leerzeichen steht
    - vor einem Punkt, Strichpunkt, Doppelpunkt, Fragezeichen, Ausrufezeichen,
    - nach einer öffnenden Klammer und vor einer schließenden Klammer (also beispielsweise so),
    - nach dem Anführungszeichen zu Beginn eines Zitats und vor dem entsprechenden Schlusszeichen: „Das ist ein Beispiel.",
    - vor und nach einem Schrägstrich: ein Beispiel zur Erklärung/Verdeutlichung.

    Hingegen steht in der Regel ein Leerzeichen
    - nach einem Punkt, Strichpunkt, Doppelpunkt, Fragezeichen, Ausrufezeichen,
    - vor und nach den Auslassungspünktchen … Danach steht übrigens niemals ein Punkt.
    Eine Ausnahme hinsichtlich der Leerzeichen bei … ist, wenn sich die Auslassung auf einen Teil des Wortes bezieht: „die …prämie“ oder so,
    - vor einer öffnenden Klammer und nach einer schließenden Klammer, falls danach nicht unmittelbar ein Satzzeichen wie zum Beispiel ein Komma folgt; weitere Ausnahme: wenn die Klammer einen Teil eines Wortes einschließt, zum Beispiel: „Mitarbeiter(innen)",
    - vor dem Anführungszeichen zu Beginn eines Zitats und nach dem entsprechenden Schlusszeichen, falls danach nicht unmittelbar ein Satzzeichen wie zum Beispiel ein Komma folgt.

    Source: Duden, 25. Auflage, S. 35, Regeln K 17 und K 18.



  • -lowbyte- schrieb:

    - vor und nach den Auslassungspünktchen … Danach steht übrigens niemals ein Punkt.

    Naja, das werden wir auch noch logischer machen, oder ich werde …!
    Wie kämen wir auch zu einem verdammten …?
    Also müssen wir ….
    Kommt Zeit, kommt Sinn.



  • remove



  • Also ich komme aus England, wohne aber in der Schweiz. Nicht das sich hier einer angelogen fühlt.



  • Ob ich C++ richtig kann? Wohl eher nicht, aber ich habe es wahrlich versucht zu lernen. Nach ein paar Monaten, in der ich mal mehr mal weniger gelernt hatte, war dann irgendwann die Motivation dahin.

    Und auch wenn ich jetzt keine große Ahnung von C++ habe, so habe ich mich doch mit der Sprache auseinandergesetzt und darf daher auch meine Erfahrung hier kund tun.

    Ich interessiere mich jetzt seit gut zwei Jahrzehnten für das Programmieren und C++ ist die erste Programmiersprache bei der ich irgendwann einfach die Lust verloren habe es weiter zu lernen. Als Bücher habe ich C++ Primer, Die C++ Programmiersprache und Effektive C++ zum Lernen benutzt.

    Keinerlei Probleme hatte ich vorher mit Assembler, GFA-Basic, Java, PHP. Python war eine wahre Freunde zu lernen auch wenn ich nicht viel damit gemacht hatte, so waren die Grundlagen in einer Woche gut zu lernen. Jetzt lerne ich gerade C und bin froh hier mal wieder eine richtig überschaubare Sprache vorzufinden.

    Zu OO kann ich auch nur sagen dass ich es nie richtig gebraucht habe.



  • Meinung001 schrieb:

    Ob ich C++ richtig kann? Wohl eher nicht, aber ich habe es wahrlich versucht zu lernen.

    Meinung001 schrieb:

    Python war eine wahre Freunde zu lernen auch wenn ich nicht viel damit gemacht hatte, so waren die Grundlagen in einer Woche gut zu lernen.

    Meinung001 schrieb:

    Zu OO kann ich auch nur sagen dass ich es nie richtig gebraucht habe.

    Also hast Du OOP nie gerafft. Und nur kleine Programme gebastelt.
    http://www.voidspace.org.uk/python/articles/OOP.shtml

    Meinung001 schrieb:

    Keinerlei Probleme hatte ich vorher mit Assembler, GFA-Basic, Java, PHP

    Du willst uns wohl verarschen. Oder nur sehr kleine Programmme gebastelt.



  • Nun komm mal runter Volkard, du willst doch hier nicht ernsthaft behaupten man brauche immer OOP um mittlere bis größere Programme zu entwickeln. Das ist absoluter Unsinn, sorry. OOP kann helfen kann aber auch genauso sehr hinderlich sein. Auf keine Fall ist OOP ein muss für gute und auch große Software. Leg dich mal wieder hin und schlaf dich aus vielleicht klappt es dann mit dem Nachdenken etwas besser.



  • Meinung001 schrieb:

    Ob ich C++ richtig kann? Wohl eher nicht, aber ich habe es wahrlich versucht zu lernen. Nach ein paar Monaten, in der ich mal mehr mal weniger gelernt hatte, war dann irgendwann die Motivation dahin.

    Hallo,

    jetzt würde mich mal interessieren, was denn die Probleme beim Erlernen von C++ war.

    C++ ist doch nur eine sinnvolle Erweiterung der Sprache C um OOP-Konzepte. Diese sind meiner Meinung nach nicht sehr schwer zu verstehen. Und wenn Du Java einigermassen kannst, sollte es doch auch mit C++ nicht so schwer fallen.

    Betrachten wir doch einfach mal die wichtigsten Änderungen:

    1. Was heißt eigentlich OOP?
    Bei der objektorientierten Programmierung werden Datenstrukturen und Methoden enger verzahnt. In C habe ich auf der einen Seite Strukturen und auf der anderen Seite Methoden. Methoden können als Parameter ein oder mehrere Strukturen bekommen oder auch nicht. Wie das verknüpft wird, bleibt den Programmierer überlassen. Es ist aber auch in C möglich, objektorientiert zu programmieren. Man/frau muß halt das, was der Compiler implizit bei C++ macht, die in C explizit ausformulieren. Beispiel stdio:

    Statt

    fprintf( file, "xxx" );
    

    würde man dann das, in C++ schreiben

    file->fprintf( "xxx" );  // wenn es denn sowas gäbe
    

    2. Kapselung
    In C++ kann der Zugriff auf Elemente einer Struktur gesteuert werden. So etwas gibt es in C direkt nicht, ich kann aber damit erreichen, daß nicht wild in den Strukturen herumgepfuscht wird. Wenn man die entsprechenden Getter und Setter Methoden implementiert, hat man trotzdem die Möglichkeit von überall aus, die Elemente zu ändern ist also genauso flexibel wie in C. Wenn diese Getter und Setter Methoden auch noch inline sind, kosten sie auch keine Performance.

    Nun werden Cler sagen, was habe ich davon? Ganz einfach, wenn ein Element geändert wird und ich möchte beim Debuggen herausfinden wo das passiert, brauch ich nur einen Breakpoint auf die Setterfunktion setzen und warten, bis der Debugger das Programm unterbricht.

    Nun werden die Cler sagen, das geht auch mit Watchpoints. Dann sage ich, daß dieses beim Debuggen das Programm ziemlich verlangsamen kann und dieses dadurch nur mühsamer wird.

    Ein weiterer Vorteil der Kapselung ist, daß es leichter ist, das Programm zu ändern, wenn sich im Laufe der Zeit die Logik des Programmes so ändert, daß beim Verändern eines Elements auch noch ein anderes Element angepasst werden muß oder irgendwelche Plausibilitäten eingebaut werden müssen.

    In C müsste ich alle Stellen heraussuchen, in denen das passiert und entsprechend anpassen, wer sauber in C++ realisiert hat, braucht nur genau diese eine Stelle suchen und korrigieren.

    Praktisch ist auch, daß ich die Kapselung nicht immer nutzen muß. Ich benutze auch in meinen C++ Klassen nach wie vor normale Strukturen, wenn mir der Extraaufwand mit Getter und Setter nicht sinnvoll erscheint. Und wenn es dann irgendwanneinmal doch geändert werden muß, zeigt mir schon der Compiler, wo Nacharbeiten erforderlich sind.

    3. Vererbung
    Das A&O eines komplexen Programmes sind die Datenstrukturen. Wenn die Datenstrukturen sauber formuliert sind, hat man schon die halbe Miete bei der Erstellung des Programmes. Dies gilt für jede Programmiersprache und auch beim Design eines Datenbankschemas.

    Hier bietet ein C++ eine ganze Reihe von Werkzeugen, die dem C-Programmieren fehlen. Ich kann beispielsweise einen Container schreiben, der eine abstrakte Datenstruktur speichern kann und jemand anderes erweitert diese abstrakte Struktur und kann trotzdem den Container benutzen. Wer schon einmal sich mit der OLE2 Api von Windoof beschäftigt hat, weiß was für einen Vorteil das bieten kann.

    4. Exceptions
    Man stelle sich mal ein Programm vor, das eine sehr tiefe Aufrufhierarchie. Ganz weit unten passiert ein Fehler und es heißt Kommando zurück. In C ist es einfach Routine, die Rückgabewerte aller Funktionen zu überprüfen und gegebenenfalls zu reagieren. Solche Routineaufgaben können aber problemlos vom Compiler erledigt werden und wenn dann doch mal eine besondere Fehlerbehandlung erforderlich sein sollte, die der Compiler nicht automatisch erledigen kann, macht man halt eine try..excpetion block.

    usw usf.

    Das besonders tolle an C++ ist, ich muß das Zeug nicht benutzen, ich kann wo immer es adäquat ist, auch meine normalen C-Funktionen benutzen. Beispiel:

    Niemand zwingt mich std::vector zu benutzen, wenn ich ein array brauche, dessen Größe schon vor der Speicheranforderung bekannt ist und das ich nur für einen Überschaubaren bereich brauche. malloc und free dürfen auch in C++ benutzt werden. Wer Klassen mit Konstruktoren benutzt, verwendet halt new[] und delete[].

    Grundätzlich gilt:
    C++ Programme sind nicht automatisch langsamer als C-Programme. Wer die Vorteile der STL nicht braucht, muß sie nicht nutzen. Wer sie braucht, wird auch in C keine großartigen besseren Ergebnisse abliefern. Und wenn doch, baut man sich halt seine eigenen Klassen.

    C Programme sind aber auch nicht automatisch absturzgefährdeter. Man kann auch in C sauber programmieren und auch mit C-Methoden kann man sehr große Projekte realisieren. Ich habe beispielsweise vor Jahren mal ein DTP-System für Unixkisten gemacht. Das war reines C, sogar nicht einmal Ansi C, Es war K&R C. (Da merke ich mal wieder wie alt ich eigentlich schon bin)

    Nochj ein Satz: OOP ist nicht erforderlich, es erleichtert aber manche Aufgaben ungemein.

    mfg Martin
    P.S.: Ich würde mir hier wünschen, daß diese Diskusion wieder in sachlichere Bahnen gelenkt wird. Es ist nicht zielführend sich gegenseitig zu beschimpfen und es bringt erst recht nichts, über die Deutschkentnisse mancher Forenteilnehmer herzufallen, wenn einem die Argumente ausgehen.



  • Bei OOP kann man sehr schnell viel falsch machen. Es ist sehr schwierig gute OO-Programmierer zu finden, da OOP wirklich nichts für Anfänger ist. Zumal ist C++ nicht wirklich eine Objektorientierte Programmiersprache jeder der OOP ernsthaft betreibt wird einen weiten Bogen um C++ machen, wenn er denn das kann. Ich schätze mal man braucht gute 2 Jahre um C++ und OOP einigermaßen zu erlernen, das ist vielen einfach zu aufwändig da es noch weit mehr zu lernen gibt als ein Paradigma und eine Programmiersprache.



  • nichtdeinErnstoder schrieb:

    Nun komm mal runter Volkard, du willst doch hier nicht ernsthaft behaupten man brauche immer OOP um mittlere bis größere Programme zu entwickeln.

    Nicht notwendig. Nur ungemein praktisch. Für mich sogar weniger wegen der Übersicht, als für die geordnete Ressourcenverwaltung. Deswegen komme ich mit der OO von Perl supi zurecht, während die von C# mir fast nichts gibt.

    nichtdeinErnstoder schrieb:

    Das ist absoluter Unsinn, sorry. OOP kann helfen kann aber auch genauso sehr hinderlich sein.

    Da muß man einfach schlau sein, und die OOP nicht dort einsetzen, wo sie stört. Wir müssen ja nicht OO-pseudoverpflichtende Sprachen wie Java nehmen.


Anmelden zum Antworten