Login
Newsletter
Werbung

Thema: Gewinnspiel: Fünf Bücher »C-HowTo« zu gewinnen

78 Kommentar(e) || Alle anzeigen ||  RSS
Kommentare von Lesern spiegeln nicht unbedingt die Meinung der Redaktion wider.
0
Von o13 am So, 30. Januar 2011 um 13:50 #

Äh..? Das Video zeigt Windows. Wer sowas benutzt sollte besser gar nicht programmieren.

[
| Versenden | Drucken ]
  • 0
    Von hehehehe am So, 30. Januar 2011 um 14:34 #

    Naja, egal. C in a Nutshell ist eh besser. Ist halt ne Referenz, aber Programmieren sollte man eh besser mit ner anderen Sprache anfangen. :D

    [
    | Versenden | Drucken ]
    0
    Von Elias am Mo, 31. Januar 2011 um 09:46 #

    Windows, weil das die breite Masse hat. Die Codes im Buch sind betriebsystemunabhängig.

    [
    | Versenden | Drucken ]
    • 0
      Von Unerkannt am Mo, 31. Januar 2011 um 10:51 #

      Die breite Masse der C-Programmierer und Interessierten nutzt Windows? Das Erscheint mir irgendwie Abwegig. Die breite Masse dürften mit ihren Problemen ohnehin besser mit einer Hochsprache bedient sein, am besten irgendetwas das mit dem Attribut Skriptsprache versehen ist. Wenn es dieser breiten Masse auf Ausführungsgeschwindigkeit ankommt wird sie sinnvollerweise wohl zu Java greifen.

      [
      | Versenden | Drucken ]
      • 0
        Von Elias am Mo, 31. Januar 2011 um 11:10 #

        Was viele hier vergessen ist, dass es sich um ein Lernbuch für den Einstieg in das Programmierung allgemein anhand der Sprache C handelt und nicht um die Proklamation "C über alles".

        Nicht dass ich ein Freund von Windows bin, aber die breite Masse der Programmierneulinge hat Windows, oder will das jemand bestreiten? In dem Buch wird genau so das Kompilieren unter Linux erklärt. Die Codes sind 1:1 für Linux heraus zu kopieren und lauffähig.

        [
        | Versenden | Drucken ]
      0
      Von o13 am Mo, 31. Januar 2011 um 10:59 #

      Passt hier schon allein deshalb nicht, weil diese Site
      pro LINUX heisst und nicht pro Windos.

      Der Omega13.

      [
      | Versenden | Drucken ]
0
Von MarcusZ am So, 30. Januar 2011 um 15:36 #

Ich habe gerade direkt im ersten Satz der Einleitung nen Rechtschreibfehler gefunden.
Nun ja, kann ja mal passieren.

Also dann aber bei ner zweiten Stichprobe direkt schon wieder ein doppeltes Wort im Satz war, da war ich ein wenig geschockt.
Hoffentlich hat sich der Autor ein wenig mehr Mühe gegeben bei der gedruckten Version!

[
| Versenden | Drucken ]
0
Von name am So, 30. Januar 2011 um 18:36 #

Na da bevorzuge ich doch eher
http://openbook.galileocomputing.de/c_von_a_bis_z/

[
| Versenden | Drucken ]
0
Von pvb123 am So, 30. Januar 2011 um 19:27 #

- Betriebssystem werden darin programmiert
- Scriptsprachen werden von C Programmen interpretiert
- Ist nicht auch die Java VM in C geschrieben ?
- C ist der bessere Assembler
- C/C++ ist in der Praxis sehr gefragt

Warum machen dann eigentlich so viele Leute einen Bogen darum ?

