• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jaka ścieżka kariery dla Frontendowca?

+1 głos
190 wizyt
pytanie zadane 15 sierpnia 2021 w Rozwój zawodowy, nauka, szkoła, praca przez pvalue Dyskutant (8,700 p.)
Dowiedziałem się z pewnych źródeł że aplikacje frontendowe napisane w JavaScript wyprą wkrótce tradycyjne molochy w c++ z GUI tylko pod Windows (np VScode). Z tym wiąże się moje pytanie jaka jest ścieżka rozwoju dla osoby targetującej w Frontend?

1. HTML

2. CSS

3. JAVA SCRIPT

4. ??? REACT, VUE, Angular ?

W czym się pisze apki bo chyba nie w czystym JavaScript?
2
komentarz 15 sierpnia 2021 przez CSSoup Mądrala (6,430 p.)

Dowiedziałem się z pewnych źródeł że aplikacje frontendowe napisane w JavaScript

Hmmm, może chodziło bardziej o PWA chociaż tutaj też bym polemizował :D

2 odpowiedzi

+3 głosów
odpowiedź 15 sierpnia 2021 przez Comandeer Guru (567,400 p.)
wybrane 15 sierpnia 2021 przez pvalue
 
Najlepsza

Problem polega na tym, że VSCode nie jest napisane w C++ i tylko pod Windows. To cross-platformowy edytor kodu, opart o Electron – a więc jest reprezentantem tego, co ma "wyprzeć molochy".

Teraz pytanie, co rozumiesz pod "aplikacje frontendowe". Jeśli mówimy o aplikacjach desktopowych pisanych przy pomocy technologii webowych, to Electron jest doskonałym przykładem takiego rozwiązania. Można obok niego wymienić także Fluttera czy React Native (które są bardziej targetowane pod mobile, ale też da się w nich przygotować apki desktopowe).

Jeśli jednak rozumiesz aplikacje uruchamiane w przeglądarce, to zapewne chodzi Ci o PWA. I tutaj zaczyna się robić mniej ciekawie, bo tego typu aplikacje możliwości pozwalające im na konkurowanie z natywnymi desktopowymi apkami mają tak naprawdę tylko w Chrome, dzięki tzw. projektowi Fugu. Inne przeglądarki wprost odmawiają implementacji poszczególnych APIs, więc na dłuższą metę jest to vendor lock-in w środowisku Google'a (chyba że coś się zmieni w W3C i WHATWG, ale na to się nie zanosi).

No i jest jeszcze cały problem związany z tym, że optymalizacja silników JS ma swoje granice i od lat nie udało się nikomu wymyślić czegoś rewolucyjnego, by faktycznie wybić się znacząco przed konkurencję. Największą zmianą było tak naprawdę wprowadzenie JiT-a przez Google w V8 (to był 2008 rok, jeśli mnie pamięć nie myli) i do dzisiaj cała zabawa kręci się wokół tego. W międzyczasie powstało asm.js, które obecnie zmieniło się w WebAssembly i sytuacja powoli staje się dokładnie odwrotna, niż to, czego dowiedziałeś się z różnych źródeł – rzeczy napisane w C++/Ruście są odpalane w przeglądarkach. Dzięki temu zapewnić można wydajność nieosiągalną w JS, co jest istotne np. przy przetwarzaniu grafiki.

Podsumowując: jeśli technologie internetowe miałyby wyprzeć C++ na desktopach, zrobiłyby to lata temu (bo Electron i jego przodek, node-webkit/nw.js nie są rozwiązaniami nowymi). Obecnie z jednej strony mamy Electrona, z drugiej PWA – ale obydwa rozwiązania nie dostarczają takich możliwości, co aplikacje w C++, a już na pewno nie taką wydajność. Najprawdopodobniej będziemy mieli za to skręcenie w stronę hybrydowych rozwiązań – GUI w Electronie/PWA, a bebechy jako C++/WebAssembly. I paradoksalnie to właśnie WebAssembly ma większe szanse na wyparcie C++, bo są naprawdę ambitne plany zrobienia z niego drugiej Javy (write once, run everywhere).

