Zastanawiam się czy zainwestować w naukę Pythona. Jestem ciekawy, czy za pomocą tego języka można robić poważne rzeczy, czy raczej jest to język programowania dla dzieci ? Jak się ma ten język do C++ lub C# na platformie NET ?
- 1
- 2
- Rejestracja:prawie 7 lat
- Ostatnio:4 miesiące
- Postów:273

- Rejestracja:ponad 4 lata
- Ostatnio:6 miesięcy
- Lokalizacja:Warszawa
- Postów:169
czy raczej jest to język programowania dla dzieci ?
Na pythonie opiera sie wiekszosc data science. To, ze jest prosty to tylko zaleta.

- Rejestracja:prawie 22 lata
- Ostatnio:6 minut
- Postów:6627
Niby coś się w nim robi, ale niewiele i nie u nas...
W Holandii miałem hardware'ową pracę w Pythonie (moduły diagnostyczne do maszynki produkującej chipy). Ale takie rzeczy to raczej nisza...
Z wymienionych przez Ciebie języków, moim zdaniem na dłuższy romans najlepiej wybrać C#.

- Rejestracja:ponad 8 lat
- Ostatnio:około godziny
MisiekNaLuzie napisał(a):
czy raczej jest to język programowania dla dzieci ?
Na pythonie opiera sie wiekszosc data science. To, ze jest prosty to tylko zaleta.
Taa. Chyba tego akademickiego. W praktyce potrzebujesz lepszej wydajnosci. Tesla sie np. na C/C++ przepisala.





- Rejestracja:prawie 7 lat
- Ostatnio:4 miesiące
- Postów:273
@lion137: Czytam wszędzie że Python jest bardzo popularny i zastanawiam się czy się go nie nauczyć. Musiałbym kupić na początek kilka książek. Nie wiem tylko, czy ten język bardziej przypomina Basic albo C# z początków czy ma też bardziej zaawansowane elementy takie jak np. klasy generyczne, delegaty, zdarzenia itp i jak jest z aplikacjami graficznymi w Pythonie . Czy wy używacie Visual Studio do programowania w Pythonie czy czegoś innego ?

- Rejestracja:około 8 lat
- Ostatnio:4 minuty
- Postów:4884
@Zimny Krawiec: Pyton jest dynamicznie typowany, więc rozmowa o generykach, czy delegatach nie ma za bardzo sensu. Jeśli interesuje Cię to o co pytasz, programy graficzne, czy programowanie pod Visual Studio, to Python jest, raczej nie dla Ciebie.
Tego języka używa się głównie w webie, sporo fajnych framewoków i bibliotek asynchonicznych; oraz w data science, jedne z najpopularniejszych bibliotek używanych w industry i Academii, (dobra, na uczelniach jest może więcej R
) to: PyTorch, TensorFlow, Scikit-learn
- Rejestracja:prawie 7 lat
- Ostatnio:4 miesiące
- Postów:273
@lion137: Czyli tak reasumując do czego można wykorzystać Pythona ?


- Rejestracja:ponad 7 lat
- Ostatnio:prawie 2 lata
Warto znać ten język, ale o ile nie siedzisz w ML/data science to nie powinien być to twój główny wybór. Python najlepiej się sprawuje w małych i średniej-wielkości projektach. Do tych większych też się nadaje, ale trzeba mieć sporo dyscypliny i ogarnięty zespół żeby nie zrobił się z tego clusterfuck.


