Sie sagen es, wir coden es!

Die Kunst, Website-Nutzern das zu geben, wonach sie suchen

Wenn man eine bestimmte Frage zu einem Unternehmen hat, führt der erste Weg auf dessen Website. Wenn man dort jedoch statt einer Antwort nur riesige Textblöcke findet, die unübersichtlich gestaltet sind, schreckt das den Nutzer oft ab.

Der klassische Ansatz wird modernen Ansprüchen nicht mehr gerecht

Eine Website, die dem Nutzer eine große Menge an Daten und Informationen vermitteln will, wurde seit jeher in Baumstrukturen aufgebaut. Je größer und vielfältiger die Thematik ist, desto eher neigen Unternehmen dazu, diese Struktur immer breiter und verzweigter aufzubauen. Soweit, bis sich der Nutzer in diesem Gestrüpp aus Abzweigungen komplett verliert.

So wird auf einer Webseite die Navigation zum Inhaltsverzeichnis und die Seite an sich zum Sachbuch. Das macht sie für den User unverständlich und erschwert ihm die Nutzung. Die Folge: der Besucher findet erst nach längerer Suche eine Antwort auf seine Frage, wegen welcher er die Seite aufgesucht hat. Die riesigen Texte auf unzähligen Seiten sorgen für eine unangenehme Erfahrung, die meist zeitaufwendig ist.

Sobald der Nutzer realisiert, dass die Website nicht seinen Zeit-Ansprüchen entspricht, neigt dieser schnell dazu, sie zu verlassen. Viele versuchen dies daher zu umgehen und Platz zu sparen, indem sie auf Seiten verweisen, auf denen ihre Inhalte ausführlicher und detaillierter dargestellt werden. Mit dieser Methode bleiben die Fragen des Nutzers aber meist dennoch offen.

Durch diese Fehler werden Unternehmen auf ihrer Seite nicht nur den Bedürfnissen ihrer User nicht gerecht, sie erfüllen so auch nicht ihre Business-Ziele. Man muss anfangen, Webseiten als Tools zu verwenden, die sich an die Situation und Motivation des Nutzers anpassen.

Der Progressive Content Approach

In dem Progressive Content Approach werden die Inhalte dem Nutzer entsprechend seiner Situation und seines Verhaltens angezeigt. Das bedeutet: wenn sich diese ändern, passen sich im Idealfall auch die Content-Bausteine daran an. Man sollte in der Navigation bei anfänglicher Benutzung also nur wenige Ebenen anbieten und die Seiten deutlich effizienter und textärmer gestalten, um den User nicht zu überwältigen. Dafür braucht man stark komprimierte Inhalte, die ein schnelles Verständnis ermöglichen und besser als mit der üblichen Baumstruktur aufzeigen, welche tieferen Informationen sich noch auf der Seite verbergen. So bleibt der Nutzer auf der gleichen Seite, aber erhält, auf übersichtliche Art und Weise, alle Informationen die er benötigt.

Entwickler und Designer müssen außerdem anfangen, die Rolle des Nutzers einzunehmen und von seiner Perspektive aus zu programmieren, um voll zu verstehen, wie die Seite richtig aufgebaut werden muss. Um dies zu machen gibt es zwei Methoden: User Stories und „Jobs to be done“.

Bei den User Stories erstellt man Personas, die einen fiktiven Charakter aus einer realen Zielgruppe darstellen. Für diese definiert man bestimmte Aufgaben, mit denen sie die Website nutzen. Für die Probleme, die man währenddessen bemerkt, werden dann Lösungen formuliert und umgesetzt.

Die Methode „Jobs to be done“ beschäftigt sich mit den Situationen, Motivationen und den damit verbundenen Erwartungen die der User an eine Webpage hat. Mit diesen Job-Stories kann man definieren in welchen Situationen Nutzer welche Antworten suchen. Die Methode ist im Sinne der Kundenzentrierung ein sehr empathischer Ansatz.

In der Informationsarchitektur müssen wieder alle Inhalte betrachtet werden. Diese müssen in Content-Bausteine eingefügt werden, sodass die Architektur nicht mehr als erweiterte Sitemap missbraucht wird, sondern Informationen klar strukturiert überliefert werden können.

Die Aufmerksamkeitsspanne der Nutzer wird immer kleiner und deine Website muss sich dieser anpassen. We {code} it, das junge IT-Unternehmen aus Frankfurt, hilft dir gerne dabei. Mit Hilfe unserer studentischen Coder-Community setzen wir deine digitalem Projekte in-house um. Wir bieten individuelle Software, Webseiten und Webapplikationen, Mobile- und Desktop-Apps, Datenbanksysteme sowie Microsoft-Office Makros und Addins an.

Was genau sind eigentlich Algorithmen?

Algorithmen sind heutzutage in fast allen Bereichen unseres Alltags wiederzufinden. Sie treffen viele Entscheidungen für uns und kontrollieren wichtige Vorgänge. Dennoch kam kürzlich eine Studie heraus, in der bestätigt wurde, dass es immer noch viele Leute gibt, denen dessen allgemeine Präsenz nicht bewusst ist.

Fast die Hälfte aller Europäer wissen nicht, was Algorithmen sind

In einer aktuellen Studie der Bertelsmann Stiftung, wurden über 10.000 Leute aus allen EU-Ländern zu ihrem Standpunkt gegenüber Algorithmen befragt. Dabei stellte sich heraus, dass erschreckend wenige über diese Schemata, die sich in unser aller Leben eingeschlichen haben, etwas wissen. Die Ergebnisse zeigten, dass 15 % noch nie von Algorithmen gehört hatten und 33 % das Wort zwar schon einmal irgendwo aufgeschnappt haben, aber nicht genau wissen, was es bedeutet. Lediglich 8 % der Befragten behaupteten von sich, ein genaueres Verständnis über den Begriff zu haben. Außerdem hatten die wenigsten eine ungefähre Vorstellung davon, wo diese Handlungsvorschriften eingesetzt werden. Auch die persönliche Einstellung gegenüber Algorithmen variierte bei den Teilnehmern: 46 % gaben an, eher die Vorteile dessen zu sehen, dahingegen sagten 20 %, sie befürchteten eher die Nachteile.

Was genau machen sie?

