Was ist denn nun mit diesem neuen C++ Standard?



  • sehe ich das richtig, daß man in c++0x nun die Auswahl aus fünf verschiedenen ganzzahligen Nullen hat: null, NULL, nil, 0, nullptr ?



  • NULL und 0 sind nach wie vor das gleiche. null, nil? Nicht in C++.
    Und nullptr ist weder ein Integer noch lässt es sich zu einem konvertieren, das ist ja der Sinn dahinter.



  • Programmiersprachen, Compiler, etc. sind für mich Werkzeuge für konkrete Aufgaben zur Nutzung von Computersystemen. Dafür braucht man notwendig Standards, auf die man sich verlassen kann. Das ist so ähnlich wie mit Schraubendreher, Hammer, Bohrmaschine, Kneifzange, und mehr.

    Wieso hat nun die Informatik an dieser Stelle offensichtlich immer wieder ein Problem mit dem eigenen Selbstverständnis? 😕 Ich erwarte von der Informatik die Bereitstellung und die Verbesserung der Werkzeuge und ggfs. die Hilfestellung zur Lösung von Aufgaben, die sich aus der Nutzung von Computersystemen ergeben.

    Einen ausgebildeten Informatiker ohne eigene Programmierkenntnisse ist für mich schwer vorstellbar! 😞 Was bitte lernt ihr da und was können wir andere mit eurem Wissen anfangen? 😕



  • berniebutt schrieb:

    Einen ausgebildeten Informatiker ohne eigene Programmierkenntnisse ist für mich schwer vorstellbar! 😞 Was bitte lernt ihr da und was können wir andere mit eurem Wissen anfangen? 😕

    Die Aufgabe eines Informatikers ist nicht zwangsweise Programmieren, Algorithmen etc. können wesentlich in dem Vordergrund stehen (Oder das Leiten von Teams ohne jemals selbst Hand an zu legen). Ich empfinde aber mindestens grundlegende Programmierkenntnisse als nötig um wenigstens eine Ahnung für die Umsetzung zu haben.

    berniebutt schrieb:

    Wieso hat nun die Informatik an dieser Stelle offensichtlich immer wieder ein Problem mit dem eigenen Selbstverständnis?

    Wundert mich auch, gerade weil die Informatik ja aus der Mathematik hervor gegangen ist, und dort großer Wert auf Korrektheit gelegt wird.


  • Mod

    Zeus schrieb:

    camper schrieb:

    Zeus schrieb:

    Ein Standardisierungsprozess würde mindestens bedeuten, dass die Compilerhersteller ihre Implementierung gegen ein Testframework fehlerfrei laufen muss.

    Und das steht wo?

    Eine Standardisierung des Compilers, meine Meinung.

    Die ja offenbar nicht existiert, also hast du dir diese Bedingung aus den Fingern gesaugt. Zudem erscheint es mir sinnlos, nur einen Compiler standardisieren zu wollen, ich unterstelle mal, dass das so nicht gemeint war.
    Ich habe nichts gegen das Wort Sprachstandard, ich sehe nur nicht, dass Compiler-Standard inkorrekt wäre.

    pumuckl schrieb:

    camper schrieb:

    angefangen wird mit der Implementierung - wobei nicht verlangt wird, dass es sich dabei um einen Compiler handelt.

    Jein. [lex.phases], Abschnitt 7 impliziert, dass die Implementierung unter anderen einen Compiler beinhaltet, der aus Übersetzungseinheiten übersetzte Übersetzungseinheiten macht. Der Standard beschränkt sich aber nicht darauf. Ein Linker wird auf jeden Fall auch benötigt (Phase 9), ferner gehören die Bibliotheken zur Implementierung, die Laufzeitumgebung, die benötigt wird, um übersetzte Programme ausführen zu können etc. [intro.compliance], Abschnitt 7, erlaubt außerdem auch "freestanding implementations", die sowas wie ein eigenständiges Laufzeitsystem inklusive Möglichkeit zur Erfassung von Sourcecode darstellen, also quasi ein integriertes Betriebssystem mit eingebautem Präprozessor, Compiler, Linker und Laufzeitumgebung.

    Ich bin ein bisschen unsicher, ob diese Teil nicht auch unter die as-if-Regel fällt, bestehe aber auch nicht auf meiner Interpretation. Praktisch geht es ohnhin nur um Compiler.



  • asc schrieb:

    ... Die Aufgabe eines Informatikers ist nicht zwangsweise Programmieren, Algorithmen etc. können wesentlich in dem Vordergrund stehen (Oder das Leiten von Teams ohne jemals selbst Hand an zu legen). Ich empfinde aber mindestens grundlegende Programmierkenntnisse als nötig um wenigstens eine Ahnung für die Umsetzung zu haben.

    ... Wundert mich auch, gerade weil die Informatik ja aus der Mathematik hervor gegangen ist, und dort großer Wert auf Korrektheit gelegt wird.

    Guter Beitrag aus der Praxis! 👍 Vielleicht kann der Fragesteller damit etwas anfangen? Die Aufgaben für Algorithmen stammen jedoch oft aus anderen Disziplinen wie Naturwissenschaft, Technik, etc. Und damit kann ein Informatiker oft nichts anfangen.



  • berniebutt schrieb:

    Wieso hat nun die Informatik an dieser Stelle offensichtlich immer wieder ein Problem mit dem eigenen Selbstverständnis? 😕 Ich erwarte von der Informatik die Bereitstellung und die Verbesserung der Werkzeuge und ggfs. die Hilfestellung zur Lösung von Aufgaben, die sich aus der Nutzung von Computersystemen ergeben.

    asc schrieb:

    Wundert mich auch, gerade weil die Informatik ja aus der Mathematik hervor gegangen ist, und dort großer Wert auf Korrektheit gelegt wird.

    Siehe mein Beitrag oben. Informatiker ist eins, Software-Entwickler/Architekt und was es nicht alles gibt ist was anderes.

    Ein reiner Informatiker braucht weder einen Computer noch eine Programmiersprache, erst recht braucht er keine Werkzeuge und Programmiersprachen. Die Informatik als Wissenschaft ist eine rein akademische Angelegenheit. Die Werkzeuge und deren Nutzung sind Angelegenheit der Industrie.
    Eine wie immer mit Vorsicht zu genießende Parallele: Architektur und Hausbau. Architekten malen schöne Häuser, konzipieren großartige Grundrisse und Lichtdurchflutete Hallen usw. Ein Star-Architekt, der den künstlerischen Entwurf irgendeines fantastischen Bauwerks entwirft, bestimmt vielleicht noch rein für die Optik die Materialien, die an den sichtbaren Flächen zu verwenden sind. Er weiß aus der Theorie, welche Formen und Strukturen möglich sind und kennt das Licht von Spiel und Schatten. Welche Zementmischung, welche Stahlträger und welche Schrauben und Nägel hinter der Fassade benutzt werden, juckt ihn nicht. Das ist Sache des Statikers und der Bauarbeiter.
    In der Industrie, die Wohnraum und Stauraum zu schaffen hat, kommen solche Architekten selten bis garnicht zum Zuge. Davon, wie man mit günstigen Materialien einen Plattenbau innerhalb möglichst kurzer Zeit zusammenschustert, haben sie keine Ahnung.
    Der Bereich der "ästhetischen Informatik" ist nicht besonders groß. Klar werden hier und da rein akademische und schöne Sprachen, Algorithmen usw. entworfen (von Informatikern), die auch funktionieren. In preisgünstigem und performantem Industriecode werden die aber nicht eingesetzt. In der Praxis ist es wurscht, ob die Mauer hinter der Tapete aus schönstem Rotgranit ist oder einfach aus Stahlbeton. Hauptsache sie hält. Die Werkzeuge werden von der Industrie bestellt und geliefert. Wenn heute ein Wissenschaftler ultramoderne selbstaushärtende Flüssigmetallnieten erfindet - klasse. Eingesetzt werden sie nur, wenns produktiv was bringt. Bis dahin werden weiter Schrauben benutzt.



  • pumuckl schrieb:

    Siehe mein Beitrag oben. Informatiker ist eins, Software-Entwickler/Architekt und was es nicht alles gibt ist was anderes.

    Nur wechseln nicht wenige in den Softwarebereich, und dieser Bereich rekrutiert sich auch fast vollständig aus Informatikern. Ich würde schlicht sagen, das es verschiedene Ausprägungen einer Disziplin sind.



  • pumuckl schrieb:

    ...Ein reiner Informatiker braucht weder einen Computer noch eine Programmiersprache, erst recht braucht er keine Werkzeuge und Programmiersprachen. Die Informatik als Wissenschaft ist eine rein akademische Angelegenheit. Die Werkzeuge und deren Nutzung sind Angelegenheit der Industrie. ... Der Bereich der "ästhetischen Informatik" ist nicht besonders groß.... Bis dahin werden weiter Schrauben benutzt.

    😕 😕 Nach meinem Verständnis meinst du eher Nieten statt Schrauben? Halten im Stahlbau und bei Schiffen sehr gut. Konstruktionen damit waren ästhetisch (Beispiele Eiffelturm, Titanic), sind aber schon lange out. Was genau sollen wir hier zu Standards nun wissen? 😕



  • Athar schrieb:

    NULL und 0 sind nach wie vor das gleiche. null, nil? Nicht in C++.

    ok - ich hab' nämlich gerade einen Artikel gelesen, indem das komisch ausgedrückt war - es ging wohl darum, daß man nullptr eingeführt habe, um nicht nil oder null definieren zu müssen.



  • NULL ist doch sowieso out. int i = NULL. Ohje, kompiliert.


Anmelden zum Antworten