Programiersprache D

Von: , Frage gestellt am Di, 13. Feb 2007

Hi
hoffe das Thema wurde nicht schon zig mal durchgekaut..

Ich habe die letzte Zeit immer wieder von der Programmiersprache D gehört. (veröffentlichung 3. Jan 2007 V 1.0)

Nun wollte ich mal euren Meinung dazu hören.

Meint ihr D hat eine gute Chance auf dem "Markt der Programmiersprachen?" bzw kann man das überhaupt schon sagen?


Was sind die Vorteile / Nachteile von D gegenüber C , C++ (irgendwie scheinen ja viele Programmierer von D zu schwärmen..)



Da ich momentan noch Azubi im ersten Lehrjahr bin wäre für mich eine "fachmännische" Meinung sehr hilfreich, da ich von meiner Firma viele Schulungen bezahlt bekomme. Daher wären für mich stichhaltige Argumente für oder gegen die Programmiersprache D wichtig, da ich natürlich begründen muss weshalb ich eine Schulung besuchen will bzw nicht will (bin am überlegen, ob ich eine solche Schulung (wenns sowas schon geben sollte) machen sollte und sammle grad sowohl Pro als auch Kontra Argumente).


Klar werden jetzt einige sagen, dass das ja mein Bier ist, ob ich D lernen will oder nicht allerdings will ich keine Zeit meiner ohnehin voraussichtlich kurzen Ausbildung verschwenden (2 Jahre) um eine Programmiersprache zu lernen, die sich als totaler Flopp entwickelt.
Diese Zeit und vorallem das Budget, was ich für Schulungen habe, will ich halt so sinnvoll nutzen wie nur irgendwie möglich.

Ich danke euch schonmal im voraus für eure Posts und Meinungen zu diesem Thema


Gruß

16 Antworten zu dieser Frage

  1. Antwort von nach 15 Minuten 0 hilfreich
    Kein Panik

    http://de.wikipedia.org/wiki/D_(Programmiersprache)

    Tatsächlich, doch kein Aprilscherz Meint ihr D hat eine gute Chance auf dem "Markt der
    Programmiersprachen?" bzw kann man das überhaupt schon sagen?
    Ada soll besser sein, ich kenne aber niemanden, der damit programmiert.

    Ernsthaft, die Methodik und Algorithmen und Datenstrukturen sind viel wichtiger als das vergleichsweise simple Werkzeug einer Programmiersprache. Alle diese Problemfernen und Maschinennahen Programmiersprachen wie C, Pascal, Modula und Basic sind binnen weniger Tage bis Wochen zu lernen. Aber das Handwerk wie man ein Problem löst, dafür geht viel viel Zeit ins Land.

    Also mach lieber Kurse über das Problemlösen an sich, als mit irgendeiner x-beliebigen Programmiersprache in der Tiefe die Zeit zu verschwenden. Ach ja, Cobol soll ja noch für Wartung von "Altlasten" interessant sein. Und bei ABB nutzt man noch Fortran.

    Und so ein bisschen was von Software Engineering erwarte ich sowieso. Wer in Basic Spaghetti-Code schreibt, macht in C auch unlesbaren Mist.


    Gruß

    Stefan

    • Antwort von nach 33 Minuten 0 hilfreich
      Re: Kein Panik

      Hi Stefan

      schonmal vielen Dank

      Warum ihc die Frage stelle hat einen einfachen Grund:

      Ich soll min. 2 Programmiersprachen lernen (so sagts der Betrieb) eine davon ist vom Betrieb vorgegeben eine zweite Suche ich mir momentan aus (Freie Wahl). Ich will natürlich versuchen mir eine Sprache neben Java (vom Betrieb vorgegeben) auszusuchen die mich in meiner weitern beruflichen Laufbahn begleiten kann und immer wieder nützlich ist / sein wird.

      Natürlich werde ich nicht nur 100 x beliebige Kurse in x verschiedenen Sprachen nehmen. Habe ein recht großes Budget das ich mir schon so halbwegs aufgeteilt habe (für das erste Lehrjahr) aber noch nicht fest verplant habe. Dadrunter stehen im verhältnis zu Programmiersprachen sehr viele Schulungen die nicht speziell auf eine bestimte Sprache bezogen sind. Also wie du sagtest Software Engeneering usw. ist dort sehr stark vertreten.

      Mein Ziel ist es halt mich mit den mir gebotenen Möglichkeiten das beste anzufangen und da ich bis vor deinem Post nur von einer Person etwas über diese Programmiersprache gehört habe wollt ich mir gerne weitere Meinungen dazu anhören ;)



      Aber nochmals vielen Dank [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

      • Antwort von nach einer Stunde 0 hilfreich
        Re^2: Kein Panik

        Hallo, Ich soll min. 2 Programmiersprachen lernen (so sagts der
        Betrieb) eine davon ist vom Betrieb vorgegeben eine zweite
        Suche ich mir momentan aus (Freie Wahl). Ich will natürlich
        versuchen mir eine Sprache neben Java (vom Betrieb vorgegeben)
        auszusuchen die mich in meiner weitern beruflichen Laufbahn
        begleiten kann und immer wieder nützlich ist / sein wird.
        Das ändert das ganze ein wenig ;-).

        Also nach der Beschreibung auf der Wiki hört sich D konzeptionell relativ ähnlich wie Java an (Objektorientierung, Garbage Collection, Ähnliche Syntax).

        An deiner Stelle würde ich daher als zweite Programmiersprache etwas ganz anderes lernen, du hast quasi die Auswahl zwischen
        * Einer "prakmatischen" Skriptsprache (perl, ruby, python), die gut für Textbearbeitung und Webanwendungen geeignet sind
        * Einer Funktional orientierten Sprache wie Haskell, Ocaml oder Lisp, das ist was ganz anderes, sicher auch mal gut sowas zu können
        * Einer absoluten Low-Level Sprache, in der man sich um alles kümmern muss, also C oder Assembler
        * Etwas vollkommen anderes wie ein Computer Algebra System (Mathematica, Maple, yacas), ein numerisches Framework (Matlab, Octave) oder Logo, eine Logik-basierte Programmiersprache.

        Wie gesagt: Wenn du was lernen willst, lerne nicht zweimal etwas ähnliches, sondern das zweite Mal etwas ganz anderes.

        Grüße,
        Moritz

        • Antwort von nach einem Tag 0 hilfreich
          Re^3: Kein Panik


          Also nach der Beschreibung auf der Wiki hört sich D
          konzeptionell relativ ähnlich wie Java an (Objektorientierung,
          Garbage Collection, Ähnliche Syntax).

          An deiner Stelle würde ich daher als zweite Programmiersprache
          etwas ganz anderes lernen, du hast quasi die Auswahl zwischen
          * Einer "prakmatischen" Skriptsprache (perl, ruby, python),
          die gut für Textbearbeitung und Webanwendungen geeignet sind
          * Einer Funktional orientierten Sprache wie Haskell, Ocaml
          oder Lisp, das ist was ganz anderes, sicher auch mal
          gut sowas zu können
          * Einer absoluten Low-Level Sprache, in der man sich um
          alles kümmern muss, also C oder Assembler
          * Etwas vollkommen anderes wie ein Computer Algebra System
          (Mathematica, Maple, yacas), ein numerisches Framework
          (Matlab, Octave) oder Logo, eine Logik-basierte
          Programmiersprache.

          Kann nur zustimmen,
          meine praktische Empfehlung wäre C/C++. Ganz eifach aus dem Grund: Wenn mann sich mal durch Zeiger-Arithmetik und Sachen wie sichere Eingabe mit Prüfbits usw durchgebissen hat, fallen einem ander Sprachen ziemlich Einfach. Man muss sich bei C mit der Maschine befassen und versteht dananch mache Dinge von Sprachen wie Java besser. Vor allem, da Du ja mit Java betriebsbedingt schon die OOP lernst.

          Meiner Meinung nach sind Scriptsprachen immer verhältnismäßig schnell erlernt wenn man die Konzepte versteht.

          Gruß, Jakob

    • Antwort von nach 43 Minuten 0 hilfreich
      Re: Kein Panik

      http://de.wikipedia.org/wiki/D_(Programmiersprache)

      Tatsächlich, doch kein Aprilscherz Meint ihr D hat eine gute Chance auf dem "Markt der
      Programmiersprachen?" bzw kann man das überhaupt schon sagen?
      Ada soll besser sein, ich kenne aber niemanden, der damit
      programmiert.
      Ich habe mal gehört, dass u.a. das US-Verteidigungsministerium damit programmiert. Ada ist halt sehr sicher, bzw. man kann halt keine Sch... bauen wie z.B. mit C (indem man über sein Array hinausschreibt oder einfach falschen Speicher freigibt *g*). Es gibt nicht viele Leute die Ada können, wenn aber einer Ada sehr gut beherrscht, dann findet er auch einen Job. Ada ist zum Programmieren lernen bestimmt keine schlechte Wahl.

      Gruss
      x303

      • Antwort von nach einem Tag 0 hilfreich
        Re^2: Kein Panik

        Hallo x303, Ich habe mal gehört, dass u.a. das US-Verteidigungsministerium
        damit programmiert. Ada ist halt sehr sicher, bzw. man kann
        halt keine Sch... bauen wie z.B. mit C (indem man über sein
        Array hinausschreibt oder einfach falschen Speicher freigibt
        *g*). Es gibt nicht viele Leute die Ada können, wenn aber
        einer Ada sehr gut beherrscht, dann findet er auch einen Job.
        Aus der Ecke kommt ADA ja auch.
        Eigentlich sollte es DIE Programmiersprache werden, eine eierlegende Wollmilchsau !!
        Damit sollte man einen MicroController ohne Betriebssystem genau so optimal programmieren können, wie eine Anwendung auf einem Mainframe .... und das alles möglichst ohne eine Zeile Code anpassen zu müssen ......

        Dazu hat man diese Sprache in einem grossen Gremium gebildet. Zudem konnte jeder sein Vorschläge einsenden .......

        Das Ergebnis ist allerdings ganz und gar nicht etwas Sicheres geworden.
        Das Problem bei ADA ist, dass es für viele Aufgaben mehrere grundlegende Mechanismen gibt und das ist die Gefahr von ADA.

        Jeder der sich mit C++ auskennt, weiss was passiert, wenn man Speicher mit new</b< alloziert und mit <b>free() wieder freigibt, bei ADA ist genau das die Gefahr geworden.

        MfG Peter(TOO)

        • Antwort von nach einem Tag 0 hilfreich
          Re^3: Kein Panik

          Hallo Peter,

          danke für die Aufklärung. Aus der Ecke kommt ADA ja auch.
          Eigentlich sollte es DIE Programmiersprache werden, eine
          eierlegende Wollmilchsau !!
          Damit sollte man einen MicroController ohne Betriebssystem
          genau so optimal programmieren können, wie eine Anwendung auf
          einem Mainframe .... und das alles möglichst ohne eine Zeile
          Code anpassen zu müssen ......

          Dazu hat man diese Sprache in einem grossen Gremium gebildet.
          Zudem konnte jeder sein Vorschläge einsenden .......

          Das Ergebnis ist allerdings ganz und gar nicht etwas Sicheres
          geworden.
          Das Problem bei ADA ist, dass es für viele Aufgaben mehrere
          grundlegende Mechanismen gibt und das ist die Gefahr von ADA.

          Jeder der sich mit C++ auskennt, weiss was passiert, wenn man
          Speicher mit new alloziert und mit
          free() wieder freigibt, bei ADA ist genau das die
          Gefahr geworden.
          aber was genau meinst du mit dieser Speichergeschichte?
          Ich musste ADA95 mal lernen (1.+2. Semester), bin aber nie komplett da durchgestiegen. Zumindest war damals der Begriff Speicherallokation für mich ein Fremdwort. Einer meiner Professoren hat auch an dieser Sprache mitentwickelt und es hieß, dass sie relativ sicher sei (nicht so sicher wie Ada83 oder Turbo Pascal, aber sicherer als das meiste, womit heutzutage programmiert wird). Das ist das, was noch in meinem Hinterkopf hängen geblieben ist. Korrigiere mich bitte, wenn ich was falsches sage.

          Gruss x303

          • Antwort von nach einem Tag 2 hilfreich
            Re^4: Kein Panik

            Hallo x303,
            aber was genau meinst du mit dieser Speichergeschichte?
            War nur so ein Beispiel, falls du dich mit C++ ausgekannt hättest.

            Um Speicher anzulegen gibt es in C nur malloc() und free() als mechanismus.
            In C++ verwendet man new und delete, weil das für Objekte etwas anders gehandhabt werden muss.
            Wenn man jetzt z.B. new und free() mischt, funktioniert das sogar in manchen Fällen, aber meistens ergibt es einen netten Programmfehler. Ich musste ADA95 mal lernen (1.+2. Semester), bin aber nie
            komplett da durchgestiegen. Zumindest war damals der Begriff
            Speicherallokation für mich ein Fremdwort. Einer meiner
            Professoren hat auch an dieser Sprache mitentwickelt und es
            hieß, dass sie relativ sicher sei (nicht so sicher wie Ada83
            oder Turbo Pascal, aber sicherer als das meiste, womit
            heutzutage programmiert wird).
            JAIN.
            Fehler, welche durch mischen von Datentypen oder verwenden von falschen/ungültigen Zeigern entstehen, sind in ADA fast nicht möglich.
            Weil aber viele im Gremium auf ihren Vorschlag bestanden haben, gibt es für viele Mechanismen mehrere Varianten in ADA.

            Dadurch ist ADA so komplex geworden, dass man es nicht mehr überschauen kann. Und wie ich ober schon versucht habe zu zeigen, gibt es viele Funktionen welche pärchen- oder gruppen-weise funktionieren.
            Hier besteht bei ADA die Gefahr, dass sich eine Funktion aus einer anderen Gruppe einschleicht, was dann zu unvorhersehbarem Verhalten führt .....

            Ich habe zwar nie selber in ADA programmiert, aber Anfang der 80er die Entwicklung in den Fachzeitschriften usw. genau verfolgt. Manche der damaligen Mitentwickler von ADA sind heute aus obigen Gründen zu Warnern vor ADA geworden !!

            ADA ist einfach zu Mächtig und dadurch zu Komplex geworden, weil man versucht hat alles gute der Programmierwelt reinzupacken.

            Meine Erfahrung ist, dass Standards, welche in einem zu grossen Gremium entwickelt werden, irgendwie nicht durchgehend logisch sind, weil dadurch zu viele Ausnahmefälle eingebracht werden.
            Konzepte, welche nur von einer oder zwei guten Leuten entwickelt wurden, haben eine durchgehende Struktur, welche man schneller erfassen kann und somit die Programmiersprache auch schneller im Griff hat.

            MfG Peter(TOO)

            • Antwort von nach 2 Tagen 0 hilfreich
              Re^5: Kein Panik

              Hallo Peter

              danke für deine ausführliche Erklärung. Hab wieder was dazu gelernt :-)
              aber was genau meinst du mit dieser Speichergeschichte?
              War nur so ein Beispiel, falls du dich mit C++ ausgekannt
              hättest.
              In C++ kenn ich mich absolut nicht aus, aber in C etwas, deswegen weiss ich auch, was man da so alles treiben kann. Um Speicher anzulegen gibt es in C nur malloc() und free() als
              mechanismus.
              In C++ verwendet man new und delete, weil das für Objekte
              etwas anders gehandhabt werden muss.
              Wenn man jetzt z.B. new und free() mischt, funktioniert das
              sogar in manchen Fällen, aber meistens ergibt es einen netten
              Programmfehler.
              Klingt logisch, aber ist dann nicht der Fehler im Compiler?
              Der sollte doch eigentlich sowas abfangen (nicht korrigieren aber eine Fehlermeldung ausgeben)!?


              Gruss x303



Keine passende Antwort gefunden? Jetzt eigene Frage stellen!