Programmiertrends heute und morgen

Coding im Wandel der Zeit

12.10.2015 von Thomas Drilling
Wer heute aus persönlichen oder beruflichen Motiven programmieren lernen will, hat dazu auch ohne Studium weit mehr Möglichkeiten als vor 20 Jahren. Unabdingbar ist es aber, die aktuellen Trends zu kennen und sich möglichst an diesen zu orientieren.

Sie möchten programmieren lernen? Sei es aus persönlichem Interesse, Spaß oder als Investition in eine berufliche Perspektive? Möglicherweise haben Sie vor Jahren in der Schule oder Uni erste Erfahrungen sammeln können und liebäugeln jetzt mit einem Wiedereinstieg in die faszinierende Welt des Codings? Um in puncto Know-How-Erwerb nicht in einer Sackgasse zu landen, was letztendlich auch ein Zeit- und Kostenfaktor ist, müssen Sie die aktuellen Programmier-Trends kennen. Programmieren ist eine faszinierende, endlose Profession mit schnellen Veränderungen, leidenschaftlich geführten Debatten aber auch plötzlichen und unerwarteten Comebacks. Lassen Sie sich überraschen.

Im Trend

Das Tolle am Programmieren ist: Schreiben Sie eine echte Killer-App, interessiert sich kein Arbeitgeber für Ihr Uni-Diplom. Die Liste entsprechender Persönlichkeiten, insbesondere aus dem Open-Source-Umfeld ist lang, um mit Linux-Erfinder Linus Torvalds den Anfang zu machen. Der hat zwar sein Diplom schon lange in der Tasche, war aber schon vor seinem Abschluss eine Berühmtheit und konnte sich seinen Traumarbeitsplatz im Wunschland USA nachher mehr oder weniger aussuchen.

Einstellungskriterien für Hochschulabsolventen 2014 -
In der "Hochschul-Recruiting-Studie 2014" ...
... untersuchte Jobware untersuchte mit der Hochschule Koblenz, ob das steigende Angebot an Hochschulabsolventen auf eine entsprechende Nachfrage der Unternehmen trifft. Der Studie liegen Antworten von 211 HR-Experten zugrunde.
Um als Student seinen Marktwert zu erhöhen, ...
... sollte manPraktika absolviert oder als Werkstudent gearbeitet haben. 80 Prozent der Arbeitgeber erwarten praktische Erfahrungen von Hochschulabsolventen.
Das zweitwichtigste Einstellungskriterium ...
... aus Sicht der Unternehmen sind Arbeits- oder Praktikumszeugnissen. Mehr als jedes zweite Unternehmen achtet auf deren Inhalte.
Mit einer guten Abschlussnote...
... können Hochschulabsolventen bei etwa 40 Prozent der befragten Unternehmen punkten.
Ebenfalls positiv wird den Absolventen Auslandserfahrung angerechnet
Diese Eigenschaft sehen auch etwa 40 Prozent der Unternehmen als geeignet, um den Marktwert eines Hochschulabsolventen zu erhöhen.
Auch Fremdsprachenkenntnisse sind wichtig
Insgesamt 39 Prozent der Unternehmen sehen diese Eigenschaft als wichtig an, um den Marktwert zu erhöhen.
Die Abiturnote spielt dagegen kaum eine Rolle
Nur etwa 4 Prozent der HR-Experten gibt an, dass die Abiturnote den Marktwert des Hochschulabsolventen positiv beeinflusst.
Unrealistische Gehaltsvorstellungen der Hochschulabsolventen ...
... schrecken die Personaler ab. Fast 47 Prozent der befragten HR-Experten geben sie als große Schwäche an.
Wer bei Vorstellungsgesprächen nicht gänzlich versagen möchte, ...
... sollte der Studie zufolge auf selbiges vorbereitet sein. Über 30 Prozent der Unternehmen sehen die mangelnde Vorbereitung als häufigste Schwäche bei Hochschulabsolventen.
Ein unglückliches Erscheinungsbild ...
... hingegen ist nur knapp 15 Prozent der Unternehmen als häufigste Schwäche der Hochschulabsolventen aufgefallen.
Mit welchen Einsteigsgehältern ...
... können Hochschulabsolventen rechnen? Das ist laut Jobware-Studie auch eine Frage des Abschlusses.
Absolventen mit einem Bachelor-Abschluss ...
... konnten mit einem durchschnittlichen Einstiegsgehalt von 38.900 Euro rechnen.
... als Einstiegsgehalt für einen Bachelor ...
... bieten 45 Prozent der befragten Unternehmen an.
... im Jahr können Bachelor-Absolventen ...
... in jedem dritten der befragten Unternehmen verdienen. Vor zwei Jahren waren noch 41 Prozent der Unternehmen bereit, diese Summe zu zahlen.
... im Jahr können Bachelor-Absolventen...
... bei 18,7 Prozent der Unternehmen verdienen.
Hochschulabsolventen mit Master-Abschluss ...
... erhielten 2013 ein durchschnittliches Einstiegsgehalt von 41.780 Euro.
... im Jahr können Master-Absolventen ...
... nur in jedem 10. Unternehmen erwarten.
Promovierten Hochschulabsolventen wurde ...
... von den Unternehmen über alles Unternehmensgrößen hinweg ein durchschnittliches Einstiegsgehalt von über 40.000 Euro geboten.
... im Jahr für promovierte Einsteiger ...
... geben 27 Prozent der Unternehmen.
Aufgrund der Freizügigkeit innerhalb der EU-Länder ...
... erhielten in den letzten zwei Jahren 44 Prozent der befragten Unternehmen mehr Bewerbungen von Hochschulabsolventen aus dem EU-Ausland, aber nur 21 Prozent von ihnen haben sie auch vermehrt eingestellt.
Das mit Abstand am meisten genannte Einstellungshindernis ...
... sind Sprachbarrieren. 86 Prozent der befragten Unternehmen sehen diese als Hindernisse bei der Einstellung von ausländischen Hochschulabsolventen.
Auf dem zweiten Platz ...
... liegt die Angst der Unternehmen vor einer längeren Einarbeitungszeit.
Mangelnde Marktkenntnisse, kulturelle Unterschiede ...
... sowie eine hohe Fluktuationsgefahr halten jeweils 23 Prozent der befragten Unternehmen davon ab, ausländische Hochschulabsolventen einzustellen.
Lediglich sechs Prozent der befragten HR-Experten ...
... vermuten keine Hürden bei der Rekrutierung ausländischer Absolventen.

