programmierer-nachrichten.de
Startseite Podcast RSS Impressum

Podcast Folge 11


Wie versprochen der wöchentliche Podcast!

Dieses Mal Folge 11. Electron ist scheiße, AT&T verkackeiert die Amerikaner, CHECK24 als Arbeitgeber und Programmieren ohne Tastatur.

Viel Spaß damit!


Programmieren ohne Tastatur


Masahiro Sakurai hat Kirby's Dream Land Anfang der 1990er Jahre auf einem Twin Famicom ohne jegliche Tastatur programmiert. Er hatte dafür eine Trackball Maus genutzt, mit welcher er die Buchstaben Eingaben tätigte. Sakurai hat, und ich mache keine Witze, im Laufe der Jahre eine Sehnenverkalkung entwickelt, die bei jeder Bewegung Schmerzen verursacht.

Programmieren ohne Tastatur ist also vielleicht nicht die beste Art Dinge in einen Computer einzugeben. Ich zweifel zum Beispiel immer daran, ob eine Maus wirklich eine gute Idee war. Ich habe mittlerweile öfter Beschwerden mit dem rechten Unterarm. Wenn ich viel mit der Maus arbeite, dann entwickel ich fiese Schmerzen, die ähnlich wie Zahnschmerzen sind. Diese Schmerzen verschwinden, wenn ich die Maus links liegen lasse und den Arm generell etwas schone. Doofe Arbeitskollegen witzeln darüber und sind überzeugt davon, dass ich mich zu oft anfasse, aber das ist natürlich nicht der Grund. Solche Beschwerden werden fast immer von dauerhaften Fehlbelastungen ausgelöst.

Ich persönlich war von dem Touchpad des Macbooks sehr überzeugt. Ich kenne bis heute kein Notebook und kein Laptop, welches ein so gutes Touchpad hatte. Aber nicht nur das Touchpad ist wichtig; auch, dass das Betriebssystem sinnvolle Gesten unterstützt. Ich konnte mir vor dem Macbook nicht vorstellen, dass man den ganzen Tag mit so einem Touchpad arbeiten kann, aber Apple hat es hinbekommen. Sowas hätte ich gerne auch für Windows, aber es scheint nichts Vergleichbares zu geben.

Ist denn ein Touchpad so viel anders als eine Maus? Nein, aber es ist anders positioniert. Probier es mal aus. Leg den Unterarm mittig vor deine Tastatur. Dann lass deinen Ellenbogen an der gleichen Stelle und bewege deinen Unterarm nach rechts; da wo sonst die Maus steht. Du wirst sofort eine leichte Spannung im Unterarm spüren. Wieso das denn?! Wenn dein Arm rechts neben der Tastatur liegt, dann ist er völlig entspannt, wenn die Hand so positioniert ist, dass der Daumen nach oben zeigt. Um aber eine konventionelle Maus zu bedienen, musst du Hand so drehen, dass der Daumen links neben der Maus ist. Durch diese Haltung wird diese Spannung erzeugt, die Schmerzen erzeugen kann.

Wenn also ein Hersteller dieses tolle Apple Touchpad auch für Windows bauen möchte, dann wäre ich sehr dankbar :). Aber bitte an die Gesten denken; ohne sinnvolle Gesten ist ein Touchpad nur halb so sinnvoll.


CHECK24 als Arbeitgeber


Diese Woche wurde heiß diskutiert, dass Firmen es sich mittlerweile zu leicht machen bei der Suche von neuen Mitarbeitern. Auslöser war ein Bewerber, der sich bei einer Firma vorgestellt hatte. Diese Firma verlangte von ihm, dass er zu Hause ein kleines Projekt programmiert. Der Bewerber bekommt einige Tage Zeit und darf das Ergebnis dann abgeben. Jemand bei der Firma schaut sich das an und entscheidet, ob der Bewerber interessant ist oder nicht.

Viele sind der Meinung, dass sie keine andere Wahl haben. Sie finden eine interessante Firma, eine gute Bezahlung, eine gute Lokation und sie wollen den Job. Diese Bewerber sind also gewillt diese Hausarbeit zu leisten. Unentgeltlich. Einige andere Menschen, die mit beiden Beinen im Beruf stehen, reagieren mit Entsetzen auf diese Praktiken und empfehlen den Stundensatz eines Freelancers zu fordern. Mmmh...

