Swift – Die eine Programmiersprache für „alles“ ?! – Teil2

Die Evolution von Swift – the next level

Teil1

Es ist gut ein Jahr vergangen (Dezember 2015) seit Swift als Open-Source Programmiersprache das Licht der Welt(-Öffentlichkeit) erblickt hat. So finde ich, dass es mal wieder an der Zeit ist zu schauen, welche Evolution und Resultate diese recht junge Programmiersprache mittlerweile nach meiner ersten Bewertung und Prognose vom April 2016 in der Open-Source Entwickler Community gefunden hat. Um eine Sache vorweg zu nehmen: Mit Swift werden bereits produktive (Web-)Portal-Projekte umgesetzt (wie beispielsweise die Webseite des dänischen Triathlon-Events Ironman; Github-Source). So hat sich Swift tatsächlich in so kurzer Zeit von einer reinen Apple-Plattform Sprache (iOS, macOS, tvOS, watchOS) zu einem Linux-freundlichen Backend/Webframework-tauglichen Gesamtsystem entwickelt. Die aktuelle Version Swift3 genießt zudem große Kompatibilität im Segment der „kleinen ARM-Architektur Computer“ wie beispielsweise dem Raspberry Pi3 und dem dafür verfügbaren Ubuntu 16.04 als Betriebssystem; ergo die Software der Internet-Of-Things (IoT) kann ab jetzt tatsächlich ebenfalls mit dieser hochmodernen und performanten Programmiersprache entwickelt werden.

Weiterlesen

Swift – Die eine Programmiersprache für „alles“ ?! – Teil1

tl;dr

  • Swift eignet sich bereits jetzt zur Entwicklung einer produktiven verteilten mobilen Anwendung (Client-App + Backend-Webservice)
  • Proof-of-Concept Beispiel: verteilte App mit Shared Code
  • Deployment des Webservices via Docker-Container
  • Große Vorteile für Developer, DevOps, CTOs, CIOs und die zentralen Stakeholder/Kunden
  • Update: links und libraries-Empfehlungen

Apples Swift und Open Source

Im Juli 2014 hat Apple der Öffentlichkeit die neue Programmiersprache Swift vorgestellt. Zunächst wurde auf den eigenen Plattformen die Software-Entwicklung mit dieser Sprache realisiert: von der kleinen Smartwatch appleWatch (watchOS), über die Set-Top-Box appleTV (tvOS), auf ihren mobilen Geräten iPhone/iPodTouch/iPad (iOS) bis hin zu ihren Desktop-Geräten MacPro/iMac/MacBookPro/… (OSX).

Vor etwa einem halben Jahr (Dezember 2015) ging Apple dazu über, Swift als Open-Source Projekt der Öffentlichkeit bereitzustellen. Apple war mit diesem Schritt derart entschlossen und überzeugt, dass sie die Vorteile von ihrer aktuellen Programmiersprache Swift -z.B. die Flexibilität und die Skalierbarkeit (von Command-Line-Tools über Software für ‚kleine‘ embedded IoT-Geräte bis hin zu Server-Systemen und Betriebssystemen), die maschinennahe performate Ausführung  der damit erstellten Software (kompilierter/nativer Binär-Code !), sowie die modernen Features und Sprachkonstrukte- der gesamten Developer/IT-Community bereitgestellt haben wollten. Das ausgesprochene Ziel Apples: Durch die verändernden Software/IT-Anforderungen heutiger Systeme und Anwendungen, die in die Jahre gekommene native Programmiersprache C (bzw. auch C++) als de-facto-Standard mittelfristig abzulösen. Ein sehr ehrgeiziges Ziel -wie man ruhig finden darf- das nur durch Offenlegung und die Beteiligung der großen Entwickler-Community überhaupt erst machbar sein kann.

Weiterlesen

Datenvolumen kontrolliert wachsen lassen

Wir befinden uns an einem Punkt in unserer Entwicklung, in der wir jeden Tag unvorstellbar große Mengen an Daten absichtlich oder unabsichtlich produzieren. Selbst dieser Mausklick oder der gerade geführte Telefonanruf produzierte einen Datensatz.

Diese Datenmengen nehmen exorbitant zu — ein Problem für jeden Systemadministrator (Stichwort Redundanz, Backup, Aktualität, Performance). Deshalb ist es an der Zeit, eine Speicherplatz/Nutzen Analyse zu machen. Welche Daten werden denn überhaupt benötigt, welche können aus anderen Daten generiert werden (Redundanz) und welche sind komplett überflüssig?

Weiterlesen

Eine Administrationsoberfläche für den Apache Traffic Server

Der Apache Traffic Server (TS abgekürzt) ist ein stabiles und zuverlässiges Tool, um einen Reverse Proxy zu realisieren. Wir nutzen dieses Tool für alle Arten von HTTP(S) Routing und Mapping zwischen externen URLs und internen Services. Auch komplexere Einstellungen wie das Verwalten von mehreren SSL Zertifikaten pro Domain oder präzise HTTP Method Filter wird von TS unterstützt und bleibt auch unter Hochlast performant. (Der Apache TS war ursprünglich ein kommerzielles Produkt von Yahoo!, wurde aber im Nov. 2009 an die Apache Foundation gespendet)

„Handling over 400TB a day at Yahoo! both as forward and reverse proxies, Traffic Server is battled hardened.“

 

Weiterlesen

Integration von SVN in eine CI-Umgebung

Arbeitsabläufe und Workflows zu automatisieren bzw. so weit zu vereinfachen wie möglich, ist uns ein großes Anliegen. Aufgaben, die ein Script übernehmen kann, müssen nicht wie ein Mantra wiederholt werden. In unserem Continuous Integration System wird Sourcecode automatisiert compiliert und zu einem installierbaren Paket geschnürt. Einer der Trigger ist das Anlegen eines Tags in der Versionsverwaltung. Wird ein neuer Tag angelegt, wird die Software automatisch in dieser Version compiliert. Weiterlesen

Unstoppable (Shell)-Scripts

„Mal schnell ein Script geschrieben“ — Das ist im ersten Moment trivial. Ein oft wiederholender Task soll automatisiert werden, eigentlich keine große Sache. Das Script ist schnell erstellt und läuft die ersten 2 Wochen ohne Probleme.

Doch dann ändern sich die äußeren Einflüsse geringfügig; Ein Ordner wird umbenannt, eine Server-IP ändert sich, eine Datei enthält Leerzeichen oder Sonderzeichen, die Festplatte läuft voll, oder die Netzwerkverbindung zum Backup-Server ist temporär nicht vorhanden. Fälle, die im ersten Moment nicht bedacht wurden, führen bei Shell-Scripts nicht selten zu weitreichenderen Problemen als man anfangs vermutet. Weiterlesen