21 heiße Programmiertrends - und 21 werden kalt

Programmierer lieben es, sich über die Modewelt lustig zu machen, in der Trends wie eine Brise durchbrennen. Rocklängen steigen und fallen, Pigmente kommen und gehen, Krawatten werden dicker, dann dünner. Aber in der Welt der Technologie herrschen Strenge, Wissenschaft, Mathematik und Präzision über Modeerscheinungen.

Das heißt nicht, dass Programmieren ein Beruf ohne Trends ist. Der Unterschied besteht darin, dass Programmiertrends von höherer Effizienz, höherer Anpassung und Benutzerfreundlichkeit bestimmt werden. Die neuen Technologien, die eine oder mehrere dieser Technologien liefern, übertreffen die vorherige Generation. Es ist eine Meritokratie, keine Laune.

Was folgt, ist eine Liste dessen, was heiß ist und was nicht unter den heutigen Programmierern. Nicht jeder wird damit einverstanden sein, was A-gelistet ist, was D-gelistet ist und was weggelassen wurde. Das macht das Programmieren zu einem unendlich faszinierenden Beruf: schnelle Veränderungen, leidenschaftliche Debatten, plötzliche Comebacks.

Hot: Präprozessoren

Nicht: Vollsprachige Stapel

Es ist noch nicht lange her, dass Leute, die eine neue Programmiersprache erstellt haben, alles bauen mussten, was Code in die Bits verwandelte, die dem Silizium zugeführt wurden. Dann fand jemand heraus, dass er die vorhergehende Arbeit huckepack nehmen konnte. Jetzt schreiben Leute mit einer cleveren Idee einfach einen Präprozessor, der den neuen Code in etwas Altes mit einer Vielzahl von Bibliotheken und APIs übersetzt.

Die Skriptsprachen wie Python oder JavaScript waren früher auf kleine Projekte beschränkt, aber jetzt sind sie die Grundlage für ernsthafte Arbeit. Und diejenigen, die JavaScript nicht mochten, haben CoffeeScript erstellt, einen Präprozessor, mit dem sie wieder ohne lästige Interpunktion codieren können. Es gibt Dutzende von Variationen, die die Syntax auf andere Weise vorschneiden und vorhersagen.

Die Leute, die dynamisches Tippen liebten, schufen Groovy, eine einfachere Version von Java ohne die übermäßig eindringliche Interpunktion. Es scheint Dutzende von Sprachen zu geben - Groovy, Scala, Clojure, Kotlin usw. -, die auf der JVM laufen, aber es gibt nur eine JVM. Sie können auch viele Sprachen auf der VM von .Net ausführen. Warum das Rad neu erfinden?

Hot: Serverlos

Nicht: Docker

Das ist nicht genau richtig. Docker-Container sind überall. Server drehen sich ständig hoch und fahren Container herunter. Docker-Container sind jedoch soooo viel größer als sie sein müssen.

Wenn Sie darüber nachdenken, schreiben Sie möglicherweise nur ein paar Dutzend Zeilen echten Entscheidungscodes für den von Ihnen bereitgestellten Microservice, aber Sie müssen eine Unmenge von Konfigurationszeilen einfügen, damit Node.js und was auch immer gestartet wird richtig mit Docker. Ja, es ist alles Boilerplate, aber das ist nicht der Punkt.

Mit den neuen serverlosen Architekturen können wir nur die wenigen Wenn-Dann-Sonst-Anweisungen bereitstellen, die die eigentlichen Entscheidungen treffen. Alles andere bleibt den Leuten überlassen, die uns die serverlose Plattform vermieten.

Ja, wir werden uns in ein paar Jahren über Lock-In und mangelnde Anpassung beschweren, aber im Moment scheinen die serverlosen Optionen eine süße Erleichterung für alle Entwickler und Konfigurationen zu sein.

Hot: JavaScript MV * Frameworks

Nicht: JavaScript-Dateien

Vor langer Zeit haben alle gelernt, JavaScript zu schreiben, um ein Warnfeld zu öffnen oder um zu überprüfen, ob die E-Mail-Adresse im Formular ein @ -Zeichen enthält. Jetzt sind HTML AJAX-Apps so ausgefeilt, dass nur wenige Leute von vorne anfangen. Es ist einfacher, ein ausgeklügeltes Framework zu übernehmen und ein bisschen Klebercode zu schreiben, um Ihre Geschäftslogik zu implementieren.

