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: 6989
4

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: 5044
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: 1049
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: 5579
4

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
0

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: 5044
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
1

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?

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.