Wątek przeniesiony 2018-04-14 16:46 z Kariera przez somekind. Powód: Niepoprawna kategoria forum

Czy Python jest za prosty?

Odpowiedz Nowy wątek
2018-04-13 23:35
Nieposkromiony Kura
1

Programuje na codzień w pracy w pythonie i muszę powiedzieć, że wydaję mi się to strasznie prosty język i czuję się z tego powodu niedowartościowany. Po godzinach wracam do domu i z zapałem siadam do pisania w c++, gdzie niemalże czuję jakbym był jednym ciałem z moim laptopem. Zarządzanie pamięcią, multithreading, statyczne typowanie to jest prawdziwe życie.

Pytanie do wszystkich programistów siedzących w wysoko poziomowych językach jak python, ruby itp. Czy też czujecie niedosyt? Czasem w pracy celowo utrudniam sobie zadania pythonowe żeby było ciekawiej, ale to nie wystarcza.

Pozostało 580 znaków

2018-04-13 23:45
16

Python jest prosty jeśli kodu jest mało. C++ nigdy nie jest proste. Wybierz projekt Pythonowy na > 100k linii kodu (o ile takie w ogóle istnieją), a też będzie zawiły.

Zarządzanie pamięcią, multithreading, statyczne typowanie to jest prawdziwe życie.

Podniecasz się środkiem, a nie celem. Musisz jeszcze dojrzeć w takim razie :)


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 1x, ostatnio: Wibowit, 2018-04-13 23:45
Ładnie sformułowane. - jarekr000000 2018-04-14 15:53

Pozostało 580 znaków

2018-04-13 23:59
Nieposkromiony Kura
0

https://github.com/scikit-learn/scikit-learn

zobacz sobie kod źródłowy scikit-learna napisany w python (glownie numpy, cython). No nie powiedzialbym ze to jest skomplikowane. W zasadzie to kod jest prostszy do czytania niż dokumentacja. A to jedna z wiekszych i bardziej popularnych bibliotek napisanych w pythonie. Python jest tak prosty, że aż wstyd w nim kodzić.

Pozostało 580 znaków

2018-04-14 00:18
1

Udało się, jest ponad 100k linii kodu :)

/tmp/scikit-learn$ cloc .
    1012 text files.
    1006 unique files.                                          
     271 files ignored.

http://cloc.sourceforge.net v 1.60  T=2.10 s (384.6 files/s, 125593.4 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Python                         668          41788          65306         108116
Cython                          40           2940           3929           8469
CSS                              4             49             66           8175
C/C++ Header                    21            824            582           6557
C++                              5            827            429           5422
C                               44            363           3141           2394
Javascript                       7            593            373           1763
Bourne Shell                     9             91            134            417
PowerShell                       2             65             39            395
HTML                             1             34              6            323
YAML                             5             33             65            201
make                             2             37             14            122
DOS Batch                        1             17              1            102
-------------------------------------------------------------------------------
SUM:                           809          47661          74085         142456
-------------------------------------------------------------------------------

Myślę, że w Javce też można by to w prosty sposób napisać, oczywiście z użyciem jakichś lepszych kolekcji niż te wbudowane w Javę. Np http://www.vavr.io/ i jedziemy. Java 10 ma vara, więc tym bardziej się zbliża zwięzłością do innych języków (czyli np powiedzmy 2x więcej kodu by w Javce było niż w Pythonie).

Ja jak siedzę nad C++em to czuję tylko frustrację spowodowaną segfaultami i dziwnymi problemami wynikłymi z tego, że język i kompilator nie sprawdzają automatycznie np indeksów tablic czy poprawności wskaźników. Do tego tragicznie template'y (z punktu widzenia ergonomii), kosztowne metody wirtualne (więc trzeba unikać i kombinować), itp itd Taki masochizm z wyboru.