Mittlerweile gibt es Dutzende von Frameworks wie Kendo, Sencha, jQuery Mobile, AngularJS, Ember, Backbone, Meteor JS und viele mehr, die alle bereit sind, die Ereignisse und Inhalte für Ihre Web-Apps und -Seiten zu verarbeiten.

Das sind nur die Web-Apps. Es gibt auch eine Reihe von Angeboten, die plattformübergreifende Entwicklung für die Smartphone- / Tablet-Welt anbieten. Technologien wie NativeScript, PhoneGap, Apache Cordova und React Native sind einige der Optionen zum Erstellen von Apps aus der HTML5-Technologie.

Hot: CSS-Frameworks

Nicht: Generisches CSS

Es war einmal so, dass das Hinzufügen von etwas Pizzazz zu einer Webseite das Öffnen der CSS-Datei und das Einfügen eines neuen Befehls wie font-style:italic. Dann haben Sie die Datei gespeichert und sind nach einem anstrengenden Morgen zum Mittagessen gegangen. Jetzt sind Webseiten so ausgefeilt, dass es unmöglich ist, eine Datei mit so einfachen Befehlen zu füllen. Eine Änderung an einer Farbe und alles geht aus dem Ruder. Es ist wie das, was sie über Verschwörungen und Ökologien sagen: Alles ist miteinander verbunden.

Hier haben CSS-Frameworks wie SASS und seine Cousins ​​wie Compass eine solide Grundlage gefunden. Sie fördern die gebildete, stabile Codierung, indem sie Programmierkonstrukte wie reale Variablen, Verschachtelungsblöcke und Mix-Ins anbieten. Es klingt vielleicht nicht nach viel Neuem in der Programmierebene, aber es ist ein großer Fortschritt für die Designebene.

Heiß: SVG auf Leinwand

Nicht: Flash

Flash macht die Leute seit Jahren verrückt, aber die Künstler haben die Ergebnisse immer geliebt. Das Anti-Aliasing-Rendering sieht großartig aus, und viele talentierte Künstler haben einen tiefen Stapel Flash-Code erstellt, um anspruchsvolle Übergänge und Animationen anzubieten. Die Casual Games sind weiterhin sehr beliebt. Flash hält also am Leben im Web fest.

Jetzt, da die JavaScript-Ebene in der Lage ist, das Gleiche zu tun, jubeln Browserhersteller und -entwickler dem Ende von Flash zu. Sie sehen eine bessere Integration in die DOM-Ebene, die aus neuen Formaten wie SVG (Scalable Vector Graphics) stammt. SVG und HTML bestehen aus einem großen Stapel von Tags, die für Webentwickler häufig einfacher zu verwenden sind. Dann gibt es große APIs, die eine aufwändige Zeichnung des Canvas-Objekts ermöglichen, häufig mithilfe von Grafikkarten. Setzen Sie sie zusammen und Sie haben nur noch wenige Gründe, Flash zu verwenden.

Hot: Fast Big Data (Analyse ohne Hadoop)

Nicht: Big Data (mit Hadoop)

Jeder mag es, sich wie der große Mann auf dem Campus zu fühlen, und wenn nicht, suchen sie nach einem Campus der richtigen Größe, auf dem sie sich abheben können. Kein Wunder also, dass die Anzüge, als die Worte „Big Data“ durch die Executive Suite flossen, nach den größten und leistungsstärksten Big Data-Systemen fragten, als würden sie eine Yacht oder einen Wolkenkratzer kaufen.

Das Lustige ist, dass viele Probleme nicht groß genug sind, um die schicksten Big-Data-Lösungen zu verwenden. Sicher, Unternehmen wie Google oder Yahoo verfolgen unser gesamtes Surfen im Internet. Sie haben Datendateien, die in Petabyte oder Yottabyte gemessen werden. Die meisten Unternehmen verfügen jedoch über Datensätze, die problemlos in den Arbeitsspeicher eines Basis-PCs passen. Ich schreibe dies auf einem PC mit 16 GB RAM - genug für eine Milliarde Ereignisse mit einer Handvoll Bytes. In den meisten Algorithmen müssen die Daten nicht in den Speicher eingelesen werden, da das Streaming von einer SSD in Ordnung ist.