[
| Versenden | Drucken ]
  • 0
    Von o13 am So, 30. Januar 2011 um 19:36 #


    > - C/C++ ist in der Praxis sehr gefragt
    "Richtiges "C++ und C sind schon sehr verschieden.
    Ich würd die nicht so in einen Topf werfen.

    > Warum machen dann eigentlich so viele Leute einen
    > Bogen darum ?
    Weil so viele Leute umbedingt programmieren wollen es
    aber nicht können.

    Der Omega13.

    [
    | Versenden | Drucken ]
    • 0
      Von pvb123 am So, 30. Januar 2011 um 20:08 #

      > > Warum machen dann eigentlich so viele Leute einen
      > > Bogen darum ?
      > Weil so viele Leute umbedingt programmieren wollen es
      > aber nicht können.
      Ich denke da eigentlich mehr an Anpassungen vorgefertigter Programme/Programmbausteine.
      In C/C++ ginge das oft problemlos, weil alles sonst in C/C++ ist.
      Aber da muss dann immer eine Scriptsprache her, weil die Anwender Angst vor C haben.
      Die Mischung von Sprachen in einem Projekt finde ich eigentlich nicht so toll.

      Gut, dass es http://swig.org gibt

      [
      | Versenden | Drucken ]
      • 0
        Von hahhahahhahahar am So, 30. Januar 2011 um 20:19 #

        Lua/Javascript/Angelcode rein, fertig.
        Sprachen, bei denen man SWIG benötigt, sind eher für "richtige" Anwendungsentwicklung gedacht. Naja, meistens zumindest.

        [
        | Versenden | Drucken ]
        • 0
          Von pvb123 am So, 30. Januar 2011 um 20:26 #

          Wir bauen Lua gerade in unseren http://pvbrowser.org ein.
          In C geht es aber genau so gut, wenn nicht besser.
          Aber die Anwender wollen es so.

          [
          | Versenden | Drucken ]
          • 0
            Von o13 am So, 30. Januar 2011 um 20:34 #

            Hmmm... interessantes/kuhles Projekt.

            Das die Leuts umbedingt Lua wollen wundert
            mich etwas.

            Der Omega13

            [
            | Versenden | Drucken ]
            • 0
              Von pvb123 am So, 30. Januar 2011 um 20:40 #

              > Das die Leuts umbedingt Lua wollen wundert
              > mich etwas.
              Die Leute wollen die Masken Ihrer Visualisierungen "on the fly" ändern können. Ohne zu kompilieren oder den Server neu starten zu müssen.
              Da erscheint Lua gut geeignet.

              [
              | Versenden | Drucken ]
              • 0
                Von o13 am So, 30. Januar 2011 um 20:49 #

                Ok. Aber ich hätt gedacht da gibts populärere Sprachen... aber egal...

                Ihr benutzt Qt seh ich grad. Seeehr gut! Wir auch.
                Sind allerdings von qmake auf CMake umgestiegen und
                CMake ist echt ne feine Sache muss ich sagen.

                Nur so, by the way...
                Der Omega13.

                [
                | Versenden | Drucken ]
                • 0
                  Von pvb123 am So, 30. Januar 2011 um 20:59 #

                  > Sind allerdings von qmake auf CMake umgestiegen und
                  > CMake ist echt ne feine Sache muss ich sagen.
                  Ich kenne CMake von http://vtk.org/ Das ist da glaube ich entwickelt worden (kitware).
                  Aber für Qt Anwendungen finde ich qmake klasse.
                  Zumal das sowieso mit Qt Installiert wird.
                  Wir benutzen jedenfalls qmake.

                  [
                  | Versenden | Drucken ]
                  0
                  Von pvb123 am So, 30. Januar 2011 um 21:11 #

                  > Ok. Aber ich hätt gedacht da gibts populärere Sprachen... aber egal...

                  Wir haben bereits die Möglichkeit den Server in Python zu programmieren.
                  Aber Lua hat den Vorteil sehr klein zu sein (statische lib mit ca. 2MB)
                  und nicht separat installiert werden zu müssen.
                  Das wäre unter Linux zwar nicht so das Problem aber
                  unter Windows sieht es da schon anders aus.

                  Mit Lua braucht man nur unsere Anwendung zu installieren.
                  - wir brauchen keinen MinGW bei den Anwendern
                  - wir brauchen kein Qt SDK bei den Anwendern
                  - wir müssen die Scriptsprache nicht erst installieren
                  - die Qt libs werden unter Windows mitgeliefert

                  [
                  | Versenden | Drucken ]
        0
        Von Mischen am So, 30. Januar 2011 um 20:27 #

        > Die Mischung von Sprachen in einem Projekt finde ich
        > eigentlich nicht so toll.
        Wieso? Funzt sehr gut. Ausser mit Java (weswegen
        Java auch kacke ist, aber IMO).

        Der Omega13

        [
        | Versenden | Drucken ]
    0
    Von Rechthaber am So, 30. Januar 2011 um 20:03 #

    Weil die Leute irrtümlicherweise annehmen, es sei übersichtlicher, sich den Code mithilfe von UML zu modellieren, generieren zu lassen und anschließend rumjammern, das es nicht so fluppt.
    C ist zwar hässlich wie die Sünde und Einsteigern würde ich tatsächlich erstmal zu Python oder so raten, aber man kann mit C arbeiten und für Bibliotheken sollte es ausschließlich benutzt werden. Immerhin gibt es fast überall einen C-Compiler und man kann Anbindungen an die meisten Sprachen dafür bauen.

    [
    | Versenden | Drucken ]
    • 0
      Von pvb123 am So, 30. Januar 2011 um 20:16 #

      Ich werde echt langsam alt, denn mit UML kann ich mich immer noch nicht anfreunden (Bin Quereinsteiger was Programmieren anbegeht / Elektoingenieur).
      Mir reicht es eigentlich völlig aus die Header Dateien zu schreiben und Doxygen darüber rennen zu lassen.

      PS:
      Nach FORTRAN und Assembler war C die Lösung.
      Nach GEM, Motif, MFC war Qt die Lösung.

      [
      | Versenden | Drucken ]
      • 0
        Von o13 am So, 30. Januar 2011 um 20:32 #

        > Mir reicht es eigentlich völlig aus die Header Dateien
        > zu schreiben und Doxygen darüber rennen zu lassen.
        Die Idee ist, das man /bevor/ man Anfängt zu coden einen Plan macht (mit zB UML Diagrammen). ;-)

        Der Oemga13.

        [
        | Versenden | Drucken ]
        • 0
          Von fafd am So, 30. Januar 2011 um 20:34 #

          Es gibt leider auch Generatoren, die aus UML-Diagrammen Code erzeugen können.

          [
          | Versenden | Drucken ]
          • 0
            Von o13 am So, 30. Januar 2011 um 20:38 #

            Das ist mir bekannt. Mir gings um den Wink
            mit dem Zaunpfaul bzgl der Arbeits- bzw
            Vorgehensweise.

            Ich selbst benutze sowas nicht und mich hat
            in 10 Jahren die ich den Beruf des SW Entwicklers
            (meist im Bereich Technische Informatik muss
            ich dazu sagen) ausübe auch zum Glück noch
            keiner dazu gezwungen.

            Der Omega13.

            [
            | Versenden | Drucken ]
    0
    Von Unerkannt am Mo, 31. Januar 2011 um 11:01 #

    >- C ist der bessere Assembler
    Unfug. Jedes Werkzeug ist zu seiner Zeit einzusetzen. Schon alleine auf Register zu zugreifen wenn diese nicht im Speicher abgebildet sind ist in reinem C nicht möglich.

    [
    | Versenden | Drucken ]
