Was wird aus der Programmierung?



  • @nep! Volle Zustimmung! Ich pers. programmiere nur etwas selber aus zwei Gründen: 1. wenn ich etwas lernen will oder 2. wenn es nur eine schlechte oder keine Lösung gibt. Ansonst greife ich immer auf fertige Lösungen. Vorallem das Argument der Fehlerfreiheit bzw. Fehlerminimierung ist ein wichtiges. Nehmen wir als Beispiel std::vector. Das Ding wird von (hoffentlich) fast allen C++-Programmierern genutzt. Und jeder der VC++ hat, benutzt auch diese eine vectore-Implementierung. D.h. sie ist von vielen tausend C++lern eingesetzt und indirekt geprüft. Halt realworld scenarios. Warum soll ich vector neu implementieren? 1. macht es Arbeit und 2. unterläuft mir garantiert irgendwie ein Fehler. Also ist es schlauer, wenn ich die fehlerfreie vector-Implementierung von VC++ benutze.



  • Ich denke das in zukunft vorallem der Anteil des Codes steigen wird, welcher von Maschinen generiert wird.
    Gerade im Umfeld von Geschäftsprozessen aber auch in anderen Bereichen wird immer mehr Code ohne einen
    eigentlichen Programmierer entstehen, so wie wir heute waren auf Fliessbändern vollautomatisch montieren können.



  • Ich denke, dass in der Zukunft der Mensch dem Computer einfach in mündlicher Sprache erzählt was er gerne haben möchte und das Programmieren übernimmt die Logik des Computers.

    Es gibt sogar Programmierer die arbeiten an der Entwicklung einer künstlichen KI, sägen also sozusagen an ihrem eigenen Ast.

    MfG SideWinder



  • Hihi, also die Idee hatte glaube ich schon jeder. Wir haben hier schon mal rumgewitzelt, das wir eine Maschine entwickeln, wo wir nur noch das Lastenheft und Pflichtenheft reinwerfen und am nächsten Tag ist das gewünschte Programm fertig. 😃 Am coolsten wäre einfach nur, das Heft unter die Bürotür zu schieben und irgendwas wird schon passieren. 😉 Aber, wir würden die Existenz dieser Maschine niemandem verraten, sondern für uns behalten. Und damit jedem Konkurrenten die Aufträge wegschnappen.

    Nein, also im ernst, ich glaube das wird in naher Zukunft nicht passieren. Das was sich aber abzeichnet, ist das man mit Workflow-Engines und passenden grafischen Editoren schon sehr viel an Programmierung abnehmen kann. Z.B. mit Staffware funktioniert das schon sehr gut, WENN man sich in die Materie reinfuchst. Bei Barkley Card haben die eines ihrer Systeme komplett mit Staffware designed. Die GUI sieht zwar altbacken aus, erfüllt aber ihren Zweck. Also, irgendjemand muß das Ding auch bedienen können. Dann wird halt nicht im C++Code ein Workflow definiert, sondern in einem grafischen Editor. Der Mensch muß trotzdem noch arbeiten... ist halt nur eine visuelle Programmieren. Ist ja bei GUIs ja auch schon so: in Java programmiere ich meine GUIs nicht mehr wirklich, sondern schmeiss den GUI-Design an und es wird wild rumgeklickt.



  • ... naja, und der Schritt von "Binärcode" zu ASM und von dort zu "Hochsprachen" war eigentlich auch nichts Andereres: Stets wurde auf höheren Abstraktionsebenen gebündelt und formuliert ... und wenn man sich mal den Komplexitätsanstieg bei den Programmen ansieht, kann ich mir auch nicht vorstellen, dass das gerade jetzt bei C++ oder Java aufhören sollte.

    Gruß,

    Simon2.



  • @SideWinder
    Die Idee ist schon ziemlich alt und ist nicht wirklich realistisch.

    Wenn man die Computertechnik, wie wir sie heute verwenden einmal auf die unterste Ebene herunterbricht... stellt man fest, dass sie eigentlich nichts anderes ist als die Anwendung ziemlich popliger Mathematik.

    Und genau da liegt das Problem... dort wo unsere Mathematik versagt, da tun es auch unsere Computer.

    @Simon2
    Eine natürliche Sprache ist etwas ganz anderes wie eine Computersprache. Eine Computersprache kannst du anhand von Regeln beschreiben, sonst könnte man sie z.B. nicht in Maschinensprache übersetzen.
    Bei natürlichen Sprachen ist das mit den Regeln aber so eine Sache... (abgesehen davon, dass sie sich kontinuierlich verändern, die Begriffe nicht eindeutig sind, ...)

    Das hat nichts mit Abstraktionsebenen zutun sondern mit der Eindeutigkeit einer Beschreibung. Unabhängig davon auf welches Abstratkionsebene du etwas beschreibst, wenn es nicht eindeutig ist kann der Computer damit nichts anfangen.



  • phlox81 schrieb:

    Ich denke das in zukunft vorallem der Anteil des Codes steigen wird, welcher von Maschinen generiert wird.
    Gerade im Umfeld von Geschäftsprozessen aber auch in anderen Bereichen wird immer mehr Code ohne einen
    eigentlichen Programmierer entstehen, so wie wir heute waren auf Fliessbändern vollautomatisch montieren können.

    Das ist keine Zukunftsvision. Es heute schon real und wird auch schon eingesetzt. Stichwort: Model-Driven Software Development. Wir hatten neulich an der Uni einen Gastvortrag von Markus Voelter dazu. Er demonstrierte recht eindruckvoll, wozu heutige Tools bereits imstande sind. Link fuer Interessierte: http://www.voelter.de/services/mdsd.html



  • SideWinder schrieb:

    Ich denke, dass in der Zukunft der Mensch dem Computer einfach in mündlicher Sprache erzählt was er gerne haben möchte und das Programmieren übernimmt die Logik des Computers.

    Es gibt sogar Programmierer die arbeiten an der Entwicklung einer künstlichen KI, sägen also sozusagen an ihrem eigenen Ast.

    MfG SideWinder

    Hast Du eine Frau oder eine Freundin ?
    Wie lange dauert es, bis Du genau begriffen hast, was sie von Dir will ? Oder Dein Finanzbeamter ? Oder Dein Opa ? ... 😉

    Ein Hauptproblem bei der Programmierung besteht schon heute darin, zu verstehen, was Menschen wollen oder wirklich brauchen ... das wird eine KI (zumindestens auf längere Zeit) nicht besser können.

    Gruß,

    Simon2.



  • Mathias schrieb:

    Das hat nichts mit Abstraktionsebenen zutun sondern mit der Eindeutigkeit einer Beschreibung. Unabhängig davon auf welches Abstratkionsebene du etwas beschreibst, wenn es nicht eindeutig ist kann der Computer damit nichts anfangen.

    Aber am Ende jeder Kette von formalen Beschreibungen steht immer eine informelle Beschreibung. Daher betrachte ich es nicht als unmoeglich in Zukunft mit einem Computer mit Hilfe von natuerlichen Sprachen zu kommunizieren.



  • Ich denke auch nicht dass es unmöglich ist. Ausserdem wird es ja auch mal ganz andere Computergenerationen geben, als die, welche wir heutzutage haben (z.B. Quantencomputer usw...). Aber das wird wohl noch ein bisschen dauern 😉

    Und zu Model Driven Developement bzw. Model Driven Architecture: Sicher, das stellt einen Fortschritt dar und ich denke auch dass es in Zukunft immer mehr modell-getriebene Entwicklung geben wird. Aber eins kannst mir glauben, da wird auch nur mit Wasser gekocht. Ich hab selbst mal bei ner Firma gearbeitet die führende MDA-Tools herstellt. Diese waren zwar nicht schlecht, aber wie gesagt Wunderwerke vollbringen die auch nicht. Zudem gibt es (mittlerweile) auch relativ viele Gegner der MDA.



  • Apollon schrieb:

    Stichwort: Model-Driven Software Development. Wir hatten neulich an der Uni einen Gastvortrag von Markus Voelter dazu. Er demonstrierte recht eindruckvoll, wozu heutige Tools bereits imstande sind. Link fuer Interessierte: http://www.voelter.de/services/mdsd.html

    MDSD ist aber nicht real 😉 Viel zu viel für viel zu wenig 😉

    Simon2 schrieb:

    Ein Hauptproblem bei der Programmierung besteht schon heute darin, zu verstehen, was Menschen wollen oder wirklich brauchen ... das wird eine KI (zumindestens auf längere Zeit) nicht besser können.

    Vor einem halben Jahrhundert hätte es jeder für unmöglich gehalten mit dem Notebook auf der Couch Filme in Farbe zu sehen. Vor zwei Jahrhunderten hätte man dich ausgelacht wenn du behauptet hättest du würdest mit einem Flugzeug non-stop von Deutschland aus nach Australien in weniger als einem Tag fliegen können. Und wehe du hättest erzählt, dass du den Mond besuchen kannst. Also bitte...

    Alles was nur irgendwie vorstellbar ist, wird auch lösbar werden. Die Frage ist nur was wir uns alles noch nicht einmal vorstellen können!

    MfG SideWinder



  • Mathias schrieb:

    ...
    Eine natürliche Sprache ist etwas ganz anderes wie eine Computersprache....

    Das hat nichts mit Abstraktionsebenen zutun sondern mit der Eindeutigkeit einer Beschreibung. Unabhängig davon auf welches Abstratkionsebene du etwas beschreibst, wenn es nicht eindeutig ist kann der Computer damit nichts anfangen.

    Richtig ! Aber schon heuzutage ist ein (wenn nicht gar das) Hauptproblem bei der Softwareentwicklung genau dieser Übergang. Hat man erstmal (exakt) raus, was man wirklich braucht, ist das Coding fast schon Nebensache.
    => Eine "Spracheingabe" wird nur dann wirklich viel helfen, wenn sie bei diesem Prozess des "Eindeutigmachens" hilft ... und da sehe ich ziemlich schwarz.

    Über "Abstraktion" habe ich in diesem Zusammenhang gar nichts geschrieben, sondern im Zusammenhang mit weiterentwickelnden Sprachen/Frameworks/...

    Gruß,

    Simon2.



  • SideWinder schrieb:

    ...
    Vor einem halben Jahrhundert hätte es jeder für unmöglich gehalten ...

    Mit dem Argument muss man folgern: "Wie lange kann es noch dauern, bis wir Computer haben, die Krieg, Neid, Haß und Umweltverschmutzung im Griff haben ?"

    Das Argument ist vor Allem deswegen so abgegriffen, weil es in 98% der Fälle im falschen Zusammenhang eingesetzt wird - wie auch hier.
    Es sind nicht (in erster Linie) die technischen Möglichkeiten, die ein hier skizziertes Vorgehen so schwer machen, sondern die menschlichen !

    • Man kann nur etwas in einem Maschine gießen, was man verstanden hat.
    • Seit Anbeginn der Zeit kämpft der Mensch damit, sich gegenseitig richtig zu verstehen - und er ist nur sehr wenig vorangekommen.

    Da ist ein logischer Widerspruch, den Du nur auflösen kannst, wenn Du die menschliche Kommunikation (und damit Motivation) in der Tiefe verstehst - das werden aber Ingenieure, Physiker und Co. nicht herausbekommen und solange die Wissenschaften, die sich damit beschäftigen, weiterhin zurückgedrängt werden, wird sich daran auch nichs ändern.

    Gruß,

    Simon2.


Anmelden zum Antworten