11 Vorhersagen für die Zukunft der Programmierung

Das einzige, was schneller als die Zeit fliegt, ist der Fortschritt der Technologie. Einmal nach dem Mittagessen entschuldigte sich ein Freund, der Chips entwarf, schnell mit der geschickten Erklärung, dass Moores Gesetz bedeutete, dass er seinen Chipsatz jede Woche um 0,67 Prozent schneller machen musste, selbst im Urlaub. Andernfalls würde sich die Geschwindigkeit der Chips nicht alle zwei Jahre verdoppeln.

Jetzt, da 2017 da ist, ist es Zeit, eine Bestandsaufnahme der bevorstehenden technologischen Veränderungen vorzunehmen, um Ihnen zu zeigen, wo Sie Ihre Wetten platzieren können, um Programmierkenntnisse für die Zukunft aufzubauen.

Von den zunehmenden Sicherheitsbedenken im Internet der Dinge bis hin zum maschinellen Lernen überall wird die Zukunft der Programmierung immer schwieriger vorherzusagen.

Die Wolke wird Moores Gesetz besiegen

Es gibt Neinsager, die behaupten, die Chiphersteller hätten eine Mauer getroffen. Sie verdoppeln nicht mehr alle zwei Jahre die Chipgeschwindigkeit wie in den halben Jahren der 80er und 90er Jahre. Vielleicht - aber es spielt keine Rolle mehr, weil die Grenzen zwischen Chips weniger definiert sind als je zuvor.

In der Vergangenheit war die Geschwindigkeit der CPU in der Box auf Ihrem Schreibtisch von Bedeutung, da Sie nur so schnell fahren konnten, wie der Siliziumhamster im Inneren sein Rad drehen konnte. Der Kauf eines größeren, schnelleren Hamsters alle paar Jahre verdoppelte auch Ihre Produktivität.

Jetzt zeigt die CPU auf Ihrem Schreibtisch kaum noch Informationen auf dem Bildschirm an. Der Großteil der Arbeit wird in der Cloud erledigt, wo nicht klar ist, wie viele Hamster an Ihrem Job arbeiten. Wenn Sie Google durchsuchen, kann die riesige Cloud 10, 20 oder sogar 1.000 Hamster dafür einsetzen, die richtige Antwort für Sie zu finden.

Die Herausforderung für Programmierer besteht darin, clevere Wege zu finden, um elastisch gerade genug Rechenleistung für das Problem jedes Benutzers bereitzustellen, damit die Lösung schnell genug kommt und der Benutzer sich nicht langweilt und zur Website eines Mitbewerbers wandert. Es steht viel Strom zur Verfügung. Mit den Cloud-Unternehmen können Sie den Andrang der Benutzer bewältigen. Sie müssen jedoch Algorithmen finden, die problemlos parallel funktionieren, und dann sicherstellen, dass die Server synchron arbeiten.

Die IoT-Sicherheit wird nur noch beängstigender

Das Mirai-Botnetz, das sich im vergangenen Herbst entwickelt hat, war ein Weckruf für Programmierer, die die nächste Generation des Internets der Dinge schaffen. Diese cleveren kleinen Geräte können wie jeder andere Computer infiziert werden und über ihre Internetverbindung Chaos anrichten und die Kriegshunde ausrutschen lassen. Und wie jeder weiß, können Hunde vorgeben, jeder im Internet zu sein.

Das Problem ist, dass die aktuelle Lieferkette für Gadgets keinen Mechanismus zum Reparieren von Software enthält. Der Lebenszyklus eines Gadgets beginnt normalerweise mit einer langen Reise von einer Produktionsstätte zu einem Lager und schließlich zum Benutzer. Es ist nicht üblich, dass sich zwischen der Montage und dem ersten Gebrauch bis zu 10 Monate entfalten. Die Geräte werden in diesen langen, verweilenden Monaten um die halbe Welt verschickt. Sie sitzen in Kisten und warten in Versandbehältern. Dann sitzen sie auf Paletten in großen Läden oder in Lagern. Bis sie ausgepackt sind, könnte ihnen alles passiert sein.

