> Task runners fatigue
I admit that sounds new to me.
> In addition to the global gulp command, you also need to install a local gulp in your project.
No, you don't. To install gulp *globally*, that is. You can also run `npx gulp` from the terminal, or `gulp` right away from an NPM script.
> Using just gulp brings a newpackage.json file and the beloved node_modules folder with 253 dependencies and 1946 files.
So you're complaining about disk usage?
> Even if your project doesn’t use Node.
If you're using Gulp, you're using Node. If Gulp is the only Node package you're going to use, you'll probably better off with something else.
> Native.
What does "native" mean to the author? Make is a binary, just like Node.
> That’s the reason why I couldn’t help but developing a task runner to run them all.
Oh for heck's sake.
https://xkcd.com/927/
Man, this article is a *total mess*!
There are many ways to speak bad about Angular, but you're actually missing basically all of them.
> Out went two-way data binding, replaced with one-way data flow, just like React.
Two-way was just considered too computationally heavy, that's it. That's why they introduced one-way data binding back in AngularJS 1.3 (the ">" binding), way before React came out.
In Angular one-way because the standard, and it's a good thing.
> Out went Controllers, replaced by Components, just like React.
Components are in AngularJS too, since v1.5 (and they've been behind the blurred concept of "directive" since the beginning). And they're quite different from React components or components from other vDOM libraries.
They're much more similar to Web Components and, as that, less capable (you can't have abstract components like <Router> or <Query>) but also much closer to the standard, as the Angular Elements project proves.
> There is no upgrade path from AngularJS to Angular
You're actually right on that, but is it really worth mentioning it in 2018? If you have to deal with AngularJS applications, they're probably all bloated with old patterns and bad practices by now, that's not worth it to just upgrade them to Angular: rewrite them from scratch (as you would do with React, anyway, but with a completely different way of thinking) or stick with AngularJS, really.
> it makes it easier for Java Devs to learn JavaScript by giving them things like strong typing, courtesy of TypeScript
Uh, not really. What it makes a difference here is that Java developers are more comfortable using a *framework* like Angular, and not juggle with libraries to cover all the parts of a modern web app.
Experienced that personally when I was a consultant for a project that had to be done by Java developers.
Do you think TypeScript is all about typings?
> I’m not sure why anybody would think this is a good thing.
Because it is?
Look, you can be comfortable writing vanilla JavaScript, as I am - but using TypeScript is undenyably pleasing. It's not a miracle cure, but it actually helps organizing your code, avoiding problems and speeding up development.
> if they want to learn JavaScript, then why can’t they learn it properly?
PSA: TypeScript is a *superset* of JavaScript. Which means, regular JavaScript is valid TypeScript code.
One of the strong points of TypeScript is that you can gradually introduce it in your workflow.
> I go for a Java job.
Jesus, this example is terrible! It's the JavaScript community that's moving towards static typings because they're nice to use; the other way around (getting rid of types because... huh) just doesn't make any sense.
Now, there *are* concepts that are common in JavaScript and awkward in Java. But guess what, Java *is* also evolving. Slowly, but still.
> When templating, the code that you actually have to HTML is some other language that Angular has just invented.
Yes, and as you mentioned, it's the same for any other modern web library. It's something we have to deal with, *including React*. Until Apple's proposal to introduce HTML templates with bindings will be introduced in browsers, and libraries will start using them.
Why, do you think JSX is *not* a templating DSL built on top of a HyperScript-like abstraction?
So this point is completely invalid.
> I’d never actually used the native .map() method before I saw it used in the React docs.
It would be far too easy to mock you about this (.map has been around since 2005, two years before jQuery's "equivalent" came out), but this actually tells something about you as a JavaScript evangelist.
> Angular gives you nothing to handle state management.
Yes, it's actually a fair point here. As a framework, it should do, because it's a concept that became central to develop a modern web application.
But then again, it's the same for React, Vue, mythril or whatever you pick.
> RXJS is based around Observables.
It's more than that: it's the JavaScript version of ReactiveX, which basically created a de facto standard about the concept of Observable.
> ... which are not native to JavaScript and might never be.
Sure. But they *are* on track, on Stage 1 and soon to be on Stage 2.
Compared to Redux or React synthethic events that's a big difference.
I honestly don't see Observables going away and there's quite some favour to standardize them, and they're actually one of the best traits of Angular (acknowledged by most of the community). It's not about Angular, it's about async and functional programming in general.
> You get an Observable, then convert the results to a Promise.
If you want. When using Angular, personally I got used to use Observables right away. The only downside to this is that I can't use await on them.
> This is, a new module with a different syntax to Http. Time to rewrite again.
This is why they're called "breaking changes", my friend. You can deal with them, or not. If not, stick with LTS versions of the library. This is all, and that's not just an Angular thing.
Good thing they've given you plenty of time to make the transition (you could use both of them in Angular 4).
> In React, you’re free to use whichever Ajax tool you like.
See, and *that* could actually be a problem, if you acknowledge there are good points in "having decisions made on your behalf". Libraries get abandoned, deprecated and marked as insecure everyday.
For me, it's hardly a problem, because I'm familiar enough with JavaScript to understand a library and its strong and weak points, maybe even before using it. It's not the same for a diverse team, which cannot spend time and resources to investigate which library is the best.
That's the strength of Angular.
> Stop already!
Yeah, stop writing rants like that: they don't help anyone, really.
What I think is *actually* harmful for the JS community is this kind of witch hunt.
Maybe Sean was in a bad mood, or perhaps frustrated that MooTools is back from the dead just to bust the new attempt to extend JavaScript's standard library (again!). You can't judge him for just that.
That whole thread gives me a stomach ache, with all those passive aggresiveness. But they're all reasonable people, so I think they will clarify soon.
That being said, Sean Larkinn is *not* webpack. The former is a person, the latter is a great project that's pushing the web development community forward by setting new, remarkable standards of dev tooling. webpack isn't made by just Sean and will survive Sean's contributions.
Thank you Frederic for giving Echo JS a second chance!
And excellent choices for the new moderators. Congrats Fabien, Steffen and Michael: you've been a great help for the community, so your new roles are well deserved. 👍
This article is... very bad, and I say that as both a Node and PHP developer. There are mistakes, inconsistencies and inaccuracies in basically every paragraph. I wanted to reply to all of those but it would take too much time.