Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 17

Thema: Programmierung: C oder C++

  1. #1
    bonbon2k6
    Gast

    Programmierung: C oder C++

    huhu,

    hab mal ne Frage bezüglich Programmiersprachen, da ich wieder programmieren möchte (habe früher mal n bissl c++ gemacht --> is aber sicherlich alles wieder weg) und programmier atm nur websites.

    Meine Frage betrifft Programmierung von Linuxsoftware sowie Programmierung des Systems selbst (quasi Systemprogrammierung ) und zwar, ist C oder C++ besser geeignet. Es macht ja Sinn, die Sprache zu lernen, welche am meisten verwendet wird oder welche weiterhin sehr häufig verwendet werden wird etc. Im Grunde sind sich die Sprache ja rel. ähnlich, aber eine zu lernen reicht ja erstmal.

    mfg
    bonbon2k6

    P.S.: ich nutz Debian 4.0

  2. #2
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Naja, bei GNU/Linux ist das System schon praktisch komplett in C geschrieben. Ob es aber auch Sinn macht das zu lernen, kommt halt sehr darauf an was genau du nachher machen willst.

    C ist halt schon eine relativ simple und beschränkte Sprache - für grössere Projekte (ausser evtl. im Embedded-Bereich) würde ich mir auf jeden Fall was suchen was OOP von Haus aus unterstützt (wie z.B. C++).

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  3. #3
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Ich glaube die Frage hatten wir schon paar Mal

    Endet jedesmal in einem mittleren Flamewar.

    Es ist eine Frage womit du besser klar kommst. Die paar Ausnahmen, z.B. Programmierung von DSPs, kannst du an einer Hand abzählen.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  4. #4
    Registrierter Benutzer Avatar von panzi
    Registriert seit
    04.05.2001
    Ort
    Kottingbrunn
    Beiträge
    609
    Kommt auch drauf an was du programmieren willst. Für einfache nicht performance kritische Sachen ist Python oder Ruby besser geeignet. Diese Sprachen haben auch bindings für viele GUI libs. Und wenn es performance kritische Teile gibt, kannman ja nur die in ein in C/C++ geschriebenes Modul auslagern.
    Intel Core 2 Duo CPU 2.66GHz; Nvidia GeForce 8 8800 GTS; 4GB RAM; Fedora 12; KDE-testing

  5. #5
    Registrierter Benutzer
    Registriert seit
    02.07.2004
    Beiträge
    456
    Dann fang ich mal an.

    C++, weil C ist Spaghetti Kot.
    Anwendungsentwickler; ehem. Siemens, jetzt Nokia Siemens Networks GmbH. & CO KG
    C/C++;C#;VB;ASP.NET;Ajax;MSSQL
    Webentwicklung/Design; privat
    PHP;MySQL;HTML;XML;Typo3;Photoshop;ASP.NET;Ajax;MS SQL

  6. #6
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Zitat Zitat von 7.e.Q Beitrag anzeigen
    Dann fang ich mal an.

    C++, weil C ist Spaghetti Kot.
    Wow - würdest Du diese Behauptung auch noch mit Tatsachen untermauern? IMHO macht der Programmierer Spaghetti-Code, nicht die Programmiersprache.

    Jan

  7. #7
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Zitat Zitat von jan61 Beitrag anzeigen
    Wow - würdest Du diese Behauptung auch noch mit Tatsachen untermauern? IMHO macht der Programmierer Spaghetti-Code, nicht die Programmiersprache.
    Da musst du aber noch viel lernen

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  8. #8
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Wäre schön, wenn ihr das in einem fremden Thread unterlassen könntet

    Danke,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  9. #9
    Registrierter Benutzer
    Registriert seit
    27.10.2004
    Beiträge
    12
    Also C hat die Eigenschaft, hardwarenäher zu sein. Das muss zwar nicht sein, aber im Regelfall wird es so gemacht. Wenn man dann im System (z.B. Kernel) ist, muss man hardwarenah und performancekritisch Möglichkeiten haben.

    C++ ist dagegen viel übersichtlicher.

    Für mich ist es ganz einfach.
    Webentwickler (php, eZ publish)

  10. #10
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Der Vorteil ist halt insbesondere auch dass C++ wirklich eine Übermenge von C ist; d.h. während du in C zwangsweise relativ Hardwarenah bist, hast du in C++ die Wahl (weil C++ halt alles kann; auch nicht zwingend immer ein Vorteil, des öftern auch das Gegenteil davon, aber ist halt irgendwie so)

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  11. #11
    Registrierter Benutzer Avatar von panzi
    Registriert seit
    04.05.2001
    Ort
    Kottingbrunn
    Beiträge
    609
    Zitat Zitat von peschmae Beitrag anzeigen
    Der Vorteil ist halt insbesondere auch dass C++ wirklich eine Übermenge von C ist; d.h. während du in C zwangsweise relativ Hardwarenah bist, hast du in C++ die Wahl (weil C++ halt alles kann; auch nicht zwingend immer ein Vorteil, des öftern auch das Gegenteil davon, aber ist halt irgendwie so)

    MfG Peschmä
    Naja, per definition ist das nicht 100% so. Also es gibt ein paar Sachen aus C die nicht im C++ Standard sind, aber praktisch alle C++ Kompiler trotzdem implementieren. Z.B. complex für komplexe Zahlen.

    Und IMHO kann man auch nicht generell sagen, dass C++ übersichtlicher ist. Die Idee dahinter war das natürlich (Objekt Orientierung) aber die umsetzung, naja. So unübersichtliche, verwirrende und irreführende Fehlermeldungen wie's mit C++ (und Templates) gibt, wirst du in C nie haben. Von dem her ist C übersichtlicher.

    Wirklich übersichtlich sind wohl eher nur so Sprachen wie z.B. Java (oder C# etc.).
    Intel Core 2 Duo CPU 2.66GHz; Nvidia GeForce 8 8800 GTS; 4GB RAM; Fedora 12; KDE-testing

  12. #12
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Zitat Zitat von panzi Beitrag anzeigen
    Naja, per definition ist das nicht 100% so. Also es gibt ein paar Sachen aus C die nicht im C++ Standard sind, aber praktisch alle C++ Kompiler trotzdem implementieren. Z.B. complex für komplexe Zahlen.
    Ja, ich meine das so, dass das ein bisschen anders ist und du je nach dem ein C-Programm nicht ohne Änderungen durch jeden C++ Compiler jagen kannst; aber das ist in dem Falle ja egal, weshalb ich es auch nicht erwähnt habe.

    Die gleich Funktionalität hast du trotzdem in C++ zur Verfügung...

    Und IMHO kann man auch nicht generell sagen, dass C++ übersichtlicher ist. Die Idee dahinter war das natürlich (Objekt Orientierung) aber die umsetzung, naja. So unübersichtliche, verwirrende und irreführende Fehlermeldungen wie's mit C++ (und Templates) gibt, wirst du in C nie haben. Von dem her ist C übersichtlicher.
    Naja, ich finde schon dass Objekte generell übersichtlicher sind. Das war ja wohl auch die Hauptidee dahinter...
    Klar kann man das auch so machen dass dem überhaupt nicht so ist... - das kann man immer.

    Die irreführenden Fehlermeldungen sind ja auch kaum der Fehler von C++; sondern der des Compilers.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  13. #13
    Registrierter Benutzer Avatar von panzi
    Registriert seit
    04.05.2001
    Ort
    Kottingbrunn
    Beiträge
    609
    Zitat Zitat von peschmae Beitrag anzeigen
    Die irreführenden Fehlermeldungen sind ja auch kaum der Fehler von C++; sondern der des Compilers.
    Nicht immer. Beim Chaos Communication Camp war da ein interessanter Vortrag. Da wurde auch gezeigt wie man mit zwei ansich korrekten Zeilen den PARSER in eine Endlosschleife bringen kann. Den C++ Parser. Jetzt kann man sagen, das ist ein Fehler von GCC, aber diese semantische Schleife ist von der Sprache her so definiert. Einen Kompiler der sich 100% an den Standard hält bleibt nix anders über. Die Gramatik von C++ ist stark kontestabhängig. Ken nahc dem was ein konkreter Bezeichner ist (Typ, Funktion, Variable) kann ein Ausdruck ein anderes Syntaktisches element ergeben. So ein Beispiel wurde auch gebracht. etc. etc.
    Also ich bin schon der Meinung das man C++ in vielen Fällen den Vorzug geben sollte, aber nicht unbedingt wegen der Übersichtlichkeit, sondern wegen OOP. Wegen OOP gewinnt man Übersichtlichkeit, wegen der Syntax von C++ verliert man wieder welche.

    Siehe: http://events.ccc.de/camp/2007/Fahrp...s/1951.en.html
    Oder gleich die Folien: http://www.fefe.de/c++/c%2b%2b-talk.pdf

    Ich finde die Punkte sind alle valid, aber trotzdem, welche alternative gibts? Gibt keine echte, wenn's nativ kompelieren soll/muss, oder wenn man direkt C/C++ libs verwenden muss.

    PS: Ein paar der Folien brauchen die Erklärung vom Vortragenden. Das schreib ich jetzt aber nicht alles zam. Der Rest ist echt genug.
    Geändert von panzi (14-09-2007 um 22:48 Uhr)
    Intel Core 2 Duo CPU 2.66GHz; Nvidia GeForce 8 8800 GTS; 4GB RAM; Fedora 12; KDE-testing

  14. #14
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Zitat Zitat von panzi Beitrag anzeigen
    Also ich bin schon der Meinung das man C++ in vielen Fällen den Vorzug geben sollte, aber nicht unbedingt wegen der Übersichtlichkeit, sondern wegen OOP.
    Darauf wollte ich eigentlich ursprünglich hinaus

    Interessante Slides im übrigen

    MfG Peschmä
    Geändert von peschmae (15-09-2007 um 10:11 Uhr)
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  15. #15
    Registrierter Benutzer
    Registriert seit
    18.03.2005
    Beiträge
    211
    NAja, ob nun C oder C++ den schlechteren Code liefert, darueber laesst sich echt streiten.

    C ist meistens umfangreicher und die Thematiken verstreuter, man sucht Sachen die eigentlich zusammenhaengen an unterschiedlichen stellen.

    C++ wiederum hat templates, die sind nicht jedermans sache, schwer zu erlernen und zu lesen, wenn man es aber kann, kann man tolle sachen mit machen. Nur mit dem verstaendniss isses dann halt schwerer.

    Den Hauptvorteil macht aber die OOP aus. Dadurch lassen sich Thematiken viel eher modularisieren. Dadurch kann man unterschiedliche Teilaufgaben unterschiedlichen Programmieren zuweissen , und die gemeinsamkeit die alle verstehen muessen sind die schnittstellen. Durch den Code der anderen wuehlen braucht man dann ned mehr so haeufig.

    Bei der schnittstellenorientierten Programmierung hat aber C++ definitiv die nase vorn, weil nun mal abstrakte klassen leserlicher und verstaendlicher sind wie funktionspointer deklarationen :-)

    Bei projekten wo man selbst dran arbeitet, isses eigentlich wurscht. gutes C und gutes C++ ist beides auch gut managbar. Nur das ebend c++ schon mehr fertige Loesung fuer standardprobleme mitbringt (STL, container etc).

    Ciao ...

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •