Czy jest hejt na Pythona?

Czy jest hejt na Pythona?
cyber_sheikh
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Znalazłem wczoraj znalezisko na pewnym portalu ze śmiesznymi obrazkami, o 70 urodzinach twórcy Pythona, Guido van Rossuma. Zaskoczyła mnie liczba negatywnych komentarzy w kierunku samego języka programowania. Zastanawiam się skąd ten hejt i czy jest uzasadniony. Jak myślicie?

Ja zawsze miałem pragmatyczne podejście. Używałem odpowiednich narzędzi do rozwiązania danego problemu. Przez wiele lat programowałem w Objective-C, potem w Swifcie, bo te języki służą do tworzenia natywnych aplikacji na iOS i macOS. Natomiast od pewnego czasu zajmuję się rozwijaniem projektu dotyczącego sztucznej inteligencji i stąd moje zainteresowanie Pythonem. Do tej pory używałem raczej Ruby i to w zasadzie tylko do automatyzacji i CI/CD.

Projekt nad którym pracuje wygląda w porządku, tematyka bardzo ciekawa, kod wygląda na przemyślany i nowoczesny, mamy sensowne testy. Na początku trochę mi brakowało kompilatora, który by mi sprawdził czy nie mam błędy w kodzie, ale przyzwyczaiłem się do nowego flow i mam pre-commit sprawdzający kod.

cerrato
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poznań
  • Postów: 9049
2
  1. dasz link do tego portalu o którym wspomniałeś?
  2. co do hejtu - zawsze ktoś się dowali. Pytanie - czy były jakieś sensowne argumenty, czy teksty w stylu w pajtonie piszą dzieciaki i idioci? Bo nie wiem, czy w ogóle jest sens się odnosić do sprawy
  3. Zauważ, że na większość technologii z niskim progiem wejścia (JS, PHP, pajton, Delphi) jest hejt. I to głównie frustraci narzekają, którzy mają kompleksy i braki w poczuciu własnej wartości. Skoro ja X lat się uczyłem Javy albo szlifowałęm SQL, a teraz jakiś taki pół-amator sobie pisze w "prostej" technologii to dla mnie jest to policzek. Także jak wyśmieję taki język, to poczuję się lepiej i nadal mogę starać się pozować na lepszego i więcej wartego. To jest podobny mechanizm jak z markowymi ciuchami albo kupowaniem ajfona - w ten sposób się zaspokaja własne deficyty i leczy rany na psychice.
Spine
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6991
5

Ja bym nie chciał pracować w Pythonie, bo skoro w języku dynamicznie typowanym i tak miałbym używać type hints, to już wolę użyć języka statycznie typowanego, który od początku tak był projektowany i tego pilnuje.

Nie obrażam się na Pythona.
Jakieś skrypty w nim napisałem i używam.
Np. pluginy do Blendera, albo helpery do przetwarzania plików.
Tylko nie chciałbym w nim pracować nad poważnymi, większymi projektami ;)

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5046
0

Wykop, popaczałem na to, głównie tam pisze trole albo lamerzy, nie umieją venva ustawić, itp. A jak jest na temato głównie aj aj dynamicznie typowany, czyli błędy, łatwo pisać g*wnokod, ciężko się debuguje, itp. Odpowiadam im zbiorczo, jak śpię programując to idę się zdrzemnąć lub po herbatę:) bo jako programiście typy do niczego nie są mi potrzebne

cerrato
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poznań
  • Postów: 9049
2

bo jako programiście typy do niczego nie są mi potrzebne

Oj bluźnisz Panie, bluźnisz 😛

To, że dasz radę bez tego to spoko, tylko pogratulować. Ale jednak dobrze jest, jak kompilator, IDE czy jakiś inny magik patrzy nam na ręce i poprawia ewentualne pomyłki. To, co napisałeś jest tak samo sensowne jak jestem kierowcą od 20 lat, żadne ABS czy ESP nie są mi potrzebne. To, że pewnie bym sobie poradził bez tego nie znaczy, że nie zdarzy się sytuacja, w której uratują mi one tyłek. Tak samo jak różne inne systemy zwiększające bezpieczeństwo. Mam w samochodzie system ostrzegania przed kolizją. Kiedy przewiduje, że jadąc w tym kierunki i z taką prędkością za chwilę walnę - mruga na czerwono oraz zaczyna piszczeć. Póki co nie przydał się ani razu, na ogół się odpala jak chcę np. wyminąć prawą stroną samochód czekający na skręt w lewo, albo mam w planach zmienić pas bo na moim ktoś się wlecze i dość szybko się do tego kogoś zbliżam. Ale nie wyłączam tego systemu, bo kiedyś może będę zmęczony albo rozkojarzony i takie ostrzeżenie się przyda. Dla tego jednego razu warto kilka razy w tygodniu słyszeć niepotrzebne ostrzeżenia. I tak samo jest z typowaniem zmiennych - dasz radę sobie bez tego, ale kiedyś może coś się pochrzani i będzie problem. A jak masz typ jawnie wskazany to nie ma opcji.

SL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1050
3

Python jest popularny, bo jest popularny. Łatwo wytknąć mu wiele problemów (dynamiczne typowanie, słabe zarządzanie zależnościami, wydajność), więc i wiele ludzi się niego czepia

Używałem odpowiednich narzędzi do rozwiązania danego problemu.

To jest cope. O każdej technologii można tak powiedzieć:

  • Java powstała do rozwiązań enterprise, więc korpo powinny pisać w Javie
  • Ada powstała to apliacji krytycznych i rządowych, więc takie apki powinny być pisane w Adzie
  • Python jest wolny co oznacza, że pisanie w nim musi być dużo lepsze niż w innych językach, bo po coś ludzie wybierają tego Pythona.

Oczywiście w wielu przypadkach wybory są oczywiste np. C nie będzie dobry do napisania CRUDa a Python do napisania wydajnej bazy danych. Cała reszta to rozmyte terytorium, gdzie w zasadzie wszystko pasuje i czego byś nie użył to będzie to jakoś działało a i argumentację będzie się dało wymyślić. Prawdą jest, że ludzie wybierają technologie głównie z przyzwyczajenia albo dlatego, że inni tak robią co napędza spiralę sukcesu, bo popularna technologia ma dużo toolingu, bibliotek i wsparcia.

KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5581
5

Pythong wygrał bo był pierwszym językiem skryptowym który:

  • nie był Lispem
  • nie był tylko do zapisu : bash
  • nie wyglądał jak potwór Frankensteina : Perl
  • nie był zrobiony na odpi'rdol : TCL

i na tym w zasadzie liczba jego zalet się kończy. Ludzie w 1991 potrzebowali języka skryptowego. I tak samo dziś potrzebują

CZ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2594
1

Z AI możesz wszystko w C pisać, więc w zasadzie te języki wysokiego poziomu są już bezużyteczne.

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5046
0

@cerrato: ciekawa próba, ale kompletnie nie trafiona; otóż, rzeczywiście, ABS itp. Pomagają kierowcy, ale statyczne typy w programowaniu wręcz na odwrót utrudniają! Peter Norvig:
https://norvig.com/design-patterns/
Również Gary Bernhardt umieszcza Ruby i Python najwyżej w ekspresywnosci, co mogę potwierdzić.

cerrato
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poznań
  • Postów: 9049
2

Ale co utrudniają?

Gdy masz potrzebę zamienić to masz wbudowane różne konwersje/rzutowania albo funkcje typu .toString itp. Masz typy wariantowe/dynamic (w różnych językach to się różnie nazywa), masz generyki i wiele innych mechanizmów. Także wydaje mi się, że cokolwiek będziesz potrzebował osiągnąć - osiągniesz w sposób JAWNY a nie podstawiając 25 do zmiennej, która aktualnie posiada wartość "bleblelblebleeee". Jeśli dla kogoś jest problemem to, że nie może nadpisać stringa wartością liczbową to wydaje mi się, że problem leży gdzieś indziej, ma coś źle przemyślane - że w ogóle do takiej sytuacji doszło.