1
nikt się nie spodziewał, że produkt się tak rozrośnie 2
nikt w porę nie przeprowadził porządnej separacji modułów - wyżej opisania przeze mnie magia jest do opanowania, jeśli zamykamy się w kilku tysiącach SLOC 3
"byznes" nie wyraża zgody na refactoring (bo po co skoro wszystko działa?) i oczekuje, że zmiany będą robione tak samo szybko przy 300kSLOC jak przy 30kSLOC.
- Rejestracja:ponad 4 lata
- Ostatnio:ponad 3 lata
- Postów:245
Tak pomyślałem, że podzielę się pewnym przemyśleniem:
Jak człowiek uczy się jakiegoś programistycznego języka i chce być w nim coraz lepszy to z czasem dowiaduje się o jakiś praktykach, technikach jakie są stosowane w języku, często to kwestia zależna od paradygmatu, czy obecnych konstrukcji jakie oferuje dany język. Język promuje pewne podejścia które są zgodne z nim oraz kładzie nam kłody pod nogi jeśli próbujemy inaczej kodować. Gdy dostatecznie dużo razy się potkniemy, stajemy się lepsi i w końcu patrzymy na problemy zgodnie z wybranym językiem. Cenę jaką płacimy za tą naukę jest fakt, że ciężko jest się z tego wyleczyć, ciężko jest dostrzec inne alternatywy, a jeszcze ciężej jest się przełączyć na nie, bo trzeba wcześniej oduczyć się starych sztuczek, rzeczy które są dla nas łatwe i przede wszystkim fundamentalne.
Python pod tym względem jest trochę wyjątkowy. To jest język króty oferuje kilka różnych i ciekawych możliwości: opp, fp, contextmanagery, immutable types, generatory, async, metaclass, repl. Jest w czym wybierać i niestety każda z tych opcji długofalowo ma jakieś niedociągnięcia przez co ogranicza, i tak w praktyce ciężko jest wybrać taki sposób, który mógłby w pythonie się zwracać. Te niedogodności to była dla mnie zachęta do dalszej nauki i dalszego eksperymentowania, a wraz z tym przekonywałem się na własnej skórze jak diametralnie może się zmienić moja perspektywa patrzenia na problem. Zacząłem dostrzegać minusy, oceniać konstrukcje względem stawianych problemów co doprowadziło do tego, że coraz rzadziej na nich polegałem.
Gdybym miał wskazać jakie podejście python najbardziej promuje to właśnie byłoby to dążenie do prostoty poprzez unikanie purystycznych rozwiązań, nadużywania mutacji, formalnego kodu, hacków czy rozdętego pisania. Pisząc w pythonie najlepiej zwraca się postawa gdy piszesz tak prosto i tak jawnie jak to możliwe, wtedy praca z pythonem staje się super doświadczeniem.

- Rejestracja:około 4 lata
- Ostatnio:ponad 3 lata
- Postów:10
oczywiście python nie jest językiem programowania dla dzieci on po prostu jest prosty można robić wiele rzeczy

- Rejestracja:ponad 13 lat
- Ostatnio:prawie 3 lata
Obawiam się że mi się teraz wszystkie te języki pomieszają. C++, C#, Python, Java.
Jak dopiero zaczynasz przygodę z programowaniem to eksperymentuj z kilkoma.
Ja przed pierwszą pracą bawiłem się programowaniem w Basicu, ASM, Action!, C, C++, Pascal, Logo.
Obecnie do eksperymentowania masz bardzo duży wybór i języki są coraz bardziej zaawansowane.
Masz Julia, Clojure, Ocaml, Rust, Nim, Haxe, Zig, Haskell, Odin, i te trochę mniej rozrywkowe - Java, C#, Kotlin, Scala.
C/C++/ASM/Fortran polecam tylko do projektów gdzie chcesz wycisnąć 100% wydajności procesora. A to tak naprawdę jest przereklamowana zaleta. Lepiej jest pobawić się np. w Javie samym algorytmem niż np. w C++ konstruktorem kopiującym z przenoszeniem (co w innych językach czy realnym świecie nie ma żadnego znaczenia).
Rust ponoć jest w niektórych rzeczach szybszy od C/C++.
Fortran na pewno najlepszy w liczeniu macierzy (C/C++ w tym temacie są zaskakująco skomplikowane).
Pythona też planuję nauczyć się w tym roku, korzystałem z niego już przy różnych okazjach (shell do API, skryptowanie deploymentu Javy), ale nigdy nie było czasu siąść do jakiejś książki która by nauczyła podstaw.
Python potrafi zaskakiwać szybkością, renderingiem w czasie rzeczywistym lub batchowym czy wydajnością ML (patrz TensorFlow), głównie dzięki wsparciu sprzętu i bibliotekom stworzonym w innych językach, głównie C/C++.
Jak chcesz w miarę wydajne i łatwe programowanie, spróbuj jeszcze z Go lub Julią.

- Rejestracja:ponad 9 lat
- Ostatnio:8 miesięcy
- Postów:245
Teraz to złoty czas dla pythona. Miliony monet i ofert pracy, próg wejścia niski. Pakować się i to po same uszy.
A opis wad czy zalet... Wrzuce shameless pluga z mojego bloga - Krótki opis wad i zalet Pythona i trochę o Historii pythona
- Rejestracja:ponad 5 lat
- Ostatnio:około 2 godziny
- Postów:853
Za każdym razem kiedy ktoś mówi, że Python jest wolniejszy niż Java, coś we mnie umiera. Zacznijmy od tego, że przez długi czas w rankingach benchmarków serwerów http w kategorii req/s JS biło Javę. W wielu PHP jest na czele. To co wy właściwie macie na myśli mówiąc, że wasz język jest szybszy?
Albo jak architekt wybiera Javę bo mówi, że jest szybsza niż Python i programiści piszą aplikację w Javie ze Springiem, która raz na godzinę ma się uruchomić, wykonać jakieś proste zadanie. Przecież Python zyskuje tutaj na pół minuty na samym odpaleniu maszyny wirtualnej.
Albo jak ktoś mi mówi, że w Pythonie są robione hacki, a w Javie macie Springa, jakieś Beany, singletony, AOP, refleksje. To gdzie jest więcej hacków? Wystarczy dać programistom Clean Code do przeczytania i odzywać się w Pull Requestach to kod w Pythonie będzie czysty.