Es wird Fälle geben, in denen die schnellen Antwortzeiten von Dutzenden von Computern in einer Hadoop-Cloud, die parallel ausgeführt werden, erforderlich sind.

Heiß: Funke

Nicht: Hadoop

Es ist nicht so sehr, dass Hadoop sich abkühlt. Es ist mehr so, dass Apache Spark glühend heiß ist, was das Hadoop-Modell ein bisschen alt aussehen lässt. Spark leiht sich einige der besten Ideen von Hadoops Ansatz aus, um aus großen Datenmengen Bedeutung zu extrahieren, und aktualisiert sie mit einigen soliden Verbesserungen, die den Code viel, viel schneller laufen lassen. Das größte Problem ist möglicherweise die Art und Weise, wie Spark Daten im schnellen Speicher hält, anstatt dass alles in das verteilte Dateisystem geschrieben und aus diesem gelesen werden muss.

Natürlich verschmelzen viele Leute die beiden, indem sie die Verarbeitungsgeschwindigkeit von Spark für Daten verwenden, die im verteilten Dateisystem von Hadoop gespeichert sind. Hadoop und Spark sind häufiger Partner als Wettbewerber.

Hot: Datenbankkonfiguration

Nicht: Softwareprogrammierung

Vor langer Zeit scherzten Programmierer darüber, dass sie nicht wussten, wie Programmierung im nächsten Jahrhundert aussehen würde, aber sie wussten, dass sie Fortran heißen würde. Dieser Witz war so lustig, dass sie von ihren Dinosauriern fielen und ihre Holzunterwäsche brachen. Dann würden sie wieder eine Datenbank konfigurieren.

Wir bauen heute noch Datenbanken, aber was wir als „Datenbank“ betrachten, ist jetzt um ein Vielfaches ausgefeilter und leistungsfähiger. Die Standarddatenbanken synchronisieren sich über Kontinente hinweg und bieten einen flexiblen Kompromiss zwischen Konsistenz und Geschwindigkeit. Einige Cloud-Dienste wie Firebase übertragen neue Daten vollständig auf Webanwendungen, die auf mobilen Clients ausgeführt werden.

Ein Großteil der serverlosen Revolution basiert auf der Erkenntnis, dass viele der Cloud-Datenspeicher jetzt so leistungsfähig sind, dass wir nur noch ein paar Wenn-Dann-Sonst-Klauseln schreiben müssen, um eine ziemlich coole Web-App zu erstellen.

Hot: Spiel-Frameworks

Nicht: Native Spielentwicklung

Es war einmal eine Zeit, in der Spieleentwicklung viele Entwickler anstellte, die alles in C von Grund auf neu geschrieben hatten. Sicher, es kostete eine Milliarde Dollar, aber es sah großartig aus und lief wie der Wind. Jetzt kann sich niemand mehr den Luxus von benutzerdefiniertem Code leisten. Die meisten Spieleentwickler haben ihren Stolz vor Jahren aufgegeben und verwenden Bibliotheken wie Unity, Corona oder LibGDX, um ihre Systeme zu erstellen. Sie schreiben weniger C-Code als Anweisungen für die Bibliotheken.

Ist es eine Schande, dass unsere Spiele nicht mit Stolz handgefertigt, sondern mit derselben Engine ausgestanzt werden? Nee. Die meisten Entwickler sind erleichtert. Da sie sich nicht mit den Details befassen müssen, können sie sich auf das Spiel, den Erzählbogen, die Charaktere und die Kunst konzentrieren. 

Hot: Statische Website-Generatoren

Nicht: Einseitige Web-Apps

Erinnern Sie sich, als URLs auf Webseiten verweisen, die mit statischem Text und Bildern gefüllt sind? Dann kamen die dynamischen, einseitigen Web-Apps und ersetzten sie alle durch eine clevere Web-App, die die fraglichen Daten abruft. Erraten Sie, was? Das Pendel schwingt zurück und alle Kinder bauen statische Site-Generatoren. Es gibt Dutzende von ihnen. Es ist wie ein Hybrid. Sie legen alle Daten auf einen Stapel und schreiben dann einen Code, der die Daten in einige Vorlagen einfügt, sodass für jede statische URL eine HTML-Datei vorhanden ist, die aus jeder Zeile in der Datentabelle stammt.

