Wpis z mikrobloga

20 lat programowania na karku. C, C++, Java

Nowy projekt i zmusili rozszerzenia jednego komponentu napisanego w Pythonie, a jako perfekcjonista najpierw przerobiłem tutoriale i wziąłem się do roboty.

Ooo #!$%@?... Jaki ten Python jest upośledzony... Jedyne co ma więcej ponad inne języki to chyba dodatkowy chromosom.

Ktokolwiek w tym cokolwiek dużego jest w stanie napisać?
No może napisać tak, ale do refactoringu bez pokrycia testami 200% to nawet nie ma się co zabierać bo oczywiście typy nigdzie się nie będą zgadzać i albo ma się dobre testy albo na produkcji wyjdzie, że nie ma akurat tego jednego testu i leci #!$%@? TypeError...

Ostatnio słuchałem HejtParku i prof. Dragan mówił, że fizyki uczy się ludzi w taki sposób, że opowiada się bajki (fizyka relatywistyczna), a potem kolejno odkłamuje (fizyka kwantowa).

Chyba tak samo jest z Pythonem - na początku 'elo fajny to język', ale... no jakie to jest gówno.

PS
Osoby znające tylko Pythona uprzejmie proszę o niezabieranie głosu w dyskusji xD

#programowanie #programista15k #python
  • 163
via Wykop Mobilny (Android)
  • 2
@kobrys13: przecież chyba nie piszesz tego w notatniku xD ściągasz PyCharm i on cię ostrzega o tych problemach zanim odpalisz parser, ale jako osoba z 20 latami doświadczenia powinieneś o tym wiedzieć ( ͡° ͜ʖ ͡°)

@powaznyczlowiek: ło panie, nigdy nie uzależniaj się od IDE. Jak ktoś lubi, niech pisze w notatniku i nie powinno to mieć wpływu na jakość kodu. Do sprawdzania typów i innych
@rskk: "miniprojekty" często z czasem rosną do rozmiarów normalnych projektów. Już widzę jak wrzuca się taska do sprintu "dopisanie wszystkich brakujących typów".
Poza tym TS to nie tylko typy, to też dokumentacja i testy unitowe, dla nowych osób w projekcie zawsze łatwiej się zonboardować do TSowego projektu
@kobrys13: Plusem pythona jest to że można w nim pisać szybko, ilośc boilerplate jest bardzo mała a liczba bibliotek bardzo duża. Porównywalny kod w jakiejś Javie będzie spokojnie 10x dłuższy.
Niemniej moim zdaniem zabieranie się w pythonie za coś dużego bez używania type-hints to samobójstwo (jednocześnie python jest trochę upośledzony z krzyżowymi importami więc czasem trzeba robić fikołki zeby móc dodać informacje o typach).
@patrolez: nie do końca. Jak czytamy w PEPie:
"this PEP still explicitly does NOT [...] require (or forbid) any particular processing of annotations, even when they conform to this specification"

mypy - znane, używane, niewystarczające ( ͡° ʖ̯ ͡°)
@vornikor: nikt Ci nie wmusi typowania w pythonie, bo kompatybilność wsteczną zwalisz, tym samym wszystkie liby - sporo zalet pythona. Musi to być opcjonalne, a jakieś forki imho też nie wchodzą w grę (będzie schizma gorsza jak py2 vs py3). Po prostu umiejętność użycia typów w tym języku, to będzie coś, co będzie odróżniać dobrych programistów, od złych. W językach z silnym typowaniem masz to wymuszone od zawsze, więc tam tego
bo kompatybilność wsteczną zwalisz


@devopsiarz: looking at python 3 ( ͡° ͜ʖ ͡°)
Ale czaję o co chodzi. Po prostu "gorszy pieniądz wypiera lepszy" - python jest spoko, braki typowania są "takie fajne" no ale po latach doświadczenia uważam, że silne typowanie daje dużo profitów na produkcji, zwłaszcza w kwestii debugowania. Cóż, trzeba się bawić w te protezy typu mypy, nie ma innej opcji ( ͡°