Die Herausforderung besteht darin, alles im Auge zu behalten. Es ist schwierig genug, die Batterien in den Rauchmeldern jedes Mal zu aktualisieren, wenn sich die Uhren ändern. Aber jetzt müssen wir uns über unseren Toaster, unseren Wäschetrockner und so ziemlich alles im Haus wundern. Ist die Software auf dem neuesten Stand? Wurden alle Sicherheitspatches angewendet? Die Anzahl der Geräte macht es schwieriger, das Heimnetzwerk intelligent zu überwachen. Es sind mehr als 30 Geräte mit IP-Adressen an meinen WLAN-Router angeschlossen, und ich kenne die Identität von nur 24. Wenn ich eine intelligente Firewall aufrechterhalten wollte, würde ich verrückt werden und die richtigen Ports für die richtigen intelligenten Dinge öffnen.

Diesen Geräten die Möglichkeit zu geben, beliebigen Code auszuführen, ist ein Segen und ein Fluch. Wenn Programmierer clevere Aufgaben ausführen und Benutzern maximale Flexibilität bieten möchten, sollten die Plattformen geöffnet sein. So gedeihen die Maker Revolution und Open Source Kreativität. Dies gibt Virenschreibern aber auch mehr Möglichkeiten als je zuvor. Sie müssen lediglich eine Widget-Marke finden, die keinen bestimmten Treiber aktualisiert hat - voilà, sie haben Millionen von Widgets gefunden, die für das Hosten von Bots vorbereitet sind.

Video wird das Web auf neue Weise dominieren

Als das HTML-Standardkomitee begann, Video-Tags in HTML selbst einzubetten, hatten sie wahrscheinlich keine großen Pläne, Unterhaltung neu zu gestalten. Sie wollten wahrscheinlich nur die Pannen von Plugins lösen. Die grundlegenden Video-Tags reagieren jedoch auf JavaScript-Befehle, wodurch sie im Wesentlichen programmierbar sind.

Das ist eine große Veränderung. In der Vergangenheit wurden die meisten Videos sehr passiv konsumiert. Sie setzen sich an die Couch, drücken die Wiedergabetaste und sehen, was der Editor des Videos für Sie entschieden hat. Jeder, der dieses Katzenvideo sieht, sieht die Katzen in derselben Reihenfolge, die vom Ersteller des Katzenvideos festgelegt wurde. Sicher, ein paar Schnellvorlauf, aber Videos kommen genauso regelmäßig zu ihrem Abschluss wie Schweizer Züge.

Die Kontrolle von JavaScript über Videos ist begrenzt, aber die geschicktesten Webdesigner finden clevere Möglichkeiten, um Videos in eine nahtlose Leinwand mit dem Rest der Webseite zu integrieren. Dies eröffnet dem Benutzer die Möglichkeit zu steuern, wie sich die Erzählung entfaltet und mit dem Video interagiert. Niemand kann sicher sein, was sich die Autoren, Künstler und Herausgeber vorstellen werden, aber sie benötigen Programmiertalent, um dies zu erreichen.

Auf vielen der schicksten Websites läuft das Video bereits an cleveren Stellen. Bald werden sie alle bewegliche Dinge wollen. Es reicht nicht aus, ein IMGTag mit einer JPEG-Datei zu versehen. Sie müssen sich Videos schnappen - und sich mit den Standardproblemen befassen, die die Browserwelt fragmentiert haben.

Konsolen werden weiterhin PCs ersetzen

Es ist schwer, sauer auf Spielekonsolen zu sein. Die Spiele sind großartig und die Grafik ist unglaublich. Sie haben großartige Grafikkarten und relativ stabile Softwareplattformen gebaut, damit wir uns im Wohnzimmer entspannen und davon träumen können, Bösewichte zu erschießen oder einen Fußball zu werfen.

Wohnzimmerkonsolen sind nur der Anfang. Die Hersteller von Gegenständen für den Rest des Hauses gehen den gleichen Weg. Sie hätten sich für ein Open-Source-Ökosystem entscheiden können, aber die Hersteller bauen ihre eigenen geschlossenen Plattformen.

Dies fragmentiert den Markt und erschwert es Programmierern, alles gerade zu halten. Was auf einem Lichtschalter läuft, läuft nicht auf einem anderen. Der Fön spricht möglicherweise das gleiche Protokoll wie der Toaster, wird es aber wahrscheinlich nicht. Es ist mehr Arbeit für Programmierer, sich auf den neuesten Stand zu bringen, und weniger Möglichkeiten, unsere Arbeit wiederzuverwenden.

Daten bleiben König

