All posts under Softwareentwicklung

Google I/O – Kotlin für Android als bevorzugte Programmiersprache

Google kündigt auf der diesjährigen I/O an: Kotlin wird die bevorzugte Programmiersprache für Kotlin.

Auf der diesjährigen Google I/O in Kalifornien hat Google eine ganze Reihe von Ankündigungen gemacht, die besonders für Android-Entwickler spannend sein dürften. Unter anderem wolle man zukünftig auf Kotlin als bevorzugte Programmiersprache für Android setzen.

Nun stößt Kotlin Java vom Thron

Bereits auf der Google I/O 2017 gab der Tech-Konzern an, Kotlin als offizielle Programmiersprache für Android unterstützen zu wollen. Daraufhin folgte mit Android Studio 3.0 die Integration in die eigene IDE (Entwicklungsumgebung) und die Sprache existierte eine Weile gemeinsam neben Java – der bisherigen Hauptsprache – im Android-Kosmos.

Die offizielle Unterstützung von Kotlin für Android war damals durchaus nahe liegend. So lässt sich die von JetBrains entwickelte Sprache genau wie Java in der JVM (Java Virtual Machine) kompilieren, bietet aber gerade für Entwickler einiges mehr an Komfort. Zudem deutet die große Beliebtheit der Sprache ebenfalls darauf hin. So verwenden laut Google mittlerweile über die Hälfte der professionellen Android-Entwickler Kotlin.

Das tschechische Software-Unternehmen JetBrains ist unter anderem für die Java-IDE IntelliJ verantwortlich. Diese benutzen viele Entwickler neben Android Studio in der Android-Entwicklung.

Nun verkündet Google, dass die typisierte Sprache nicht mehr bloß neben Java existieren soll, sondern dass künftig Kotlin für Android die bevorzugte Programmiersprache darstellen wird. Man empfiehlt Entwicklern dabei sogar, die Sprache für künftige Projekte zu nutzen. Auch will man gemeinsam mit JetBrains und der 2018 gegründeten Kotlin Foundation die Tools und Dokumentationen zur Programmierung mit Kotlin verbessern. Nebenher sollen unter dem Titel „Kotlin/Everywhere“ Trainings zum Umgang mit der Sprache angeboten werden.

Was macht Kotlin so besonders?

Vielen Entwicklern dürfte Kotlin bereits geläufig sein, erfreut sich die Sprache doch jetzt schon großer Beliebtheit. Veröffentlicht wurde sie dabei erst 2016 in einer stabilen Version. Für diejenigen, die die Sprache noch nicht kennen, geben wir einen kleinen Überblick:

Neben der Android-Entwicklung eignet sich Kotlin auch fürs Web und lässt sich in JavaScript übersetzen. Dabei ist die Interoperabilität zu Java besonders praktisch. Kotlin wurde unter der Anforderung mit Java kompatibel zu sein, entwickelt. Deshalb lässt sich in Projekten durchaus Code aus beiden Sprachen verwenden. Das macht Kotlin für Android besonders geeignet und erleichtert sicher in vielen Projekten den Übergang. So kann in bestehendem Java-Code problemlos Kotlin-Code aufgerufen werden. Weiterhin müssen Entwickler in neuen Projekten, die direkt in Kotlin angelegt sind, nicht auf ihre Java-Bibliotheken verzichten und können diese einfach importieren.

Eine moderne Syntax, die das Leben erleichtert

Der eigentliche Vorteil der Sprache liegt aber in seiner modernen und einfachen Syntax. Schließlich lässt sich mit Kotlin eine ganze Menge Boilerplate-Code vermeiden, der in Java noch unumgänglich war. Auch bietet die Sprache einige praktische Funktionen, die die Fehleranfälligkeit des Codes drastisch verringert. So müssen Entwickler beispielsweise explizit deklarieren, ob Variablen den Wert „null“ enthalten können, da sonst Compiler-Errors auftreten. Viele Entwickler werden aufatmen bei dem Gedanken, sich nicht mehr über Javas „NullPointerExceptions“ zur Laufzeit ärgern zu müssen. Vermutlich sind es diese moderneren Aspekte der Sprache, die Google dazu veranlassen, Kotlin als bevorzugte Programmiersprache für Android einzusetzen.

