Skocz do zawartości

Programista front-end, zmiana branży


Macko_da_Gama

Pomocna odpowiedź

Nie rozumiem w ogóle tych zarzutów deshipa.
Są Ci, którzy wyznaczają kierunek i są Ci, którzy podążają za nimi. Nie każdy siedzi i czeka na gotowca.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

25 minut temu, deshipu napisał:

A konkretnie? Nie widzę tam żadnych zarzutów. Możesz wymienić jakiś?

Się uczepił jak bibliotek. 
Nazwij sobie to jak chcesz - zarzut, marudzenie, zawodzenie...

Link do komentarza
Share on other sites

1 godzinę temu, Otar napisał:

Się uczepił jak bibliotek. 
Nazwij sobie to jak chcesz - zarzut, marudzenie, zawodzenie...

Ale wiesz, właśnie między innymi dlatego używa się języków programowania wysokiego poziomu, że dużo łatwiejsze i tańsze jest utrzymanie takiego kodu. Jak robisz programy "na zaliczenie", które muszą podziałać dwie minuty podczas demonstracji, a potem już nigdy ich nie dotykasz, to możesz to sobie pisać w asemblerze. Dopiero kiedy przychodzi dorosłe życie, a wydajność programu zależy od użytego algorytmu, a nie tego czy zmienna zajmuje jeden bajt czy cztery, to zaczynasz doceniać środowiska takie jak Java czy Python i doceniać to, że istnieje już biblioteka robiąca daną rzecz, której nie musisz utrzymywać.

  • Lubię! 1
Link do komentarza
Share on other sites

15 minut temu, deshipu napisał:

doceniać to, że istnieje już biblioteka robiąca daną rzecz, której nie musisz utrzymywać

Tyle że może raczysz zauważyć, że doczepiłeś się do mnie iż tracę czas na utrzymywanie bibliotek i to jeszcze z ironią że niby moje programy są od razu idealne. Powtarzam, jeśli nie dotarło: TAKICH BIBLIOTEK NIE MA I MUSZĘ STOSOWAĆ SWOJE. A nie jestem Lordem Dorwinem, aby bazować wyłącznie na tym co już zrobiono i opisano.

 

Link do komentarza
Share on other sites

33 minuty temu, deshipu napisał:

Ale wiesz, właśnie między innymi dlatego używa się języków programowania wysokiego poziomu, że dużo łatwiejsze i tańsze jest utrzymanie takiego kodu. Jak robisz programy "na zaliczenie", które muszą podziałać dwie minuty podczas demonstracji, a potem już nigdy ich nie dotykasz, to możesz to sobie pisać w asemblerze. Dopiero kiedy przychodzi dorosłe życie, a wydajność programu zależy od użytego algorytmu, a nie tego czy zmienna zajmuje jeden bajt czy cztery, to zaczynasz doceniać środowiska takie jak Java czy Python i doceniać to, że istnieje już biblioteka robiąca daną rzecz, której nie musisz utrzymywać.

Ja Ciebie kompletnie nie rozumiem, jaki Ty problem masz? Może Ty piszesz programy tylko na zaliczenie, bo z tego co widzę, to chyba nie piszesz z doświadczenia, tylko jakieś teorii się naczytałeś i teraz próbujesz innych "uświadamiać" 😉

Link do komentarza
Share on other sites

24 minuty temu, ethanak napisał:

Tyle że może raczysz zauważyć, że doczepiłeś się do mnie iż tracę czas na utrzymywanie bibliotek i to jeszcze z ironią że niby moje programy są od razu idealne. Powtarzam, jeśli nie dotarło: TAKICH BIBLIOTEK NIE MA I MUSZĘ STOSOWAĆ SWOJE. A nie jestem Lordem Dorwinem, aby bazować wyłącznie na tym co już zrobiono i opisano.

Ależ ja się ciebie nie czepiam. Twoja praca polega na napisaniu i utrzymaniu biblioteki w niskopoziomowym języku — doskonale. Rozumiem, że skoro biblioteka jest stosunkowo prosta i niskopoziomowa, to zastosowanie *w tym konkretnym przypadku* języka wysokiego poziomu nie ma sensu. Ale nie zgadzam się z postulatem, że wobec tego takie języki sensu nie mają wcale.

Link do komentarza
Share on other sites

9 minut temu, deshipu napisał:

skoro biblioteka jest stosunkowo prosta

I tu muszę Cię zmartwić - biblioteka nie jest wcale prosta (nawet stosunkowo). Przy czym co prawda czas przetwarzania nie jest w tym przypadku jakiś absolutnie krytyczny, ale miło by było, gdyby program z takowej biblioteki korzystający zakończył swoją pracę w jakimś sensownym czasie. Jeśli np. książkę (ok. megabajta tekstu) trzeba podzielić na rozdziały, te na akapity, zdania, frazy, słowa a w końcu dobrać się do analizy pojedynczych liter - proste przesunięcie wskaźnika w C wcale nie jest bardziej skomplikowane, a na pewno o wiele szybsze niż tworzenie jakichś pośrednich stringów w Pythonie. Do ustalenia prawidłowej prozodii muszę we frazie rozpoznać przynajmniej czasowniki i spójniki, do rozwinięcia skrótu muszę pobawić się w rozpoznanie formy gramatycznej, i tak dalej, i tak dalej... nie bez powodu kompilatory pisuje się w C, a nie Pythonie.

