programmierer-nachrichten.de
Startseite Podcast RSS Impressum

Podcast Folge 15


Wie versprochen der wöchentliche Podcast!

Dieses Mal Folge 15. Der CCC hat den Iris Scanner des S8 überlistet, die neue Programmiersprache P, Microsoft optimiert Git, postmarketOS (ein auf Alpine Linux basiertes Betriebssystem für alte Android Geräte) und Trends bei Programmiersprachen.

Viel Spaß damit!


Programmiersprachen Trends


Wenn mir totale Anfänger eine Frage stellen, die ich besonders häufig höre, dann ist es die Frage nach der richtigen Programmiersprache. Selbst erwachsene Programmierer stellen sich diese Frage immer und immer wieder, aber sie haben andere Beweggründe. Ich finde diese Frage relativ schwierig zu beantworten, und meistens antworte ich mit einer Gegenfrage.

Wichtig ist, ob man mit dem Wissen beruflich erfolgreich sein möchte. Wenn man diese Frage mit "ja" beantwortet, dann sollte man Programmiersprachen wie Java, C#, C++ oder C lernen. Bei den Scriptsprachen sollte man dann PHP, Ruby, JavaScript oder Python lernen. Wenn man diese Frage mit "nein" beantwortet, so kann man gerne Sprachen wie Haskell, Clojure, Scheme, Lisp, Scala, Ada, Kotlin, Ceylon, Crystal, F#, usw... lernen.

Ich hasse Pauschalisierungen zwar, aber wenn man sich die Jobangebote so ansieht, so ist zu erkennen, dass die Programmier- und Skriptsprachen, die es schon lange gibt, immer noch weite Verbreitung haben; nicht ohne Grund. Die Firmen haben sich damit ihre Basis gebaut und die wären ja extrem dumm, wenn sie ihre Basis jedes Mal neu implementieren müssten, nur weil sie auf den Zug einer neuen Programmiersprache aufspringen wollen. Das lohnt sich in der Regel nicht. Für eine Privatperson kann sich das aber sehr wohl lohnen, da eine neue Programmiersprache auch neue Ideen und Ansätze zeigen kann, über die man sich vorher nie Gedanken gemacht hat. Oft beeinflussen neue Programmier- und Skriptsprachen alte Sprachen, so dass diese ein Update erfahren, wo dann diese neuen Ideen mit eingeflossen sind. Es ist also sehr gut, dass es Menschen gibt, die neue Programmier- und Skriptsprachen entwickeln. Mich hat zum Beispiel Scheme sehr beeinflusst.

Was ist also nun die richtige Programmiersprache? Das kommt drauf an :)! Wenn man sie beruflich anwenden will und damit Geld verdienen will, ist selbst Java heute noch eine gute Wahl, obwohl Java offensichtlich auf dem absteigenden Ast unterwegs ist. Java und C haben laut Tiobe Index innerhalb von einem Jahr über 6% an Popularität verloren. Das ist extrem viel. PHP hat innerhalb von 14 Jahren ca. 6% an Popularität verloren; nur, um mal das Ausmaß zu zeigen. Aber wie jede Statistik ist das meist ohne viel Aussagekraft. PHP hatte noch nie große Marktanteile, Java aber schon. Wer viel hat, kann also auch viel verlieren. Wer wenig hat, kann nur wenig verlieren. Und es ist irrelevant, wenn es in deiner Region viele Jobs für diese Programmiersprache gibt.

Mir persönlich ist es wichtig, dass ich mindestens eine Programmiersprache richtig beherrsche und das ist durch die Flut an Programmiersprachen oftmals schwierig, weil man sich beeinflussen lässt. Ich empfehle also sich neue Programmier- und Skriptsprachen ruhig anzusehen, aber es sollte auch eine Programmier- oder Skriptsprache perfekt beherrscht werden. Ich kenne viele Menschen, die als Programmierer arbeiten und ihr Werkzeug gar nicht beherrschen. Und das ist nur die Basis. Im Grunde geht es als Programmierer nicht nur darum eine Programmiersprache zu beherrschen, sondern darum, dass man Probleme löst und dabei ist die Programmier- oder Skriptsprache nur ein Tool von vielen. Man benötigt soziale Kompetenzen und viel Wissen im Bereich der Erzeugungs-, Struktur- und Verhaltensmuster. Aber auch das reicht nicht aus :). Aber das geht hier nun zu weit.


Microsoft optimiert Git


Microsoft hat mit Windows ein riesen Code Repository, welches sie mit Git verwalten wollten. Im Falle von Microsoft sprechen wir von einer Quellcodebasis, die ca. 300GB groß ist und ca. 3.5Mio Dateien hat. Soetwas wäre selbst für Git außerordentlich groß und würde zu Performanceeinbußen führen. Microsoft hat also einen weiteren Layer für Git gebaut: GVFS. Dabei handelt es sich um ein virtuelles Git Dateisystem, welches für extra große Repositories optimiert ist. Für "git" und alle anderen Tools sieht das Git Repo aus, wie immer; die bekommen von der Optimierung nichts mit. Im Grunde ein interessanter, wenn auch eigenwilliger Ansatz.

Das Projekt befindet sich zwar noch in der Entwicklungsphase, wird aber nun bereits von Microsoft für den Windows Quellcode verwendet. Bei normaler Anwendung von "git" würden viele Befehle 30 Minuten und länger benötigen, um das zu tun, was sie tun sollen. Mit GVFS wurde das so sehr verbessert, dass die längste Zeit ca. 2 Minuten war; das ist aus Microsofts Sicht immer noch viel zu langsam. Microsoft hat viele Optimierungen eingebaut und im Grunde ist das nur eine sehr gute Werbung für GVFS. GVFS ist allerdings nur unter Windows 10 Creators Update und später nutzbar.


P: die neue Programmiersprache


Microsoft hat vor kurzem über eine neue Programmiersprache berichtet. Die neue Programmiersprache "P". Über den Namen wird sich schon jetzt lustig gemacht, weil man vor allem in englischer Aussprache an "pinkeln" denken muss. Wie auch immer; bei P handelt es sich um eine domänenspezifische Sprache (DSL (Domain Specific Language)); sie wird also nicht für allgemeine Programmieraufgaben genutzt; sie wird genutzt, um asynchrone ereignisgesteuerte Systeme zu implementieren. Oder um es einfacher zu beschreiben: P wird genutzt, um Protokolle in einer Asynchronen Anwendung zu implementieren.

In P entwickelt man Zustandsmaschinen, die über ein Nachrichtensystem miteinander kommunizieren. Jede Zustandsmaschine hat eine Eingangswarteschlange, einen Zustand, Übergänge, Ereignishandler und einen Speicherbereich, um Variablen zu speichern. Die Zustandsmaschinen sind nebenläufig und haben jeweils eine eigene Ereignisverarbeitungswarteschlange. Die Sprachelemente sind vermutlich vom Unfang her auf einem Blatt DIN A4 zu illustrieren, was ich sehr gut finde. Das ist aber, so glaube ich, auch der Sinn einer DSL.

Inhaltlich erinnert mich P an Erlang; optisch allerdings nicht. P ist eben eine sehr spezielle DSL. Microsoft hat das Projekt auf GitHub veröffentlicht. Dort findet man auch ein Tutorial, wo man sich mal einen ersten Eindruck dieser DSL machen kann. Ich hätte gerne das Hello World oder das Ping Pong P Programm ausprobiert, aber es gibt noch keine "binary" Downloads und so richtig Lust darauf es aus der Quelle zu bauen hatte ich nun auch nicht. Vielleicht kommt das noch; also die Lust :).


Der CCC hat den Iris Scanner des S8 überlistet


Der Chaos Computer Club hat den Iris Scanner des Samsung Galaxy S8 überlistet. Das bedeutet, dass das Smartphone entsperrt werden kann, ohne dass der tatsächliche Besitzer im Besitz des Gerät ist.

Princeton Identity Inc. hat dieses System für Samsung entwickelt und das S8 ist eines der ersten Smartphones, welches dieses Feature implementiert und nutzt. Im Grunde wird ein Infrarotfoto erstellt und dann wird versucht zu erkennen, ob es sich um das Auge des Besitzers handelt. Die Informationen der Iris werden vorher in einem Setup festgehalten.

Der CCC hat keine Kosten und Mühen gescheut, um das System zu überlisten. Sie haben eine normale Digitalkamera benutzt, um ein Foto im "Infrarotmodus" aufzunehmen. Bei vielen Kameras entspricht das einfach dem Nachtmodus. Sie haben das Foto mit einem Samsung Drucker ausgedruckt, eine Kontaktlinse auf das Auge geklebt, damit es echter wirkt. Sie haben den Ausdruck dann vor das Smartphone gehalten und es wurde sofort entsperrt. Wie peinlich.

Schau dir unbedingt das Video des CCC an; das ist imho sehr lustig gemacht :).



Was soll man dazu sagen? Es ist irgendwie lustig, dass eine Zugangskontrolle so einfach zu überlisten ist. Anders betrachtet ist es nicht lustig, da viele Menschen auf ihrem Smartphone mittlerweile sensible Daten gespeichert haben. Insofern hätte Samsung bei diesem System eigentlich nur eine Entscheidung treffen sollen: es nicht zu implementieren.

Wie viele Fotos von dir gibt es im Internet? Sicherlich mehr als dir bewusst ist. Diese Fotos könnten verwendet werden, um dein Samsung Galaxy S8 zu entsperren, wenn es denn so eingerichtet wurde. Mein Vater hat auch so ein S8 und ich habe ihm davon abgeraten den Iris Scanner einzurichten, weil ich schon von Anfang an Zweifel hatte. Es mag komfortabel sein, aber wenn dieses System so einfach zu täuschen ist, so kann man es auch gleich weg lassen.

Also gut gemeint, aber sinnlos. Selbst, wenn es kein Foto von dir im Netz gibt, so könnte jemand ohne Probleme ein Foto von dir machen, um das Foto zu nutzen, um dein Smartphone zu entsperren.

Dedööö! Sorry.


Archiv nach Kalenderwochen


2017/KW24, 2017/KW23, 2017/KW22, 2017/KW21, 2017/KW20, 2017/KW19, 2017/KW18, 2017/KW17, 2017/KW16, 2017/KW15, 2017/KW14, 2017/KW13, 2017/KW12, 2017/KW11, 2017/KW10, 2017/KW9, 2017/KW8, 2017/KW7


Startseite Podcast RSS Impressum