Für mehr Informationen zu Kotlin, solltet ihr euch unbedingt die sehr umfangreiche Dokumentation zu der Sprache aus dem Hause JetBrain anschauen. Google bietet auf seiner Seite ebenfalls eine umfassende Dokumentation zu der Sprache. Zudem findet ihr hier diverse Tutorials zur Nutzung von Kotlin für Android.

Das Buch „Android mit Kotlin – kurz & gut“ hilft euch beim Einstieg in die Programmiersprache (Provisionslink)


Teaser-Image by Kotlin

Code-Screenshots created with Carbon

Weiterlesen »

Was macht einen Digital Hero aus? – Blogparade #FitnessProgramm4punkt0

Die Arbeitswelt befindet sich im Wandel. Unter dem Begriff „Digitale Transformation“ brechen auch viele traditionsreiche Unternehmen mit alten Strukturen. Höchste Zeit, denn immer mehr Start-ups sprießen empor. Junge Unternehmen mit frischen Ideen, die den Nerv der Zeit treffen und Wege gehen, die vor allem die jüngere Generation erreichen.

Doch wie rüstet man sich für die digitale Welt? Welche Fähigkeiten und welche Einstellung braucht ein „Digital Hero“ in der Industrie 4.0? Im Rahmen der Blogparade #Fitnessprogramm4punkt0 des DigiDays widmen wir uns den besonderen Herausforderungen der neuen Arbeitswelt.

Lerne selbst zu lernen

„Google es doch einfach“ wird eher damit in Verbindung gebracht, dass wir Dinge nicht mehr wissen müssen, weil wir es ja jederzeit nachschauen können. Richtig genutzt, können wir damit aber selbst unser bester Lehrer sein.

Natürlich kann man Mitarbeiter einfach schulen und darauf vertrauen, dass die daraus gewonnenen Erkenntnisse schon ausreichen werden. Doch die heutige Arbeitswelt ist einem steten Wandel unterworfen. Wer mit der Technik geht, muss auch mit den ständigen Änderungen Schritt halten. Für jede Änderung eine eigene Fortbildung zu machen, wäre auf Dauer zu teuer.

Das klingt jetzt, als wenn man völlig auf sich allein gestellt wäre. Ein Großteil der Antworten finden sich allerdings bereits im Internet und wir müssen nur lernen, sie zu finden. Dafür ist ein sicherer Umgang mit Google und ein Gefühl für vertrauenswürdige Ergebnisse unerlässlich. Eine universelle Anleitung für qualitative Suchergebnisse gibt es dabei nicht – es sind Erfahrungswerte, die dem Digital Hero schon an Quelle, Titel und Kurzbeschreibung erkennen lassen, ob sich überhaupt ein genauerer Blick lohnt.

Keine Angst vor dem Quereinstieg

Gerade weil die Industrie 4.0 neue Arbeitsweisen erfordert, kommt es nicht nur auf die harten Skills an. Neuere Berufsbilder sind zum Teil nicht einmal klar ausformuliert und viele Unternehmen wissen selbst kaum, was sie wirklich suchen. Zwar sind Community Manager, Content Manager, Social Media Manager und Online Marketing Manager unterschiedliche Berufe, doch deren Aufgabenfelder überschneiden sich trotzdem je nach Ausschreibung.

Wer sich in der digitalen Welt Zuhause fühlt, der hat zumindest schon einen halben Fuß in der Tür, selbst wenn er keine Ausbildung in seinem angestrebten Feld hat. Eine Leidenschaft fürs das Thema oder das Produkt sind für den Digital Hero umso wichtiger – auch weil Schema F nicht mehr funktioniert. Der neue Kunde will mittlerweile viel persönlicher angesprochen werden.

Ein Blick auf die Automobilindustrie verdeutlicht die Entwicklung. Viele klassische Hersteller haben noch ein großes Budget für Marketing auf den klassischen Kanälen. Tesla ging einen völlig anderen Weg und machte sich Social Media zum wichtigsten Marketinginstrument. Trotzdem gab es hunderttausende Vorbestellungen des Model 3. Mehr, als das Unternehmen zunächst abarbeiten konnte.