Coding für Fun?

Programmierer haben für die schnelllebige und veränderliche Welt aus Mode und Lifestyle, in der Trends ebenfalls kommen und gehen, meist nur ein Grinsen übrig. In der Welt der Technik, Wissenschaft, IT und Mathematik treten dagegen allein Regeln, Strenge und Präzision an die Stelle von Mode-Erscheinungen. Trotz oder gerade deswegen kann man wohl kaum sagen, dass Programmieren als Beruf keinen Trends unterworfen ist. Der Unterschied zwischen gewöhnlichen und Programmiertrends besteht darin, das letztere in der Regel ausschließlich durch die Aussicht auf eine größere Effizienz, einer einfacheren Benutzbarkeit oder besseren Individualisierbarkeit getrieben sind und nicht von weichen Faktoren. Neue Technologien, die einen oder mehrere dieser Aspekte realisieren, stellen vorherige Entwicklungen oft schnell in den Schatten. Wir leben nun einmal in einer Leistungsgesellschaft.

Zugang zu Wissen

Daher ist es auch wichtig, wie und wo Sie programmieren lernen. Kaum eine andere Wissenschaft bietet allerdings heute die Möglichkeit, auch ohne vermeintliche Beschränkungen durch Schulbildung, soziales Umfeld oder finanzielle Möglichkeiten Zugang zu finden. Viele bekannte Programmierer kommen aus den USA. Hier sitzen zweifelsohne die weltweit größten und wichtigsten IT-Firmen. Allerdings: ein Kollege-Platz in den USA kostet richtig Geld, am MIT etwa satte 55.000 US-Dollar. In Deutschland ist ein Informatikstudium zwar auch mit finanziell geringeren Aufwand zu haben, ob die Qualität dann aber der am MIT entspricht, steht auf einem anderen Blatt. Wer professionell programmieren lernen will, kann und sollte sich aber ohnehin anderswo umsehen.

Hackerspaces statt Studium