Nach den US-Präsidentschaftswahlen 2016 machten sich Experten mit Wortschleudern über Experten mit Datenschleudern lustig, was darauf hindeutete, dass all ihre statistischen Analysen eine Übung der Dummheit waren. Vorhersagen waren dramatisch falsch und die Big-Data-Leute sahen schlecht aus.

Wie sind sie zu diesem Schluss gekommen? Durch Vergleichen eines Satzes von Zahlen (der Vorhersagen) mit einem anderen Satz von Zahlen (der Wahlergebnisse). Sie brauchten noch die Daten.

Daten sehen wir im Internet. Licht bringt uns Informationen über die reale Welt, aber Zahlen erzählen uns über alles online. Einige Leute machen vielleicht schlechte Vorhersagen basierend auf unvollständigen Zahlen, aber das bedeutet nicht, dass wir aufhören sollten, die Zahlen zu sammeln und zu interpretieren.

Das Sammeln, Sammeln, Kuratieren und Parsen von Daten wird weiterhin eine der wichtigsten Aufgaben für das Unternehmen sein. Die Entscheidungsträger benötigen die Zahlen, und die Programmierer werden weiterhin die Aufgabe haben, Daten auf eine Weise zu liefern, die leichter zu verstehen ist. Dies bedeutet nicht, dass die Antworten perfekt sind. Kontext und Intuition werden weiterhin eine Rolle spielen, aber die Notwendigkeit, Daten zu streiten, wird nicht einfach verschwinden, weil einige Leute vorausgesagt haben, dass Donald Trump nicht gewählt werden würde. Dies bedeutet mehr Arbeit für Programmierer, da kein Ende in Sicht ist, um größere, schnellere und datenintensivere Software zu erstellen.

Maschinelles Lernen wird zur neuen Standardfunktion

Wenn Kinder im College einen Kurs namens "Datenstrukturen" belegen, lernen sie, wie das Leben war, als ihre Großeltern Code schrieben, und konnten sich nicht auf die Existenz einer Ebene namens "Datenbank" verlassen. Echte Programmierer mussten Tabellen voller Daten ohne die Hilfe von Oracle, MySQL oder MongoDB speichern, sortieren und verknüpfen.

Algorithmen für maschinelles Lernen sind nur noch wenige Jahre von diesem Sprung entfernt. Derzeit müssen Programmierer und Datenwissenschaftler einen Großteil ihres eigenen Codes schreiben, um komplexe Analysen durchzuführen. Bald werden Sprachen wie R und einige der cleversten Business-Intelligence-Tools nicht mehr speziell sein und in den meisten Software-Stacks regelmäßig verwendet werden. Sie werden von vier oder fünf speziellen Folien im PowerPoint-Verkaufsdeck zu einem kleinen Rechteck in der Architekturzeichnung, das für selbstverständlich gehalten wird.

Es wird nicht über Nacht passieren und es ist nicht klar, welche Form es haben wird, aber es ist klar, dass immer mehr Geschäftspläne davon abhängen, dass Algorithmen für maschinelles Lernen die besten Lösungen finden.

Das Design der Benutzeroberfläche wird komplizierter, wenn die PCs weiter verblassen

Jeden Tag scheint es einen Grund weniger zu geben, einen PC zu benutzen. Zwischen dem Aufkommen von Smartphones, Wohnzimmerkonsolen und Tablets scheinen sich nur noch Büroangestellte und Studenten an PCs zu klammern, die einen Auftrag abgeben müssen.

Dies kann eine Herausforderung für Programmierer sein. Früher war es einfach anzunehmen, dass Benutzer von Software oder Websites eine Tastatur und eine Maus haben würden. Jetzt haben viele Benutzer auch nicht. Smartphone-Nutzer drücken ihre Finger auf einen Glasbildschirm, der kaum Platz für alle 26 Buchstaben bietet. Konsolenbenutzer drücken die Pfeiltasten auf einer Fernbedienung.

Das Entwerfen von Websites wird schwieriger, da sich ein Touch-Ereignis geringfügig von einem Klick-Ereignis unterscheidet. Benutzer haben unterschiedliche Präzision und Bildschirme variieren stark in der Größe. Es ist nicht einfach, alles klar zu halten, und es wird in den kommenden Jahren nur noch schlimmer werden.

Das Ende der Offenheit

Das Übergeben des PCs ist nicht nur der langsame Tod eines bestimmten Formfaktors. Es ist das Sterben eines besonders offenen und einladenden Marktplatzes. Der Tod des PCs wird eine Schließung der Möglichkeiten sein.