Albo inaczej - możesz podać jakiś realny scenariusz, w którym:

  1. potrzebny jest taki brak typowania
  2. nie da się tego zrobić jawnie - poprzez jakaś funkcję konwertującą (czy to wbudowaną, czy własną) ani rzutowanie?
jarekr000000
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: U krasnoludów - pod górą
  • Postów: 4717
2

Czy jest hejt na pythons?

Teraz już jest.

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5046
0

@cerrato: programowanie utrudniają, przejrzyj dokladnie prezentację Norviga. Nie w tym rzecz, zd czegoś się nie da napisać, ale jest trudniej i język jest mniej ekspresywny.

KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5581
3
lion137 napisał(a):

@cerrato: programowanie utrudniają, przejrzyj dokladnie prezentację Norviga. Nie w tym rzecz, zd czegoś się nie da napisać, ale jest trudniej i język jest mniej ekspresywny.

kiedyś na X, może jeszcze na twiterze była rozmowa po angielsku

  • programista pythong - większośc moich testów to proste testy, czy wartość jest dodatnia, czy wartość jest stringiem, czy wartość jest mapą. Czy jest na to jakiś framework żeby wygenerować te testy?
  • programista java - tak, nazywa się system typów

ten twój guru/lama/sensei/rabi od prezentacji pisze też testy czy tylko kod produkcyjny którego potem nie musi utrzymywać? bo jak piszesz kod bez testów którego nie musisz utrzymywać to pythong, lub dowolny inny w miarę popularny jezyk skryptowy, jest świetnym rozwiazaniem. No może za wyjątkiem JavaZKrypty

Spine
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6991
0
KamilAdam napisał(a):
  • programista pythong - większośc moich testów to proste testy, czy wartość jest dodatnia, czy wartość jest stringiem, czy wartość jest mapą. Czy jest na to jakiś framework żeby wygenerować te testy?

Teraz to pewnie AI by ogarnęło sprawę ;)

lion137
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5046
1

@KamilAdam: ? Chodzi o ilość testów, ze więcej jest w dynamicznym języku? Szczerze, nie pamiętam w Javie c++ pracowałem ponad 5 lat temu; chociaż pewnie tak jest, tylko co z tego?
@Spine nawet "stare" tabnine sprzed llm ów dużo pomagało:)

KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5581
1
lion137 napisał(a):

@KamilAdam: ? Chodzi o ilość testów, ze więcej jest w dynamicznym języku? Szczerze, nie pamiętam w Javie c++ pracowałem ponad 5 lat temu; chociaż pewnie tak jest, tylko co z tego?

O co chodzi? wy tak na poważnie? Nawet jeśli statyczny system typów spowalnia development to ułatwia utrzymanie. A większość systemów, jeśli odniesie sukces, będzie utrzymywana. Więc jeśli nie piszemy demo do wyrzucenia to wybór pythonga czy innego języka dynamicznego jest błędem

SL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1050
1
lion137 napisał(a):

@KamilAdam: ? Chodzi o ilość testów, ze więcej jest w dynamicznym języku? Szczerze, nie pamiętam w Javie c++ pracowałem ponad 5 lat temu; chociaż pewnie tak jest, tylko co z tego?

@lion137 tutaj chodzi o czasy przed type hintami, gdzie dobry zwyczajem jest pisaniem kodu jak i testu, który sprawdza jak dany kawałek kodu ogarnia różne typy tj. rzuca jakieś czytelne błędy a nie losowe błędy tam gdzie duck typing się wywali

Statyczne typowanie ze sprawdzaniem typów to właśnie takie "testy"

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.