Po prostu: język programowania należy dobierać do konkretnego zastosowania. Nie wolno twierdzić, że np. "do przetwarzania tekstu najlepszy będzie Python", bo to zależy od tego w jaki sposób owe teksty się przetwarza. Czasem może być to Python, czasem C, czasem program musi skorzystać z cech różnych języków programowania (dlatego pisanie modułów Pythona w C ma swój sens).

28 minut temu, deshipu napisał:

Ale nie zgadzam się z postulatem, że wobec tego takie języki sensu nie mają wcale

A kto tu śmiał taki postulat postawić? Bo raczej nie ja... ja tylko napisałem coś tam o Javie (która mam nadzieję za parę lat znajdzie się tam, gdzie jej miejsce, obok Algolu60, PL/I czy Snobola).

  • Lubię! 1
Link do komentarza
Share on other sites

3 godziny temu, ethanak napisał:

I tu muszę Cię zmartwić - biblioteka nie jest wcale prosta (nawet stosunkowo).

Mamy inne pojęcie o tym co to znaczy "proste". Podejrzewam, że to także wynika z tego, jakich języków na co dzień używamy i jakie problemy musimy rozwiązywać.

Edit: żeby nie było, że próbuję obrazić, przez "proste" rozumiem "nieskomplikowane" a nie "łatwe". Oczywiście osiągnięcie dobrej wydajności wymaga wiedzy i umiejętności i całkiem sporej dawki myślenia.

3 godziny temu, ethanak napisał:

nie bez powodu kompilatory pisuje się w C, a nie Pythonie.

Niestety kompilatory (a także, o zgrozo, interpretery) pisuje się w Pythonie.  W RPythonie dokładniej. Jest dość spora rodzinka, od różnych forthów i lispów do pythona i php. Zastanawiasz się pewnie jak dobrze to działa?

Otóż PyPy, czyli implementacja Pythona w RPythonie, nie dość, że z mniejszym zespołem programistów robi to wszystko, co programiści CPythona, utrzymując zgodność z ich wersjami, to jeszcze mają czas na eksperymentowanie z różnymi podejściami do zarządzania pamięcią, wielowątkowości, spekulatywnego wykonywania kodu i tak dalej. Jednak użycie języka wysokiego poziomu dużo daje. A jak z prędkością? Fakt, tutaj jest różnie, bo w zależności od benchmarku PyPy jest czasem tylko 6x szybszy od CPythona, a nie 40x jak w większości przypadków.

3 godziny temu, ethanak napisał:

Po prostu: język programowania należy dobierać do konkretnego zastosowania. Nie wolno twierdzić, że np. "do przetwarzania tekstu najlepszy będzie Python", bo to zależy od tego w jaki sposób owe teksty się przetwarza. Czasem może być to Python, czasem C, czasem program musi skorzystać z cech różnych języków programowania (dlatego pisanie modułów Pythona w C ma swój sens).

To jest oczywista oczywistość, dodałbym jeszcze tylko, że nie tylko zastosowanie ma wpływ na ten wybór, ale w praktyce też łatwość utrzymania, dostępność programistów oraz jakość dostępnych narzędzi mogą mieć bardzo duży wpływ.

3 godziny temu, ethanak napisał:
4 godziny temu, deshipu napisał:

Ale nie zgadzam się z postulatem, że wobec tego takie języki sensu nie mają wcale

A kto tu śmiał taki postulat postawić? Bo raczej nie ja... ja tylko napisałem coś tam o Javie (która mam nadzieję za parę lat znajdzie się tam, gdzie jej miejsce, obok Algolu60, PL/I czy Snobola).

Zapewniam cię, że Java ma się dobrze i jeszcze dziesiątki lat będzie używana wszędzie tam, gdzie duża ilość kodu i wymagania architektoniczne pasują do tego języka (i rzeczywiście, nie będą to ani aplety przeglądarkowe, ani telefony komórkowe). Natomiast oczerniając Javę pozwoliłeś sobie wymienić cechy, które uważasz w tym języku za wadliwe — i oczywiście są to te same cechy, którymi szczycą się praktycznie wszystkie języki wysokiego poziomu takie jak Python, Perl, Ruby czy JavaScript. Dodając do tego fakt, że pojawiasz się z pianą na ustach w każdym wątku, w którym wspomnę o Pythonie, myślę, że moja interpretacja twoich, jak to twój przyjaciel określił, "zarzutów, marudzenia, zawodzenia" jest choć trochę uzasadniona. Java ma swoje problemy i sam unikam jej jak ognia, ale akurat te, które wymieniłeś, nie są istotne.

