Jak tak czytam, to gdzie by ktoś nie napisał czegoś o Angularze, to od razu ktoś odpisze, że Angular jest be, Angular to rak i teraz tylko React lub Vue. Zacząłem sobie ostatnio coś klepać w Angularze i wydaje się być dużo prostszy i przyjemniejszy niż taki React (niepopularna opinia). O co tu chodzi? o_O
W PHP się bardzo prosto pisze proste aplikacje. Skąd więc tyle hejtu?
@Wibowit: ? Hejt dotyczy Angulara, a to chyba Reacta się porównuje do PHP.
Chodzi mi bardziej o to, że porównujesz przez pryzmat małej aplikacji. W wątku o Pythonie jest sporo argumentacji, że typowy ziomek programista pisze krótkie programy i do takich programów Python jest jak znalazł. Mimo tego korpo używają Javy i C# do wielkich kobył. Być może w przypadku Angulara i Reacta jest podobnie i inwestycja w Reacta zwraca się wraz ze stopniem skomplikowania aplikacji.
Też mnie to dziwi. Nawet wśród twórców yt widać mniejszą popularność Angulara w porównaniu do Reacta.
Słyszałem, że Angular ma dużo wyższy próg wejścia niż jego konkurenci - może o to chodzi? Aczkolwiek sam nie mam porównania do Reacta póki co.
@nobody01: Ja takich opinii nie zauważyłem. Może przypadek, czytasz akurat takie źródła?
@Wibowit: Masz jakieś argumenty za tym, że React lepiej się nadaje do wielkich projektów niż Angular?
W Reakcie urzeka mnie prostota tworzenia komponentów, a także higher order components, dzięki nim mogę mieć praktycznie na wszystko komponent i pisać aplikacje w customowym DSLu unikając czystego HTMLa :)
Jest większe prawdopodobieństwo, że wypowiedzą się ludzie, którzy coś krytykują, niż odwrotnie.
Ponieważ ceromonia wymagana przez Angulara, te wszystkie adnotacje, ten specyficzny dsl do generowania widoków są nie współmierne do uzyskanego efektu. Ten sam efekt można uzyskać w Reacie bez całej tej niczego nie wnoszącej i niepotrzebnej nadmiarowości Angulara.
Korporacje wybierały Angulara bo jest bardziej "opinionated" i jest mniej sposobów na zrobienie jednej rzeczy, gdzie React pozostawia dużą dowolność, przez co aplikacje pisane w Reacie są bardzo różnorodne, gdzie w Anuglarze są bardzo podobne do siebie.
zresztą trend jest wyraźny, odnośnie tego kto się wysuwa na prowadzenie:
https://www.npmtrends.com/angular-vs-react-vs-vue
React urósł z 2,1 mln do 5,7 mln w ciągu 2 lat
Angular z 0,3 mln do 0,45 mln
Vue z 0,3 mln do 1,1mln
@neves Wolałbyś ręcznie konfigurować kontener IoC? Poza tym te adnotacje są generowane przez CLI i chyba jedna adnotacja na klasę to nie tak dużo. W Springu mają ich o wiele więcej. :P I czy fakt, że aplikację są pisane podobnie, nie jest dużym ułatwieniem dla początkujących?
To że aplikacje wyglądają podobnie jest ogromny ułatwieniem i jedyną rzeczą która trzyma angular przy życiu,
A po co Ci ten konterner IoC w warstwie prezentacji :D?
Żeby backendowcom było łatwiej zostać tym mitycznym fullstackiem :P
W Reakcie przynajmniej trochę funkcyjnego podejścia lizną, świat poza OOP poznają :D
Sporo krytyki dotyczyło porzuconego AngularJS i kilka późniejszych wersji, gdzie, pisząc delikatnie, było sporo bugów i niedociągnięć, ponadto stabilizacja w świecie js to spory atut (który wydaje się posiadać react), więc sam start Angulara zdefiniował jego pozycje, sporo osób uznało go za niestabilny projekt i nie wiązało z nim przyszłości.
Jako jvmowiec jak już mam tą nieprzyjemność robienia czegoś na froncie to wybieram angulara. Masa ceromonii, wielkie to i toporne, więc nie ma aż takiego szoku kulturowego w porównaniu do np reacta
edit: jak pytałem frontendowców w robocie czemu react a nie angular to mówili, że wydajnościowo react sobie lepiej radzi. Nie wiem ile w tym prawdy. Na końcu i tak każdy z nich strzela do phpa :D
Ja lubię angulara i jak robie apke frontową to tylko w angularze. vue nie lubię za dużo nerwów mnie kosztował i te rąbnięte mieszanie css, js i html w jednym pliku, pfu, a gdy popatrzyłem na reacta to tak samo by mnie wk*****ł więc wole nie ruszać.
Bo Angular to framework dla ludzi, którzy nie lubią JSa.
@Maciej Cąderek: obecnie tak angular jak i vue pisze sie w ts
Tylko klepanie kilku komponentów html/scss/ts do każdej podstronki jest strasznie meczące na dłuższa metę, może przy większych projektach ma to jakiś sens, jak sypią hajsem i godzinówka leci, czy się stoi czy sie leży.
Długo już nie robiłem we froncie, ale imo największy atut React "za dawnych czasów" to była bardzo przyjazna "learning curve" - można było dołączyć normalnie <script>-em dwa skrypty z CDN-a, walnąć React.createClass() i hello world gotowe. Bez budowania, transpilacji, npm-a itp. więc renoma przyjazności przetrwała. Podczas gdy Angular (wtedy chyba 2 albo już 4) wymagał setupu projektu, połowy internetu do zaciągnięcia, TS który był mało znany i wyglądał obco, upgrade był męczarnią itp.
Dziś w obu obozach sytuacja wygląda podobnie, ale niesmak pozostał.
Odnośnie frameworków js i SPA nie trzeba wybierać tylko drogi zero-jedynkowej (jak wspominał @mr_jaro ) są rozwiązania hybrydowe oparte na PJAX, które oferują przeładowanie dynamiczne/wstępne z zachowaniem routingu i seo, oraz działania w przypadku braku js w przeglądarce, np. barba.js o której wspominałem w swoim wątku, zajmuje "aż" 7kb i oferuje powyższe, do tego PWA i mamy szybko i lekko bez żadnego frameworka ;)
Jak ktoś nie lubi ani JSa, ani TSa, to jest jeszcze Dart. AngularDart. Korzystał ktoś? Można dzielić kod z Flutterem ;)
Przypomniałem sobie dlaczego jeszcze nie lubię Angulara:
- dokumentacja, całą dokumentację Reacta (bez api reference) można przeczytać w dwa dni na upartego w jeden, dokumentacja Angulara jest bardziej obszerna, i znalezienie czegoś w niej też wolniej idzie
- nie wiem jak jest teraz, ale Angular 4 nie działał przy bardzo restrykcyjnych ustawieniach Content Security Policy (CSP), React nie ma z tym żadnego problemu.
mr_jaro napisał(a):
Ja lubię angulara i jak robie apke frontową to tylko w angularze. vue nie lubię za dużo nerwów mnie kosztował i te rąbnięte mieszanie css, js i html w jednym pliku, pfu, a gdy popatrzyłem na reacta to tak samo by mnie wk*****ł więc wole nie ruszać.
Zacytuję samego siebie sprzed chwili:
Ja wolę CSS i HTML w kodzie źródłowym (np tym JSXie, czystym JSie, Scala.jsie, itd) niż odwrotnie, czyli programowanie w znacznikach i atrybutach HTML (typu ng-if, ng-repeat, itd). Wstawianie nawet najprostszej logiki w znaczniki HTMLowe to chybiony pomysł. Oczywiście to tylko opinia, możecie się nie zgadzać.
IMO ify (&&) w JSXie brzydko wyglądają, już wolę *ngIf
, tak jak autor tego kontrowersyjnego wątku :D https://www.reddit.com/r/reactjs/comments/bv9nxf/react_sucks/ Szczególnie trafia do mnie argument, że need to install 12 different packages to make it useful
. Fajne jest też podsumowanie: React is just Angular if you hacked 12 libraries together that aren't meant to work together cohesively.
Component abstraction soup means you can't even figure out what your code is doing anymore.
Kwestia preferencji, ja tam wolę zupę komponentów niż zupę divów :)
React is just Angular if you hacked 12 libraries together that aren't meant to work together cohesively.
Na pewno? W temacie już wymieniono kość niezgody - React miesza JSa z HTMLem i CSSem, a Angular wprowadza sztuczny podział (bo i tak ten JS jest silnie sprzężony z HTMLem, a HTML zawiera znaczniki typu ng-if i ng-repeat do programowania w HTMLu). Poza tym wydaje mi się, że w Angularze polega się zwykle mocno na two-way binding, a w Reactu zamiast tego jest one-way binding oparty o np Reduxa.
Jak już idziemy w uproszczenia to można powiedzieć, że WPF jest WinFormsami z dodatkami, a JavaFX jest Swingiem z dodatkami.
No ale w JSXie też masz instrukcje warunkowe i logikę. A two-way binding jest opcjonalny. Warto przeczytać: https://www.quora.com/Has-Angular-started-to-slowly-die
Ja jak patrze pod kątem ofert pracy (.Net + jakiś framework frontendowy) to przeważa jednak angular. Jak nie znałem angulara ani reacta to zacząłem naukę od angulara ale tylko przez krótką chwile. Potem zacząłem reacta i wydawał mi się dziwny. Ale po około pół roku przyzwyczejenia do reacta ciężko pewnie byłoby wrócić do angulara.