programmierer-nachrichten.de
Startseite Podcast RSS Impressum

Podcast Folge 10


Wie versprochen der wöchentliche Podcast!

Dieses Mal Folge 10. Intel sagt IDF17 ab, Flix Programmiersprache 0.1 veröffentlicht, Visual Studio Code nun bald auch offiziell für ARM, Apple verschenkt iMovie, GarageBand und iWorks, Wenn das Unternehmen rostet, JetBrains Rider IDE mit F# Unterstützung.

Viel Spaß damit!


JetBrains Rider IDE mit F# Unterstützung


JetBrains ist ja diese verrückte Firma, die versucht für jede Programmiersprache eine IDE zu bauen. Bei mir fing das mit IntelliJ an, die sehr gute Java IDE. Beruflich arbeite ich mit PHPStorm, viele arbeiten mit PyStorm, dann gibt es WebStorm, usw...mit Rider will JetBrains eine IDE für C# anbieten. Die Arbeiten daran sind noch lange nicht fertig, und dennoch kündigen sie Unterstützung für die Programmiersprache F# an. Das erfreut viele Fans dieser Programmiersprache.

F# ist eine funktionale Programmiersprache von Microsoft.


Wenn das Unternehmen rostet


Am Anfang war die Ausbildung. Alles war spannend und vielleicht auch neu. Privat hatte man sich unbewusst weitergebildet, weil man einfach aus Neugier Dinge ausprobiert hat. Dann kam der Job. Auch da war anfangs alles super spannend, aufregend und neu. In dieser Phase lernt man am meisten. Immer, wenn man etwas Neues macht, macht man es vielleicht auch falsch. Und indem man Dinge falsch macht, lernt man am meisten. Das kann jeder nachvollziehen, denn das, was man falsch gemacht hat, brennt sich quasi in das Gehirn ein; so auch die richtige Lösung. Über grandiose Fehler kann man auch jahrelang danach noch perfekt im Detail berichten und hoffentlich auch lachen.

Nach einigen Jahren im Job besteht aber die Gefahr, dass man sich nicht mehr weiterbildet. Das passiert relativ häufig, denn wenn man als Programmierer in einer Firma arbeitet, welche mehr oder weniger eine ähnliche technischologische Basis für ihre Produkte verwendet, dann braucht man auch nichts Neues zu lernen. Man verbessert höchstens seine Fähigkeiten mit der bestehenden Technologie umzugehen. Um das mal beispielhaft zu beschreiben: ich kann heute noch sinnvolle Programme mit Delphi 4 (und vermutlich auch früher) entwickeln; die Programme können den aktuellen Windows 10 Stil haben und laufen auch immer noch ohne Probleme. Ein anderes Beispiel: ich kann auch heute noch Webanwendungen mit "CGI" schreiben. Das sollte heute sogar besser funktionieren als damals, weil wir bessere Hardware haben. Es ist also grundsätzlich möglich "moderne" Software mit sehr alter Technologie zu implementieren.

Als Arbeitnehmer hat man die Pflicht sich selbst darum zu kümmern sich weiterzubilden. Ich höre häufig von Arbeitnehmern, dass der Arbeitgeber sich doch bitte um Weiterbildungsmaßnahmen kümmern soll. Der Arbeitgeber hat oft aber keinen Bedarf seine technologische Basis ständig zu erneuern; wieso also sollte er seine Arbeitnehmer in neue Technologien weiterbilden? Das würde ja nur dazu führen, dass die Arbeitnehmer den Drang verspüren die technologische Basis im Unternehmen zu modernisieren. Arbeitnehmer verspüren diese Lust aus freien Stücken und ohne Bedarf an besserer Bezahlung; das macht ihnen einfach nur Spaß. Wieso also sollte ein Arbeitgeber soetwas nur wollen? Als Arbeitgeber gibt es absolut kein Indiz dafür, dass solche Maßnahmen auch nur im entferntesten Sinne Geld erwirtschaften. Also macht man sowas nicht. Ist doch völlig logisch.

Ich bin aber auch der Meinung, dass es nicht schaden kann sich als Arbeitnehmer selbst um die Weiterbildung zu kümmern. Selbst, wenn man dann keine Möglichkeiten hat dieses Wissen in dem Unternehmen zu nutzen, so hat man sich immerhin einen Vorteil gegen viele andere Mitbewerber erarbeitet. Wieso? Weil sich die wenigsten privat weiterbilden. Aber es muss ja auch nicht immer privat sein. Wie oft schaut man auf der Arbeit in seine privaten Emails? Wie oft guckt man sich ein lustiges Video an? In dieser Zeit könnte man sich auch einfach irgendeinen Beitrag durchlesen, der das Wissen erweitert. Das würde bedeuten, dass man sein Gehirn anstrengen muss und das ist in vielen Firmen einfach nicht mehr notwendig. In vielen Firmen reicht es leider Befehlen zu folgen. Soetwas führt letztendlich zum Scheitern der Firma.

Wenn die Mehrheit der Arbeitnehmer in der Firma keine Motivation haben sich weiterzubilden, dann ist es für einzelne Personen innerhalb der Firma extrem schwierig Neues zu etablieren. Ich hatte eine Zeit lang Scheme gelernt und war von der Art und Weise der Programmierung und Herangehensweise absolut überrascht und erfreut. Das klingt vielleicht komisch, aber bei Scheme muss man sich schon vorher ausführlich darüber Gedanken machen, wie eine "Routine" auszusehen hat. Natürlich muss man das auch in anderen Programmiersprachen, aber bei Scheme ist es um ein Vielfaches extremer. Wie auch immer; eines Tages baute ich ein Closure auf der Arbeit ein und committete es. Das war kein komplexes Closure; ganz kurz und eben genau dem Anwendungszweck entsprechend passend. Für diesen Commit musste ich mich ausführlich rechtfertigen und am Ende hatte ich das Gefühl, als ob ich rechtfertigen musste, dass Lochkarten vielleicht nicht mehr ganz so optimal sind. Ich hatte zum Glück Rückendeckung vom damaligen Projektleiter, so dass ich diese Änderung nicht zurücknehmen musste. Ich bin trotzdem mit einem echt beschissenen Gefühl nach Hause gefahren. Ich war tatsächlich leicht schockiert und verärgert.

In vielen Unternehmen findet also tatsächlich eine Verdummung der Arbeitnehmer statt. Die meisten Arbeitnehmer merken es nicht, weil sie ja mit ihrem Wissen die Arbeit ohne Probleme erledigen können. Aber sobald man dieses Umfeld ändert, merken diese Arbeitnehmer, dass ihnen Wissen fehlt und dann gibt es eigentlich nur zwei verschiedene Reaktionen, auf die man achten sollte. Entweder der Arbeitnehmer lehnt es ab Neues zu lernen oder er ist wissbegierig und will das Neue lernen. Wenn man Abneigung bemerkt, sollte man den Arbeitnehmer unbedingt darauf hinweisen. Dann hat er die Chance zu reagieren und vielleicht nicht den rostigen Tod zu sterben.

Aber wie hält man sich technologisch fit? SideProjects? Privatprojekte? Privatprojekte sind tatsächlich eine Möglichkeit sich fit zu halten, aber oft haben Privatprojekte viele Nachteile. Oft werden Privatprojekte für "andere" entwickelt. Das ist ein riesen Fehler, den ich zum Beispiel oft gemacht habe. Mittlerweile habe ich verstanden, dass das ein Fehler ist. Wenn ich Software für andere Menschen schreibe, dann kann es passieren, dass ich in meiner freien Zeit eine Software entwickeln muss, die ich selber nicht nutze. Das ist frustrierend und auch nicht im Sinne der "Kunden". Die beste Software wird auch vom Programmierer selbst benutzt. Wenn du also ein Privatprojekt starten willst, stell dir die Frage, ob du das für dich programmierst. Wenn ja, dann spricht nichts dagegen. Wähle am besten eine freie Lizenz, falls du es auf öffentlichen Portalen veröffentlichst, damit niemand mit deiner privaten Arbeitskraft Geld macht, ohne dass du davon auch profitierst.

Eine andere Möglichkeit sich weiterzubilden sind Bücher. Meiner Meinung nach sind viele neuen Bücher aber ungeeignet, um alte Programmierer weiterzubilden. Viele neuen Bücher haben das Problem des "one-project-only-lazyness". Das habe ich mal eben erfunden. Die meisten Programmierbücher fangen mit einem riesen Blabla Intro an, erzählen über Gott und die Welt, um dann zu verkünden, dass man so clever war für das ganze Buch nur ein Projekt zu haben. Ha! Da klappe ich meist schon wieder zu und lege das Buch weg. Meistens sind diese Bücher auch nicht sehr tief. Bei dieser Art von Büchern ist man fast immer gezwungen Befehle zu befolgen, um dieses eine supertolle Projekt auch sinnvoll zu benutzen. Es ist hier oft nur wichtig, dass man nicht überliest, dass Datei X an Stelle Y kopiert wird. Wenn man diesen Büchern einfach nur blind folgt, lernt man nicht viel, weil man sich über die Details keine großartigen Gedanken macht. Und sowieso...Bücher, die zugepflastert sind mit Codezeilen? Das Medium ist meiner Meinung nach für diesen Zweck falsch. Es gibt aber auch viele Fachbücher, die ohne viel Codezeilen auskommen. Da ist das Wissen teilweise so extrem komprimiert, dass man an wenigen Seiten lange festhängen bleibt. Solche Bücher sind wertvoll und leider auch sehr teuer. Ich pauschalisier zwar ungerne, aber bei Büchern ist es oft so, dass der Preis auch die Qualität widerspiegelt.