Hier in Deutschland ist sowas noch eher unüblich. Ich persönlich kenne es auch, dass man als Bewerber geprüft wird. Bei einer Firma musste ich schon direkt beim Vorstellungsgespräch ein Programm entwerfen, was auch tatsächlich in die Domäne der Firma passte. Sie wollten damit ganz direkt prüfen, ob ich grundlegend in die Firma passe. Ich sag auch einfach mal die Wahrheit: jeder Programmierer hat starke Schwächen und nur wenig Stärken. Die meisten Programmierer haben sich in einem gewissen Bereich fit gemacht und sind da exzellent. Und dann gibt es die Programmierer, die alles ein wenig können. Je nach dem, was für eine Firma und Domäne man hat, muss man eben die richtige Wahl treffen. Ich konnte die Aufgabe, ganz nebenbei, problemlos lösen und musste die Lösung dann auch noch mit einem Beamer vor vielen Menschen vorstellen. Das Ulkige an diesem Vorstellungsgespräch war, dass es mitten im Sommer war; ich hatte zu der Zeit noch einen Audi 80 ohne Klimaanlage und wieso auch immer; ich hatte mich dazu entschieden mir ein Hawaii-Hemd anzuziehen; ich habe ganz viele davon und für mich ist das im Sommer eine normale Kleidung. Als ich aber bei der Firma ankam, begrüßten mich Menschen in vermutlich teuren Anzügen. Oops :)! Ich konnte den Job aber landen. Lange bin ich aber nicht geblieben; ich habe gekündigt, als ich kein Hawaii-Hemd mehr im Schrank hatte.

Bei CHECK24 musste ich typisch amerikanisch erst mal ein Telefon Interview bestehen. In einer Stunde wurden mir gruselig viele Fragen gestellt; jede korrekte Frage gab X Punkte; jede unsichere Antwort weniger und jede falsche Antwort keine Punkte. Ja! Ein Punktesystem am Telefon. Ich muss gestehen, dass ich das nicht schlimm empfand. Als Programmierer muss man eben gewisse Dinge wissen und wenn eine Firma das abfragt, um potentielle Kandidaten rauszufiltern, dann ist mir das recht. Ich beschäftige mich tagtäglich mit "Software" und ich finde es gut, wenn ich das Wissen sinnvoll nutzen kann. Das Telefonat hatte ich gut überstanden; direkt danach wurden die Antworten bewertet und man hat mir gesagt, dass ich "gut" bin. Dass die Fragen vom potentiellen Teamleiter gestellt werden war für mich extrem positiv, da man am Telefon schon mal erfahren konnte, ob man mit der Person überhaupt klar kommt. Wenn man mit einer Person eine Stunde lang telefonieren muss, dann wird man merken, ob man mit dieser Person klar kommt oder nicht ;). Das lief alles ganz gut und ich hatte einen guten Draht zu der Person.

Wie gesagt; das Telefoninterview hatte ich überstanden; ich wurde direkt eingeladen! Yay! Ich wurde eingeladen einen Tag vor Ort zu arbeiten. Viele würden das als schlecht empfinden. Für mich war das aber eine Möglichkeit zu sehen, wie das da so ist. Die Firma war vorbildlich. Ich bin angekommen, wurde nett empfangen, _allen_ Mitarbeitern vorgestellt und der Arbeitsplatz war komplett eingerichtet. Ich konnte direkt anfangen zu arbeiten. Das sollte selbstverständlich sein, meint man, aber das ist es tatsächlich nicht. Der Teamleiter überreichte mir dann ein Pflichtenheft und erklärte mir, was ich zu tun habe. Mittags ist man dann zusammen Essen gegangen und hat so auch die potentiellen Kollegen in einem privateren Gespräch kennengelernt. Damit habe ich persönlich wenig Probleme :). Zum Glück. Am Ende des Tages hat man sich dann zusammengesetzt und die Implementierung des Projekts diskutiert. Man hat nach einfachen Kriterien bewertet, wie gut die Programmierung ist. Das lief alles sehr gut. Ich empfand diese Art und Weise als sehr motivierend und sinnvoll. Sicher war das alles unbezahlt, aber die Erfahrung war sehr wertvoll.

Wieso ich sowas gut finde? Nun, was nützt es mir, wenn eine Firma denkt, dass ich ein guter Mitarbeiter wäre, ohne es wirklich zu wissen? Davon habe ich persönlich als auch die Firma nichts. Indem ich einen Tag dort arbeite und dieses Demoprojekt umsetze, wird beiden Parteien klar, ob das passend ist. Sagen wir mal, ich bin Windows Treiber Spezialist. Ich entwickel Windows Treiber für Hardware und bin darin ein Pro. Was würde mir ein Job bei CHECK24 bringen? Nichts. Wieso? Weil man dort keine Windows Treiber entwickelt :). Das ist eher web- und Schnittstellen-lastig. Deswegen finde ich Probearbeiten gar nicht so verkehrt.

