obsidian-vault/Journal/2024_08_18.md

2.6 KiB

aliases language created summary tags
German 2024-08-18
journal
  • Hab heute morgen diese Nachricht in eine Signal Gruppe mit Dominik, Silas und Sebastian geschickt:
    • Falls es euch interessiert, hab gestern nach 8 Jahren Dauernutzung mich dazu entschieden, Python als Sprache für Hobby- und berufliche Projekte liegen zu lassen. Gründe sind:

    • dynamische statt statische Typisierung. Fand es 2016 cool weil ich damals nur Java kannte und das verbose af ist (boilerplate code)

    • um ein wirklich schnelles programm zu schreiben ist man gezwungen entsprechende bibliotheken bis aufs vollste auszunutzen. Beispiel wäre Vektorisierung mit numpy. Mit abstrusen Varianten wie Cython habe ich mich nie beschäftigt

    • asynchrones Arbeiten ist verglichen mit jeder anderen normalen sprache absolut Arsch imo. Asyncio fühlt sich einfach grässlich an

    • der umstieg von python 2 auf 3 hat sehr viele breaking changes mit sich gebracht. Absolutes no-go (gutes Beispiel war das unmarshalling von strings wo plötzlich die Kodierung anders sein kann wtf). Kein Bock sowas nochmal bei einer zukünftigen Version mitzumachen.

    • erst gabs anaconda, dann hat man gemerkt dass es zu groß ist - daraus wurde miniconda etc. Und jetzt macht man einfach selbst virtual environments. Ähnlich wie der letzte punkt ein nerviger change im workflow (wobei venv jetzt sehr angenehm ist)

    • Man kann Objektorientiert programmieren, fühlt sich aber im Vergleich zu anderen Sprachen nicht wirklich angenehm an. Da reicht schon, dass man immer "self" mitschleppen muss. Sehr ätzend.

    • (manche dependencies können einem das eigene System zerschießen. Beispiel sind AI bibs, die auch gerne mal unter Linux den Nvidia Treiber anfassen.)

    • ...

      Nicht alles ist schlimm. Python hat sehr früh auch schon viel richtig gemacht imo.Array splicing, list comprehension etc sind sehr praktisch.

      Als Ablöse nehme ich Kotlin. Man merkt sehr deutlich meiner Meinung nach, dass funktionale Programmierung gepushed wird. Allein Jetpack Compose zwingt einen deklarativ zu programmieren. Offensichtliche Features wie null-safety, statische Typisierung... fand ich schon bei meinem Masterprojekt angenehm. Mit Coroutines ist asynchrones Arbeiten sehr gut gelöst imo... Ich hab jedenfalls legit wieder Spaß am proggen damit.

      Mit Blick auf meinen Jobwechsel werde ich also schauen dass ich beruflich auch Kotlin nutzen kann - wenn nicht, dann halt Java. Lebe also so oder so jetzt in der JVM. Auch sehr praktisch jetzt nicht mehr in zwei Welten (Java, Python) denken zu müssen - in Kotlin kann man ja wenigstens auf das Java Ökosystemi