- Rejestracja:prawie 22 lata
- Ostatnio:6 minut
- Postów:6627
twoj_stary_pijany napisał(a):
Za każdym razem kiedy ktoś mówi, że Python jest wolniejszy niż Java, coś we mnie umiera.
Python jest wolniejszy niż Java. Python jest wolniejszy niż Java. Python jest wolniejszy niż Java. Python jest wolniejszy niż Java. Python jest wolniejszy niż Java. Python jest wolniejszy niż Java. Python jest wolniejszy niż Java. Python jest wolniejszy niż Java. Python jest wolniejszy niż Java. Python jest wolniejszy niż Java. Python jest wolniejszy niż Java. Python jest wolniejszy niż Java.
Żyjesz :] ?

- Rejestracja:około 7 lat
- Ostatnio:ponad 2 lata
- Postów:104
Nie ma wolnych języków programowania - są tyko niestaranne implementację. Każdy język programowania ma swój smaczek, który należy odkryć aby pisać w nim szybko działające programy. Po odbyciu Bootcampu nie będziesz umiał pisać szybkich programów. Bo żeby pisać szybkie programy to trzeba rozumieć architekturę komputera i jak to wszystko działa pod maską. Algorytmy + struktury danych + architektura PC + architektura maszyny wirtualnej = szybki program. Dynamiczne typowanie oraz brak JIT sprawia że Python jest trochę wolniejszy ale to nie problem bo język pozwala na użycie bibliotek napisanych w C++.


- Rejestracja:ponad 8 lat
- Ostatnio:około godziny
twoj_stary_pijany napisał(a):
Za każdym razem kiedy ktoś mówi, że Python jest wolniejszy niż Java, coś we mnie umiera. Zacznijmy od tego, że przez długi czas w rankingach benchmarków serwerów http w kategorii req/s JS biło Javę. W wielu PHP jest na czele. To co wy właściwie macie na myśli mówiąc, że wasz język jest szybszy?
Albo jak architekt wybiera Javę bo mówi, że jest szybsza niż Python i programiści piszą aplikację w Javie ze Springiem, która raz na godzinę ma się uruchomić, wykonać jakieś proste zadanie. Przecież Python zyskuje tutaj na pół minuty na samym odpaleniu maszyny wirtualnej.
Albo jak ktoś mi mówi, że w Pythonie są robione hacki, a w Javie macie Springa, jakieś Beany, singletony, AOP, refleksje. To gdzie jest więcej hacków? Wystarczy dać programistom Clean Code do przeczytania i odzywać się w Pull Requestach to kod w Pythonie będzie czysty.
Ja np. nie powiedzialem "Python jest wolniejszy niz Java" tylko
Na studiach to co moim kolegom w Pythonie sie liczylo 2h to mi w Scali tylko 5 minut. A takie obliczenia trzeba bylo wykonac wielokrotnie z roznymi parametrami uczenia.
I to jest pstryczek w kierunku "a bo Python to jest dobry do AI, ML, ...". Co w sumie samo w sobie tez jest absurdalne bo sie ludziom reklamuje Pythona przez jakies MLe a oni koncza piszac w Django - huh?
Tak w ogole jak ktos interesuje ML to chyba sie powinien uczyc ML a jezyk juz jakis znac :)

- Rejestracja:prawie 22 lata
- Ostatnio:6 minut
- Postów:6627
Mój kolega, maniak PHP, na studiach przepisał GAlib (polecany przez prowadzących) z Javy do PHP i tak go zoptymalizował, że algorytm genetyczny w PHP działał dziesiątki razy szybciej.



Autor tego Javowego projektu pewnie znał się na algorytmach genetycznych bardziej niż na programowaniu.
moze tak byc :)


- Rejestracja:około 4 lata
- Ostatnio:prawie 4 lata
- Postów:42
@twoj_stary_pijany: Mamy na myśli to, że Java jest częściowo językiem interpretowanym i częściowo JIT compilowanym, a python tylko interpretowanym