0
Von Wolfgang am So, 30. Januar 2011 um 19:49 #

ist das ein Bezahlter Artikel?

[
| Versenden | Drucken ]
  • 0
    Von Der_Andi am So, 30. Januar 2011 um 21:09 #

    Manchmal Frage ich mich wirklich, wie Alt die Leute hier sind...

    [
    | Versenden | Drucken ]
    • 0
      Von wolfgang am Mo, 31. Januar 2011 um 09:46 #

      42 Mein kleiner.
      Und der Artikel ist keine Rezession sondern Werbung.
      Werbeeinschaltungen sollten als solche gekennzeichnet sein.

      [
      | Versenden | Drucken ]
      • 0
        Von Elias am Mo, 31. Januar 2011 um 10:00 #

        5 Bücher finden einen Leser, das ist alles. Ein C Handbuch, das kostenlos für die User abrufbar ist, hat kein (großes) Werbebudget, das kann ich dir versichern.

        [
        | Versenden | Drucken ]
        0
        Von Alfred E am Mo, 31. Januar 2011 um 10:13 #

        Natürlich ist der Artikel Werbung und jeder, der nur ein wenig denken kann erkennt es sofort. Noch nie eine Verlosung irgendwo erlebt? Noch nie Fernsehen geschaut und eine der zahlreichen Verlosungen gesehen? Mann... Die Frage ist eines 42-jährigen nicht würdig.

        [
        | Versenden | Drucken ]
        0
        Von Demon am Mo, 31. Januar 2011 um 10:15 #

        Bei selben Kommentaren stelle ich mich immer wieder die Frage, warum ich mir eigentlich das Ganze hier antue...

        Cheers,
        demon

        [
        | Versenden | Drucken ]