Allgemein gesagt, gibt ein Algorithmus präzise Handlungsanweisungen vor, mit denen Probleme oder Aufgaben innerhalb von verschiedenen Kontexten durch allgemeine Schemata gelöst werden. Dabei führen Computersysteme die Reihe von Anweisungen Schritt für Schritt aus. Ein Algorithmus besitzt dabei stets folgende Charakteristiken: Eindeutigkeit, Ausführbarkeit, Endlichkeit und Determiniertheit.

Oft neigen Informatiker dazu, diese teils komplexen Schemata mit den Algorithmen-ähnlichen Lösungen zu vergleichen, die jeder in seinem alltäglichen Leben selbst anwendet. Das tun wir beispielsweise, wenn wir einen Kuchen fair teilen wollen, wenn wir versuchen aus einem Labyrinth herauszufinden oder wenn wir in Bücherregalen, schnellstmöglich eine bestimmte Lektüre finden wollen. Obwohl das interessante Beispiele sind, spiegeln sie nicht die Wichtigkeit von den programmierten Handlungsanweisungen wieder. Man kann nämlich auch ohne diese Methoden problemlos durchs Leben gehen. Algorithmen hingegen steuern auch in brenzligen Bereichen und Situationen die Vorgänge wie bei Flugzeugen, Atomkraftwerken oder Bankautomaten.

Ein Tag in der Algorithmus-Welt

Morgens geht der erste Blick auf das Handy. Beim Öffnen von Facebook werden dir durch Algorithmen ermittelte Leute vorgeschlagen, die du als Freund hinzufügen wollen könntest. Wenn du weiter scrollst, findest du personalisierte Werbung die ein weiterer Algorithmus anhand von deinen Suchanfragen ermittelt hat. So funktionieren auch die Produktvorschläge bei Amazon: Anhand von den Artikeln, die du dir anguckst oder kaufst, schlägt dir die Seite ähnliches oder dazu passendes vor.

Auf dem Weg zur Arbeit schaltest du dein Navi ein, damit der Dijkstra-Algorithmus errechnen kann, welche Strecke basierend auf Faktoren wie Stau, Steigungen und Straßensperrungen heute am Besten geeignet ist. Während der Fahrt halten dich von Algorithmen geschaltete Ampeln gelegentlich an. In die Freisprechanlage deines Autos kannst du dir Algorithmen integrieren lassen, die Nebengeräusche aus Gesprächen rausfiltern. Der Hersteller Peiker brachte jetzt eine Technologie heraus, die erkennt, wer gerade spricht und die dann fähig ist, die Aufnahme auf den Redner zu fokussieren.

Im Büro findet man nun einen relativ neuen Anwendungsbereich von Algorithmen: Big Data. Die Massen von Daten, mit denen unsere immer leistungsfähigeren Computer arbeiten, können mit ihnen nach Mustern und Zusammenhängen ausgewertet und durchsucht werden. Google entwickelte eine Berechnungsformel, mit der man, anhand vom Klickverhalten während der Arbeitszeit einschätzen kann, wie lange der Mitarbeiter eingestellt sein wird und wie hoch die Wahrscheinlichkeit ist, dass er in näherer Zukunft eine Kündigung erhält.

Sobald du wieder zu Hause angekommen bist, kontrollieren Algorithmen deine Grammatik im Chat, besiegen dich mit Leichtigkeit in Brettspielen wie Schach oder schlagen dir passende Partner beim Online-Dating vor.

Wir bei we {code} it stehen dir gerne bei jeglichen Fragen zu Algorithmen und vielem weiteren zur Verfügung und können dir helfen, sie zu Gunsten deines Unternehmens zu nutzen. Wir beraten dich zu deinem digitalen Projekt oder deinen Herausforderungen, seien es übersichtliche Websites, nutzerfreundliche Apps, praktische Microsoft Office Addins oder Datenbanken. Sie erhalten einen Experten-Rat und ein professionelles Konzept, das anschließend mit Studenten programmiert wird.

10 Überlebenstipps für Entwickler

Das Leben eines Programmierers ist nicht immer leicht – besonders wenn man gerade erst in die Berufstätigkeit einsteigt. Jede Aufgabe ist anders und benötigt seine eigene Herangehensweise. Oft hängt man stundenlang an kleinen Stellen und findet keine Lösung. Doch es gibt einige Dinge, die, wenn man sie beachtet, dem Programmierer das Leben erleichtern können: unsere 10 Überlebenstipps für Entwickler.

1: Es ist immer zu früh um aufzugeben

Man muss Ausdauer beweisen, wenn man eine neue Programmiersprache oder ein neues Tool erlernen muss und wenn man ein Problem mal nicht lösen kann. Da kann es auch sinnvoll sein, schnell mal 100 Zeilen zu löschen. Das kann es dir erleichtern, einen neuen und meist auch besseren Lösungsansatz zu finden.

2: Google ist dein Freund

Bei Problemen, Fragen oder sogar für ganze Code-Abschnitte kannst du dich jederzeit über Google schlau machen. Dort findest du endlose Hilfeforen und auf Webseiten wie beispielsweise Stackoverflow gibt es eine riesige Community, die dir bei all deinen Fragen helfen kann.

3: Wähle deine Tools mit Bedacht

Nicht jedes Problem erfordert die gleichen Tools, Frameworks oder Programmiersprachen. Also wähle je nach Aufgabenstellung deine Mittel individuell aus und spare dir so einige Nerven und Zeit.

4: Kein Weg ist zu zweit zu weit

Bei Methoden wie dem Pair Programming kannst du unter anderem mit erfahrenen Entwicklern zusammenarbeiten. So arbeitet man effizient und hat die Möglichkeit, von einander zu lernen.

5: Der Teufel steckt im Detail

Auch nur kleine Fehler, die im Namen einer Variable, bei der Nutzung eines Arrays oder beim Aufrufen einer Funktion auftreten, können dafür sorgen, dass nichts mehr funktioniert. Also solltest du immer auf Details achten und selbst bei den kleinsten Entscheidungen nicht fahrlässig sein.

6: Aus Fehlern lernt man

Sie sind nicht unbedingt etwas Negatives. Außerdem: wenn du sie einmal gemacht hast, dann passieren sie dir nicht wieder. So wirst du schnell besser, denn beim Fehler machen lernt man am effektivsten.

7: Vereinfachen!

In einem vereinfachten Programm, dass dasselbe wie ein komplexes Programm tut, findet man Fehler leichter. Daher versuche stets deinen Code zu vereinfachen und vermeide dadurch, Bugs zu übersehen. Auch wenn das in der Entwicklung mehr Arbeit ist, spart man sich am Ende Zeit.

8: Plane voraus

Wenn du einfach direkt anfängst, ohne dir vorher einen Lösungsansatz zu überlegen, dann wirst du einige, eigentlich vermeidbare Fehler machen. Daher mache dir erst einmal Gedanken zum Problem, bevor du mit dem Programmieren loslegst.

9: Die Ursache für 90 % der Fehlermeldungen befindet sich 60 cm vor dem Bildschirm.

Fehlermeldungen wollen dich nicht nur nerven. Sie wollen dir sagen, wo das Problem liegt. Wenn du also lernst, sie zu verstehen, dann findest du schneller heraus, wo der Bug liegt. Dabei helfen dir auch Debugging- Tools und -Ausgaben. Sie sollten dich aber nicht dazu verleiten, faul zu sein und sich nur auf diese zu verlassen!

10: Code testen, bevor du ihn veröffentlichst

Egal ob du ihn an das Qualitätsmanagement weitergibst oder ihn auf Git pushst, du solltest deinen Code immer erst einmal überprüfen und in manchen Fällen auch testen. So sparst du dir einige Bug-Reports, minimierst die Anzahl an unnötigen Pushes und sorgst dafür, dass niemand deine unüberlegten Fehler sieht, die dir bei einer Kontrolle wahrscheinlich direkt aufgefallen wären.

Wir sind stets auf der Suche nach talentierten und motivierten Softwareentwicklern, die unsere Community bereichern. Ihr könnt Teil davon werden, Ideen von Startups und KMU zu verwirklichen und bestehende Prozesse effizienter zu gestalten. Dabei profitiert Ihr von fachlichem Austausch und der Möglichkeit eines flexiblen Nebenverdiensts mit breitem Erfahrungsspektrum.

Neue Programmiersprachen – welche lohnt es sich zu lernen?

In der sich ständig ändernden Welt der IT werden auch immer wieder neue Programmiersprachen veröffentlicht – die Auswahl ist riesig. Dir fällt es schwer, herauszufinden bei welchen es Sinn macht, sie zu lernen? Deswegen stellen wir dir die am stärksten wachsenden einmal vor.

Was haben die beliebtesten Programmiersprachen Deutschlands gemeinsam?

Je mehr man die neuen Sprachen unter die Lupe nimmt, desto stärker fällt auf: es sind Trends zu beobachten. Entwickler haben keine Lust mehr auf Null-Pointer-Exceptions. Programmiersprachen wie Kotlin, Swift und TypeScript sind alle statisch typisiert und legen ihren Fokus auf Typsicherheit. Im Gegensatz zu der dynamischen Typisierung wird bei der statischen der Datentyp bereits bei der Kompilierung festgelegt. So werden Fehler wie Null-Pointer-Exceptions früher erkannt. Obwohl jedes Projekt ausgiebig getestet werden muss, spart man sich damit einige Zeit.

Die alten Sprachen werden zwar noch regelmäßig aktualisiert, aber die Computerwelt hat sich zu sehr gewandelt, als dass sie noch zeitgemäß sein könnten. Es gibt neue Technologien, Möglichkeiten und Anforderungen, an die sich die Sprachen anpassen müssen. Das bedeutet jedoch nicht, dass die ‘Oldies’ wie C++ und Java heute wertlos sind. Sie werden nämlich weiterhin am meisten verwendet. Selbst angehende Entwickler benutzen noch die selben Technologien wie diejenigen, die seit Jahren berufstätig sind.

Neue Programmiersprachen wollen nicht die alten ersetzen, sie arbeiten vielmehr mit ihnen zusammen und versuchen, sie leichter anwendbar zu machen. Ohne eine Interoperabilität mit den Klassikern des 20. Jahrhunderts zu haben, könnte kaum eine neue Sprache Fuß fassen. Beispielsweise TypeScript würde sich einen großen Nachteil verschaffen, wenn man mit ihr nicht auf die ganzen JavaScript-Frameworks und -Libraries zurückgreifen könnte.

Rust

Bis jetzt waren Sprachen wie C und C++ in der Entwicklung von Betriebssystemen und leistungskritischen Anwendungen die Führer. Als neuer Konkurrent kommt jetzt Rust ins Spiel und hat, dadurch, dass es die beliebteste Programmiersprache 2018 ist, auch gute Chancen, um bald vorne mit dabei zu sein. In 2009 begann ein Angestellter von Mozilla sie zu entwickeln. Er wurde später von dem Unternehmen unterstützt und veröffentlichte sie vor circa vier Jahren.

Rust wird zum Maschinencode kompiliert und ermöglicht dadurch den direkten Zugriff auf die Hardware. Gleichzeitig wird aber auch darauf geachtet, dass, wie in Java und C#, Speicherzugriffe nicht zu Sicherheitslücken führen. So füllt sie den Zwischenraum zwischen niederen und höheren Programmiersprachen. Rust eignet sich gut, um parallele und nebenläufige Anwendungen zu entwickeln, da hier ebenfalls keine der oben erwähnten Null-Pointer-Exceptions aufkommen können. Die Ausführungsgeschwindigkeit entspricht der von Softwares, die mit C und C++ programmiert wurden.

Kotlin

Kotlin, die 2016 veröffentlichte Sprache, die die zweitbeliebteste des letzten Jahres war, ist zwar noch recht jung, hat aber viele moderne und vielversprechende Features zu bieten. Ursprünglich wurde sie für die Java Virtual Machine (JVM) entwickelt. Dadurch können die Programme, die in Kotlin geschrieben sind, in Bytecode übersetzt werden, der dann von der JVM gelesen werden kann. Die Sprache kann also ohne Probleme Java-Klassen aufrufen und umgekehrt, sodass man, bereits in Java geschriebene Programme, nach und nach in Kotlin umschreiben kann.

Mittlerweile gilt sie auch als offizielle Android-Sprache. Aktuell ist noch dazu die Ergänzung Kotlin/Native in der Entwicklung, mit der sie dann auch für MacOS, iOS und Windows verwendet werden kann. Die neue Programmiersprache hat eine schlaue Syntax für Lambda Ausdrücke – so wird ein deutlich kürzerer Code als bei Java ermöglicht.

Swift

Der Nachfolger von Objective-C kam 2015 raus und nennt sich Swift. Die Sprache wird hauptsächlich für Apples Betriebssysteme iOS und OS X verwendet und überzeugt durch eine sehr übersichtliche Syntax. Dadurch ist sie auch attraktiv für Anfänger und sogar technisch interessierte Kinder. Apple bemüht sich sehr darum, dass jedem ermöglicht wird, mit der iPad-App ‘Swift Playgrounds’ selbst programmieren zu lernen. Die Entwicklungssprache ist Open Source, was es interessant für viele Developer macht, sich am Fortschritt und den Veränderungen zu beteiligen. Eine Portierung auf den Raspberry Pi hat so schon funktioniert. Die Performance von Swift ist erwiesenermaßen besser als die von Objective-C.

Was Swift noch nicht liefern kann, ist eine Binärschnittstellen-Stabilität mit früheren Versionen der Computersprache. Will man nämlich eine, mit einer älteren Version erstellte App, mit der neusten Version der Sprache weiter programmieren, muss man das Ganze nochmal von vorne anfangen. Das soll sich mit dem Release von Swift 5 ändern.

Fazit

Obwohl die Oldies noch immer die am häufigsten verwendeten Programmiersprachen sind, machen die Neuen ihnen langsam Druck. Die Sprachen wachsen mit hoher Geschwindigkeit, beispielsweise Kotlin hat im vergangenen Jahr seine Nutzerzahl fast verdreifachen können. Die Klassiker des 20. Jahrhunderts sind von der IT-Welt noch nicht wegzudenken und dürfen nicht außer Acht gelassen werden. Wer aber experimentierfreudig ist oder sich eine anwenderfreundlichere Programmierung wünscht, sollte definitiv mal die oben vorgestellten Sprachen genauer unter die Lupe nehmen.

Side-Note: Es kann aber auch sinnvoll sein, ganz veraltete Programmiersprachen zu lernen: einige Firmen verwenden noch so alte Programme, dass es nur wenige Entwickler gibt, die dessen Sprachen überhaupt noch beherrschen. Die NASA sucht beispielsweise aktuell Developer, die Sprachen wie Fortran und Assembler aus den 1970er Jahren beherrschen. Dies ist zwar eine mühsame Tätigkeit, aber so ist man für den Arbeitgeber natürlich unentbehrlich.

Du bist auch interessiert daran, dich in der </CODING>-Welt auszutoben und dein theoretisches Wissen in der Praxis anzuwenden? Wir sind stets auf der Suche nach talentierten und motivierten Softwareentwicklern, die unsere Community bereichern. Ihr könnt Teil davon werden, Ideen von Startups und KMU zu verwirklichen und bestehende Prozesse effizienter zu gestalten. Dabei profitiert Ihr von fachlichem Austausch und der Möglichkeit eines flexiblen Nebenverdiensts mit breitem Erfahrungsspektrum.

Progressive Web Apps – was, wie, wer, warum?

Was sind Progressive Web Apps (im Späteren auch als PWA bezeichnet) eigentlich überhaupt und wieso hört man auf einmal überall von ihnen? Damit beschäftigen wir uns heute und erklären, warum sie genau für deine Firma das Richtige sein könnten.

PWA, der Untergang aller Apps?

PWA sind im Einfachen Websites, die die Eigenschaften einer nativen App besitzen aber über Internetbrowser laufen. Genauer haben wir dies bereits in einem anderen Blogeintrag erklärt, den Sie am besten vorab lesen.

Das relativ neue Modell, bei dem aus Website und App ein Hybrid geschaffen wird, gewinnt aktuell immer stärker an Beliebtheit und wird vermehrt von Firmen eingesetzt. IT-Analysten von Gartner prognostizieren sogar, dass bis 2020 die Hälfte aller mobilen Apps durch PWA ersetzt werden. Ob sich diese Vorhersage bestätigen wird, gilt es noch zu beobachten.

Das Bedürfnis nach diesem Websitemodell rührt von einer gewissen App-Müdigkeit her – die Leute wollen nicht für jeden Anlass eine App herunterladen, die sie dann wahrscheinlich nur einmal nutzen werden und danach vergessen. PWA geben dem Nutzer die User-Experience einer nativen App aber nehmen ihm den Umweg über den App Store. Von großem Vorteil ist es, dass man diese Websites auf seinem Desktop oder Homescreen hinterlegen kann und über die im Hintergrund agierenden Skript Dateien, namens ‘Service Worker’, Inhalte cachen kann. Dadurch bekommt der Nutzer die gleiche Erfahrung wie bei einer App, ohne ihn durch die Speicherbelastung und den Download-Umweg einzuschränken.

Doch noch sind sie nicht ganz bei uns angekommen: es gibt beispielsweise keinen Ort, an dem man eine Sammlung aller verfügbaren Seiten dieser Art findet und auf sie zugreifen kann wie bei einem App Store. Zwar laufen sie mittlerweile über alle Browser (Safari und Opera sind kürzlich dazugekommen) aber zum Beispiel bei Safari werden Push-Notifications noch nicht erlaubt. Insgesamt ist PWA momentan der Zugriff auf Kontakte, Kalender und Telefonie-Funktionen verwehrt.

Was Google sich von ihnen erhofft

Immer mehr hört man Google und Microsoft „Progressive Web Apps!“ aus dem Walde schreien. Besonders Google fördert sie – natürlich, denn alles was über das Worldwide Web läuft, bringt ihnen etwas in Bezug auf Google Analytics und Werbung. Noch dazu hilft es ihnen, da ihre Chromebooks häufig in der Web-Entwicklung ignoriert werden und durch die PWA laufen die Seiten auf allen Plattformen automatisch.

Warum sie Programmierern das Leben erleichtern

Auch Coder freuen sich über die wachsende Beliebtheit der Progressive Web Apps. Sie sind nämlich deutlich zeitsparender in der Programmierung, wenn man sie mit nativen Apps vergleicht. Denn eine App muss erst zur Produktversion kompiliert, dann der Private Key erstellt und die App signiert werden und kann dann erst Live gehen. Bei den PWA hat man hingegen den Vorteil, dass nur die Web-App gebaut und dann auf den Server hochgeladen werden muss. Noch dazu spart man sich bei Letzterem die separate Programmierung für Android und iOS und es ist insgesamt weniger fehleranfällig.

Das Win-Win für dein Unternehmen

Mit PWA sparen Sie nicht nur einiges an Entwicklungs- und Erhaltungskosten, Statistiken belegen sogar, dass ihre Push-Notifications häufiger angeklickt werden, die Seiten interaktiver genutzt werden und dass die Konversionen steigen. Am besten eignen sich die Web-Apps wenn deine Dienstleistung größtenteils von Gelegenheitsnutzern verwendet wird. Dann greift der User aufgrund der angenehmen UX lieber auf ihr Angebot zurück, ohne eine schnell in Vergessenheit geratene App auf dem Gerät installieren zu müssen. Obwohl der Bekanntheitsgrad des Ganzen aktuell noch nicht explodiert ist und man nicht direkt umsteigen muss, lohnt es sich dennoch bereits, eine PWA für den Online-Auftritt deines Unternehmens in Erwägung zu ziehen.

Wir von we {code} it stehen dir gerne bei der Beratung zur Seite und helfen dir, deine Eigene PWA zu konzipieren und umzusetzen.

Hast du noch Fragen zu der Programmierung und den Vor- und Nachteilen von Progressive Web Apps? Melde dich gerne über unser Kontaktformular.

Framework – Das Gerüst der Softwareentwickler

Für Informatiker stehen neben der Programmiersprache auch die Programmierumgebung, die sehr umfangreich und damit für den Anfang auch etwas komplex ist, im Mittelpunkt. Wer sich in die Programmierung von Code einarbeitet, stößt recht schnell auf den Begriff „Framework“.

Zunächst wollen wir eine ausführliche Beschreibung des Begriffs geben sowie die wichtigsten Eigenschaften von Frameworks nennen. Anschließend erläutern wir in welcher Hinsicht we {code} it Informatikstudenten bei der Praxiserfahrung unterstützt und was diese bei uns lernen können.

 

Framework! Was ist das, wer braucht das?

Ein Code setzt sich aus vielen kleinen Bausteinen zusammen. Um das Coden bequemer zu machen und Zeit zu sparen, gibt es sogenannte Frameworks.

Ein Framework ist eine Vorprogrammierung, die dem Programmierer als Grundstruktur für die Entwicklung von Softwareanwendungen dient. Es bildet eine Grundlage, auf der Softwareentwickler Programme für eine bestimmte Plattform erstellen und wiederverwenden können. Beispielsweise kann ein Framework vordefinierte Funktionen oder abstrakte Klassen enthalten, mit denen Eingaben vorbereitet, die Designstruktur bestimmt und Softwaresysteme integriert werden können. Einige Anwendungsbeispiele sind: grafische Editoren, dynamische Webseiten, Buchhaltungsprogramme und Online-Shops.

Der Entwicklungsprozess wird um ein Vielfaches vereinfacht, da Coder das „Rad“ nicht jedes Mal neu erfinden müssen, wenn sie eine Anwendung entwickeln. Entscheidend ist: Das Framework an sich ist kein eigenständiges Programm, sondern nur ein Entwurfsmuster. Ein Framework ähnelt einem Application-Programming-Interface (API, dt. Schnittstelle zur Anwendungsprogrammierung), obwohl technisch gesehen ein Framework eine API beinhaltet. Ein Framework dient als Basis für die Programmierung, während eine API anderen Programmen den Zugriff auf die vom Framework unterstützten Elemente ermöglicht.

Frameworks können Sammlungen von Bibliotheken, einen Compiler oder andere Basisbausteinen beinhalten, die im Softwareentwicklungsprozess verarbeiten werden. In vielen Fällen wird ein Framework nativ von einem Betriebssystem unterstützt. Beispielsweise läuft ein für das Android-Framework geschriebenes Programm auf einem Android-Gerät, ohne dass weitere Dateien installiert werden müssen. Einige Anwendungen benötigen jedoch ein spezielles Framework, um laufen zu können. Während sich Frameworks im Allgemeinen auf breite Software-Entwicklungsplattformen beziehen, kann der Begriff auch verwendet werden, um ein bestimmtes Framework innerhalb einer größeren Programmierumgebung zu beschreiben – so können mehrere Java-Frameworks wie Spring, ZK und das Java Collections Framework (JCF) verwendet werden, um Java-Programme zu erstellen. Der eine oder andere ist sicherlich schon auf den Begriff .NET Framework gestoßen. Das ist das Framework für Microsoft-Anwendungen. Microsoft .NET ist notwendig, um eine Vielzahl von Microsoft-Programmen nutzen zu können. Des Weiteren hat Apple mehrere spezielle Frameworks entwickelt, die auf die OS X-Programme zugreifen können.

 

Der Entwickler von heute codet seine eigene App. Wie kann we {code} it helfen?

Im Informatikstudium bekommt man einen riesigen Haufen Theorie eingeimpft. Man darf dann ein paar Mal für eine Übung etwas programmieren und am Ende kann man doch noch nicht so richtig coden. Die Motivation, sich mit Frameworks auseinanderzusetzen, sollte nicht durch zu viel Theorie gebremst werden. Mit Framework kann man in die richtige Richtung gelenkt werden und vom Wissen anderer profitieren. Man kann aber auch so am Framework vorbei programmieren, sodass anschließend gar nichts mehr passt. we {code} it hilft. Um die eigenen Programmierfähigkeiten zu verbessern, bieten wir Schulungen in Form von Praktika oder Projekten für Informatikstudenten an. Als ITler bekommst du die Möglichkeit zu lernen, wie Ressourcen und Grundlagen aus der Universität in Praxis umgesetzt werden können, selbstständig eine Lösung zu erarbeiten und das Know-how in ein konkretes Projekt zu gießen. Einige unter euch haben sicherlich konkrete Anforderungen, also Projekte oder eigene Ideen, die ihr mitbringt und mit anderen Entwicklern teilen wollt. In diesen Fällen ist das Einsteigen mit einem Framework zweifellos nicht zu verachten.

Bist du etwas fitter im Programmieren, dann kannst du abwechslungsreiche und herausfordernde Aufgaben ebenso spannende Projekte für unsere Kunden und Partner übernehmen. Dabei arbeiten wir mit unterschiedlichen Frameworks – wobei Symfony am häufigsten eingesetzt wird. Das Framework Symfony zählt zu den bekanntesten PHP-Frameworks, das als Basisgrundlage zur Entwicklung von Webanwendungen verwendet wird. Du kannst Symfony kostenfrei aus dem Internet heruntergeladen und zum Programmieren nutzen. Wir helfen dir Entwicklungen mit der Fülle von Leistungsmerkmalen effizient und möglichst komfortabel aufzustellen.

Schlussendlich ist Programmieren eine Mischung aus Lesen, Austausch mit anderen und Erfahrung.

 

Info:
Ihr wollt mehr über Framework erfahren?
Dann könnt ihr zunächst unter Frontend Frameworks – Teil 1 nachlesen, auf welche Faktoren es bei der Auswahl eines Frameworks ankommt und wie ihr das Richtige für euch speziell ermitteln könnt. Als Coding-Beginner und Berufseinsteiger kann es sich lohnen, sich auf Frontend Frameworks – Teil 2 über gängige und alternative Möglichkeiten zu informieren. Auch für Programmierer mit Berufserfahrung gibt es hier viel zu entdecken: Frontend Frameworks – Teil 3 stellt die anspruchsvolleren Frameworks vor, die für die erfahrenen Coder unter euch interessant sein könnten.

The Changing World of Retail – Kaufen wir in Zukunft nur noch digital ein?

Während Verbraucher im Zeitalter des E-Commerce vermehrt bequem von zu Hause aus unendlich viele Angebote durchstöbern und virtuelle Supermärkte betreten können, befindet sich der stationäre Handel im Umbruch. Unschlagbare Preiseangebote, eine breite Auswahl, uneingeschränkte Verfügbarkeit – das alles können uns die Onlinehändler bieten. Datenbasierte Analysen versuchen schon lange Kontaktpunkte zu Kunden herzustellen. Sie übernehmen die Vorauswahl potentieller Angebote und finden durch methodisches Erfragen die Kundenbedürfnisse und Vorlieben heraus. Gezielt das passende, preiswerteste und zudem auch bestbewertete Gut zu erwerben, lässt sich fortan nun noch schneller und einfacher gestalten.

Wie wir in Zukunft einkaufen.

Werden wir eigentlich Verkaufstheken, wie wir sie heute kennen, zukünftig noch vorfinden? Entsprechende Visionen zum Thema „Handel im Umbruch“ gibt es genügend. Die Frage ist doch, wollen wir alles bequem von der Couch aus bestellen oder selbst die Oberflächen von Produkten ertasten, bevor wir sie tatsächlich erwerben? Das Internet macht dem stationären Handel Konkurrenz. Der ganze Kaufprozess dürfte online nur noch einige Minuten oder gar Sekunden dauern.

In Zukunft zahlen wir, ohne zu zahlen. Kassen werden irgendwann überflüssig sein.

Produkte, darunter auch Lebensmittel, im Internet kaufen? Sehr wohl, Online-Shops blühen regelrecht auf! Da ist es nur verständlich, dass sich Supermärkte sehr große Mühe geben, um für Verbraucher immer noch attraktiv zu erscheinen. Viele neue Erfindungen im stationären Ladengeschäft könnten uns in Zukunft erwarten: Supermärkte ohne Kassen oder digitale Assistenten.

Unser Einkaufserlebnis wird immer cleverer.

Im Supermarkt der Zukunft läuft man nur noch mit dem Smartphone oder Tablet herum. Man packt alle Produkte, die man einkaufen möchte in den Warenkorb und verlässt den Laden, ohne überhaupt an der Kasse zu stehen. Ein intelligentes Gerät, wie der moderne Einkaufswagen, würde zukünftig direkt die Ware scannen, die der Kunde mitnehmen möchte. Es erkennt, welches Produkt der Kunde in den Wagen legt und überträgt sofort einen Einkaufsbeleg auf das Smartphone. Allerdings: Die Produkte in seinen Einkaufswagen legen, muss man immer noch selbst.

Kassenloser Einkauf noch nicht greifbar.

Einige der Techniken werden schon heute ausprobiert. Trotz dessen kann die Markteinführung von Innovationen wie den digitalen Einkaufswagen oder kassenloses Einkaufen noch Jahrzehnte dauern. Das hat vor allem einen Grund: die neuen Techniken sind schlicht und einfach teilweise noch sehr teuer.

Ganzheitliches Shopping-Erlebnis

Die zunehmende digitale Vernetzung sollte vor allem von kleinen und mittelständischen Einzelhandelsunternehmen nicht als Gefahr sondern vielmehr als Herausforderung und neues, potenzielles Marktsegment betrachten werden.

Wir denken, dass der heutige stationäre Handel auch in Zukunft bestehen kann, solange er gewillt ist sich anzupassen und erneut zu reformieren. Wenn beide Einkaufsmärkte – online und offline – kollaborieren und voneinander lernen, profitieren beide Welten voneinander. Der Verbraucher kann ein ganzheitliches Shopping-Erlebnis geboten bekommen. Nur wer es versteht automatisierte Prozesse gezielt einzusetzen, kann einen gewinnbringenden Mehrwert für den Kunden schaffen.

Genau an dieser Stelle greifen wir als junges und zugleich innovatives IT-Startup ein. Wir unterstützen Unternehmen bestehende Geschäftsprozesse effizienter zu gestalten um sich so dem wandelnden Markt stetig anpassen und entsprechend auf die Umgebung reagieren zu können. Diese Herausforderung bedingt ein aufeinander abgestimmtes Produkt- und Qualitätsmanagement, das eine strukturelle Abbildung aller Vorgänge ermöglicht.

Programmieren – Bei der Studienwahl an morgen denken

Früher reichte eine solide Ausbildung – heute ist ein Studium oftmals Pflicht für jeden, der in Wirtschaft und Industrie Fuß fassen möchte. Die Zahl der passenden Bachelor-Studiengänge ist in den letzten Jahren stark angestiegen. Neben den theoretischen Kenntnissen und persönlichen Interessen ist es sinnvoll, sich über vielfältige Berufsperspektiven nach der Uni-Zeit zu informieren. Es entwickelten sich einige Studienabschlüsse, die auf dem zukünftigen Arbeitsmarkt stärker an Bedeutung gewinnen als andere.

BWL, Medien- und Kommunikationswirtschaft liegen voll im Trend.

Nach wie vor ist Betriebswirtschaftslehre einer der beliebtesten Studiengänge. Die Zahl der Absolventen ist hoch – genau wie die Nachfrage nach ihnen auf dem Arbeitsmarkt. Nachwuchs an BWL-Spezialisten ist also weiterhin sehr gefragt.

Durch die sich ständig ändernde Entwicklung der Medientechnik und Vernetzung durch das Internet hat sich der Bereich der Kommunikation weiter durchsgesetzt und vielfältig erweitert. Gerade hier ist der Trend zu beobachten, dass die Nachfrage nach Studienabschlüssen stetig zunimmt. Allerdings steht nicht nur Kommunikationswissenschaften und das klassische BWL-Studium im Fokus der Anwärter. Wissenschaftliche Studiengänge, die sich beispielsweise mit zukünftigen Hightech Innovationen insbesondere im Energie- und Umweltbereich beschäftigen, werden begehrter.

Die Welt ist „grüner“ geworden:
Technik verstehen. Programmieren lernen. Umwelt verantwortungsbewusst gestalten.

Neben der Ökonomie gehört der Leitbegriff Nachhaltigkeit in das Konzept vieler Unternehmen. Das Bewusstsein für Ökoenergie, Nachhaltigkeit und Natur hat sich in den vergangenen Jahren in der Gesellschaft stärker veranlagt. Die Umweltwirtschaft ist eine sehr technische Branche – dabei kombinieren Studiengänge oft Themen wie Umwelt und Hightech. Es braucht also viel mehr Ingenieure und IT-Spezialisten, die am besten Falle einen klaren Umweltbezug haben. Mit einem modernen Studiengang ist man am Puls der Zeit. Es werden Skills und Kompetenzen erlernt, die vor allem in Zukunft immer bedeutender werden und daher stärker gefragt sind. Jeden Tag nutzen wir elektronische Geräte. Es entstehen ständig neue Technologien, die unser Leben vereinfachen und effizienter gestalten. Mit Studienfächern wie Informatik oder Elektrotechnik bietet sich die Gelegenheit, ganz vorne mit dabei zu sein und wegweisende Neuerungen mitzugestalten.

Nach dem Bachelor: Arbeiten oder weiter studieren?

Diese Frage stellen sich viele Informatikstudenten. Zunächst hängt es von jedem einzelnen ab, ob man als Informatiker in der Forschung tätig sein möchte oder eher an den Bereichen Kundenbetreuung und Projektarbeit interessiert ist. Ein höherer Abschluss bringt in den meisten Fällen einen leichteren Berufseinstieg sowie bessere Karrierechancen im Unternehmen mit sich. Jedoch haben Arbeitgeber heutzutage sehr hohe Ansprüche an Berufseinsteiger: Nicht nur der akademische Abschluss und Fachkompetenz ist von Bedeutung, gefragt ist vor allem Praxis!

Die Unternehmen wollten junge Talente, die digital denken und erste praxisbezogene Erfahrungen mit sich bringen.

Als etabliertes Software Development Startup helfen wir Informatikstudenten während des Studiums Praxiserfahrung zu sammeln, in der IT-Branche wichtige Kontakte zu knüpfen und einen ersten Vorgeschmack auf die Berufswelt zu geben. Nach dem Praktikum oder einem Nebenjob kann anschließend der Berufseinstieg angestrebt oder gezielt ein Master-Programm ausgewählt werden.

Die Angst um das Ende von React bringt alte Bekannte zurück: Angular vs. Vue.js vs. Ember

Python, JavaScript, PHP, Java, C# – die Wahl der richten Programmiersprache und der passenden Frameworks stellt für Entwickler in manchen Augenblicken die Qual der Wahl dar. So gibt es für unterschiedliche Anforderungen und Schwerpunkte bestimmte Sprachen und Programme, die dafür am besten geeignet sind. Nichtsdestotrotz existieren einige Top-Acts, die die Liste anführen. So hat IT-Gigant IBM JavaScript zur besten Erlern-Programmiersprache 2017 gekürt.
Doch auch da ist die Auswahl für Frameworks riesig. Nachdem nun React für manche mehr oder weniger abgehakt werden kann – siehe dazu unseren letzten Blogbeitrag – wollen wir euch nun drei Alternativen dazu vorstellen. Diese lauten Angular, Vue.js und Ember.

Wer sind sie?

Alle drei Frameworks sind clientseitig, basieren auf dem MVVM (Model View ViewModel) Model, werden für das Erstellen von SPAs (Single Page Applications) verwendet und sind (mehr oder weniger) in JavaScript geschrieben. Angular wurde von Google entwickelt und gehört mit seiner Vorgängerversion AngularJS zu den am meisten verwendete JS Framework für SPAs. Angular 2 ist in Typescript geschrieben, das auf JavaScript, Java und C# basiert. Seit Ende März ist Version 4 auf dem Markt. Vue.js ist ein relativ junger Newcomer, der vorgibt, das Beste aus Angular und React herauszuholen. Ember wurde 2015 als das beste JavaScript Framework angepriesen und findet zum Beispiel bei Netflix, Yahoo und LinkedIn Verwendung.

Was können sie?

Bei allen drei Frameworks fällt durch das MVVM die Controller Einheit weg und es wird stattdessen eine Verbindung der Darstellungs- und Logikebene hergestellt. Interaktionen können so schneller und einfacher umgesetzt werden. Angular wird vor allem aufgrund der Einfachheit der Nutzung von den Entwicklern präferiert. Es kann somit mit WordPress’ Konzept verglichen werden – sehr einfach zu verwenden, aber in der technischen Umsetzung nicht so extravagant. Bei Vue.js lag der Fokus darauf ein schnelles und schlankes Frontend Framework zu entwickeln. Ähnlich wie bei React wird hier eine virtuelle DOM Implementierung genutzt, die die Rendering Geschwindigkeit und den Speicherverbrauch laut Entwicklern um bis zu das Vierfache verbessert haben soll. Vue.js lässt ebenso dem Programmierer die Wahl zwischen Templates und JSX/Hyperscript. In Version 2 gibt es zusätzlich eine Redone-Rendering Schicht, die für eine bessere Performance sorgen soll. Ebenso ist das Framework mit der neuen Version auch (besser) auf die Entwicklung von mobilen Apps ausgerichtet. Ember folgt dem DRY Prinzip und ist nach dem Grundsatz data down, actions up aufgebaut. Das Framework nutzt Web Compoments, und will langfristig die Controller und Templates durch diese ersetzen.

Wie gut sind sie?

Angular stellt die beste Option für Unternehmensbasierte Apps und Programmierlandschaften mit hohen Lesbarkeits-Standards dar. Die bessere Wahl für die schnelle Entwicklung von betriebssystemübergreifenden Lösungsansätzen ist jedoch Vue.js. Das Framework punktet zudem durch eine einfache Handhabung. Ember wird demgegenüber vornehmlich für komplexe Webapplikationen und Websites mit vielen Features verwendet. So sind dynamische Apps und Websites bei Ember gut aufgehoben. Es ist das Framework, das einen, wenn man es verstanden hat, dazu befähigen kann, sehr produktiv zu sein. Jedoch heißt dies, dass die Lernkurve auch sehr hoch ist und es somit gleich zu Beginn viel zu lernen gibt.

Fazit

Alle drei Frameworks können zwar als Konkurrenten angesehen werden, jedoch besitzt keines davon einen signifikanten Vorteil gegenüber den anderen. Alle besitzen die gleiche Grundlage – sie sind ein JavaScript Framework. Das bedeutet im Endeffekt mehr Effizienz, Sicherheit und weniger Kosten als ohne Framework. Egal ob durch Angular, Vue.js oder Ember – Programmierarbeiten können zeitsparender und strukturierter umgesetzt werden und haben gleichzeitig bessere Sicherheitsbestimmungen. Zudem sind alle Frameworks Teil einer Open Source Software – und anders als React von Facebook – auch wirklich frei zugänglich.

Ist das das Ende für React?

Die JavaScript Bibliothek React von Facebook gehörte bisher zu den beliebtesten Tools zur Erstellung von interaktiven Websites. Jetzt kann React den Programmierern jedoch zum Verhängnis werden. Denn die Lizenz-Situation und Nutzungsbedingungen des eigentlich als Open Source ausgelegten Tools sind heikel geworden. Zu Open Source gehören Softwares, deren Quelltext öffentlich eingesehen, genutzt und verändert werden darf. Eigentlich.

 

Was steckt dahinter?

React, welches erstmals 2013 mit einer Open Source Software herausgegeben wurde, dient dazu, Anwendungen sehr flüssig darzustellen, selbst bei großen Datenbanken. Der Vorteil von React ist, dass dort ein virtuelles DOM vorliegt, welches einfacher zu manipulieren ist und die Bibliothek so in der Lage ist, Interaktionen schneller umzusetzen. Gleichzeitig nimmt React die Komplexität aus dem View-Layer. Demnach ist das Tool besonders nützlich, wenn eine Website viel Interaktivität fordert.
Jedoch steht die Verwendung von Facebook‘s Open Source Software, darunter eben auch genannte Bibliothek React, unter einer BSD Plus Lizenz. BSD (Barkeley Software Distribution) heißt, dass die Software nur kopiert, verändert und verbreitet werden darf, wenn das Copyright Vermerk des ursprünglichen Programms nicht entfernt wird. So weit so gut. Nun hat Facebook vor einigen Wochen eine weitere Klausel zum Lizenzrecht ihrer Software hinzugefügt. Diese sagt aus, dass jedem die Nutzungsrechte für eben jene Open Source Software entzogen werden, wenn mit der Nutzung in irgendeiner Weise Konkurrenz-Ansprüche zu Facebook entstehen. Weiterhin geht aus der Klausel hervor, dass durch eine Klage gegen Facebook die Lizenzrechte ebenfalls entfallen. Im Original heißt dies:

„The license granted hereunder will terminate, automatically and without notice, if you […]take a direct financial interest in[…] any Patent Assertion against Facebook […]“

Open Source Software mit BSD Plus Lizenz – heißt konkret?

Facebook‘s Technik-Direktor Adam Wolff begründet diese Entscheidung damit, dass Facebook die Balance halten möchte, weiterhin Open Source Software zur Verfügung zu stellen, gleichzeitig aber das eigene Unternehmen vor teuren Rechtsstreitigkeiten schützen will.
Die Website React-etc empfiehlt in dieser Hinsicht gar einen Anwalt heranzuziehen, wenn React weiter benutzt werden möchte. Ebenso rät ein Entwickler der Apache Foundation , dass Startups möglichst nicht React benutzen sollten. Dies könnte mögliche Firmenübernahmen gegebenenfalls verhindern. Die Apache Foundation, eine Gemeinschaft von Entwicklern, die an Open Source Software Projekten arbeiten, hat nun sogar die Verwendung der Open Source Software von Facebook ihren Programmierern untersagt. Diese Entscheidung wird damit begründet, dass diese Lizenz ein Risiko an den Konsumenten weiterreichen würde und dieses Risiko deutlich stärker zu Lasten der Anwender ausfallen würde. Außerdem würde dies die Apache-Richtlinien verletzen, die unter anderem diktieren, ein universeller Spender zu sein.

React – das trojanische Pferd unter Open Source?

Diese Entscheidung stellt nun ein großes Problem für Entwickler dar, die unter Apache arbeiten, da sie React an vielen Stellen verwendet haben. Am meisten jedoch stört sie die unethische Einstellung von Facebook gegenüber einer Open Source Software. React sei, so die Entwickler, ein trojanisches Pferd in der Open Source Community und diese Verhaltensweise sei kein Beispiel dafür, wie Open Source funktionieren sollte. Adam Wolff gibt zu, durch diese Entscheidung einige Nutzer zu verlieren, jedoch stehe der Schutz des Unternehmens an erster Stelle. Er argumentiert, dass Facebook die Software auch ganz vom öffentlichen Markt hätte nehmen können.

Also, ihr lieben Programmierer unter euch, passt auf, wenn ihr React benutzen wollt – Alternativen dazu stellen beispielsweise das Webframework vue.js, die Programmiersprache Elm oder die Bibliothek Riot.js dar.