komentarz 15 sierpnia 2021 przez pvalue Dyskutant (8,700 p.)
JiT w C++ jest pod kompilatorem Clang i z bibliotekami LLVM. Kiedyś były takie appki pod IE

tzw. aplety napisane w C++ i Java w ogóle się to nie przyjęło.

[1] https://clang.llvm.org/
komentarz 15 sierpnia 2021 przez Comandeer Guru (567,400 p.)
Apletów w C++ w przeglądarkach nie było nigdy, były w Javie. Potem Chrome miał swojego NaCl/PNaCl, którego chciał przeforsować jako standard (mniej więcej w tym samym czasie co Darta). Ostatecznie doszliśmy do względnego porozumienia z WebAssembly.

No i JiT w C++ to zupełnie inny JiT niż ten w przeglądarce (chociaż AFAIR WebKit faktycznie używał/używa LLVM do JS-a).
0 głosów
odpowiedź 15 sierpnia 2021 przez Wiciorny Ekspert (219,270 p.)
edycja 15 sierpnia 2021 przez Wiciorny

 aplikacje frontendowe napisane w JavaScript wyprą wkrótce tradycyjne molochy w c++ z GUI

ale aplikacje GUI w C++ to aplikacje desktopowe na GUI, a frontendowe aplikacje, to aplikacje frontendowe... to jak porównywać piernik do wiatraka?  
To są dwa odrębne od siebie  kierunki tworzenia programów 
Frondend, no to znajomość : JavaScript (w tym też HTML,CSS), znajomość może nawet TypeScript teraz, dobrania do  tego narzędzi -> frameworka, w ktorym chcesz tworzyć np. Angular, Vue.js, React.js
Zapoznania się z node.js, jeśli mówimy o tworzeniu całej "fronendowej warstwy z serwerem" czym jest NPM, czym jest w ogóle node.js
Aplikacje tworzy się z pomocą wielu technologi, bo to są aplikacje. 

komentarz 15 sierpnia 2021 przez JakSky Stary wyjadacz (14,690 p.)

Coś pomieszałeś. Frontend możesz pisać także w Java, C++ czy C#(i pewnie w kilku innych językach).

aplikacje, desktopowe na GUI, a frontendowe aplikacje, to aplikacje frontendowe.

Ta granica przecież coraz bardziej zanika. Chodzi głównie o cięcie kosztów i optymalizację pracy. Jak tworzysz aplikację przeglądarkową to możesz ją łatwo zmienić na aplikację desktopową(np za pomocą Electrona).

komentarz 15 sierpnia 2021 przez Comandeer Guru (567,400 p.)

Chodzi głównie o cięcie kosztów i optymalizację pracy. Jak tworzysz aplikację przeglądarkową to możesz ją łatwo zmienić na aplikację desktopową(np za pomocą Electrona).

I dlatego FB utrzymuje co najmniej 4 wersje Messengera: tę na desktopowym FB w okienkach czatu, tę na messenger.com, tę w aplikacji desktopowej i tę w aplikacji mobilnej. Faktycznie, optymalizacja pracy i cięcie kosztów jak nie wiem ;)

Jedyna optymalizacja, jaką tutaj widzę, to w zasobach ludzkich, bo w końcu to wszystko napiszą programiści JS, nie trzeba nikogo zatrudniać. I tak to, IMO, wygląda w sporej liczbie Electronowych apek. Bo większość z nich byłaby o wiele wydajniejsza, gdyby była napisana nie w JS-ie.

komentarz 15 sierpnia 2021 przez Wiciorny Ekspert (219,270 p.)
edycja 15 sierpnia 2021 przez Wiciorny