Als die PCs zum ersten Mal ausgeliefert wurden, konnte ein Programmierer Code kompilieren, auf Datenträger kopieren, diese Datenträger in Druckverschlussbeutel stecken und die Welt konnte ihn kaufen. Es gab keinen Mittelsmann, keinen Torhüter, keine strenge zentrale Kraft, die uns bat zu sagen: "Mutter, darf ich?"

Konsolen sind fest verschlossen. Niemand kommt ohne Kapitalinvestition auf diesen Markt. Die App Stores sind etwas offener, aber es sind immer noch ummauerte Gärten, die unsere Möglichkeiten einschränken. Sicher, sie sind immer noch offen für Programmierer, die durch die richtigen Reifen springen, aber jeder, der einen falschen Zug macht, kann geworfen werden. (Irgendwie verzögern sie unsere Apps immer, während die Malware durchrutscht.

Diese Unterscheidung ist wichtig für Open Source. Es geht nicht nur darum, Disketten in Baggies zu verkaufen. Wir verlieren die Fähigkeit, Code freizugeben, weil wir die Fähigkeit verlieren, Code zu kompilieren und auszuführen. Das Ende des PCs ist ein großer Teil des Endes der Offenheit. Im Moment haben die meisten Leute, die dies lesen, wahrscheinlich einen anständigen Desktop, der Code kompilieren und ausführen kann, aber das ändert sich langsam.

Weniger Menschen haben die Möglichkeit, Code zu schreiben und zu teilen. Bei all dem Gerede über die Notwendigkeit, der nächsten Generation das Programmieren beizubringen, gibt es weniger praktische Vektoren für die Verteilung von offenem Code.

Autonomer Transport ist hier, um zu bleiben

Es sind nicht nur Autos. Einige wollen autonome Flugzeuge bauen, die nicht durch die Notwendigkeit von Straßen belastet sind. Andere möchten autonome Skateboards für sehr leichtes Reisen schaffen. Wenn es sich bewegt, träumt ein Hacker davon, ihm zu sagen, wohin er gehen soll.

Programmierer steuern nicht, was die Leute auf dem Bildschirm sehen. Sie werden steuern, wohin die Menschen gehen und wie sie mit der Welt interagieren. Und die Leute sind nur ein Teil des Spiels. Alle unsere Sachen werden sich auch autonom bewegen.

Wenn Sie ein Abendessen von einem berühmten Koch in der Innenstadt wünschen, kann ein autonomes Skateboard mit beheizter Kammer es zu Ihnen nach Hause bringen. Wenn Sie möchten, dass Ihr Rasen gemäht wird, ersetzt ein autonomer Rasenmäher das Kind aus der Nachbarschaft.

Und Programmierer können all die coolen Ideen nutzen, die sie während der ersten Internetrevolution hatten. Wenn Sie der Meinung sind, dass Popup-Anzeigen im Internet schlecht sind, warten Sie, bis die Programmierer bezahlt sind, um Ihre autonomen Rollschuhe an der Küchenöffnung eines neuen Restaurants vorbei zu leiten. Noch hungrig?

Das Gesetz wird neue Grenzen finden

Die Tinte auf der Bill of Rights war kaum trocken, als Debatten darüber begannen, was es bedeutet, dass eine vernünftige Suche in unseren Papieren durchgeführt wird. Jetzt, mehr als 200 Jahre später, streiten wir immer noch über die Details.

Änderungen in der Technologie eröffnen dem Gesetz neue Möglichkeiten. Vor einigen Jahren entschied der Oberste Gerichtshof, dass für die Fahrzeugverfolgungstechnologie ein Haftbefehl erforderlich ist. Aber das ist nur, wenn die Polizei den Tracker ins Auto setzt. Niemand weiß wirklich, welche Regeln gelten, wenn jemand die Tracking-Daten von Waze, Google Maps oder einer der Hunderten anderer Apps, die unsere Standorte zwischenspeichern, vorlädt.

Was ist mit der Beeinflussung der Funktionsweise der Maschinen? Es ist eine Sache, Daten herunterzuladen, aber es ist furchtbar verlockend, die Daten auch zu ändern. Ist es fair für die Polizei (oder private Akteure), Dokumente, Überschriften oder Teile zu fälschen? Ist es wichtig, ob die Ziele echte Terroristen sind oder einfach Menschen, die zu lange auf einem Parkplatz geparkt haben, ohne den Zähler zu füttern?