Der neuste Trend sind Hackerspaces, eine sich selbst nähende Organisationsform ohne den Overhead an Schulen und Universitäten. Ein Hackerspace ist ein physischer, meist auch offener Raum, in dem sich Hacker sowie allgemein an Technologie Interessierte treffen und austauschen können. Hackerspaces werden in der Regel von Vereinen getragen. Die Anbahnung findet meist über soziale Netzwerke statt. Im deutschsprachigen Raum haben es z.B. die c-base in Berlin, das RaumZeitLabor in Mannheim, der Chaos Computer Club Göttingen, der Attraktor in Hamburg oder das Metalab in Wien zu überregionaler Bedeutung gebracht.

Eine Liste weltweit aktiver Hackspaces findet sich auf hackspace.org.
Foto: hackspace.org

Noch populärer im englischsprachigen Raum sind der NYC Resistor in New York oder die Noisebridge in San Francisco. Eine Liste weltweit aktiver Hackerspaces liefert unter anderem das Projekt hackerspaces.org. Hier findet sich ein umfassendes Verzeichnis weltweit existierender oder geplanter Hackerspaces. Hackerspaces bringen nicht selten erfolgreiche Startups hervor und das weitgehend ohne Bürokratie und ohne das, was der US-amerikanischer Philosoph Ralph Waldo Emerson's 1848 in seinem berühmten Buch "Self-Reliance" (Selbständigkeit) mit "A foolish consistency is the hobgoblin of little minds" umschreibt. Die Vorteile von Hackerspaces liegen nicht nur bei den sozialen und finanziellen Zugangsvoraussetzungen: Hackerspace-Kurse müssen nicht ein ganzes Semester dauern und Studenten müssen auch nicht ein Jahr oder länger allein für die Zulassung büffeln.

Code lesen dank Open-Source

Möchten Sie sich das Programmieren selbst beibringen, können Sie zweifelsohne zentnerweise Dokumentationen und Bücher lesen. Sind Grundkenntnisse vorhanden, ist das Lesen von aktuellen Code-Beispielen meist viel effizienter, insbesondere wenn diese gut dokumentiert sind. So finden Sie beispielsweise heraus, ob der Programmierer viel Aufwand investiert, Dinge in kleine Klassen herunter zu brechen, die ihrerseits für kleine Teilaspekte zuständig sind oder ob die gewählte Architektur Raum für Erweiterungen lässt. All solche Fragen lassen sich durch das Lesen von Code beantworten. Und: die Möglichkeit dies tun zu können, ist ein weiterer wichtiger Aspekt von Open-Source-Projekten. Das Mitwirken bei einem Open-Source-Projekt kann sich übrigens auch als wichtiger Faktor bei der Job-Suche erweisen.

Vergessen Sie Hadoop

Big Data ist in aller Munde. Fällt in den Chefetagen unserer Unternehmen allein das Wort, reagieren Manager und Schlipsträger euphorisch und fragen Sie nach der besten und größten Big-Data-Lösung, als ginge es um den Kauf einer Yacht oder eines Hochhauses. Das Verrückte daran ist: die meisten Probleme sind schlicht nicht groß genug, um den Einsatz einer Big-Data-Lösung zu rechtfertigen.

Hadoop: Apache-Projekte und Distributionen -
Apache YARN - Hadoop-Architektur
Seit der Version 2.0 des MapReduce-Algorithmus (MRv2), eingeführt mit der Hadoop-Version 2.3, hört das Framework auf den Namen NextGen MapReduce (YARN). YARN egalisiert eine Reihe von Defiziten der Vorgängerversion in den Bereichen Echtzeitfähigkeit und Sicherheit. Die fundamentale Neuerung in der YARN-Architektur besteht darin, die zwei Hauptfunktionen Ressourcen-Management und Job-Scheduling/Monitoring in zwei separate Daemons aufzuteilen.
Apache Hive - Abfrage
Die Grafik zeigt den Query-Editor in Apache Hive. Hive erweitert das MapReduce-Framework um eine Abstraktionsebene mit der SQL-ähnlichen Abfragesprache HiveQL. HiveQl ermöglicht das Absetzen klassischer Abfragen und damit das Analysieren der im HDFS abgelegten Daten. Man kann sich Hive auch als Data-Warehouse-Komponente des Hadoop-Frameworks vorstellen. Der Query-Editor in Apache Hive.
Apache HCatalog - Management
HCatalog ist für das Management von Metadaten in Hadoop von großer Bedeutung. Die Grfik zeigt eine Table-List in Hcatalog.
Apache Pig - Scripting Engine
Die Scripting-Engine Apache Pig.
Apache Knox - Sicherheit
Apache Knox kümmert sich primär um die Cluster-Ebene und erweitert das Hadoop-Security-Modell für alle Nutzer, die auf die Cluster-Daten zugreifen, mit Hilfe von Authentifizierungsrollen.
Hortonworks und Hadoop
So stellt sich Hortonworks eine moderne Data-Architektur vor. Auf Basis der Data-Systeme operieren Big-Data-Lösungen wie Hadoop gleichberechtigt neben SQL-Datenbanken wie SQL-Server, Oracle oder SAP Hana und können bei Bedarf Daten miteinander austauschen. Applikationen wie SAP greifen nach Belieben auf die verfügbaren Daten zu.
Cloudera und Hadoop
Die Hadoop-Distribution "CDH" von Cloudera ist vom Anbieter mit dem Prädikat „enterprise ready“ versehen und beinhaltet eine Reihe eigener Entwicklungen. Im Kern verwendet allerdings auch CDH YARN für das Workload-Management und setzt wahlweise auf HDFS oder Hbase als Storage-Engine.
Amazon EMR und Hadoop
Amazon Elastic Map Reduce unterstützt inzwischen alle Hadoop-Versionen von 0.20 über 1.0.3 bis zu den aktuellen Versionen 2.2 und 2.4. Darüber hinaus arbeitet EMR auch mit den Cluster-Typen Hive, Custom JAR, Pig, Hbase und Streaming.

Sicher, Google und Yahoo tracken unser aller Surf-Verhalten und hantieren dazu mit Dateien im Petabyte-Bereich. Auch die NSA hat sicher einen Bedarf an der Beschäftigung von Big-Data-Spezialisten. Die meisten heutigen IT-Probleme haben allerdings mit Datenmengen zu tun, die problemlos ins RAM eines Desktop-PCs passen. Bei den meisten Algorithmen ist es zudem überhaupt nicht notwendig, Daten in den Arbeitsspeicher zu laden, weil das Streamen von SSDs wunderbar funktioniert. Sicher gibt es Situationen, die die Antwortzeit von dutzenden parallel rechnenden Knoten einer Hadoop-Cloud erfordern, aber bei den meisten Problemen der Gegenwart genügt eine einzige Maschine.

Nicht das Rad neu erfinden

Die Programmiersprache Scala ist das prominenteste Beispiel einer Sprache, die viele Vorzüge hat, das Rad aber nicht in jedem Punkt neu erfindet. Scala-Programme sind beispielsweise in der Lage Java-JARs ansprechen. Das gilt auch umgekehrt. So können Scala-Programmierer beispielsweise sämtliche existenten Java-Bibliotheken und -Frameworks in ihre Projekte einbinden und nutzen. Das gilt sogar für die meisten Tools und Entwicklungsumgebungen wie Eclipse oder NetBeans.

Es ist noch gar nicht so lange her, da mussten Entwickler bei einer neuen Programmiersprache quasi immer bei null anfangen. Dann kamen kluge Leute auf die Idee, dass es viel effizienter ist, auf die Arbeit aufzusetzen, die anderen schon geleistet haben. Also schreibt man eine Art Präprozessor, der neuen Code lediglich in etwas umsetzt, wofür es bereits APIs und Bibliotheken gibt. Werfen Sie beispielsweise einen Blick auf Groovy, eine einfachere Version von Java, ohne aufwendige Syntax. Groovy ist eine Programmier- und Skriptsprache mit Unterstützung für dynamische und statische Typisierung.

CoffeScript lässt sich auch in JavaScript einbetten.

Bei genauerem Hinsehen gibt es heute dutzende von Sprachen - auch Scala oder Clojure zählen dazu - die in einer JVM laufen. Dies garantiert unter anderem eine schnelle, quasi sofortige Verfügbarkeit für zahlreiche Plattformen. Speziell bei Groovy ging es den Entwicklern primär darum, eine wenige kantige und komplexe Variante der Java-Syntax mit Konzepten von Ruby zu verbinden. Ein weiteres interessantes Beispiel für einen Quasi-Präprozessor ist CoffeeScript. CoffeeScipt ist eine Programmiersprache, die nichts anderes macht, als in CoffeeScript geschriebenen Code in JavaScript zu trans-kompilieren.

JavaScript-Frameworks nutzen

Vor langer Zeit mussten Web-Entwickler beispielsweise ein JavaScript-Popup schreiben, nur um etwa zu prüfen, ob eine vom Nutzer eingegebenen E-Mail-Adresse die korrekt Form hat. Aktuelle AJAX-Anwendungen sind in dieser Hinsicht ziemlich ausgeklügelt. Für die meisten Web-Programmierer dürfte es aber weitaus einfacher sein, für solche Dinge ein durchdachtes Web-Framework zu verwenden und an die eigene Business-Logik zu kleben. Davon gibt es Dutzende, um mit Kendo, Backbone.js, Sencha, jQuery Mobile, AngularJS, Ember, Meteor JS nur Einige zu nennen.

CSS-Frameworks nutzen

SAAS ist stark von der Auszeichnungssprache YAML beeinflusst.

Früher war es für Programmierer, wollten Sie Ihrer Webseite etwas mehr Pepp verleihen, Gang und Gäbe, die CSS-Datei zu öffnen und dort die benötigten Kommandos einzufügen. Heutige Web-Anwendungen sind allerdings meist so komplex strukturiert, dass eine solche Vorgehensweise nahezu unmöglich geworden ist, denn ein einziger misslungener Tweak kann schnell die ganze Anwendung unbrauchbar machen. Das ist auch der Grund, dass sich CSS-Frameworks wie Gumby, SASS oder sein Couisn Compass in der Web-Entwickler-Gemeinschaft großer Beliebtheit erfreuen. SASS (Syntactically Awesome Stylesheets) beispielsweise ist eine Stylesheet-Sprache, die ebenfalls als Präprozessor fungiert und das Erzeugen von Cascading Stylesheets erleichtert. SASS und Compass beherrschen verschachtelte Regeln (nested rules). Damit ist es recht einfach, komplizierte geschachtelte Selektoren zu lesen und zu schreiben.

Verzichten Sie auf Flash

Über viele Jahre waren Anwender und Entwickler geradezu verrückt nach Flash. Vor allem Letztere übertrafen einander mit aufwendigen und mitunter verspielten Designs. Fraglos sorgt der Antialiasing-Renderer von Flash für ein schickes Aussehen von mit Flash gestalteten Seiten und Flash-Entwickler bringen mitunter ausgeklügelte Transitionen und Animationen zu Stande. Auf der anderen Seite sind die Tage von Flash gezählt und die Nachteile hinlänglich bekannt. Überdies besitzt der JavaScript-Layer in Zeiten von HTML5 und der oben genannten JS-Frameworks alle Fähigkeiten von Flash-gestürzten Seiten und darüber hinaus. Zudem bietet JavaScript eine bessere Integration mit dem DOM-Layer.

Zusammen mit dem SVG-Format (Scalable Vector Graphics) und HTML5 steht Entwicklern ein reichhaltiges Repertoire an Tags zur Verfügung, die zudem weitaus einfacher handhabbar sind. Die zugrunde liegenden APIs bieten durchdachte Funktionen zum Zeichnen von Canvas-Objekten, meist sogar ohne direkte Unterstützung der Grafikkarte.

C++-zu-JavaScript Compiler

Für viele Entwickler ist es einfacher, Ihre Geschäftslogik mit traditionellen Programmiersprachen wie C++ zu verfassen. Soll eine solche Anwendung internetfähig gemacht, also als Client/Server-orientierte Web-Anwendung realisiert werden, kann der Code mit Hilfe von Tools wie Mozillas LLVM-zu-JavaScript-Compiler Emscripten konvertiert werden. Emscripten ist in der Lage, LLVM-Assemblercode in Standard-JavaScript zu konvertieren, unterstützt aber auch andere Programmiersprachen. Dabei kommen je nach Sprache verschiedene Wege der Umsetzung zum Einsatz.

