Gebt doch endlich mal richtige Gründe gegen die Sprache D an!



  • D vs. C++ schrieb:

    Siehe auch die Gründe von Digital Mars die dagegen sprechen und auch hinreichend begründen warum das beim Entwerfen von D nicht gemacht wurde:

    Da ist kein stichhaltiger Grund aufgeführt! Die fehlende Manpower kann ich als Argument für die Implementation sehen, aber nicht für das Sprachdesign. Da die Interaktion für einen Nachfolger von C++ so essentiell ist, muß das eine Nachfolgesprache auch können. Damit ist D irgend eine weitere Programmiersprache, aber kein legitimer Nachfolger von C++.

    Es hat die C ähnliche Syntax die C++ auch hat und die Sicherheit die Ada bietet.

    Programmiersprachen die auf einer C ähnlichen Syntax basieren, bieten eben nicht die Sicherheit von Ada! Ada läßt sich wegen der Syntax maschinell prüfen, Codeanalyse mit einer C ähnlichen Syntax ist faktisch nicht drin. Das macht die Implementation von Compilern so schwierig und teuer, und es erschwert den Code Review.

    D ist also mehr als Ada.

    Du kennst Ada? Du kennst den Subset von Ada namens SPARC?
    Nein, denn sonst würdest Du das nicht behaupten.



  • D ist auch nie der Nachfolger von C++.



  • D ist der um zwanzig Jahre verspätete Stiefbruder von C++, wenn ich das richtig sehe. Ich finde die D-Syntax irgendwie rückwärts gewandt, vielleicht weil sie C ähnelt, aber das ist alles Gewohnheit.

    ..



  • Zeus schrieb:

    Man kann jetzt zwischen D und Haiku ne Relation definieren!

    Hier ein 64 Bit Betriebssystem das in D programmiert wurde.
    Zumindest was den Kernel betrifft:

    http://www.devlime.com/



  • D OS schrieb:

    Zeus schrieb:

    Man kann jetzt zwischen D und Haiku ne Relation definieren!

    Hier ein 64 Bit Betriebssystem das in D programmiert wurde.
    Zumindest was den Kernel betrifft:

    http://www.devlime.com/

    lol. du tust gerade so, als wenn es vollendete tatsache ist. korrekt ausgedrückt wäre:

    Hier ein Betriebssystem das in D programmiert wird, welches zum ziel hat auf 64bit architekturen zu laufen.

    wenn ich mal den sourcetree durchschaue, finde ich auch nur etwas für i586. alles in allem sind es nur wahllos nicht zusammenhängende module, benannt nach altbekannten. gerade so, als wenn der entwickler gerade ein buch zum betriebssystemdesign gelesen hat. ich bitte dich, dieses projekt konnte mich nicht überzeugen 🙂



  • Vorallem woher kommt der 64bit Compiler aufeinmal O.o



  • Der Asm-Code im Repo von diesem Kernel scheint mir schon 64Bit zu sein, da stellt sich wirklich die Frage wie er den Kernel kompilieren will ohne 64Bit Compiler??



  • Wobei, wahrscheinlich jagt er die D-Files einfach nur durch einen 32Bit Compiler um auf Syntax-Fehler zu testen.



  • Warum eigentlich D?

    Hier die Antworten nach der ihr alle sucht:
    http://www.softchecker.net/upload/viewtopic.php?f=10&t=17&start=0



  • Und schon haben wir ein echtes Argument um C++ und C zu schlagen!

    D ist deutlich schneller beim Parsen von XML!

    http://dotnot.org/blog/index.php
    http://dotnot.org/blog/archives/2008/03/12/why-is-dtango-so-fast-at-parsing-xml/

    Viele Programmierer würden viel dafür geben ihren lahmen XML Parser einen ordentlichen Schub zu verpassen. Mit D geht es!



  • - Mehrfachvererbung muss man in C++ nicht verwenden, wenn man damit nicht umgehen kann.
    - for_each ist bei C++ in <algoritm> realisiert (Im OOP-Buch von Marcus Bäckmann findet man ebenfalls ein Beispiel).
    http://www.cplusplus.com/reference/algorithm/for_each.html

    // for_each example
    #include <iostream>
    #include <algorithm>
    #include <vector>
    using namespace std;
    
    void myfunction (int i) { cout << " " << i; }
    struct myclass { void operator() (int i) {cout << " " << i;} } myobject;
    
    int main () 
    {
      vector<int> myvector;
      myvector.push_back(10); myvector.push_back(20); myvector.push_back(30);
    
      cout << "myvector contains:";
      for_each (myvector.begin(), myvector.end(), myfunction);
    
      // or:
      cout << "\nmyvector contains:";
      for_each (myvector.begin(), myvector.end(), myobject);
    
      cout << endl;
    }
    


  • Comments are open if other D people would like to add their $.02.

    Lol! Sonst könnt ja jemand daher kommen und was anderes behaupten xD

    Wisst ihr es ist eine Sache einen Benchmark zu sehen in dem eine Sprache besser abschneidet als eine andere, aber nur ein Artikel, in dem der Entwickler bzw. eine Person die sehr stark in das Projekt involviert ist, darüber zu lesen ist ja mal was völlig anderes.
    So lange ich keine Zahlen sehe und die Quellcodes der Benches glaub ich kein Wort.



  • ich lieg aufm boden schrieb:

    Wisst ihr es ist eine Sache einen Benchmark zu sehen in dem eine Sprache besser abschneidet als eine andere, aber nur ein Artikel, in dem der Entwickler bzw. eine Person die sehr stark in das Projekt involviert ist, darüber zu lesen ist ja mal was völlig anderes.
    So lange ich keine Zahlen sehe und die Quellcodes der Benches glaub ich kein Wort.

    Die Zahlen stehen doch weiter unten.

    Scroll mal den 2. Link runter!



  • D benchmark schrieb:

    ich lieg aufm boden schrieb:

    Wisst ihr es ist eine Sache einen Benchmark zu sehen in dem eine Sprache besser abschneidet als eine andere, aber nur ein Artikel, in dem der Entwickler bzw. eine Person die sehr stark in das Projekt involviert ist, darüber zu lesen ist ja mal was völlig anderes.
    So lange ich keine Zahlen sehe und die Quellcodes der Benches glaub ich kein Wort.

    Die Zahlen stehen doch weiter unten.

    Scroll mal den 2. Link runter!

    Sry, den 1. Link



  • Man beachte dabei die Zahlen zu Tango.



  • Erhard Henkes schrieb:

    - for_each ist bei C++ in <algoritm> realisiert (Im OOP-Buch von Marcus Bäckmann findet man ebenfalls ein Beispiel).

    Das for_each ist fürn Arsch, weil es genausoviel Boilerplate Code erfordert wie wenn ich gleich die Schleife ausschreibe. BOOST_FOREACH ist von der Codemenge her eine akzeptable Lösung, aber die Compilermeldungen sind furchtbar. Deshalb ist ein passendes Sprachkonstrukt schon eine gute Sache.



  • Wozu ein foreach? Geht doch auch wunderbar ohne!

    Die Benchmarks von Tango halte ich für wenig aussagekräftig, der Unterschied ist einfach _zu_ groß, wenn man so leicht so viel mehr Performance bekommen könnte, dann hätten die anderen großen Bibliotheken das längst implementiert, da diese zu Hauf in der Industrie im großen Stil eingesetzt werden.



  • D-Fan schrieb:

    Die Benchmarks von Tango halte ich für wenig aussagekräftig, der Unterschied ist einfach _zu_ groß, wenn man so leicht so viel mehr Performance bekommen könnte, dann hätten die anderen großen Bibliotheken das längst implementiert, da diese zu Hauf in der Industrie im großen Stil eingesetzt werden.

    Lies mal den Artikel gründlich.

    Das ist nur so schnell, da es mit den anderen Sprachen nicht auf diese Weie implementierbar ist, da dafür die notwendigen Sprachkonstrukte fehlen.
    D hat diese.



  • D benchmark schrieb:

    Das ist nur so schnell, da es mit den anderen Sprachen nicht auf diese Weie implementierbar ist, da dafür die notwendigen Sprachkonstrukte fehlen.

    Das ist falsch. Im Artikel wird es ja praktisch nur aufs Array Slicing reduziert, womit keine Kopien von Strings erzeugt werden. Das lässt sich in anderen Sprachen genauso implementieren.
    Ausserdem ist das ein reiner Vergleich von Implementierungen und somit vollkommen belanglos. Hat C++ eine std XML Implementierung? Nope. Insofern kannst du alles mögliche hernehmen, mit der Sprache selbst hat das erstmal wenig zu tun. Sonst könnte man genauso gut argumentieren, DAS ist ein Argument gegen D, weil Phobos total mies abschneidet.



  • Hi,

    auch zu Pascal gab es mal so eine bessere Sprache nämlich Modula 2. Die hatte sicher ne ganze Menge was daran besser war als in Pascal, aber hat von Modula 2 in den letzten Jahren mal wieder einer was gehört oder ist das irgendwo für was bedeutendes verwendet worden?

    Dagegen hat sich die Evolution von Pascal zu Delphi durchaus bewährt. Delphi ist für Pascal in etwa zu vergleichen mit C++ und C (auch wenn Delphi bei weitem nicht so weit geht wie C++ aber man weiß ja nie was noch kommt).

    In fast allen Fällen ist Evolution erfolgreicher als Revolution. Grundlegende Revolutionen setzen sich nur durch, wenn sie wirklich entscheidende Vorteile mit sich bringen oder im Informatikbereich wenn sie von bedeutenden Firmen gepowert werden.

    Mit D ist es nicht so, daß es nun gewaltig was bringt, was anders nicht da währe, und von ner bedeutenden Firma gepowert wirds auch nicht.
    Kannst ja mal CodeGear fragen ob die Lust haben, aber nach den Sackgassen mit Turbo-Basic und Turbo-Prolog sind die glaube ich etwas geheilt.

    Gruß Mümmel


Anmelden zum Antworten