Dass Tesla stets Probleme mit roten Zahlen hatte und erst jetzt langsam den Berg an Vorbestellungen abarbeitet, lassen wir mal außen vor. Tesla hat es jedoch geschafft mit einem modernem Marketing und einem modernen Produkt Kunden anzusprechen, die sich mit den alten Marken nicht mehr identifizieren konnten. Mittlerweile erkennen auch die großen Hersteller die Zeichen der Zeit und versuchen in Sachen Elektromobilität aufzuschließen.

Die Anpassungsfähigkeit eines Chamäleons

Gerade weil sich die digitale Landschaft immer wieder wandelt, müsst ihr euch als Digital Hero immer wieder auf neue Situationen einstellen können. Selbst in einem vermeintlich modernen Berufsfeld wie der Software-Entwicklung, tun sich einige alte Hasen schwer, sich auf die neue Welt einzulassen.

In Programmiersprachen wie COBOL wurde ein Programm noch strikt von oben nach unten durchgeschrieben. In den neuen Programmiersprachen arbeitet man objektorientiert, zerlegt das Programm in einzelne Objekte, die miteinander kommunizieren. Nicht alle Programmierer haben diesen Umstieg in der Strukturierung geschafft. (Vor allem Banken suchen trotzdem händeringend COBOL-Entwickler).

Auch die Projektplanung in der Softwareentwicklung entsprach früher einem sehr linearen Verlauf. Beim Wasserfallmodell gab es klar abgegrenzte Phasen. Es wurden Anforderungen aufgestellt, ein Entwurf ausgearbeitet und schließlich programmiert. Getestet wurde im Anschluss.

Mittlerweile haben sogenannte Agile Entwicklungsmethoden wie Scrum das alte Modell abgelöst. Statt eines von Anfang an festgelegten Plans, gibt es Sprints von einer bis mehrerer Wochen, in denen an kleinen Teilaufgaben gearbeitet wird. Durch die kurzen Abstände und der stetigen Rücksprache mit dem Kunden kann flexibel auf neue Anforderungen oder Erkenntnisse aus dem bisherigen Programm reagiert werden. Kurze tägliche Meetings sorgen zudem dafür, dass alle auf dem aktuellen Stand sind und die Zusammenarbeit verschiedener Bereiche funktioniert.

Das Bild des stillen Nerds ist also auch in der IT längst überholt. Stattdessen wird vom Digital Hero vor allem Flexibilität, Anpassungsfähigkeit und Kommunikationsstärke gefordert. Junior-Entwickler haben zwar nicht immer alle Fachkompetenzen, dafür aber das notwendige Mindset bestenfalls schon in der Ausbildung verinnerlicht.

Auch Arbeitsgeber in der Pflicht

In der Industrie 4.0 wird also erwartet, dass der Digital Hero sich neuen Begebenheiten anpassen kann, selbstständiger ist, aber trotzdem auch im Team funktioniert. Diese neuen Herausforderungen machen den Arbeitsalltag meistens vielseitiger. Auf der anderen Seite sorgen die kurzen Projektphasen und die ständige Bewertung der Arbeit für Stress. Der agile Burnout droht.

Work-Life-Balance heißt das Zauberwort, das die Arbeitsbedingungen der digitalisierten Arbeitswelt angenehmer machen soll. Dieser Ausgleich von Berufs- und Privatleben kann ganz unterschiedliche Gesichter haben. Start-ups locken beispielsweise mit Kicker-Tischen, einer Spielekonsole oder einer eigenen Bar. Aber auch die großen Tech-Riesen im Silicon Valley lassen sich nicht lumpen.

Facebook hat beispielsweise Restraurants, eine Eisdiele, eine Trainingshalle, einen Friseur und noch vieles mehr direkt auf ihrem Unternehmensgelände. Die Mitarbeiter können private Dinge quasi beim Arbeitsplatz regeln, haben mehr Zeit und fühlen sich mehr mit dem Unternehmen verbunden. Die Arbeit wird zum Leben.