Die Portiertung der Unreal4-Game-Engine auf JavaScript wurde mit Hilfe von Mozilla Emscripten umgesetzt.

Eine Möglichkeit besteht darin, den Sourcecode direkt von LLVM-Bytecode in JavaScript zu übersetzen. Das funktioniert beispielsweise mit C/C++. Es kann aber auch die Ausführungsumgebung der Programmiersprache in JavaScript übersetzt werden. Diese kompilierte Ausführungsumgebung kann dann dazu verwendet werden, den eigentlichen Code der jeweiligen Programmiersprache auszuführen. Obwohl bei Emscripten der Fokus auf C/C++ liegt, lassen sich mit dem Tool eine ganze Reihe von Programmiersprachen verwenden. Der Port der Unreal 4 Engine auf JavaScript wurde beispielsweise mit Emscripten realisiert.

Brandaktuell und in direkter Konkurrenz zu Emscripten steht das Projekt Duetto. Dieses wurde von dem Unternehmen Learning Technologies erst Ende letzten Jahres erstmals präsentiert. Vor wenigen Tagen wurde eine erste stabile Version 1.0 der inzwischen in Cheerp unbenannten Software zum Download freigegeben. Cheerp ist ähnlich wie Emscripten ein Compiler, der C++-Code in JavaScript umwandeln kann und wahlweise in einer Open-Source-Version oder als kommerzielles Angebot für Linux, Windows und Mac OS X verfügbar.

Mit Cheerp können Sie in C oder C++ verfassten Code zur Verwendung als Web-Anwendung komfortabel in JavaScript-Apps integrieren. Eine in C++ verfasste Methode kann dann recht einfach mit Hilfe des [[client]]-Tags in eine JavaScript-App eingebettet werden, um dann die Browser-API aus dem Client Namespace ansprechen. Cheerp braucht dazu im Gegensatz zu Emscripten keinen Wrapper und ermöglicht damit echte bidirektionale Interoperabilität zwischen C/C++- und JS-Code. So können Sie mit Cheerp beispielsweise Ihre in C++ verfasste Geschäftslogik mit einer JavaScript-Oberfläche ausstatten. Cheerp bringt zudem eine reguläre Clang/GCC-Schnittstell mit und fügt sich so nahtlos in bestehende Toolchains ein. Darüber hinaus verwendet Cheerp dynamischer Speicherverwaltung und unterstützt JavaScript-Source-Maps. Dies erlaubt ein komfortables Debuggen.

Web Apps mit Responsive Design

Wer erinnert sich noch an die Zeit, da URLs eine statische Website mit Text und Bildern referenzierten? Ein idyllischer Gedanke, einfache sämtliche bereitzustellenden Informationen in ein Netzwerk separater Seiten zu packen, die in Ihrer Gesamtheit dann als Web-Aufritt oder allgemein eine Website bezeichnet wurden. Heutige Web-Anwendungen sind in der Regel lediglich Frontends für Datenbanken, aus denen der eigentliche Content Nutzer- und Fall-abhängig generiert wird. Braucht eine Web-Anwendung Informationen, holt sie sich diese aus der Datenbank und presst sie in die vorgebebene Darstellungsform.

