PDA

View Full Version : [AngularJS] Una meraviglia o un bidone ?


perporsof
07-09-2016, 09:16
Buongiorno a tutti

Mi sto documentando, e chiedo cortesemente opinioni a propostito, su AngularJS, framework che nella prima versione aveva ottenuto in poco tempo un grande successo (soprattutto all'estero, ma anche in Italia penso siano stati avviati non pochi progetti che lo utilizzano, anche di dimensioni importanti).

Il problema, come per altre storie relative a strumenti supportati da quel colosso-monstre di Google e' il fatto che la seconda versione AngularJS2 e' praticamente incompatibile con le versioni precedenti, se uno aveva un progetto praticamente lo deve riscrivere, e la cosa ha scatenato un putiferio non da poco.

Questi sono alcuni articoli tecnici che argomentano i difetti e i limiti di Angular prima versione, difetti che hanno evidentemento spinto quel colosso monstre di Goggle a rifare praticamente tutto con la versione due(qualcuno sostiene che non dovrebbe essere chiamato ancora Angular tanto e' diverso..)

https://medium.com/@mnemon1ck/why-you-should-not-use-angularjs-1df5ddf6fc99#.v7o7i44uk

http://www.quirksmode.org/blog/archives/2015/01/the_problem_wit.html

http://tutorials.jenkov.com/angularjs/critique.html#critique-summary

http://www.letscodejavascript.com/v3/blog/2015/01/angular_review


(i pregi invece, sempre della prima versione, sono ovvi, basta documentarsi un po', fare qualche prova,per rimanere stupiti di quello che faceva AngularJS 1, il binding bidirezionale automatico ad esempio..)

Il problema e' quello di considerare, ora, ancora valido AngularJS2, nonostante la brutta storia passata, di fidarsi ancora insomma, per non perdere altro tempo come e' successo a molti di quelli che si sono buttati sulla versione 1..

grazie

71106
07-09-2016, 10:48
Che io ricordi il successo di Angular e' stato inaspettato, che e' il tipico motivo per cui un software cresca in fretta tralasciando dei problemi che presto o tardi si rivelano fondamentali.

Non capisco perche' parli dei "pregi della prima versione". Il two-way data binding e' presente ovviamente anche nella seconda versione.

Sul fatto che la seconda versione avrebbe dovuto chiamarsi diversamente sono d'accordo, infatti si chiama "angular.io (https://angular.io/)".

Purtroppo comunque temo che questa storia finira' come Python 2/3.

ndakota
11-09-2016, 20:43
Non è affatto vero che sono così diversi come lo dipingi.
- Sono diversi?
- Sì, chiaramente come ad ogni cambio di major version vuol dire che c'è un'incompatibilità di API, ma questo vale un po' per tutti i software.

- "I software scritti con Angular1 vanno riscritti"
- E perché mai? Si mantengono con le nuove versioni di Angular 1 e stop. Se mai nuovi software puoi iniziarli a fare con la versione 2 ma non vedo perché dovresti riscrivere quelli scritti con la 1.

- Allora perché sembrano tanto diversi?
- Sembrano tanto diversi perché il team di sviluppo di angular abbraccia Typescript, ma non è obbligatorio. Stesso discorso varrebbe per ES6, se vedi dei software Javascript scritti in ES6 sembrano molto diversi da quelli scritti in ES5. Detto questo, se vedessi un'app Angular 2 scritta in ES5, non ti sembrerebbe così diversa, ne sono sicuro.

Sono un fanboy Angular? No, mai usato in vita mia :D

OoZic
11-09-2016, 22:27
Non è affatto vero che sono così diversi come lo dipingi.
- Sono diversi?
- Sì, chiaramente come ad ogni cambio di major version vuol dire che c'è un'incompatibilità di API, ma questo vale un po' per tutti i software.

- "I software scritti con Angular1 vanno riscritti"
- E perché mai? Si mantengono con le nuove versioni di Angular 1 e stop. Se mai nuovi software puoi iniziarli a fare con la versione 2 ma non vedo perché dovresti riscrivere quelli scritti con la 1.

- Allora perché sembrano tanto diversi?
- Sembrano tanto diversi perché il team di sviluppo di angular abbraccia Typescript, ma non è obbligatorio. Stesso discorso varrebbe per ES6, se vedi dei software Javascript scritti in ES6 sembrano molto diversi da quelli scritti in ES5. Detto questo, se vedessi un'app Angular 2 scritta in ES5, non ti sembrerebbe così diversa, ne sono sicuro.

Sono un fanboy Angular? No, mai usato in vita mia :D

piu' o meno concordo.

per piccoli/medi progetti ho roba scritta in Angular 2 anni fa e non ha nessun problema perche' mai dovrei riscriverla?

Angular 1.x viene comunque ancora mantenuto attivamente ed e' open-source, se ci sono problemi "grossi" son sicuro verranno rilasciate patch.

Al momento consiglierei React o Riot.js come framework.

Leggi qui:
https://medium.com/@sachagreif/the-state-of-javascript-front-end-frameworks-1a2d8a61510#.n1n4bouwo

71106
12-09-2016, 16:35
Non è affatto vero che sono così diversi come lo dipingi. perporsof non si e' inventato nulla: https://jaxenter.com/angular-2-0-announcement-backfires-112127.html


- "I software scritti con Angular1 vanno riscritti"
- E perché mai? Si mantengono con le nuove versioni di Angular 1 e stop. Se mai nuovi software puoi iniziarli a fare con la versione 2 ma non vedo perché dovresti riscrivere quelli scritti con la 1. E' questo il problema, qua va a finire come Python 2/3. Nessuno ha riscritto niente in Python 3, e fin qui va bene; ma la conseguenza e' stata che tutti hanno dovuto continuare a usare Python 2 per mantenere il software legacy e raramente avevano motivo di provare Python 3, e quindi inerzia tecnologica.


ho roba scritta in Angular 2 anni fa Angular 2 e' stato a malapena annunciato due anni fa. :D

O intendevi dire "roba scritta in Angular 1 due anni fa"?

OoZic
12-09-2016, 23:02
O intendevi dire "roba scritta in Angular 1 due anni fa"?

*

perporsof
14-09-2016, 13:01
Molte grazie per le risposte, anche se posso capire i 'tralerighe' .....

A proposito delle differenze tra la prima e successive versioni di Angular, se posso ancora chiedere info, concordate su questa pagina che le riassume?

http://www.html.it/pag/58241/angular-2-vs-angular-1-x/

71106
16-09-2016, 12:42
Non sono abbastanza esperto della versione 2 da poter giudicare la correttezza di quanto riportato da html.it, ma dopo aver finalmente dato un'occhiata ad Angular 2 posso dire a ndakota che l'opinione pubblica ha ragione: non c'entra un c***o con la 1. :asd:

Tanto per cominciare la documentazione per sviluppatori JavaScript e' altamente incompleta e l'idea di massima sembra essere comunque quella che bisognerebbe usare TypeScript (i pochi snippet JavaScript disponibili sono inutilmente verbosi). Quindi, allo stato attuale, Angular 2 non e' un prodotto accessibile a sviluppatori JavaScript che non conoscono TypeScript. E cio' e' malissimo, anzi peggio. Potrei anche fare uno sforzo e capire la sintassi (molto intuitiva, invero) di TypeScript, ma chi me lo fa fare visto che Angular 1 e' ancora vivo e vegeto e attivamente sviluppato, e di TypeScript non mi interessa nulla?

Poi cio' che dice ndakota, ossia che se osservassi codice JavaScript per Angular 1 e 2 sarebbero molto simili, non mi sembra neanche lontanamente vero. A me sembrano due framework diversi. In Angular 1 non c'e' il builder pattern. In Angular 1 non ci sono i componenti. In Angular 1 ci sono le direttive, gli scope, e i controller. Angular 2 sara' anche la fine del mondo ma, in effetti, perche' si chiama "Angular"?

Mah, io l'avrei marketizzato in maniera diversa. Non avrebbe dovuto esserci nessun collegamento con AngularJS. E puntare cosi' tanto su un linguaggio come TypeScript mi sembra rischioso.

perporsof
20-09-2016, 08:35
Non sono abbastanza esperto della versione 2 da poter giudicare la correttezza di quanto riportato da html.it, ma dopo aver finalmente dato un'occhiata ad Angular 2 posso dire a ndakota che l'opinione pubblica ha ragione: non c'entra un c***o con la 1. :asd:

Tanto per cominciare la documentazione per sviluppatori JavaScript e' altamente incompleta e l'idea di massima sembra essere comunque quella che bisognerebbe usare TypeScript (i pochi snippet JavaScript disponibili sono inutilmente verbosi). Quindi, allo stato attuale, Angular 2 non e' un prodotto accessibile a sviluppatori JavaScript che non conoscono TypeScript. E cio' e' malissimo, anzi peggio. Potrei anche fare uno sforzo e capire la sintassi (molto intuitiva, invero) di TypeScript, ma chi me lo fa fare visto che Angular 1 e' ancora vivo e vegeto e attivamente sviluppato, e di TypeScript non mi interessa nulla?

Poi cio' che dice ndakota, ossia che se osservassi codice JavaScript per Angular 1 e 2 sarebbero molto simili, non mi sembra neanche lontanamente vero. A me sembrano due framework diversi. In Angular 1 non c'e' il builder pattern. In Angular 1 non ci sono i componenti. In Angular 1 ci sono le direttive, gli scope, e i controller. Angular 2 sara' anche la fine del mondo ma, in effetti, perche' si chiama "Angular"?

Mah, io l'avrei marketizzato in maniera diversa. Non avrebbe dovuto esserci nessun collegamento con AngularJS. E puntare cosi' tanto su un linguaggio come TypeScript mi sembra rischioso.

Grazie per il parere competente, e' proprio quello che pensavo anch'io.