Andere Ansätze gehen über die Arbeitszeit. Gleitzeit oder Home Office sorgen für eine flexiblere Zeiteinteilung. Auch alternative Arbeitsmodelle wie eine 30-Stunden-Woche können den Stress deutlich reduzieren und dabei trotzdem die Produktivität verstärken. Das österreichische Unternehmen emagnetix hat die Arbeitszeit sogar bei vollem Lohnausgleich auf 30 Stunden umgestellt. Auch in Schweden hat man 30-Stunden-Modelle ausprobiert – mit größtenteils positiver Erfahrung. Die Produktivität der Arbeitnehmer ist höher, die Krankheitsanfälligkeit dafür niedriger.

Fazit: Arbeitnehmer und Arbeitgeber müssen umdenken

Die neue Arbeitswelt stellt ganz andere Herausforderungen als noch vor der Digitalisierung. Der Digital Hero muss flexibel sein, sich selbst Dinge anlernen und am besten ein Netzwerk um sich herum aufbauen. Doch auch Arbeitgeber müssen eine Unternehmenskultur schaffen, mit der sich seine Angestellten identifizieren und sich nicht in den Burnout arbeiten.

Dafür bietet der moderne Arbeitsmarkt mehr denn je Chancen, sich selbst zu verwirklichen und auch den Quereinstieg zu wagen, wenn die Softskills dafür vorhanden sind. Ein Digital Hero kann in jedem stecken – mit oder ohne Cape. 


Image by luismolinero via stock.adobe.com

Weiterlesen »

iPhone & Co.: Mehr Akku für alle dauert nicht mehr lange

Battery (adapted) (Image by 3dman_eu [CC0 Public Domain] via Pixabay)

Es geht in jedem Jahr weiter mit den Veröffentlichungen von Apple – und natürlich auch mit dem Medienrummel. Es ist viel über das iPhone X, das Ende des Home-Buttons, die „Face ID“-Funktion, das drahtlose Aufladen und noch über vieles mehr geschrieben worden. Irgendwo auf der Liste der Neuerungen war eine verbesserte Akkulaufzeit, zumindest für das iPhone X. Dies wird Dank seines neuen, aufgemotzten A11-Bionik-Prozessors ermöglicht.

Apple sagt, dass das neue Gerät bis zu zwei Stunden länger halten wird als das iPhone 7. Dies könnte eine Netzsession von gut 14 Stunden bedeuten. Die Akkulaufzeit auf dem iPhone 8 scheint dagegen mit der seines Vorgängers vergleichbar zu sein. Das kabellose Aufladen – eine Entwicklung, zu der Apple erst spät dazustößt – macht bei der Akkuleistung keinen Unterschied.

Verbesserungen an den Batterien sind bei neuen Smartphone-Modellen für Verbraucher enorm wichtig. Bei Samsung gab es hier viele wichtige Neuerungen, als sie im vergangenen Monat das Galaxy Note 8 auf den Markt brachten. Zwar wurde hier die Akkulaufzeit nicht wirklich verlängert, aber immerhin wurde dafür gesorgt, dass die Probleme des Vorgängermodells Note 7S, das gerne mal in Flammen aufging, umgangen werden konnten.

Doch auch die besten Produkte sind nach Jahrzehnten in der Mobile-Computing-Revolution noch relativ begrenzt in Sachen Ladung und Akkuleistung. Auch die Geräte von Apple sind innerhalb der letzten zehn Jahre nur mäßig fortgeschritten.

Bislang konzentrierten sich die Hersteller eher auf die Verbesserung der Batterietechnologie und packten immer mehr Energie auf immer weniger Raum. Das Galaxy Note 7S schreckte durch seine Entflammbarkeit eher ab. So lernten die Hersteller ihre Lektion, wenn es um die Frage ging, was schief gehen kann, wenn die Akku-Energie als Wärme freigesetzt wird. Die Hersteller bemühen sich auch um die Verbesserung anderer mobiler Hardware, die Energie verbraucht – einschließlich Display, WiFi, GPS und Zentraleinheit (CPU). Die verbesserten CPUs und OLED-Bildschirme der neuen iPhones machen sie beispielsweise batteriefreundlicher.

Ein Bereich, der erstaunlich wenig Beachtung gefunden hat, ist jedoch der Energieverbrauch von Software. Um genau zu sen, geht es um die Energie, die von der CPU verbraucht wird, wenn sie eine bestimmte Software ausführt. Weder Samsung noch Apple schienen mit ihren neuesten Entwicklungen sonderlich große Schritte in diese Richtung zu machen. Dieses Thema könnte jedoch einen großen Unterschied in der Frage ausmachen, wie lange wir unsere Geräte in Zukunft aufladen müssen.

Softwareentwicklung auf einem neuen Level

Vor Jahrzehnten, als Computer noch tausendmal langsamer waren, haben die Entwickler den Code mit der Hand nahezu perfekt abgestimmt, um jedes bisschen Leistung aus der Maschine herauszuholen. Aber weil auch die Software immer komplizierter geworden ist – dank neuer Funktionen, verbesserter Benutzererfahrung und so weiter – ist dies nicht mehr möglich.

Die Softwareentwicklung ist nun sehr weit von dem einfachen binären Code entfernt, den die CPU ausführt. Entwickler verlassen sich auch auf Sammlungen mit bereits vorhandenem Code, weil es zu lange dauern würde, jede Anweisung von Grund auf neu zu erstellen. Beide Änderungen verringern den Aufwand und beschleunigen die Entwicklungszeit erheblich. Aber der finale Code enthält oft Teile, die in einer bestimmten Anwendung redundant sind. Oder aber er könnte mit effizienteren, maßgeschneiderten Segmenten verbessert werden.

Diese Nachteile versuchen die Entwickler oft dadurch abzumildern, dass sie ihren Code so schnell wie möglich durchlaufen lassen. Was allerdings in der Theorie den Energieverbrauch reduziert. In der Praxis funktioniert das aber nicht immer, da manche Anleitungen mehr Prozessorleistung verbrauchen als andere und den Nutzen letztlich neutralisieren können. Daraus folgt, dass der Energieverbrauch der Software im Laufe der Jahre deutlich gestiegen ist. Niemand kümmerte sich darum, da die meisten Programme auf Maschinen liefen, die mit Netzstrom betrieben wurden. Dies hat sich geändert, seit wir immer mehr mobile Geräte nutzen. Gleichzeitig nimmt die Besorgnis über den Zusammenhang zwischen Stromverbrauch und Klimawandel zu.

Die KIs werden es schaffen

Es gibt noch einen weiteren Grund, warum die Entwickler dieses Problem nur langsam angegangen sind. Der Energieverbrauch von jeder Software war sehr schwer zu messen. Das liegt daran, dass die Konfiguration jedes Geräts unterschiedlich ist. Der Energieverbrauch kann sich ändern, je nachdem, ob ein Programm schon einmal gelaufen ist oder ob andere Programme laufen.

In letzter Zeit gibt es jedoch Fortschritte. Sie verwenden maschinelles Lernen, um den Energieverbrauch einzuschätzen, indem sie bestimmte Codezeilen oder Softwarekomponenten analysieren und Energiedaten aus anderen Programmen, die auf vielen anderen Geräten ausgeführt werden, referenzieren. Wird dies erfolgreich ausgeführt, könnte der Computer, den schweren Teil der Arbeit erledigen. Er soll nach alternativen Programmen suchen, die die Software leistungsfähiger machen.

Willkommen beim suchebasiertem Software-Engineering. Es funktioniert so einfach wie das Auffinden von redundanten Codes oder die Feinabstimmung der Konfiguration. Es kann sich auch auf den bestehenden Quellcode erstrecken. Unsere eigene Arbeit hat sich sowohl mit der Auswahl alternativer Softwarekomponenten aus bestehenden Sammlungen als auch mit der Generierung neuer Code-Stückchen beschäftigt. Wir haben es sogar geschafft, mehrere hundert Fehler in Hadoop, einem sehr weit verbreiteten Software-Framework, zu finden und zu reparieren.

Wir haben die Vision, dass diese suchebasierten Methoden zur Verbesserung der Energieeffizienz in die sogenannte „Compiler“-Phase integriert wird, wenn Computercodes, die von Menschen stammen, in Nullen und Einsen umgewandelt werden und die die Maschine versteht. Diese Suchvorgänge würden automatisch ablaufen und Entwickler müssten nicht an sie denken – ihr Code wäre sofort effizient.

Eines ist klar: Es liegt noch ein langer Weg vor uns.

Die Hauptschwierigkeit besteht darin, den Energieverbrauch der Software richtig einzuschätzen, insbesondere für viele verschiedene Geräte gleichzeitig. Aber das Potenzial der nächsten fünf Jahre macht uns neugierig. Wir konnten eine Reduzierung des CPU-Energieverbrauchs um 40 Prozent bis sogar 70 Prozent für eine Reihe spezifischer Aufgaben aufzeigen. Und es ist nicht unvorstellbar, dass dies eines Tages über die gesamte laufende Software repliziert werden kann.

In Kombination mit besseren Batterien und mehr Verbesserungen der Hardware-Leistung, wie beispielsweise Bildschirmen, die keine zusätzliche Energiequelle benötigen, könnten wir von gravierenden Verbesserungen der Akkulaufzeit sprechen. Die führenden Hersteller sprechen in Zukunft vielleicht nicht mehr von einer schrittweisen Verbesserung der Akkulaufzeit. Sie könnte sich auch schon bald um viele Stunden und vielleicht sogar Tage erhöhen.

Dieser Artikel erschien zuerst auf „The Conversation“ unter CC BY-ND 4.0. Übersetzung mit freundlicher Genehmigung der Redaktion.


Image (adapted) „Battery“ by 3dman_eu (CC0 Public Domain)


The Conversation

Weiterlesen »

Die Netzpiloten sind Partner der BloomReach Connect

Partnergrafik_Connect_Amsterdam

Lust bei der BloomReach Connect dabei zu sein? Dann gewinnt bei uns 3×1 Ticket für die spannende Konferenz in Amsterdam! Teilnahmebedingungen.


Hier dreht sich alles rund ums „Connecten“: BloomReach läd am 6. Dezember 2017 auf die Konferenz Connect Amsterdam ein! Das Verbinden von Content und Commerce, Maschine Learning und Human Creativity, Customer Journey und Customer Experience und vieles mehr stehen hier im Mittelpunkt. Denn der digitale Erfolg der Zukunft  liegt in diesen Verbindungen, die von den Experten der Branche bereits intensiv diskutiert werden: Wie sieht die Zukunft der Cloud, Customer Experience und Künstlichen Intelligenz aus? Und wie schafft man es, diese digitalen Trends zu verbinden?

Ein Experte auf diesem Gebiet ist der Gartner-Analyst Mike Lowdnes. Seine 18-jährige Expertise im Bereich Digital Commerce, Softwareentwicklung und Architektur bestimmen die Thematik seines Vortrags: Hier wird er sich mit dem aktuellen Stand von Digital Experience befassen und diskutieren, welche Innovationen und Fähigkeiten sich aus diesen Trends ergeben.

Auch der Gründer der Zukunftsforschungs-Agentur Whetston, Thimon de Jong, wird vor Ort sein. Unter dem Thema „Mensch & Maschine: Rivalen oder Gefährten?“ wird er seine Keynote halten: Hier zeigt er euch einen Einblick in die Welt der Künstlichen Intelligenz, sowie gesellschaftliche Veränderungen und Geschäftsstrategien.

Ihr dürft somit nicht nur internationale Speaker erwarten, sondern auch Best Practices, Workshops, sowie ein Hackmarathon, die die Veranstaltung BloomReach Connect abrunden werden. Das spannende Programm richtet sich dabei vor allem an Developer, Solutions-Experts und Digital Marketer, doch auch alle anderen Teilnehmer sind herzlich willkommen.

Wann & Wo?

6. Dezember 2017, 9 bis 18 Uhr, am Beurs van Berlage, Damrak 243, 1012ZJ in Amsterdam. Hier könnt ihr euch Tickets sichern. Wir wünschen allen Teilnehmern viel Spaß!

Weiterlesen »