Im Unterschied zu diesen US-amerikanischen Firmen arbeitet man bei CHECK24 aber zusammen mit dem potentiellen Team. Das ist deutlich anders als das, was bei einigen US-Firmen praktiziert wird. Indem eine Firma einen Bewerber nach Hause schickt, um eine Hausarbeit erledigen zu lassen, signalisiert die Firma, dass sie sich weniger Mühe geben möchte als der Bewerber. Das ist in dem Fall von CHECK24 ganz anders gewesen. Hier hat man sich für den Bewerber wirklich Mühe gegeben. Und ich schreibe nicht darüber, weil mich CHECK24 bezahlt, sondern weil ich das so wirklich erlebt und es positiv in Erinnerung habe. Bei mir handelte es sich um CHECK24 in Münster.

Ich hatte zwar einen Vertrag zugeschickt bekommen, mich aber letztendlich gegen CHECK24 entschieden. Das liegt aber weniger an CHECK24. Ich bin mit meinem Job einfach, relativ betrachtet, zufrieden. Der Gedanke jeden Tag nach Münster zu pendeln gefiel mir letztendlich nicht. Ich bin auch mittlerweile sehr an meine Arbeitskollegen gewöhnt. Das ist irgendwie wie eine Familie. Was mir bei CHECK24 außerdem nicht gefiel war der geringe Jahresurlaub und die Tatsache, dass man beim Gehalt mit einem Bonussystem arbeitet. Mir wird zwar an jeder Ecke erzählt, dass ein Bonussystem gut sei, aber ich weiß nicht :)...ich geh doch nicht zur Arbeit, um 80% zu leisten?! Vielleicht macht das jemand, aber wieso sollte dieser jemand dann noch einen Bonus bekommen, wenn er 100% leistet, obwohl 100% ja doch die Norm sein sollte?! So ein System führt doch letztendlich nur dazu, dass man seine Arbeit so optimiert, dass man diesen Bonus erhält. Und zwar egal wie; Hauptsache Bonus. Ich mag diese Denkweise einfach nicht, weil bei sowas die Gefahr besteht sich zu sehr auf sich zu konzentrieren. Das ist einfach nicht schön. Ich bin für die Firma entweder von Nutzen oder eben nicht. Vermutlich hat sich bei mir deswegen eine Skepsis entwickelt, die dazu führte, dass ich im "Safe Haven" verbleiben möchte.

Wenn also CHECK24 bei dir Interesse zeigt, dann probier das ruhig aus. Ich hatte den Eindruck, dass diese Firma sich bemüht. Entscheide dann selbst, ob dir die Rahmenbedingungen zusagen. Bei mir war das nicht gegeben.

Vielleicht noch interessant zu wissen, wieso CHECK24 Interesse an mir hatte; Der Grund war ein Headhunter und mein Profil. So einfach kann das manchmal sein. Ich bin nicht grundlegend unzufrieden mit meinem Job, aber wenn mir ein Headhunter vorschlägt sich Firma XY anzusehen, weil mein Profil passt, dann nehme ich diese Möglichkeit gerne wahr. Ich bin allerdings etwas bedrückt gewesen, als ich abgesagt hatte, denn da wurde mir klar, dass ich für den Headhunter nur eine Ware bin und das mag ich natürlich nicht :)! Hauptziel der Headhunter ist btw. immer noch Xing, falls du suchst. Und bitte nicht übertreiben; das glaubt dir eh niemand :D!

Abschließend will ich betonen, dass ich Probearbeiten wie bei CHECK24 sehr gut finde. Alles andere ist für beide Parteien nicht gut.


AT&T verkackeiert die Amerikaner


So liebe ich das! AT&T bewirbt in den USA ein 5G Mobilfunknetz. Und der Deutsche so: "wie jetzt? ich bin froh, wenn in meinem Display 3G oder H/H+ steht!". Hier in Deutschland und überall auf der Welt ist das 4G LTE Netz aktuell das Beste, was man mit einem modernen Smartphone aktuell nutzen kann. Ein 5G Netz gibt es aktuell noch gar nicht. AT&T versucht mit "5G Evolution" Kunden zu fangen. Dumme Kunden :).

Viel Erfolg!


Electron ist scheiße


Electron ist die Basis von Atom, Visual Studio Code und vielen anderen Anwendungen. Es erlaubt ungeübten Programmierern brauchbare GUI Anwendungen zu erzeugen.

Wenn du es noch nicht kennst: Electron ist eine Chromium Shell mit node.js Unterstützung. Man kann mit Webtechnologien Desktopanwendungen implementieren. Um das GUI zu bauen, muss man Webtechnologien nutzen. Also HTML, CSS und JavaScript. Geil oder? Ich muss gestehen, dass es Desktopanwendungen ermöglicht, die sonst nur schwierig zu realisieren gewesen wären.