Eine weitere Möglichkeit sich weiterzubilden sind MOOCs. Massive Open Online Courses. Einfach mal danach suchen. EDX als auch Coursera sind da ganz weit oben. Es gibt auch von Microsoft etwas Ähnliches: die Microsoft Virtual Academy. Alles völlig kostenlos und teilweise sehr gut, aber auch viel Mist dabei. Man muss eben selektieren. Es gibt auch sowas wie Pluralsight oder Codeschool, wo man gegen eine Gebühr sich in spezielle Themen schnell einarbeiten kann. Das ist meiner Meinung nach eine sehr effektive Lernmethode. Die Themen sind oft sehr speziell und man kann das Gelernte sofort in der Realität anwenden.

Eine weitere, echt spannende Möglichkeit, sich weiterzubilden sind Programmierwettbewerbe. Das Projecteuler Projekt zum Beispiel regt zum Nachdenken an. Man muss diverse Probleme lösen. Wie man das macht, ist erst mal egal, aber die Lösung muss stimmen. Das klingt einfach, aber bei diesen Problemen strengt man sein Gehirn enorm an und es macht sehr viel Spaß, da man teilweise sehr kreativ sein muss. Man stößt an seine Grenzen und weil man das Problem trotzdem lösen will, bildet man sich weiter; nur um das Problem zu lösen.

Eine weniger verbreitete Methode ist es sich Podcasts anzuhören. Es gibt auch sehr fachliche Podcasts. Zum Beispiel den Fachinformatiker Podcast. Aber am besten einfach mal suchen. CRE (nur bedingt), Chaos Radio, Heise Developer, und wenn auch viel zu selten veröffentlich: der INNOQ Podcast.

Wie auch immer man sich aber weiterbildet, ist letztendlich egal. Jede Lernmethode hat seine Vor- und Nachteile. Letztendlich ist jeder Mensch anders und jeder lernt anders. Manche können Bücher gut lesen, manche mögen diese "Projektbücher" etc... Wichtig ist nur, dass man sich überhaupt weiterbildet. Und, ja, wenn man sich privat in eine ganz andere Richtung weiterbildet, dann ist das natürlich auch völlig in Ordnung. Hauptsache es bringt einen persönlich irgendwie weiter; und wenn es nur die Selbstbefriedigung ist.


Apple verschenkt iMovie, GarageBand und iWorks


Pages, Keynote, Numbers, iMovie als auch GarageBand sind nun kostenlos im App Store von Apple erhältlich. Ich bin zwar etwas irritiert, da zu meiner Zeit mit Apple das sowieso kostenlos erhältlich war; GarageBand war einfach vorinstalliert und der Rest, glaube ich, auch; oder man musste es nachinstallieren. Ich bin mir nicht mehr ganz sicher. Wenn man einen gebrauchten Mac gekauft hatte, musste man diese Software kaufen. Ok, ich hatte nie einen gebrauchten Mac gekauft.

Pages ist quasi das Word von Apple, Keynote ist Apples Powerpoint, Numbers ist Apples Excel, iMovie ist Apples Videoschnittprogramm und GarageBand ist einfach nur geil (sorry). Pages als auch Numbers wurden in letzter Zeit sehr kritisch bewertet. Apple versuchte diese Programme mit den iOS Varianten zu vereinheitlichen. Das ist Apple anfangs nur schwer gelungen. Mittlerweile haben sich die Benutzer an die schlechte Software vermutlich gewöhnt. Bei Numbers e.g. gab es bei dem Rewrite anfangs Probleme von der Art: "German user can't use decimal points from numeric keypad.". Oder dass keine Druckvorschaufunktion existiert. Die haben aus richtigen Programmen eben "Apps" gemacht und das mochten die Benutzer gar nicht. Keynote muss man allerdings etwas in Schutz nehmen; das ist nämlich ganz passabel umgesetzt. Mit iWorks '09 wären wohl aber die meisten besser bedient gewesen.