Die größten Webdesign-Sünden - -
Ruf mich...
Wer bei der Elektronik-Hersteller-Website conceptronic.net Kontakt sucht, bekommt immerhin eine Kontakt-Mailadresse – leider aber nur nach dem Muster „info@“...
... NICHT an!
... und wer hier gar Ärger mit den Produkten hat, soll ein überlanges Formular ausfüllen, das dazu auf der deutschsprachigen Seite ausschließlich in englischer Sprache präsentiert wird.
Mich schon!
Offen und kommunikationsfreudig: Der Soundsystem-Hersteller Sonos verspricht neben einer hervorragenden Support-Hotline, alle E-Mail innerhalb eines Arbeitstages zu beantworten. Sogar die E-Mail-Adresse des CEOs ist angegeben.
Infomüll
Diese Bilder stammen bestimmt nicht von Mitarbeitern oder Kunden des Security-Anbieters Symantec. Fotos vom Stock-Bilderdienst sind im Web meist überflüssige Dekoration.
Sehtest ohne Augenarztbesuch
Kleiner Text, grau auf weiß: Wer bei BMW Hauptmenü und Texte lesen kann, braucht keine Brille.
Nervenzerreißprobe
Nervenprobe statt Beruhigung: Websites aus dem Bereich Wellness (im Bild: www.meridianspa.de) oder Design-Hotels wollen mit Hintergrundmusik häufig eine gewisse Stimmung erzeugen – erreichen damit aber oft das Gegenteil.
Wenn die Balance kippt
Man sollte sehr vorsichtig dabei sein, Inhalts und Werbebereiche zu stark zu vermischen. Eine optische Trennung belästigt den Besucher weniger – und wenn er nicht mehr kommt, ist die Werbung sowieso wirkungslos.
Achtung, Werbung
„Vorsicht vor zu viel Werbung“ gilt auch für Eigenwerbung wie Hinweise auf Sonderangebote in Online-Shops (hier auf der Startseite von www.pixmania.com).
Navigation aus der Hölle
Wer beim Otto-Versand den Baumarkt aufklappt, wird mit einer Flut von Unterpunkten (Noch mehr gibt es unter „mehr“) überfordert.
So geht's auch
Wie ein gutes Klappmenü aussehen kann, zeigt Vimeo.com: Wenige, aufgeräumte Unterpunkte, die mit kurzen Texten vor dem Klick erklärt werden.

Es besteht keine Notwendigkeit, diese Daten mit all den Extras, die man zum Bau einer modernen Website benötigt, in einen direkten Zusammenhang zu bringen, denn der Daten-Layer wird bei modernen Web-Projekte isoliert und unabhängig von der eigentlichen Formatierung und Präsentation der Daten behandelt. Dabei spielt auch die zunehmende Verbreitung von Mobile Computing eine wichtige Rolle. Eine Webseite sollte daher heute über ein einfaches responsives Design verfügen, das sich automatisch an den Formfaktor des Endgerätes anpasst und sich wie eine App verhält. Damit lässt sie sich auch problemlos über einen App-Store distribuieren.

Mobile Web-Apps

Haben Sie eine großartige Idee für eine mobile Anwendung? Dann sollte Sie separate Versionen für iOS, Android, Windows 8 oder vielleicht BlackBerry OS schreiben. Allerdings brauchen Sie für jede Plattform mitunter andere Programmiersprachen und Frameworks. Außerdem sind die App Stores der einzelnen Plattformen sehr unterschiedlich. Sie könnten aber damit beginnen, erstmal eine reine HTML-App zu bauen und auf einer Webseite anzubieten, die alle Plattformen bedient. Das erleichtert Ihnen auch die Pflege von Bug-Fixes und Korrekturen. Dabei kann die HTML-Ebene aufgrund schnellerer Chips durchaus mit nativen mobilen Apps konkurrieren.

Entwickeln im Webinterface

Vor langer Zeit arbeiteten Programmierer mit einem kommandobasierten Compiler. Später setzte sich der Trend durch, diesen zusammen mit einem Fullscreen-Editor und weiteren Tools zu einer so genannten integrierten Entwicklungsumgebung (IDE) zusammen zu schnüren. Jetzt ist die Zeit gekommen, dass IDEs zu browserbasierten Werkzeugen mutieren. Werfen Sie einen Blick auf das beliebte CMS Wordpress. Das System bringt einen eigenen, eingebauten Editor mit, der es erlaubt, den Code des eigenen Web-Projektes direkt zu bearbeiten. Microsoft Azure erlaubt sogar das direkte Schreiben von JavaScript-Code. Zwar bieten diese Lösungen nicht gerade die besten Debugging-Möglichkeiten und es ist auch nicht ganz ungefährlich, den Code eines Produktivsystems direkt bearbeiten zu können, aber die Idee ist zweifelsohne gut.

Superstar Node.js

De fakto ist Node.js heute der begehrtesten Web-Entwicklungsstack im Internet und hat z.B. PHP, Ruby on Rails oder JavaEE längst den Rang abgelaufen.