Für Windows ist die Runtime ca. 50MiB groß. Gepackt. Electron hat in den letzten Tagen und Wochen viele Reaktionen verursacht. Für viele Menschen ist Electron einfach viel zu "fett" und langsam. Für simple Anwendungen wird extrem viel Arbeitsspeicher genutzt und in vielen Fällen wird eine hohe CPU-Last beobachtet, obwohl das Programm eigentlich nichts berechnet. Bei vielen ist der Auslöser wohl Slack :D...Slack ist eine beliebte Chatsoftware bei Programmierern und Podcastern. Unter macOS werden mittlerweile viele kleinen "Tools" auf Basis von Electron implementiert. Viele Benutzer haben mittlerweile bemerkt, dass Anwendungen basierend auf Electron nicht gut für ihr System sind. Viele Programmierer, die ihre Anwendungen auf Basis von Electron entwickelt haben, bekommen Probleme mit der Performance und haben extremen Aufwand das Problem zu lösen.

Electron wird aber auch viel Unrecht getan. Sicher verbrauchen Electron basierende Apps mehr Arbeitsspeicher, aber oft hat man auch echt gut aussehende Anwendungen, die ohne Webtechnologien so einfach gar nicht umsetzbar gewesen wären. Ich will Electron nicht gut und schlecht reden; ich weiß, dass es aktuell sehr viele Electron basierende Anwendungen gibt, die einfach nur kernschrott sind, weil sie einen völlig falschen Ansatz verfolgen, aber im Falle von Slack kann man sehen, dass die Benutzer neuartige GUIs gut finden. Und es ist fraglich, ob Slack den Client auch mit nativen Bibliotheken so schnell hätte implementieren können. Ich kenne die Antwort.

Letztendlich muss man sich als Kunde die Frage stellen, ob man gewillt ist eine Anwendung zu benutzen. Wenn Electron basierende Anwendungen einen guten Kompromiss darstellen, so wird die Akzeptanz hoch genug sein. Wir als Programmierer machen andauernd Kompromisse. Bei der IDE zum Beispiel. Wir finden es geil, wenn "ed", der Unix Editor unsere Datei innerhalb von Millisekunden lädt, aber wir finden es ungeil, dass der Editor sonst nix kann. Also benutzen wir eine IDE, die total viel RAM und CPU braucht. Aber wir haben den Komfort, dass sie uns extrem unterstützt. Das ist ein Kompromiss. Uns ist der Arbeitsspeicherverbrauch scheiß egal, da der Nutzen einer IDE sehr hoch ist. Ähnlich ergeht es den meisten Nutzern auch bei Electron basierenden Anwendungen. Ob eine Anwendung nun 20 oder 200MB Ram verbraucht, spielt bei den meisten Computersystemen heute keine Rolle mehr. Zumindest nicht bei dem typischen Anwendungsfall.

Entgegen der reißerischen Überschrift will ich also Electron etwas aus der Schusslinie bringen. Ich persönlich mag Electron nicht, weil die Schnittstellen für eine Desktopanwendung so extrem beschnitten sind, dass es mir nicht mehr gefällt. Viele Dinge, die man nativ einfach implementiert, müssen hier schwierig nachgebaut werden. Das gefällt mir nicht. Dass man GUIs in HTML, CSS und JavaScript bauen muss, liegt mir auch nicht, da ich als User solche GUIs als "falsch" und langsam wahrnehme. Für eine Website mag das in Ordnung sein; nicht für eine Desktopanwendung. Ich muss aber auch zugeben, dass es mich bei diversen Anwendungen einfach nicht stört. Wobei es ein schlechtes Beispiel gibt: Skype for Linux Beta. Das basiert auf Electron. Je länger man es benutzt, desto langsamer wird es. So langsam, dass man es am Ende nicht mehr benutzen kann; kein Witz :).

Ich finde ja Abstraktionen gut, aber bei Electron wird eines nicht abstrahiert und das ist das GUI. Ist das nicht verrückt? Electrons Use-Case ist cross-platform GUI Anwendungen. Und was es nicht abstrahiert sind GUIs :). Es geht quasi davon aus, dass der User keine native-Experience hat. Es gibt für macOS optimierte HTML, JS, CSS Komponenten, die versuchen das GUI von macOS exakt nachzubauen. Sowas gibt es vielleicht auch für Windows und Linux. Aber bei Linux hat man schon das Problem, dass viel mit Themes gearbeitet wird. Es gibt da einfach keinen einheitlichen Look. Letztendlich bauen die Electron Entwickler also ihre GUI einheitlich. Das GUI sieht unter Windows, Linux und macOS immer gleich aus. Sorry, aber ernsthaft? :)

Gute Idee? imho: nein.


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