Interessant sind für mich die Beweggründe von Apple. Jetzt, wo Apple auf einmal auch wieder einen richtigen Mac Pro bauen will, irritiert mich dieser Schritt. Was ist da bei Apple los? Also wieso bauten sie überhaupt erst diese Mülltonne von Mac Pro?! Aber ok, das ist ja gar nicht das Thema, aber es gibt selbst bei den hardcore Apple Benutzern immer öfter die Frage "wieso?". Noch nie habe ich in den letzten Monaten so extrem viel Kritik über Apple von Apple hardcore Benutzern gelesen und gehört. Das ist schon wirklich alarmierend.

Um die Software zu nutzen, benötigt man macOS 10.12 (Sierra) oder neuer. Es wird aktuell darüber spekuliert, wann Apple diese Produkte einstellt. Als Apple zuletzt den Preis von Aperture senkte, wurde das Produkt auch kurzerhand eingestellt. Dieser Schritt kann aber auch bedeuten, dass Apple ein großes Update dieser Apps plant und mit der kostenlose Verteilung kurzerhand die Userbase erweitern möchte. Ich bin gespannt.


Visual Studio Code nun bald auch offiziell für ARM


Visual Studio Code ist nicht Visual Studio! Ich weiß noch nicht, ob Microsoft sich mit diesem Namen einen Gefallen getan hat. Wenn ich Visual Studio Code in der Firma erwähne, denken viele, die Visual Studio nicht kennen, an eine dicke IDE, aber genau das ist Visual Studio Code ja gar nicht.

Visual Studio Code ist eigentlich ein simpler Texteditor, der aber eigentlich eine IDE sein will, es aber nicht ist. Es ist schwierig zu beschreiben, was Visual Studio Code eigentlich genau ist. Es ist weder ein Editor, denn dafür kann Visual Studio Code zuviel, noch ist es eine IDE, denn dafür kann es zu wenig. Man kann Visual Studio Code als perfekte Typescript, Javascript und HTML "IDE" benutzen. Man kann Typescript und Javascript Code debuggen; auch Node.js Anwendungen kann man debuggen. Auch bietet Visual Studio Code Unterstützung für Git (default) und mittlerweile kann es auch andere VCS und DVCS Systeme integrieren. Für gewisse Dinge ist Visual Studio Code mangelhaft; für PHP Entwicklung zum Beispiel ist es nicht zu gebrauchen, auch wenn es viele Erweiterungen gibt; diese machen den Editor aber sehr langsam und wirklich sinnvoll sind die Erweiterungen für PHP auch nicht. Wenn man PHPStorm als Referenz nimmt, wäre Visual Studio Code in diesem Fall komplett durchgefallen.

Visual Studio Code ist ein Editor auf Basis von Electron und Monaco. Das ganze "Ding" wurde in Typescript geschrieben. Der Editor ist einfach erweiterbar, es gibt bereits extrem viele Erweiterungen. Der Editor wirkt außerdem sehr poliert. Jeder, der diesen Editor installiert, wird ihn vermutlich erst mal mögen. Er bietet viele Keyboard Shortcuts, so dass man fast alles mit der Tastatur bedienen kann. Das macht ihn bei Programmierern sehr beliebt. Diese Art der Bedienung hat sich mittlerweile bei allen IDEs und bei fast allen Editoren durchgesetzt.

Aber ich schweife ab. In Visual Studio Code wurde nun ein Pull Request durch Microsoft akzeptiert, welcher nun offiziell Unterstützung für die ARM Prozessorarchitektur und die Linux Plattform einführt. Das bedeutet, dass man wohl bald auch Visual Studio Code Builds für Chromebooks und Raspberry Pi runterladen und installieren kann.

Viele Menschen motzen ja, dass Visual Studio Code auf Electron basiert. Electron ist ja quasi ein ganzer Chrome Webbrowser. Man sagt, dass alles, was auf Electron basiert, langsam ist. Aber ich kann das in diesem Fall nicht teilen. Ich bin ganz sicher kein Freund von Electron, Chrome oder irgendeines anderen Produkts von Google, aber hier hat Microsoft die Technologie ganz gut genutzt. Das Ding bei Visual Studio Code ist, dass es recht viel kann, echt gut aussieht und verdammt gut zu bedienen ist. Wenn ich Code auf ein sehr großes Projekt loslasse, so startet es in unter 3 Sekunden.

