16 lines
2.5 KiB
Markdown
16 lines
2.5 KiB
Markdown
- 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 |