Well... there goes TypeScript being a superset of JavaScript. This is where the roads separate, I guess, unless TS gets a prompt update.
> we need to allow public fields with the same name.
I'd say there's no such a thing: private properties always begin with a #, while publics ones never do.
?! Where does this comparison make sense?
Laravel is a fully-fledged MVC framework, where Node is just a JavaScript execution environment. A fair comparison would be between Laravel and Express.
And again, Express is just a barebone router with some template engines, whereas Laravel is a battery-included framework with a service container (as you mentioned), a config manager, a default ORM, a testing library and so on. It's more like Angular in this sense, but for back-end development.
Honestly I have a poor idea why Laravel is shipping with Vue now, since one of the most powerful things in Laravel is indeed the routing system. The choice itself to ship with yet another library - and purely a front-end library on top of that, since it can't be used for SSR - is quite against the current general philosophy to be as minimal as possible.
I'm not sure this comparison makes sense. Although most of the task we define are about bundling stuff, Gulp is a platform for any kind of scriptable task. As such, its contenders are Grunt, Broccoli or npm scrpts, while webpack's are Browserify or Rollup.
Isn't the gotcha here that everything passed to the `of` property gets evaluated anyway, even if it's not rendered? Because that's something I'd like to avoid and why I'm still sticking to conditionals.