Was ist die Zukunft der Softwareentwicklung?

Was ist die Zukunft der Softwareentwicklung?

Die Softwareentwicklung wurde jahrelang manuell durchgeführt.

Von Lochkarten in FORTRAN bis zum Verfassen verteilter Methoden in Go ist die Disziplin im Wesentlichen dieselbe geblieben: Denken Sie intensiv über ein Problem nach, entwickeln Sie einen cleveren Ansatz (dh einen Algorithmus) und geben Sie der Maschine zwei Anweisungen zur Implementierung.

Dieser Ansatz, der als "explizite Programmierung" bezeichnet werden kann, war der Schlüssel für alles, vom Mainframe bis zum Smartphone, vom Internetboom bis zur mobilen Revolution. Es hat dazu beigetragen, neue Märkte zu schaffen und Unternehmen wie Apple, Microsoft, Google und Facebook zu bekannten Namen zu machen.

Und doch wird etwas fehlen. Die intelligenten Systeme, die von Autoren des alten Computerzeitalters vorgestellt wurden, von Philip Dicks Robotertaxi zu George Lucas 'C-3PO, setzen die Science-Fiction fort. Scheinbar einfache Aufgaben trotzen selbst den brillantesten Informatikern hartnäckig der Automatisierung. Experten werfen Silicon Valley vor, angesichts dieser Herausforderungen von grundlegenden Fortschritten abzuweichen, um sich auf inkrementelle oder von der Modeerscheinung getriebene Unternehmen zu konzentrieren.

Das wird sich natürlich ändern. Waymos selbstfahrende Autos haben in letzter Zeit acht Millionen Kilometer zurückgelegt. Die Übersetzungs-Engine von Microsoft spricht zwar sechs Millionen Kommunikationsformen nicht fließend an, kann jedoch die Genauigkeit des Menschen bei Aufgaben von Chinesisch nach Englisch erreichen. Und Startups gehen neue Wege in Bereichen wie intelligenten Assistenten, industrieller Automatisierung, Betrugserkennung und vielen anderen.

Individuell versprechen diese neuen Technologien Auswirkungen auf unseren Alltag. Zusammengenommen stellen sie eine grundlegende Veränderung in der Art und Weise dar, wie wir über Softwareentwicklung denken - und auch eine bemerkenswerte Abweichung vom expliziten Programmiermodell.

Der Herzdurchbruch, der jeden dieser Fortschritte unterstützt, ist tiefes Lernen, eine Strategie der künstlichen Intelligenz , die durch den Aufbau Ihres Gehirns motiviert ist. Was als vergleichsweise enges Datenauswertungstool begann, dient heute in der Nähe eines allgemeinen Computersystems. Es übertrifft herkömmliche Software in einer Vielzahl von Aufgaben und liefert möglicherweise schließlich die intelligenten Systeme, die Informatikern lange Zeit entgangen sind - Leistungen, die die Presse manchmal überproportional ausführt.

Inmitten des tiefgreifenden Lernrummels übersehen die meisten Beobachter jedoch den größten Grund, sich positiv über seine Zukunft zu äußern: Für tiefgreifendes Lernen müssen Codierer kaum Code schreiben. Anstatt sich auf voreingestellte Regeln oder Wenn-Dann-Rechnungen zu verlassen, schreibt ein Deep-Learning-Programm Prinzipien automatisch basierend auf vorherigen Beispielen. Ein Softwareentwickler muss nur ein "raues Skelett" erstellen, um Andrej Karpathy von Tesla zu paraphrasieren, und dann die Computer den Rest erledigen lassen

In diesem neuen Universum müssen Programmierer nicht mehr für jedes Problem einen speziellen Algorithmus entwerfen. Die meisten Arbeiten konzentrieren sich vielmehr darauf, Datensätze zu generieren, die das gewünschte Verhalten widerspiegeln, und den Trainingsprozess zu verwalten. Pete Warden vom TensorFlow-Team von Google wies bereits 2014 darauf hin: "Ich war früher ein Programmierer" , schrieb er. " Ich bringe Computern bei, ihre eigenen Apps zu erstellen."

Nochmals: Das Programmiermodell, das heute die wichtigsten Verbesserungen in Anwendungen vorantreibt, erfordert keine nennenswerte Menge an tatsächlicher Programmierung.

Was bedeutet dies für die Zukunft der Softwareentwicklung?

Programmierung und Datenwissenschaft werden zunehmend zusammenwachsen

Die meisten Anwendungen werden auf absehbare Zeit keine "End-to-End " -Lernprogramme enthalten. Es wird sich auf Datenmodelle stützen, um zentrale Erkennungskapazitäten und explizite Logik für die Schnittstelle mit Benutzern und die Übersetzung von Ergebnissen bereitzustellen. Die Frage "Soll ich KI oder sogar einen konventionellen Ansatz für dieses Problem verwenden?" Wird sich zunehmend entwickeln. Das Entwerfen intelligenter Systeme erfordert die Kontrolle über beide.

KI-Profis werden wahrscheinlich die Rockstars sein

KI zu machen ist hart. Einfache KI-Programmierer - nicht nur brillante Akademiker und Forscher - werden später eines der wertvollsten Werkzeuge für Softwareunternehmen sein. Dies ist ein wenig ironisch für traditionelle Programmierer, die seit den 1950er Jahren in verschiedenen Branchen automatisch arbeiten und derzeit mit der teilweisen Automatisierung ihrer eigenen Jobs konfrontiert sind. Der Bedarf an ihren Dienstleistungen wird sicherlich nicht sinken, aber Personen, die an der Spitze bleiben möchten, müssen mit einer gesunden Dosis Skepsis das Wasser der KI überprüfen.

Die KI-Werkzeugkette muss aufgebaut werden

Gil Arditi, Leiter des maschinellen Lernens bei Lyft, sagte es am besten. "Maschinelles Lernen befindet sich jetzt in der ursprünglichen Suppenperiode. Es ist der Datenbank aus den frühen 80ern oder späten 70ern sehr ähnlich. Man musste ein weltweiter Spezialist werden, um diese Gegenstände zum Laufen zu bringen. " Studien zeigen auch, dass es viele KI-Modelle gibt nicht einfach zu erklären, unbedeutend zu täuschen und anfällig für Vorurteile. Tools zur Behebung dieser Probleme sind unter anderem von entscheidender Bedeutung, um das Potenzial von KI-Entwicklern auszuschöpfen.

Wir alle müssen uns mit unvorhersehbarem Verhalten vertraut machen

Das Konzept einer PC-Ausbildung ist sowohl für Programmierer als auch für Benutzer geeignet. Dies verstärkt den Eindruck, dass Computer genau das tun, was wir sagen, und dass ähnliche Eingaben konsistent ähnliche Ausgaben erzeugen. Im Gegensatz dazu wirken KI-Versionen wie atmende, lebende Systeme. Durch neue Werkzeuge verhalten sie sich eher wie explizite Programme, insbesondere in sicherheitskritischen Konfigurationen. Wir riskieren jedoch, den Wert dieser Systeme zu verlieren - wie die "außerirdischen" Bewegungen von AlphaGo -, wenn wir die Leitplanken zu fest platzieren. Während wir wachsen und KI-Software verwenden, müssen wir probabilistische Ergebnisse verstehen und akzeptieren.

Und ich hoffe, die Wahrscheinlichkeit einer KI-Übernahme liegt nahe Null.