@JakSky,  jak cytujesz to cytuj poprawne napisałem, że  APLIKACJE DESKTOPOWE GUI TO APLIKACJE DESKTOPOWE, a aplikacje frontonowe, to frontonowe. 
Dwa odrębne aspekty, aplikacja frontendowa nie jest okienkowa.

1
komentarz 15 sierpnia 2021 przez Comandeer Guru (567,400 p.)

@Wiciorny, to popraw przecinki :P Bo na razie wychodzi ze zdania, że aplikacje GUI w C++ to aplikacje, a desktopowe to jakieś inne.

komentarz 15 sierpnia 2021 przez Wiciorny Ekspert (219,270 p.)
tak tak czytając wiem, przecinki ...  taki mały delimiter :)
komentarz 15 sierpnia 2021 przez JakSky Stary wyjadacz (14,690 p.)

@Comandeer, 

I dlatego FB utrzymuje co najmniej 4 wersje Messengera: tę na desktopowym FB w okienkach czatu, tę na messenger.com, tę w aplikacji desktopowej i tę w aplikacji mobilnej. Faktycznie, optymalizacja pracy i cięcie kosztów jak nie wiem ;)

Ale przecież Fb to gigantyczna firma. Oni mogą mieć inne podejście(stać ich) czyli piszemy np najbardziej optymalne i najbardziej kompatybilne aplikacje. Czyli WPF dla Windows, React dla Web itp. Dlatego tyle tych aplikacji mają. 

Mi chodzi o małe i średnie firmy. Dobry przykład np. Framer czy AdobeXd.

Jedyna optymalizacja, jaką tutaj widzę, to w zasobach ludzkich, bo w końcu to wszystko napiszą programiści JS, nie trzeba nikogo zatrudniać. 

O i tu jest pułapka. Otóż jak postawisz aplikację na Electronie to właśnie JS będzie najmniejszym problemem! Po co masz tą aplikację desktopową? Głównie by korzystać z dobrodziejstw systemu operacyjnego. Czyli np dostęp do rejestru kluczy, dostęp do menadżera zadań czy do aktualizacji danych a tu Electron wypada blado. Trzeba zejść, aż do node.js i pisać w C++. 

komentarz 15 sierpnia 2021 przez Comandeer Guru (567,400 p.)

Mi chodzi o małe i średnie firmy. Dobry przykład np. Framer czy AdobeXd.

Dywagowałbym, czy Framer to mała firma. No i oni tworzą produkty w większości zorientowane na Web – więc to nie jest takie głupie w tym wypadku. A Adobe to megakorpo.

Ale przecież Fb to gigantyczna firma. Oni mogą mieć inne podejście(stać ich) czyli piszemy np najbardziej optymalne i najbardziej kompatybilne aplikacje. Czyli WPF dla Windows, React dla Web itp. Dlatego tyle tych aplikacji mają. 

Robiłoby to sensy, gdyby było jak mówisz. Ale wszystko stoi albo na webview, albo na Electronie. I w tym momencie sensu to nie ma.

Po co masz tą aplikację desktopową? Głównie by korzystać z dobrodziejstw systemu operacyjnego. Czyli np dostęp do rejestru kluczy, dostęp do menadżera zadań czy do aktualizacji danych a tu Electron wypada blado. Trzeba zejść, aż do node.js i pisać w C++. 

Po co takiemu spotify albo messengerowi takie rzeczy? Najczęściej odpowiedź brzmi "bo mam apkę internetową, ale nie mogę zrobić powiadomień w trayu/na ikonce aplikacji". No i myślę, że w npm można znaleźć rozwiązania większości tego typu problemów z interakcją z systemem, więc z punktu widzenia programisty JS to jest transparentne, bo natywne moduły wystawiają API.

Podobne pytania

0 głosów
1 odpowiedź 926 wizyt
+1 głos
1 odpowiedź 782 wizyt

87,976 zapytań

136,557 odpowiedzi

304,510 komentarzy

58,337 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...