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



  • Erhard Henkes schrieb:

    Irgendwie dreht sich die Diskussion im Kreis. Welche Art von Programmen sollte man z.B. bevorzugt in D programmieren und aus welchem Grund?

    Ganz klar "Systemprogrammierung". Diesen Platzhalter hört man im Zusammenhang mit D immer wieder. Aber bei der Verfügbarkeit an Compilern ist wenigstens eindeutig welches System gemeint ist 🤡



  • Shade Of Mine schrieb:

    Optimizer schrieb:

    Das es so nicht funktioniert kann man seit Jahren sehen.

    Nur hilft da auch leider ein Java nicht. Man hat zwar dann keine Sicherheitsluecke aber die Anwendung schmiert trotzdem ab (oder ist in einem inkonsistenten Zustand)...

    Das ist doch vergleichsweise harmlos. Du musst schon zugeben, wenn mir jemand mein Java-Programm zum Absturz bringt, bei etwas was normal ein buffer overflow gewesen wäre, dann ist das ein wesentlich besseres Ergebnis. Dann sehe ich sogar noch den stack trace und kann den Fehler relativ einfach beheben. Bei einem Server, der mir gehackt wurde und Amok läuft, wie soll ich da im Nachhinein herausfinden, wo das Problem war?

    Das ist einfach ein Punkt, wo solche "sicheren" Sprachen überlegen sind - nur noch der Chief Lead of irgendwas muss Ahnung von der Sache haben damit keine konzeptionellen Sicherheitslücken enstehen. Wenn ich eine Sprache wie C oder C++ verwende, reicht es aus das ein Programmierer von meinen hundert keine Ahnung hat und ich habe eine Sicherheitslücke drin - und garantiere mir mal, dass jeder in deinem Team nie solche Fehler machen würde...

    Ich sehe halt einfach nur keine Loesung ausser automatische Hilfen anzubieten. Aber eben auch diese automatischen hilfen muessen sinnvoll benutzt werden. In Managed Code geht man eben soweit und sagt: wir verhindern automatisch sicherheitsluecken - das ist toll, aber es loest das Problem nicht.

    Wieso löst es das Problem nicht? Buffer overflows, uninitialisierte Variablen und ähnliche Kleinigkeiten sind hiermit ein gelöstes Problem. Viele Sachen finde ich schlechter gelöst, man muss natürlich seine Prioritäten kennen. Sicherheitsmäßig halte ich solche Sprachen jedenfalls für überlegen.



  • Wer Java und SWT liebt, der kann jetzt mit D und DWT GUI Anwendungen entwickeln.

    DWT ist nämlich ein Gui Widget für D und vom Programmieren her stark an SWT angelehnt.
    Das ist doch also mal etwas positives für D.

    http://www.dsource.org/projects/dwt

    Screenshots:
    http://www.dsource.org/projects/dwt/wiki/Screenshots



  • Wenn ich mir das so ansehe, habe ich das Gefühl, dass D ein typisches "me-too" Produkt ist. Damit kann man im professionellen Umfeld nicht punkten. Für den privaten Anwender zählt die Kompaktheit der Toolchain, die Flexibilität von der Konsole bis zum Spieledesign und ausreichend Unterstützung bei Problemfällen.

    Was ich bisher gesehen habe, ist für mich wenig attraktiv. Macht aber nichts, weil C/C++, Java oder C# bereits ausreichend Möglichkeiten und Unterstützung bieten.



  • Oh Mann! schrieb:

    D-Profi schrieb:

    Zeus schrieb:

    Vor einem Jahr wurde beschlossen, dass Sie in eine Koexisten gehen wollen. ^^

    @D-Profi
    Du redet von Änderung des Programmierparadigmas. Was zur Hölle willst du Objective C?

    Diese Frage kann ich dir nicht beantworten, zuerst will ich, dass du mir die Frage erneut stellst, diese mal jedoch auf Deutsch, bitte!
    Dann kann ich versuchen dir die Frage zu beantworten.

    Oh man, jedem DAU fällt auf, das in der Frage nur das Wort "mit" fehlt.

    Wenn du zwischen den Zeilen lesen könntest, dann wäre dir das auch von selbst aufgefallen.

    Die Frage dürftest du mit diesem Hinweis jetzt also beantworten können,
    falls nicht, dann hätte ich eh meine bezweifel ob du so eine Frage kompetent beantworten könntest.

    Geht doch 😃

    So dann will ich euch den Grund verrate warum ich mir eher Objective C anschauen würde als 😨 Objective C wird in der Praxis eingesetzt und zwar jetzt und nicht irgendwann



  • Requirements for DWT

    Compiler:
    DMD – http://www.digitalmars.com/d/1.0/changelog.html
    DMD 1.028 OK

    Runtime library:
    Tango - http://www.dsource.org/projects/tango
    release 0.99.6

    Damit hat die Hälfte, die D ansehen, probleme.



  • D-Profi schrieb:

    So dann will ich euch den Grund verrate warum ich mir eher Objective C anschauen würde als 😨 Objective C wird in der Praxis eingesetzt und zwar jetzt und nicht irgendwann

    Fairerweise muss man hier aber auch erwähnen, dass es für objC ausserhalb von MacOS auch ziemlich dünn wird. Aber zumindest Compiler sind kein wirkliches Problem (afaik).



  • Erhard Henkes schrieb:

    Wenn ich mir das so ansehe, habe ich das Gefühl, dass D ein typisches "me-too" Produkt ist. Damit kann man im professionellen Umfeld nicht punkten.

    Was verstehst du unter "me-too" Produkt?

    Für den privaten Anwender zählt die Kompaktheit der Toolchain, die Flexibilität von der Konsole bis zum Spieledesign und ausreichend Unterstützung bei Problemfällen.

    Meinst du damit, daß es ein komplettes Betriebssystem basierend auf D geben sollte und das es eine eigene OpenGL Implementierung geben sollte, aber auf Basis der Sprache D, damit das was du willst, also die größte Kompaktheit & Flexibilität erfüllt werden kann?

    Wenn ja, dann frage ich mich, wieso du so etwas von D verlangst?

    Auch C++ nutzt nur die Funktionen der gängigen Betriebssysteme die in C geschrieben wurden und hat selbst kein eigenes Betriebssystem. (zuminest kenen ich kein bekanntes. Linux, Darwin & Windows sind beide in C geschrieben)

    Auch kenen ich keine Implementierung von OpenGL, die in C++ realisiert wurde.
    Lediglich unter Windows gibt es etwas ähnliches namnes Direct3d.

    Und bei den GUI Toolkits sieht es auch nicht viel besser aus.
    Auch QT abstrahiert nur die Funktionalität des X-Window System, es gibt keine freie X-Window Implementierung die in C++ geschrieben wurde.

    Von daher verstehe ich dich nicht.

    Warum soll D nicht die C Implementierungen von OpenGL nutzen können dürfen?
    Warum soll D nicht auf die C Implementierungen der GUI Toolkits wie z.B. GTK+ aufbauen dürfen? Man beachte, GTK+ wurde dafür geschrieben, daß man auch andere Programmiersprachen Bindings nutzen kann. Man denke nur an GTKmm -> C++.



  • D-Profi schrieb:

    So dann will ich euch den Grund verrate warum ich mir eher Objective C anschauen würde als 😨 Objective C wird in der Praxis eingesetzt und zwar jetzt und nicht irgendwann

    Es gibt da eigentlich nur MacOS X.

    Nextstep und GnuStep kann man vergessen, da diese entweder veraltet oder
    so gut wie nirgends benutzt werden.

    Und bevor ich direkt für MacOS X mit ObjC entwickle und mir somit selber ans Pein Pinkele, da ich die Crossplattformfreiheit dadurch verliere, benutzte ich lieber GTK+ oder QT.
    Und im Falle von GTK+ kann ich D problemlos nehmen, da es dafür GTK Bindings gibt.



  • Hier mal ein paar Videos zu D auf Google Video.

    Walter Bright @ NWCPP: Advanced D Programming Language Features (83 min)
    http://video.google.com/videoplay?docid=-7073020265668105471

    The Future of D - Part 1 - 86 Min. - 09.07.2008
    http://video.google.com/videoplay?docid=-6262259850172814399

    The Future of D - Part 2 - 112 Min
    http://video.google.com/videoplay?docid=5552232015568336937

    Das Video Future of D ist, wie man am Datum sehen kann gerademal 3 Tage alt,
    d.h. da steht vieles Interessantes drin was hoch aktuell ist und die Zukunft von D betrifft.



  • D vs. C++ schrieb:

    Nextstep und GnuStep kann man vergessen, da diese entweder veraltet oder
    so gut wie nirgends benutzt werden.

    Bei objC tut sich auch etwas. Z.B. Sidestep. Aber ich will nichts schönreden. objC wird viel zu stiefmütterlich behandelt. Schade eigentlich, da es interessante Konzepte mitbringt.



  • Welche Konzepte?



  • Praktisch alles was es von Smalltalk geerbt hat 🤡

    http://en.wikipedia.org/wiki/Objective-C

    Da dürfte das meiste angesprochen sein.



  • Tim schrieb:

    D vs. C++ schrieb:

    Nextstep und GnuStep kann man vergessen, da diese entweder veraltet oder
    so gut wie nirgends benutzt werden.

    Bei objC tut sich auch etwas. Z.B. Sidestep. Aber ich will nichts schönreden. objC wird viel zu stiefmütterlich behandelt. Schade eigentlich, da es interessante Konzepte mitbringt.

    Ein Projekt dessen Homepage man in Google mit den Suchbegriffen "Sidestep & Objective C" nichtmal auf der 1. und 2. Suchergebnissseite finden kann
    werte ich nicht gerade als lebhaft.
    Das Ding scheint nach Google ja nichtmal zu existieren.

    Und die Homepage habe ich letzten endes nur über einen Umweg gefunden, aber die Homepage ist trotzdem Tod:
    http://sidestep-project.org/

    IMO ist sidestep eine weitere OSS Project Leiche.



  • Hmm, ich steck da nicht so drin. Keine Ahnung was mit der eigentlichen Webseite ist. Die hier geht.

    <alternativargumentation>
    Für objC gibts übrigens sogar Compiler
    </alternativargumentation>
    🤡



  • D vs. C++ schrieb:

    Kein Mensch ist fehlerfrei, du kannst 30 Jahre lang unfrallfrei Auto fahren und dann nach dieser zeit dann dennoch einen bauen und dabei auch noch der Verursacher sein, also tue mal nicht so, daß Bufferoverflows bei C++ kein Problem seihen.

    Das sind sie in der Regel auch nicht, man muß nur die dafür notwendigen Klassen sauber schreiben und per Code Review das ganze überprüfen. Die meisten Buffer Overflows gibt es in C Applikationen. Schlechte Programmierer machen immer wieder Faulheitsfehler und da hilft noch nicht einmal SPARC dagegen, und das ist eindeutig die strengste Programmiersprache, die man industriell nutzen kann.

    Die Stärke und auch die Schwäche von C++ ist die leichte Interaktion mit C-Code, da ist D eindeutig schlechter aufgestellt und zu dem ist es inkompatibel zu C++. Meiner Meinung nach müßte ein legitimer Nachfolger von C++ C++-Code problemlos verarbeiten können, so daß Interaktion mit C++ Objekten problemlos möglich ist. Für neue Programme sollten strengere Regeln gelten. Insofern ist für mich D ein Rohrkrepierer. Es macht vieles anders aber nichts besser. Übrigens fehlt mir ganz eindeutig für eine neue Multiparadigmensprache die Möglichkeit von Reflection und das dynamische Dispatching von SmallTalk. D ist total überflüssig. Wer eine sichere Sprache will sollte Ada nutzen, und wer eine Sprache mit C ähnlicher Syntax will, der sollte C++ verwenden.



  • Tim schrieb:

    Hmm, ich steck da nicht so drin. Keine Ahnung was mit der eigentlichen Webseite ist. Die hier geht.

    <alternativargumentation>
    Für objC gibts übrigens sogar Compiler
    </alternativargumentation>
    🤡

    Ich hab mir schon ObjC angesehen, danke 😛



  • Was meinst du genau? schrieb:

    Auch C++ nutzt nur die Funktionen der gängigen Betriebssysteme die in C geschrieben wurden und hat selbst kein eigenes Betriebssystem. (zuminest kenen ich kein bekanntes. Linux, Darwin & Windows sind beide in C geschrieben)

    Haiku ist komplett in C++ geschrieben.
    Haiku rulez!
    http://www.haiku-os.org/



  • ~john schrieb:

    Meiner Meinung nach müßte ein legitimer Nachfolger von C++ C++-Code problemlos verarbeiten können, so daß Interaktion mit C++ Objekten problemlos möglich ist.

    Das ist eine sehr schlechte Idee.
    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:

    http://www.digitalmars.com/d/2.0/cpp_interface.html

    Aber du kannst dich dennoch freuen, denn in Version 2.0 will man ein paar
    weitere Möglichkeiten ermöglichen um C++ Code von D aus zu nutzen.
    Aber auch für D 1.0 gibt es dazu 3 Möglichkeiten.
    Aber das steht alles in obigem Link auch drin.

    Für neue Programme sollten strengere Regeln gelten. Insofern ist für mich D ein Rohrkrepierer. Es macht vieles anders aber nichts besser.

    Begründe das mal Anhand von Beispielen.

    D ist total überflüssig. Wer eine sichere Sprache will sollte Ada nutzen, und wer eine Sprache mit C ähnlicher Syntax will, der sollte C++ verwenden.

    Tja, D vereint hier aber C++ und Ada.
    Es hat die C ähnliche Syntax die C++ auch hat und die Sicherheit die Ada bietet.

    D ist also mehr als Ada.
    Und mir ist das zu doof, jedes mal begin und end zu schreiben.
    Da ist C Syntax mit seinem { } deutlich besser.
    Am besten macht es natürlich Python mit seiner Einrückung und es ist das einzigste was mich an D etwas stört.



  • Man kann jetzt zwischen D und Haiku ne Relation definieren!


Anmelden zum Antworten