0
Von Bolitho am So, 30. Januar 2011 um 21:30 #

Das Buch gibt Programmier-Anfängern (und C-Interessierten) einen einfachen Einstieg in die Programmierung.
Wer findet den Widerspruch? :x

SCNR.

[
| Versenden | Drucken ]
  • 0
    Von Elias am Mo, 31. Januar 2011 um 09:51 #

    :) Ich habe versucht die Sprache so einfach (praxisnah) wie möglich zu halten, ohne viel in der Theorie zu stöbern.

    [
    | Versenden | Drucken ]
0
Von Anonymous am Mo, 31. Januar 2011 um 00:49 #

C ist ein Relikt der 70er, das in der modernen Softwareentwicklung nichts mehr verloren hat, außer vielleicht zur Pflege von Legacy-Code. Die Einschränkungen dieser Sprache sind heute nicht mehr zeitgemäß.

[
| Versenden | Drucken ]
  • 1
    Von turf am Mo, 31. Januar 2011 um 00:57 #

    Sagt jmd der von der Praxis offenbar keine Ahnung
    hat.

    [
    | Versenden | Drucken ]
    • 0
      Von Anonymous am Mo, 31. Januar 2011 um 01:36 #

      Was soll dieser arrogante Ton? Ich habe jahrelang mit C-Programmierung mein Geld verdient und bin wirklich froh, das nicht mehr machen zu müssen. Nicht, weil ich es nicht könnte, sondern weil es schlicht nervt und keinen Spaß macht.

      [
      | Versenden | Drucken ]
      • 0
        Von Schönheit liegt im auge des Be am Mo, 31. Januar 2011 um 03:20 #

        Stell dir vor das sieht schon der nächste! wieder ganz anders.

        [
        | Versenden | Drucken ]
        • 0
          Von Bolitho am Mo, 31. Januar 2011 um 08:25 #

          Schönheit ja, Eleganz nein! C stammt aus einer Zeit, in der viele Konzepte neuerer Sprachen noch nicht bekannt waren. Es ist somit klar, dass diese Sprache veraltet wirkt. Trotz diverser Nachbesserungen kann man die grundlegenden Paradigmen einer Sprache eben nicht umkrempeln.

          Ich kann da AnonymousCoward nur zustimmen!

          [
          | Versenden | Drucken ]
          • 0
            Von linguist am Mo, 31. Januar 2011 um 13:39 #

            Schönheit ja, Eleganz nein! C stammt aus einer Zeit, in der viele Konzepte neuerer Sprachen noch nicht bekannt waren.

            So ein Blödsinn. Sämtliche Konzepte neuerer Sprachen waren schon in den 70ern bekannt.

            [
            | Versenden | Drucken ]
            • 0
              Von Bolitho am Mo, 31. Januar 2011 um 16:52 #

              Von mir aus auch das :roll:

              Wichtig ist doch nur, dass die in C nicht enthalten sind - die Gründe dafür sind letztlich egal.

              [
              | Versenden | Drucken ]
              0
              Von Anonymous am Mo, 31. Januar 2011 um 17:58 #

              Ganz so extrem würde ich das nicht ausdrücken, es gibt durchaus interessante Konzepte, die erst spät erfunden wurden. Beispielsweise wurde lineare Logik erst 1987 erfunden, und diese Logik bildet die Grundlage mancher Typsysteme in modernen Sprachen.

              Aber im Grunde hast Du Recht, sehr viel von dem, was in C fehlt, gab es vorher schon.

              [
              | Versenden | Drucken ]
    0
    Von Noname am Mo, 31. Januar 2011 um 08:52 #

    Und auf der Hardware Ebene unverzichtbar ist....

    Man versucht zwar ne VM auf nen Chip zu packen aber wozu? Historische Software wie der Bekannte Webserver sind in reinem C geschrieben. D. h. neue Software wäre es sinnfrei wieder mit C anzufangen aber bei Echtzeitprogrammen ist C halt eben C und kein lahmes C# oder Java.

    Für den bequemen Programmierer von heute sind Referenzen das Nonplusultra. Für mich sind Pointer einfach der Inbegriff von Macht....Deshalb halte ich von C# mehr als von Java wenn man sich dem Hype nicht verschließt...Wobei sowohl Sun als auch MS ganz groß im Kopieren Sprachkonstrukten sind

    Kurz gesagt vorher gefriert die Hölle bevor C ausstirbt...Danke liebe stabile C Software das es dich gibt. Solange ne C# VM auf nem Hardwarebaustein nicht genauso schnell läuft wie C braucht man hier nicht weiterdiskutieren.

    Besonders diejenigen die eine Sachlage nur aus einer Richtung betrachten. "Ich mag C nicht weil es viel zu unbequem ist"

    [
    | Versenden | Drucken ]
    • 0
      Von Bolitho am Mo, 31. Januar 2011 um 09:30 #

      Kurz gesagt vorher gefriert die Hölle bevor C ausstirbt...Danke liebe stabile C Software das es dich gibt. Solange ne C# VM auf nem Hardwarebaustein nicht genauso schnell läuft wie C braucht man hier nicht weiterdiskutieren.
      Genauso schnell ist nicht relevant, da C# primär einen anderen Einsatzzweck besitzt als C. In viele naturwissenschaftlichen Disziplinen ist ja sogar noch Fortran im Einsatz und das nicht nur aus historischen Gründen. Für reines Numbercrunching mag C ok sein, für komplexe Software Programme a la ApplicationServer und Anwendungsprogramme sind die Zeiten von C einfach vorbei. Dort bestimmt neben Entwicklungszeit eben auch Sicherheit; und da sind Pointer eben Gift!

      [
      | Versenden | Drucken ]
      0
      Von Anonymous am Mo, 31. Januar 2011 um 12:59 #

      Für den bequemen Programmierer von heute sind Referenzen das Nonplusultra. Für mich sind Pointer einfach der Inbegriff von Macht.
      Also wenn Du ein so triviales Konstrukt wie Pointer für den "Inbegriff von Macht" hältst, was machst Du dann erst, wenn Du wirklich mächtige Features siehst? Z. B. Lisp-Macros, Funktionen höherer Ordnung, das Actor-Modell in Erlang...

      [
      | Versenden | Drucken ]
      • 0
        Von ;) am Mo, 31. Januar 2011 um 14:08 #

        ich glaube nicht das du verstehst was er meint!

        und du bist halt so ein bequemer der auch von Speicher freigeben nichts hält. oder?
        hantierst da mit deinen Abstrakten Konstrukten rum und weil sie dir so viel Arbeit
        abnehmen sind sie ja so mächtig aber so manch einer versteht unter mächtig
        auch was anderes u.a pointer/inine asm/usw.

        ich für meine Person mag am liebsten Assembler nicht weil es Schön/Elegant/usw.
        ist nicht weil dabei schnell Ergebnisse raus kommen die sich verkaufen lassen
        nein ich mag es weil es noch so richtig Spaß macht!

        das ist doch immer das gleich das ist alt das ist schlecht siehe "Prozedurale Programmierung"
        wurde doch auch größtenteils von OO abgelöst und galt als veraltet usw doch jetzt ist
        sie wieder im kommen und wird sogar wieder schön geredet siehe Scala.

        [
        | Versenden | Drucken ]
        • 0
          Von Anonymous am Mo, 31. Januar 2011 um 15:32 #

          Ich habe mich angesichts Deines Schreibstils gefragt, ob ich überhaupt antworten soll. Ein paar Kommata tun nicht weh und verbessern den Lesefluss erheblich, ebenso wie Groß- und Kleinschreibung. Aber sei's drum.

          ich glaube nicht das du verstehst was er meint!
          Naja, zumindest verstehe ich unter Macht offenbar etwas anderes als er. Meinem Verständnis nach ist ein mächtiges Konstrukt eines, das es mir ermöglicht, mit wenig Code viel zu erreichen. Pointer gehören meiner Ansicht nach eher nicht zu dieser Kategorie.

          und du bist halt so ein bequemer der auch von Speicher freigeben nichts hält. oder?
          Kommt drauf an, ob es wirklich nötig ist oder nicht. Aber wenn es nötig ist, dann bitte nicht so wie in C. Moderne Typsysteme können die Abwesenheit von Leaks, hängenden Zeigern etc. statisch garantieren. Ein möglicher Ansatz wird z. B. hier erläutert, und das Paper verweist noch auf weitere Ansätze. Sprachen mit manuellem Speichermanagement ohne solche Features werde ich tunlichst meiden.

          das ist doch immer das gleich das ist alt das ist schlecht siehe "Prozedurale Programmierung" wurde doch auch größtenteils von OO abgelöst und galt als veraltet usw doch jetzt ist sie wieder im kommen und wird sogar wieder schön geredet siehe Scala.
          Scala hat nicht mehr mit prozeduraler Programmierung zu tun als z. B. Java. Der Witz an Scala ist die Kombination von OOP mit funktionalen Ansätzen.

          [
          | Versenden | Drucken ]
    0
    Von Hans Müller am Mo, 31. Januar 2011 um 08:52 #

    > C ist ein Relikt der 70er, das in der modernen Softwareentwicklung nichts mehr verloren hat

    Das ist richtig - so lange du nicht C++ als Alternative empfiehlst.

    [
    | Versenden | Drucken ]
    • 0
      Von Elias am Mo, 31. Januar 2011 um 09:53 #

      Wie schon erwähnt gibt es ja nich die Hardwareentwicklung. Für den Einstieg in die Softwareentwicklung würde ich trotzdem C vor C++ wählen. Das ist auch die Praxis von Berufs- und Fachhochschulen, wie ich sie erfahren habe.

      [
      | Versenden | Drucken ]
      0
      Von C/C++ am Mo, 31. Januar 2011 um 11:03 #

      Komisch, dass fast alle Applikationen die ich beruflich
      und private nutze entweder in C oder in C++ geschrieben
      sind. Dazu kommen noch ein paar in Perl, Python geschriebene
      oder bei Web Sachen halt sowas wie PHP.

      Datenbanken, Firefox, KDE, VLC, alles *wichtige ist
      entweder C oder C++ oder eine Mischung daraus.

      Willkommen in der Realität.

      Der Omega13.

      [
      | Versenden | Drucken ]
      • 0
        Von Elias am Mo, 31. Januar 2011 um 11:14 #

        Richtig, C als EINTIEGSsprache.

        [
        | Versenden | Drucken ]
        1
        Von Hans Müller am Mo, 31. Januar 2011 um 11:27 #

        > Komisch, dass fast alle Applikationen die ich beruflich
        > und private nutze entweder in C oder in C++ geschrieben
        > sind.

        Dieses "weil es alle so machen" oder wahlweise auch "weil es schon so lange so gemacht wird" ist für mich kein sachliches Argument. Es können im Prinzip auch "alle" falsch machen und nur einem Hype hinterherrennen.

        Im hardwarenahen Bereich ist C unverzichtbar da C++ nach wie vor ineffzienteren Code generiert. Sprich wenn es beim Timing und bei den Ressourcen wirklich hart auf hart kommt, stehst du mit C++ in einer Sackgasse.

        Unstrittig ist aber, das C für Applikationen auf höheren Leveln ein paar grundlegende Designschwächen hat. Das sind aber genau die Dinge, die es im hardwarenahen Bereich so unverzichtbar machen - nämlich eben die ganze Pointerei. Auf Ebene von Benutzerapplikationen brauche ich das nicht, da kommt es weder auf ein paar Millisekunden Reaktionszeit mehr oder weniger an, noch gibt es bei vernünftiger Programmierung auch nur einen einzigen Grund, in irgend einem Speicherbereich herumzupoken.

        [
        | Versenden | Drucken ]
        • 0
          Von Anonymous am Mo, 31. Januar 2011 um 13:06 #

          Im hardwarenahen Bereich ist C unverzichtbar da C++ nach wie vor ineffzienteren Code generiert. Sprich wenn es beim Timing und bei den Ressourcen wirklich hart auf hart kommt, stehst du mit C++ in einer Sackgasse.
          C++ ist nicht weniger effizient als C. Das kann schon allein deswegen nicht sein, weil jedes C-Programm auch ein gültiges C++-Programm ist (gut, man muss ein paar Casts einfügen und Variablen umbenennen, deren Name in C++ ein Schlüsselwort ist. Auf den generierten Code hat das keinen Einfluss).

          [
          | Versenden | Drucken ]
          • 0
            Von Halbwissen am Mo, 31. Januar 2011 um 15:19 #

            LOL! Und für die Begründung: ROTFL!

            Bastel dir mal zwei Programme:

            Ein C++-Programm, welches einen konstanten Wert als Member einer Klasse definiert (so dass dieser nur im Kontext der Klasse benutzt werden kann, was aus OOP-Sicht sehr elegant ist) und ein C-Programm, das die gleiche Konstante als simples #define (und damit global und funktionsorientiert-hässlich) implementiert.

            Dann compiliere die beiden Programme und erzähle mir noch mal was von "kann nicht sein".

            [
            | Versenden | Drucken ]
            • 0
              Von Anonymous am Mo, 31. Januar 2011 um 16:00 #

              Von mir aus... hier das C-Programm:

              #include <stdio.h>
              #define FOO 42
              static void go() {
              printf("%d\n", FOO);
              }
              int main() {
              go();
              return 0;
              }

              Kompiliert mit gcc -O2 -S ergibt das
              .file "test.c"
              .section .rodata.str1.1,"aMS",@progbits,1
              .LC0:
              .string "%d\n"
              .text
              .p2align 4,,15
              .globl main
              .type main, @function
              main:
              pushl %ebp
              movl %esp, %ebp
              andl $-16, %esp
              subl $16, %esp
              movl $42, 4(%esp)
              movl $.LC0, (%esp)
              call printf
              xorl %eax, %eax
              leave
              ret
              .size main, .-main
              .ident "GCC: (Debian 4.4.5-10) 4.4.5"
              .section .note.GNU-stack,"",@progbits


              Und nun das C++-Programm:
              #include <cstdio>
              namespace {
              class dummy {
              static const int FOO = 42;
              public:
              static void go() {
              std::printf("%d\n", FOO);
              };
              };
              }
              int main() {
              dummy::go();
              }

              Kompiliert mit g++ -O2 -S -fno-exceptions ergibt das
              .file "test.cc"
              .section .rodata.str1.1,"aMS",@progbits,1
              .LC0:
              .string "%d\n"
              .text
              .p2align 4,,15
              .globl main
              .type main, @function
              main:
              pushl %ebp
              movl %esp, %ebp
              andl $-16, %esp
              subl $16, %esp
              movl $42, 4(%esp)
              movl $.LC0, (%esp)
              call printf
              xorl %eax, %eax
              leave
              ret
              .size main, .-main
              .ident "GCC: (Debian 4.4.5-10) 4.4.5"
              .section .note.GNU-stack,"",@progbits


              Der Code ist auf's Komma genau derselbe.

              [
              | Versenden | Drucken ]
          0
          Von o13 am Mo, 31. Januar 2011 um 14:45 #

          Krasser Hype, Meister. Hält jetzt schon fast 40 Jahre (C)
          bzw fast 30 Jahre (C++) an.

          Der Omega13.

          [
          | Versenden | Drucken ]
        0
        Von Anonymous am Mo, 31. Januar 2011 um 12:18 #

        Die von Dir genannten Applikationen sind allesamt schon ziemlich alt. Mit der Entwicklung der Firefox-Engine wurde 98 begonnen, VLC gibt es seit 99, KDE gibt es seit 96. Da hatte man eben noch ganz andere Anforderungen an Performance und Speicherverbrauch. Zudem sind die auch alle in C++ und eben nicht in C geschrieben.

        Was Datenbanken angeht, stimmt Deine Behauptung nicht uneingeschränkt, Apache Cassandra ist z. B. in Java geschrieben (gut, das ist nun auch nicht gerade eine tolle Sprache, aber nicht so grausam wie C) und CouchDB in Erlang. Und serverseitige Software schreibt heute sowieso kein Mensch mehr in C oder C++.

        [
        | Versenden | Drucken ]
      0
      Von Anonymous am Mo, 31. Januar 2011 um 11:53 #

      Ich würde wohl nicht so weit gehen, es zu empfehlen. Aber wenn ich es mit C vergleiche, ist es in meinen Augen die deutlich bessere Alternative. Meist wird gegen C++ argumentiert, dass es gegenüber C neue Fehlerklassen gibt, z. B. dass man einen Destruktor virtual machen muss, damit man ein Objekt durch einen Basisklassenpointer löschen kann. Natürlich gibt es diese Fehlerklasse in C nicht, weil es keine Destruktoren gibt. Aber wenn man ein äquivalentes, objektorientiertes Design in C umsetzt (mit vtable-Zeigern etc.), kriegt man einen Code-Moloch, der noch viel fehleranfälliger und hässlicher als der C++-Code ist.

      Oder anders gesagt: C-Fanboys kritisieren C++ in der Regel dafür, dass die Lösungen, die es für Probleme wie generische Programmierung (Templates), OOP (Klassen, Vererbung, virtuelle Memberfunktionen), Fehlerbehandlung (Exceptions), Ressourcenmanagement (Destruktoren) usw. bietet vielleicht nicht perfekt sind, und ignorieren dabei komplett, dass C da noch viel weniger hilfreich ist.

      [
      | Versenden | Drucken ]
      • 1
        Von Hans Müller am Mo, 31. Januar 2011 um 12:13 #

        > Aber wenn man ein äquivalentes, objektorientiertes Design in C umsetzt (mit vtable-Zeigern etc.), kriegt man einen
        > Code-Moloch, der noch viel fehleranfälliger und hässlicher als der C++-Code ist.

        Wer das macht, hat aber doch schon den grundsätzlichen Unterschied zwischen C (funktionsorientiert) und C++ (objektorientiert) nicht verstanden. Es ist also absolut kein Verlgeichskriterium, wenn sich in einer Sprache etwas nicht vernünftig umsetzen lässt, für das die Sprache gar nicht gedacht ist (ich fahre ja auch nicht mit einem LKW zum Einkaufen und habe dann eine einzelne Tüte auf der Ladefläche stehen).

        [
        | Versenden | Drucken ]
        • 0
          Von Elias am Mo, 31. Januar 2011 um 12:42 #

          Könnte meine Rede sein :)

          [
          | Versenden | Drucken ]
          0
          Von Anonymous am Mo, 31. Januar 2011 um 12:48 #

          Die gängigen C-Programme sind aber voll mit solchen Designs. GTK ist komplett objektorientiert, und auch der Linux-Kernel enthält zahlreiche objektorientierte Designs. Beispielsweise ist struct file_operations [1] voll mit Funktionspointern, sprich: es ist nichts anderes als die vtable einer Klasse.

          [1] http://lxr.linux.no/#linux+v2.6.37/include/linux/fs.h#L1520

          [
          | Versenden | Drucken ]
          • 0
            Von Elias am Mo, 31. Januar 2011 um 13:35 #

            Ich weiß nicht was ein struct mit OOP zu tun hat. In dem Fall wurde ein struct verwendet wozu es da ist, eine Ansammlung von Daten.

            [
            | Versenden | Drucken ]
            • 0
              Von argonaut am Mo, 31. Januar 2011 um 13:44 #

              Structs mit Funktionen, virtuellen Funktionszeigern und Parent-Feld sind das selbe wie eine Klasse.

              [
              | Versenden | Drucken ]
              • 0
                Von Halbwissen am Mo, 31. Januar 2011 um 14:38 #

                Autsch, das tut weh, aber richtig.

                Ich hoffe, du verdienst deinen Lebensunterhalt mit was anderem (und damit meine ich nicht HartzIV).

                [
                | Versenden | Drucken ]
              0
              Von Anonymous am Mo, 31. Januar 2011 um 14:40 #

              Ich weiß nicht was ein struct mit OOP zu tun hat.
              Dann solltest Du Dich wohl mal damit auseinandersetzen, wie OOP normalerweise implementiert wird. Ein Anfang ist z. B. [1].

              [1] http://de.wikipedia.org/wiki/VTable

              [
              | Versenden | Drucken ]
              • 0
                Von Halbwissen am Mo, 31. Januar 2011 um 14:57 #

                Was hat die Implementation mit dem Funktionsprinzip zu tun?

                Genau so könntest du behaupten, "Auto fahren" ist das gleiche wie "Benzin", weil das Auto ja Benzin für seine Funktion benötigt. Völliger Schwachsinn also.

                [
                | Versenden | Drucken ]
                • 0
                  Von Anonymous am Mo, 31. Januar 2011 um 16:34 #

                  Völliger Schwachsinn also.
                  Dein Vergleich? Ja, in der Tat. Fakt ist, dass hier ganz klar ein objektorientiertes Konzept umgesetzt wurde, indem man das, was in einer objektorientierten Sprache der Compiler machen würde, von Hand hingeschrieben hat. Wenn Du da keinen Zusammenhang siehst, bist Du offenbar dum.

                  [
                  | Versenden | Drucken ]
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung