Cześć,
jaki był Twój pierwszy języka programowania? Byłeś/byłaś zadowolona z wyboru?
Każdy, dosłownie każdy stał kiedyś przed wyborem języka, którego chce się uczyć. I pewnie u każdego wyglądało to podobnie, jakiś research w Internecie, pogadanie ze znajomymi, a może po prostu uczelnia wcisnęła jakąś technologię w tok nauki i tak, o, zostało.
Może pierw, nim przejdę do tematu wpisu, chcę dodać że wybór pierwszej technologii nie jest aż tak ważny jak się wydaje. Z bardzo prostego powodu – tę decyzję możesz zmienić – technologie są do siebie podobne i jeśli po jakimś czasie uznasz że język X nie przynosi Ci np. tyle pieniędzy ile byś chciał, to zawsze możesz zacząć się uczyć języka Y – i w skończonym czasie Ci się to uda. Więc jeśli jesteś na etapie wielomiesięcznego poszukiwania języka to przestań to robić, stracisz na tym więcej czasu niż na ewentualnej późniejszej zmianie.
Ale co to daje? Daje chociażby to że Stackoverflow pęka w szwach od pytań i odpowiedzi na temat tego języka. Tak samo jest z ilością repozytoriów na githubie – po prostu ten język żyje i ludzie z niego faktycznie intensywnie korzystają.
Python jest gęsto i często używany wszędzie gdzie tylko się da, jeśli chodzi o takie tematy.
Jest kilka bardzo rozbudowanych bibliotek Pythonowych, które potrafią tworzyć np. sieci neuronowe, które można z powodzeniem użyć do rozwiązania problemu generalizowania czyli stworzenia takiego kodu który będzie umiał „przymknąć oko” na pewnie niedociągnięcia danych wejściowych, np tak jak tu:
algorytm umiał rozpoznać bohaterów Teorii Wielkiego Podrywu, mimo że starali się być nierozpoznani.
Tutaj prosto z mostu – Python jest w czołówce jeśli chodzi o płace. Chociaż to nie technologia określa ile będziesz zarabiać, to jednak ten fakt pomaga Ci określać widełki, które będą po prostu wyższe niż np. w przypadku PHP.
Programy w tym języku się łatwo czyta, kod jest przejrzysty i trudniej tutaj o przekombinowanie.
PEPy, czyli listy „dobry rad” jak tworzyć kod w tym języku powodują że coraz więcej programistów tworzy kod ustandaryzowany a to pozwala na zmniejszenie progu wejścia w nowy projekt.
Python dostarcza bardzo bogatą bibliotekę standardową, dzięki czemu mnóstwo problemów masz już rozwiązanych! Ponad to, korzystając z managera paczek, może instalować kolejne. I mimo to że rozwiązywanie problemów w stylu „pip driven development” (pip to owy manager paczek) nie jest polecaną przeze mnie praktyką, to jednak super jest nie wynajdywać koła na nowo:)
Python jest językiem zwięzłym i prostym. HelloWorld w Javie:
1 2 3 4 5 | public class HelloWorld { public static void main (String[] args) { System.out.println("Hello, world!"); } } |
I kod robiący to samo w Pythonie:
1 | print("Hello, world!") |
I czytanie pliku w Javie:
1 2 3 4 5 6 7 8 | public class ReadFile { public static void main (String[] args) { try (BufferedReader reader = new BufferedReader(new FileReader(filename))) { while ((line = reader.readLine()) != null) { } } } } |
no i Python:
1 2 3 | with open(file_name, "r") as in_file: for line in in_file: pass |
To, że w tym języku kod tworzy się szybciej niż w innych sprawia że świetnie nadaje się do prototypownia. Pozwala to też na łatwą i szybka automatyzacje pewnych powtarzalnych czynności, bez potrzeby pisania tej całej otoczki #java.
Nic tak nie buduje dobrej opinii jak polecenie przez rzetelną osobę z osiągnięciami, a więc…
kojarzysz te loga? Oni korzystają z Python’a. Czy potrzeba tu więcej słów?
Nie jestem fanatykiem Pythona. Ani w sumie żadnego języka. Technologie to narzędzia którymi rozwiązujemy problemy. Im więcej narzędzi znasz, tym ogólnie lepiej (chociaż czasem może warto umieć zręcznie odkręcić śrubę młotkiem).
Ten wpis to próba pokazania że istnieje coś poza Javą, że Python to fajne narzędzie i że może warto dodać go do swojej walizki z narzędziami.
Oj daaawnoo mnie tu nie było. Ale wakacje to był czas dużej liczby intensywnych wyjazdów i tak naprawdę, dopiero jakoś… Read More
Cześć! Zapraszam na krótkie podsumowanie kwietnia. Wyjazd do Niemiec A dokładniej pod granicę z Francją. Chrześnica miała pierwszą komunię. Po… Read More
Ostatnio tygodnie były tak bardzo wypełnione, że nie udało mi się napisać nawet krótkiego podsumowanie. Więc dziś zbiorczo podsumuję luty… Read More
Zapraszam na krótkie podsumowanie miesiąca. Książki W styczniu przeczytałem "Homo Deus: Historia jutra". Książka łudząco podoba do wcześniejszej książki tego… Read More
Cześć! Zapraszam na podsumowanie roku 2023. Książki Zacznijmy od książek. W tym roku cel 35 książek nie został osiągnięty. Niemniej… Read More
Zapraszam na krótkie podsumowanie miesiąca. Książki W grudniu skończyłem czytać Mein Kampf. Nudna książka. Ciekawsze fragmenty można by było streścić… Read More
Pokaż komentarze
Ale już porównywanie hello wordlów z javy i py, a potem, żeby nie było, wstawienie czytania pliku... cóż, umniejsza wiarygodność autora. ;) Każdy, kto przebrnął przez pierwsze 2 rozdziały tutoriala do dowolnego języka programowania wie, że nie po to się używa javy, żeby pisać jednolinikowce, i nie po to się używa pythona, że się pisze szybko. W ten sposób mógłbym postawić javę koło kodu asemblerowego i powiedzieć "po co się uczyć asemblera, jeśli każdy program jest taki długi". No właśnie, po co? ;)
Cześć, Pythona używa się bo się w nim szybko pisze, np w softwarehousie ;P to istotny czynnik bo to czyste pieniądze. Nie rozumiem że umniejsza moja wiarygodność? Rozwiniesz?:)
Jeśli się chce wykazać, że w pythonie pisze się szybciej, jeśli chce się to na prawdę dobrze argumentować, to nie przykładami z pierwszych stron tutoriala każdego z języków. Lepszym argumentem byłoby wykorzystanie kodu, który mógłby być produkcyjny (lub na taki by wyglądał), porównując go objętościowo (liczba linijek), a następnie jego stopnia złożoności. Najkrótsze są "jednolinijkowce", ale to przy okazji najbardziej skomplikowane kawałki kodu (i najbardziej nieczytelne), a ktoś mógłby wyciągnąć wniosek, że to przecież kod napisany na szybko. Nie zrobiłeś tego, dlatego na twitterze pozwoliłem sobie określić taki poziom argumentacji, jak od studenta, do studenta - czyli rozważanie osób nieobeznanych w temacie (tutorialowe przykłady), nie mających doświadczenia produkcyjnego (brak "real-life example"), skupiających uwagę na nieistotnych rzeczach (liczba linijek, a nie czytelność i stopień skomplikowania).
Przykłady, które podałeś pokazują, że python jest lepszym językiem skryptowym, niż java. Ale to jak porównywanie młotka i śrubokręta przez pokazanie, jak się nimi wbija gwoździe.
Pozostaje jeszcze argument, że wielkie firmy używają pythona. Otóż ze specyfiką wielkich firm wiąże się to, że używają na prawdę wielu technologii, ponieważ każdą z nich traktują jak narzędzie, tj. wykorzystują najlepszą technologię do rozwiązania danego problemu, a że mają możliwość zatrudnienia wielu ludzi, to używają wielu narzędzi. Python musiał znaleźć się na liście, tak samo jak java, ruby, php, c++ i kilka pewnie jeszcze innych języków. To świadczy tylko o tym, że python nie jest językiem niszowym, ale to już udowodniłeś.
Żeby rozwiać wątpliwości - zgadzam się, że warto uczyć się pythona. Nie zgadzam się tylko z tak przeprowadzoną argumentacją.
Dobra, chyba rozumiem co chcesz powiedzieć! :D Wiesz, ten wpis nie miał być dogłębną analizą języka, ani tym bardziej porównaniem, a zajawką mówiącą że to fajne narzędzie ;> więc nie siliłem się na skomplikowane przykłady co do objętości kodu a wręcz celowałem intencjonalnie w coś co pokaże "czarno na białym" że w Pythonie napiszesz mniej kodu niż w Javie i osiągniesz to samo:) Zgadzam się że "skomplikowane jednolinijkowce" są złe, stąd brak ich w tym wpisie. A skoro ich nie ma to również nigdzie nie porównuję ich. Nie wiem w takim razie skąd się one wzięły w Twoim komentarzu? Nigdzie też nie napisałem że Python jest lepszym językiem skryptowym niż Java przecież:) Co do wielkich firm - chciałem pokazać dokładnie to co napisałeś - że Python znajduje się w ich stacku! A skoro tam jest, to, tak samo jak inne języki które wymieniłeś, okazały się przydatnym narzędziem dla owej dużej firmy:)
„po co się uczyć asemblera, jeśli każdy program jest taki długi”. Jeżeli nie masz potrzeby pisania pierwszego bootloadera (tego co inicjuje peryferia), to nie ma sensu. W sumie można w czystym C napisać jeżeli się umie używać skryptów linkera. Taki mało popularny TCL jest używany na codzien w projektach związanych z HDL. Python faktycznie pozwala pisać szybko w interaktywnej konsoli, ktora była od zawsze.
Ciekawie napisane, może pomoże komuś, kto zastanawia się nad wyborem technologii
Dzięki!
Mój pierwszy język programowania którego się uczyłem to JS. Wtedy uczyłem się jeszcze z książek. Na koniec książki z której się uczyłem pisało się program ToDo. Później pamiętam że mocno go rozbudowałem ale jak przesłałem pracodawcy to mu nie działał, heh :-p.
Z perspektywy czasu wiem teraz że najlepiej jest uczyć się jednej technologii, jednego języka na raz i na tym pozostać póki nie zostanie się ekspertem w tym języku.
Python to świetny język do nauki. Bardzo polecam naukę tego języka.
Gdyby ktoś chciał to napisałem post na moim blogu o paru prostych implementacjach matematycznych w Python.
https://mstem.net/pl/python-matma/
Pozdrawiam.
Dzięki za link!:)