Edytowano przez deshipu
Link do komentarza
Share on other sites

46 minut temu, deshipu napisał:

Dodając do tego fakt, że pojawiasz się z pianą na ustach w każdym wątku, w którym wspomnę o Pythonie,

Przejdź się na spacer, bo coś sobie ubrdałeś. To Ty wyskakujesz z tekstami "wyrazy współczucia" gdy ktoś wspomni o pisaniu modułów do Pythona w C/C++. Awersja do języka? Ktoś Ci krzywdę zrobił? Twoje teksty na temat Pythona akurat niewiele mnie interesują dopóki nie mijasz się z prawdą i nie próbujesz ogłaszać publicznie jakichś prawd objawionych.

Mówisz o szybkości działania... Kilkudziesięciokrotna różnica nie ma pewnie większego znaczenia w domowych zastosowaniach - pięć czy dwieście milisekund to jedna chwała, w sumie i tak mniej niż sekunda. Ale różnica między dwiema minutami a godziną jest już lekko wyczuwalna, mimo że to tylko 30- a nie 40-krotne wydłużenie czasu. Że nie wspomnę o różnicy między godziną a dobą... I jakoś nie mogę sobie wyobrazić syntezatora mowy, który czytając mi książkę zastanawiałby się sekundę przed każdym słowem.

A co do istniejących i udokumentowanych bibliotek - wypada mi tylko powiedzieć "Dobranoc, Lordzie Dorwin".

Link do komentarza
Share on other sites

4 minuty temu, ethanak napisał:

To Ty wyskakujesz z tekstami "wyrazy współczucia" gdy ktoś wspomni o pisaniu modułów do Pythona w C/C++. Awersja do języka?

Absolutnie nie. I nie ma to nic wspólnego z C++ jako takim — po prostu wiem jak wygląda API Pythona dla C++ i przez jakie obręcze trzeba skakać, żeby to w jakikolwiek sensowny sposób działało. Ale oczywiście musisz założyć, że nie lubię C++.

6 minut temu, ethanak napisał:

Mówisz o szybkości działania... Kilkudziesięciokrotna różnica nie ma pewnie większego znaczenia w domowych zastosowaniach

Nie myślałem o domach, tylko o centrach obliczeniowych. Naprawdę nie ma żadnej różnicy czy twój program zajmuje na starcie 100kB pamięci czy 10GB, jeśli przepuszczasz przez niego w zasadzie w sposób ciągły gibibajty danych. Stałe po prostu znikają, co się liczy to asymptotyczna złożoność algorytmu, którego używasz — czyli napicane w C "szybkie" iterowanie pointerem po danych, z wykładniczą złożonością, będzie zawsze wolniejsze od tego samego zadania zrobionego sprytniejszym algorytmem, z wykorzystaniem już zoptymalizowanych struktur danych obecnych w języku. A przy tym będzie dużo mniejsze, więc łatwiejsze w utrzymywaniu.

Ty piszesz o syntetyzatorze mowy, i to pewnie jeszcze na jakieś mikrokontrolery albo komputery jednopłytkowe — i jak sam mówisz, tutaj język niskiego poziomu się sprawdzi, bo masz niską złożoność zdania do wykonania i niewiele linii kodu — więc nie boli cię tak bardzo ani to, że musisz tego kodu kilkanaście razy więcej napisać, ani to że trudniej go przeczytać i połapać się w nim. Do tego pewnie całość pisze od początku do końca jedna osoba. Ale to jest bardzo niszowy przypadek. W momencie kiedy musisz napisać cokolwiek bardziej złożonego, w zespole który ma więcej niż kilka osób i utrzymywać to przez 20 lat pomimo zmieniających się wymagań, czar niskopoziomowych języków pryska. Chcesz się nawet pozbyć tych binarnych bibliotek, bo w takim PyPy napisane w natywnym Pythonie są prawie zawsze szybsze. 

Już nawet nie wspominam o tym, że zanim skończysz cyzelować ten swój wydajny program w C, to za pół roku komputery i tak będą dwa razy szybsze i będą mieć cztery razy więcej pamięci.

Link do komentarza
Share on other sites

A tak z ciekawości zapytam - w czy napisany został Linux? Czy jego złożoność nie jest aby większa niż wielu aplikacji w pythonie? Bo jeśli przypadkiem napisany jest w C, działa całkiem wydajnie, ma ponad 20 lat, a pracowało nad nim więcej niż kilka osób to o czym cała ta dyskusja? Są banalne projekty w C i całkiem zaawansowane w pythonie, ale są i o wiele bardziej zaawansowane w C, czy asemblerze. Leczenie własnych kompleksów na forach internetowych chyba nie ma chyba sensu - niech każdy pisze mega fajne programy w jęzku, który zna i lubi oraz pozwoli innym wybierać inne rozwiązania.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.