- Rejestracja:około 9 lat
- Ostatnio:około 2 lata
m94 napisał(a):
@twoj_stary_pijany: Mamy na myśli to, że Java jest częściowo językiem interpretowanym i częściowo JIT compilowanym, a python tylko interpretowanym
Python też jest częściowo kompilowany. Aczkolwiek, nie jest to JIT.

.pyc
).
- Rejestracja:ponad 4 lata
- Ostatnio:ponad 2 lata
- Postów:311
"Python jest wolniejszy od C++", Gdzieś czytałem, że niby tak, ale człowiek nie jest w stanie nawet tego zauważyć więc są to minimalne wartosci.



- Rejestracja:ponad 5 lat
- Ostatnio:około 2 godziny
- Postów:853
stivens napisał(a):
Ja np. nie powiedzialem "Python jest wolniejszy niz Java" tylko
Na studiach to co moim kolegom w Pythonie sie liczylo 2h to mi w Scali tylko 5 minut. A takie obliczenia trzeba bylo wykonac wielokrotnie z roznymi parametrami uczenia.
I to jest pstryczek w kierunku "a bo Python to jest dobry do AI, ML, ...". Co w sumie samo w sobie tez jest absurdalne bo sie ludziom reklamuje Pythona przez jakies MLe a oni koncza piszac w Django - huh?
No fajnie, że umiesz pisać w Scali, tylko jak dokładnie odpalasz ten Twój program w Pythonie? Bo jeżeli piszesz program do obliczeń numerycznych, jakieś modele i odpalasz to na procesorze to strzelasz sobie w kolano. Python jest świetnym interfacem do pracy z bibliotekami napisanymi w C++, które uruchamiają kod na kartach graficznych. Uruchom mi teraz kod w Scali na karcie graficznej. Teraz mi wyskoczysz z jakimiś libami z Githuba, które potrafią to zrobić. Tylko kto te liby utrzymuje? Widzieliście już kogoś kto je kiedykolwiek wdrożył na produkcję?

- Rejestracja:ponad 8 lat
- Ostatnio:około godziny
@twoj_stary_pijany:
https://github.com/scalanlp/breeze
Widze ponad 100 kontrybutorow, 3500 commitow i regularne utrzymywanie od lat.
Do tego dochodza jeszcze biblioteki Javo-centryczne bo Scala dziala na JVMie. To nie jest tak ze Python ma wylacznosc na komunikacje z binarkami.
GPU jest obslugiwane bodajze poprzez delegacje do np. natywnej systemowej libki cuBLAS.
Z przymrozeniem oka ;)
- Rejestracja:prawie 7 lat
- Ostatnio:4 miesiące
- Postów:273
@twoj_stary_pijany:
Już miałem zacząć naukę Pythona ale coś mnie odrzuciło . Muszę wziąć głęboki oddech. Autor książki napisał że Python to język wysokiego poziomu a C++ niskiego poziomu i że jeden kompilator Pythona może być 10 razy szybszy od innego ale nie zawsze. Chce pisać w Visual Studio. Nawet nie wiem, która tam jest wersja.
Jest co najmniej 7 różnych wersji.
Python - https://pl.python.org/
Cython - https://cython.org/
Pypy- https://www.pypy.org/
stackless-python - https://pypi.org/project/stackless-python/
IronPython - https://ironpython.net/
Psyco - http://psyco.sourceforge.net/
Jython - https://www.jython.org/


aplikacji webowych i baz danych nie piszę z jednego powodu bo nie mam dostępu do serwera
ale wiesz ze serwer to tylko komputer i Twoj PC tez nim moze byc?

- Rejestracja:około 7 lat
- Ostatnio:ponad 2 lata
- Postów:104
Dobry programista zna kilkanaście języków programowania i wybiera jeden z nich w zależności od problemu. W Pythonie bardzo szybko napiszesz skrypt który wykona np. przetwarzanie plików tekstowych w katalogu. Python ma bardzo fajną składanie i ciekawe funkcje zaporzyczone z języków funkcyjnych. Jeżeli skrypt będzie uruchamiany sporadycznie to nie ma sensu przejmować się szybkością wykonania programu.

- Rejestracja:około 9 lat
- Ostatnio:około 2 lata
ple napisał(a):
Dobry programista zna kilkanaście języków programowania i wybiera jeden z nich w zależności od problemu. W Pythonie bardzo szybko napiszesz skrypt który wykona np. przetwarzanie plików tekstowych w katalogu. Python ma bardzo fajną składanie i ciekawe funkcje zaporzyczone z języków funkcyjnych. Jeżeli skrypt będzie uruchamiany sporadycznie to nie ma sensu przejmować się szybkością wykonania programu.
Kilkanaście? @ple -- wymień 11 języków, które znasz (albo powinno się znać)!
- 1
- 2