Die Kinder finden diese statischen Seiten superschnell und sie sind es auch. Sagen Sie ihnen nur nicht, dass die alten dynamischen Systeme wie WordPress und Drupal ähnlich funktionierten, indem sie Caches behielten, die mit statischen Seiten gefüllt waren, die mit den neuesten Daten generiert wurden.

Heiß: GraphQL

Nicht: REST

Es ist nicht so, als wäre REST tot. Es ist nur so, dass wir mehr mit der API machen wollen, und GraphQL ist eine Möglichkeit, dies zu tun. GraphQL gibt die Daten in JSON zurück, genau wie REST. GraphQL beginnt mit einem HTTP-POST, genau wie viele REST-Aufrufe. Mit der GraphQL-Syntax können Sie nur sehr komplexe Abfragen mit nur wenigen Tastenanschlägen angeben. Dies macht es für Programmierer einfacher, genau das zu fragen, was sie wollen, und es reduziert den Aufwand an serverseitiger Arbeit, der ausgeführt werden muss, wenn jemand eine etwas andere API wünscht.

Hot: Cloud-IDEs

Nicht: Lokale IDEs

Vor langer Zeit verwendeten die Leute einen Befehlszeilen-Compiler. Dann hat jemand das in einen Editor und andere Tools integriert, um die IDE zu erstellen. Jetzt ist es an der Zeit, dass die IDE von browserbasierten Tools verdunkelt wird (ha), mit denen Sie den Code bearbeiten können, sogar den Code eines funktionierenden Systems. Wenn Ihnen die Funktionsweise von WordPress nicht gefällt, verfügt es über einen integrierten Editor, mit dem Sie den Code sofort ändern können. Mit Microsoft Azure können Sie JavaScript-Klebercode direkt in das Portal schreiben. Diese Systeme bieten nicht die besten Debugging-Umgebungen, und das Bearbeiten von Produktionscode ist gefährlich, aber die Idee hat Beine.

Sie können mit AWS Cloud9, Codenvy und Mozillas WebIDE beginnen, aber weiter erforschen. Die webbasierten Tools werden immer leistungsfähiger. Es ist beispielsweise möglich, ein ganzes Big-Data-Analyseprojekt auf der Azure-Website von Microsoft zu erstellen. Und wenn Sie anfangen, serverlose Optionen zu erkunden, werden Sie schnell feststellen, dass Sie Ihren gesamten Code in ein Formularelement auf einer Webseite schreiben können. Eine, die nicht viel größer ist als das Formular, mit dem Sie Ihre Freunde auf Facebook aktualisieren.

Heiß: GPU

Nicht: CPU

Wenn die Software einfach war und die Anweisungen in einer schönen Zeile angeordnet waren, war die CPU der König des Computers, weil sie das ganze schwere Heben erledigte. Jetzt, da Videospiele mit umfangreichen grafischen Routinen gefüllt sind, die parallel ausgeführt werden können, wird die Show auf der Grafikkarte ausgeführt. Es ist einfach, 500, 600 oder mehr US-Dollar für eine schicke Grafikkarte auszugeben, und einige ernsthafte Spieler verwenden mehr als eine. Das ist mehr als das Doppelte des Preises vieler einfacher Desktops.

Außerdem sind Gamer nicht die einzigen, die mit ihren GPU-Karten angeben. Informatiker konvertieren jetzt viele parallele Anwendungen, um auf der GPU hunderte Male schneller zu laufen. Und Datenwissenschaftler verwenden Server mit GPUs, um die Entwicklung ihrer Modelle für maschinelles Lernen zu beschleunigen. 

Heiß: GitHub

Nicht: Lebensläufe

Sicher, Sie könnten etwas über einen Kandidaten erfahren, indem Sie eine aufgeblähte Liste von Errungenschaften lesen, zu der auch der Vizepräsident des Junior High Chess Clubs gehört. Aber das Lesen des tatsächlichen Codes von jemandem ist viel umfangreicher und lehrreicher. Schreiben sie gute Kommentare? Verschwenden sie zu viel Zeit damit, Gegenstände in winzige Klassen zu unterteilen, die wenig bewirken? Gibt es eine echte Architektur mit Raum für Expansion? All diese Fragen können durch einen Blick auf ihren Code beantwortet werden.

Aus diesem Grund wird die Teilnahme an Open Source-Projekten für die Arbeitssuche immer wichtiger. Das Teilen des Codes aus einem proprietären Projekt ist schwierig, aber Open Source Code kann überall eingesetzt werden.