Visual Studio Code Alternativen wären Atom, Sublime Text, Brackets und TextMate (macOS only). Sublime Text wird gerne erwähnt, aber es ist Closed Source. Visual Studio Code ist OpenSource, aber der Quellcode steht unter keiner freien Lizenz. Das wiederum ist schlecht (für Microsoft). Adobe Brackets ist auch unter einer OpenSource Lizenz verfügbar, aber auch hier handelt es sich um eine nicht freie Lizenz. Atom ist hier eigentlich der Urvater. Nur deswegen gibt es Electron überhaupt. Interessant ist, dass Atom mittlerweile den Anschein macht nicht mehr wirklich aktiv weiterentwickelt zu werden. Atom ist extrem erweiterbar. Man kann bei Atom mit Erweiterungen wirklich alles verändern. Das unterscheidet Atom zu Visual Studio Code, wo man nur gewisse Dinge mit Erweiterungen anpassen kann. Das sorgt bei Atom oft dazu, dass der Editor sehr langsam wird, weil die Erweiterungen von unerfahrenen Programmierern implementiert wurden und bei Visual Studio Code, dass der Editor fast immer gleich schnell bleibt. Brackets hatte ich kurz mal ausprobiert, aber ich bin generell kein Fan von Adobe und deswegen fällt das eh raus. Ich muss aber zugeben, dass es auch bei Visual Studio Code Erweiterungen gibt, die man lieber nicht installiert. Beispielhaft wäre da "PHP Extension Pack". Wenn man PHPStorm gewohnt ist, wird man da schreiend weglaufen :). Das macht Visual Studio Code zwar nicht grundsätzlich langsam, aber doch, irgendwie schon :). Vielleicht sollte man sich bei der Entwicklung beteiligen und die Probleme beseitigen anstatt sich hier darüber lustig zu machen.

Visual Studio Code ist auf jeden Fall eines meiner Standardtools auf dem Rechner. Unter Linux als auch unter Windows. Für HTML und Javascript ist das echt ein gutes Tool. Für C# kann man Visual Studio Code auch benutzen, aber auch nur für .net core und asp.net core mvc. Zumindest ist es dafür gedacht. Die Benutzer finden bestimmt Wege es auch anders zu nutzen :). Bitte schreibt mir nicht, dass notepad++ oder $editor besser ist. Ich hasse notepad++ und mir sind eure Editoren egal :). Ich habe jahrelang "joe" anstatt "vim" genutzt und finde ihn immer noch besser, weil (er ist technisch nicht besser, aber ich mag ihn halt ;)).

So und nun programmier! mit notepad.exe oder was auch immer. Hauptsache das Ergebnis ist gut! :) Wenn du mit "ed" programmieren kannst, bist du ein Held.


Flix Programmiersprache 0.1 veröffentlicht


Flix ist eine funktionale und logische Programmiersprache. Flix wurde in Java implementiert und benötigt mindestens Java 8. Flix wurde inspiriert von Scala, OCaml und Datalog. Datalog? Oh verrückt :). Boom!

Flix wurde entwickelt von Magnus Madsen. Magnus ist Däne und ist 31 Jahre alt. Er hat den Großteil seines Lebens damit verbracht zu studieren.

Der Flix Compiler wurde in Java implementiert und er emittiert Java Bytecode.

Aber ich komme einfach nicht auf den Datalog Wikipedia Eintrag klar. "Derzeit entwickeln Forscher auf Basis von Datalog, das für extreme Parallelität geeignet ist, die Programmiersprache Boom[2] für die effiziente Nutzung von Rechnerwolken.". Datenwolken...

Meine Vermutung bezüglich Flix ist: rein wissenschaftlich; Finger weg. Die Programmiersprache wird es bald nur noch im Archiv des WWW geben.


Intel sagt IDF17 ab


Intel hat bekannt gegeben, dass dieses Jahr kein IDF mehr stattfindet. Das IDF ist das Intel Developer Forum. Intel hat das Event immer dafür genutzt neue Produkte anzukündigen.

Das soll aber nicht heißen, dass Intel nun kein Interesse mehr daran hat über Produktneuigkeiten zu informieren. Sie möchten es nur nicht mit so einer großen Veranstaltung machen.

Intel ist mittlerweile sehr weit aufgestellt. Um die Vielzahl von Produkten vorzustellen möchten Sie spezialisierte Events etablieren. So können sie gezielter auf ihr Publikum zugehen.


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