In der modernen Web-Programmierung ist Node.js nicht mehr weg zu denken und momentan der absolute Star und den Programmiersprachen. Bei Node.js handelt es sich allgemein um eine serverseitige Plattform zum Betreiben von Netzwerkanwendungen. Node.js kommt aber schon lange nicht mehr nur zum Implementieren von Webservern zum Einsatz. Der Vorteil gegenüber der konventionellen Entwicklung von Web-Anwendungen besteht vor allem in der ereignisgesteuerten Architektur, die auf Serverseite pro bestehender Verbindung wesentlich weniger Arbeitsspeicher beansprucht und damit eine sehr große Anzahl gleichzeitig bestehender Netzwerkverbindungen erlaubt. Sonst wird üblicherweise für jede geöffnete Verbindung ein eigener Thread gestartet, was einen enormen Overhead verursacht. Node.js beruht auf der JavaScript-Laufzeitumgebung "V8". Die wurde ursprünglich von Google für seinen Chrome-Browser entwickelt.

Android statt iOS

Wenn Sie schon native mobile App entwickeln möchten, dann sollten Sie dies für die Android-Plattform tun. Erinnern Sie sich, dass iPhone, iPad und Apples App Store erst vor wenigen Jahren das Licht der Welt erblickten und schnell zur führenden Mobil-Plattform wurden? Niemand redete zu dieser Zeit mehr von Nokia mit seinem Symbian-Betriebssystem. Doch die Zeiten ändern sich. Zwar begeistern iPhone und iPad Fans mit Ihrer stylischen und ausgeklügelten Oberfläche, aber die Gesetzte des Marktes haben sich den letzten zwei bis drei Jahren zunehmend zu Googles Android-Plattform verschoben.

Heute werden je nach Studie mehr als 70 Prozent aller Mobiltelefone mit Android verkauft. Der Grund dafür liegt vor allem beim Preis. Während iOS-Geräte durchweg im Premium-Preissegment angesiedelt sind, gibt es Android-Geräte in allen Preisklassen. Android-Tablets sind mitunter schon für die Hälfte der Kosten eines iPads zu haben. Es spricht aber noch ein anderer Faktor für das Open-Source-System. Externe Hardware-Hersteller können ohne große Hindernisse im Markt aktiv werden. Der Anteil an Geräten von Google ist sogar relativ gering.

Game-Engines nutzen

Total "out" ist die native Spiele-Entwicklung. Früher bedeutete Spiele-Entwicklung für die darauf spezialisierten Softwarefirmen, in großer Zahl Entwickler anzuheuern, weil so ziemlich alles "from scratch" in C programmiert werden musste. Dies verursachte zudem beträchtliche Kosten. Heute können sich die Software-Hersteller den Luxus gar nicht mehr erlauben, Custom-Code zu schreiben.

Unity3D ist einer der begehtesten Game-Engines, nicht zu verwechseln mit Canonicals Linux-Desktop.
Foto: mozilla.org

Die meisten Spiele-Programmierer nutzen heute Game-Engines in Form von Bibliotheken, wie Unity3D, Corona oder LibGDX. C-Code wird im Prinzip überhaupt nicht mehr geschrieben. Stattdessen basieren heute viele Spiele auf der gleichen Game-Engine. Die meisten Programmierer sind darüber natürlich erleichtert, weil sich nicht mehr mit Details befassen müssen, sondern sich auf Ihre Spiele-Logik, das Implementieren von Charakteren und so weiter konzentrieren können, sowie auf künstlerische Aspekte.

GPU-Programmierung

Früher war Software meist relativ einfach strukturiert und alle Instruktionen wurden von der CPU, dem König des Motherboards in der Regel schön hintereinander abgearbeitet. Heute stellen vor allem Video Spiele mit ihren extensiven Grafik-Routinen ganz andere Anforderungen an die Hardware. Daher werden Grafik-Routinen bei aktuellen Spielen in der Regel von der GPU der Grafikkarte parallel ausgeführt. Sie können heute problemlos 500 bis 600 Euro in eine Grafikkarte investieren, wodurch der Preis des PCs um nahezu das Doppelte steigt. Spieler schrecken vor einer solchen Investition kaum zurück und wetteifern untereinander um die beste und leistungsfähigste GPU-Karte. Inzwischen arbeiten IT-Wissenschaftler aber daran, viele parallele Applikationen so zu konvertieren, dass sie mit GPU-Unterstützung bis zu hundert Mal schneller ausgeführt werden als bei ausschließlicher CPU-Nutzung. (sh)