Zdecydowanie wolę wyzwania algorytmiczne niż składniowe, aczkolwiek kacze typowanie mi nie po drodze, bo bardzo cenię sobie statyczną analizę (bardzo mi pomaga). Z tego powodu lubię statycznie typowane języki, ale nie takie które są niepotrzebnie skomplikowane (jak np C++).


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 1x, ostatnio: Wibowit, 2018-04-14 00:19

Pozostało 580 znaków

2018-04-14 00:54
5

Wszystko jest dla ludzi.

Jeśli potrafisz osiągnąć efekt końcowy w dowolnym języku, to nie przejmuj się prostotą rozwiązań, które używasz.

Gdyby ludzie przejmowali się, że pisząc w czymś innym niż czysty C jest się gorszym hackerem, to nie powstałoby tyle technologii usprawniających pracę.

Jeśli możesz coś zaprogramować w jeden dzień w Pythonie, zamiast w tydzień w C++, to plus dla Ciebie, Twoje oczy będą Ci wdzięczne.

Pozostało 580 znaków

2018-04-14 07:11
0
Nieposkromiony Kura napisał(a):

Programuje na codzień w pracy w pythonie i muszę powiedzieć, że wydaję mi się to strasznie prosty język i czuję się z tego powodu niedowartościowany. Po godzinach wracam do domu i z zapałem siadam do pisania w c++, gdzie niemalże czuję jakbym był jednym ciałem z moim laptopem. Zarządzanie pamięcią, multithreading, statyczne typowanie to jest prawdziwe życie.

Pytanie do wszystkich programistów siedzących w wysoko poziomowych językach jak python, ruby itp. Czy też czujecie niedosyt? Czasem w pracy celowo utrudniam sobie zadania pythonowe żeby było ciekawiej, ale to nie wystarcza.

szacuneczek, są jak widać jeszcze ludzie, którym propaganda nie sprała mózgu...

pajton srajton, C++ [--ciach--] !

Pozostało 580 znaków

2018-04-14 08:15
0

Przecież właśnie piękno tkwi w prostocie. Zazwyczaj im coś jest prościej napisane tym jest czytelniejsze

Pozostało 580 znaków

2018-04-14 08:54
0

Z tego co wiem nowe C++ dąży do uproszczeń - std::function, lambdy, auto, to_string, "if constexpr"...
Oczywiście pozostaje kompatybilność wstecz, więc można się zaplątać w stare kodowanie, ale jak się chce to można robić całkiem zgrabny kod.
Prawdopodobnie ludzie zaczynający teraz naukę C++ nie będą nawet znali połowy problemów które kiedyś występowały, ponieważ sam język i jego biblioteka standardowa będą ich przed tymi problemami chroniły.

Z drugiej strony Python to inna liga. Prosty i przyjemny język. Przynajmniej na pierwszy rzut oka.
Rozwiązania w Python można przecież rozszerzać o moduły C/C++, można pisać w Cythonie. Python to zresztą język naukowców, obecnie jeśli ktoś pracuje na uczelni to ma do wyboru głównie Python, R, Julia, Fortran, Matlab. Każdy z tych języków ma jakieś zalety. Python - ogromną liczbę darmowych bibliotek, często udokumentowanych licznymi książkami.

Python używany jest na wielu polach gdzie nie ma C++:

  • prototypowanie obliczeń naukowych i finansowych (REPL, Jupyter)
  • aplikacje webowe
  • interaktywny data science (głównie dzięki dostępnym wykresom)

Dla kogoś kto aktualnie jest na studiach informatycznych i nie musi się martwić o zarobek polecałbym się nauczyć obu języków, przynajmniej w podstawowym stopniu. Jeśli chodzi o C++ to polecam szukać materiałów opisujących min. C++11 a najlepiej C++17. Po co się uczyć staroci?

Po co się uczyć staroci? Bo idziesz do Samsunga, Noki, Motoroli i w zależności czy masz szczęście, czy nie to dostajesz kod z c++ pamiętający potop - Dregorio 2018-04-14 16:59

Pozostało 580 znaków

2018-04-14 09:39
cw
1

Nie ma lepszych czy gorszych języków programowania są tylko źle dobrane do projektu. Z mego punktu widzenia Python jest prosty bo ma bardzo dużo bibliotek, które pozwalają mi osiągnąć wymagany efekt bez wielkiego wysiłku. Kiedyś programowałem dużo w Visual Basic for Applications (VBA) i też można powiedzieć, że to nie jest poważny język programowania. Jednak w tych projektach kluczową sprawą była szybkość tworzenia aplikacji (małe bazy danych, ale musiały powstawać praktycznie ad hoc) i VBA okazał się najlepszym rozwiązaniem.

Pozostało 580 znaków

2018-04-14 11:04
1

Ja czuje niedosyt, bo:

  1. W każdej firmie w jakiej byłem i jestem programiści piszący w pythonie nieświadomie pracują jak w pascalu. Wydawać by sie mogło, że skoro są klasy w kodzie to piszemy obiektowo. Nic bardziej mylnego! Naprawdę bardzo ciężko jest spotkać kod źródłowy produktu firmowego gdzie nie ma przeplatania struktur z procedurami. W kodzie można zobaczyć nieraz dziedziczenie, ale na 99% jest to wpadka wymuszona przez przypadek albo framework.

  2. Python to taka zabawka, bądź scyzoryk. Dobre do pisania prototypów z różnych obszarów, testów, nieskomplikowanych crudów czy skryptów do bibliotek zrobionych w C++/C, ale jak projekt puchnie to problemy z wydajnością i utrzymaniem najlepiej dać o sobie. To dobrze obrazuje do czego python się nadaje, a do czego nie.
Pascal (5.5) był obiektowy od 1989, czyli na 2 lata przed opublikowaniem pierwszej wersji Pythona. - vpiotr 2018-04-14 18:07

Pozostało 580 znaków

2018-04-14 12:07
Chory Kret
0

Nie jest taki prosty, tylko po prostu go dobrze umiesz. Python teraz trochę cierpi, bo parę lat temu był na niego ogromny boom. Głównie się mówiło, żeby olać PHP i iść do Pythona, bo to poważne programowanie. PHP przez ostatnie lata poszło bardzo mocno do przodu, a Python trochę stoi w miejscu, bo już kiedyś był dobry. Zarobki są na podobnym poziomie jak chociażby właśnie w PHP. Tak naprawdę Python w najbliższych latach jakiejś rewolucji nie zrobi i to jest chyba problem. Niestety przez ten boom weszło do tego języka sporo programistów, którzy wcześniej pisali strukturalnie w PHP i przenieśli to na Pythona. W większości firm kod jest nierozwijalny przez to, a ci programiści nie wrócą do PHP, bo tam strukturalnie nie mają czego szukać. I koło się zamyka.

Pokaż pozostałe 6 komentarzy
Vpiotr wg mnie niewystarczajacy podział kodu to jeszcze droga do tych dań. Swoją drogą którą potrawkę lubisz bardziej? - nohtyp 2018-04-14 13:33
@LukeJL: o tym się jeszcze chyba nie mówi, ale niestrukturalnie można też pisać w językach funkcyjnych. Nie wiem czy są już o tym prezentacje, ale całkiem łatwo sobie wyobrazić strumień przetwarzania z użyciem lambd bez hierarchii abstrakcji, z blokami kodu po 100 i więcej linii. - vpiotr 2018-04-14 13:33
Vpiotr w lispach pisze się wstępujący zmieniając język tak by dostosować go do dziedziny, a zstępująco koduje się docelowy program. - nohtyp 2018-04-14 13:35
Lukę, no właśnie tak koduje strukturalny gościu. Klasę traktuje jak namespace. I ani razu nie pomyśli o dzieleniu bytów w kodzie na abstrakcje. - nohtyp 2018-04-14 13:38
W każdym razie ta dyskusja zmierza do nikąd. Możemy sobie wyjaśniać co czym jest a czym nie jest, ale faktem jest to że chu*owizna jest i bedzie. - nohtyp 2018-04-14 13:39

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0