I came and i fell in love with the pure vanilla html/js syntax, no jsx no typescript, no decorators or bundling and build tool was necessary at first. any html you copy and use is valid html, no bullshit like className like react and jsx
At that early point I was also quite turned of by how slow it was to load a simple hello world example and how large the framework was (like 700kb!). took something like 2s to load a simple hello world example. so it never took of with Aurelia .
Time went by i come back and see a huge performance boost and a grate maturity and a grate reduction in size so i was ready to put my claws into start trying out Aurelia for a 2nd time
Then I read that there is a major v2 going on
And now all the docs/examples are in TypeScript and you use things such as public/private when you should instead be using # for real private fileds and you spew out @decoratros everywhere that isnāt part of the javascript language
and you use import with extension less path, donāt you know that itās a bad practice and now considered as a anti patter and that javascript imports in browser require it to be explicit Even deno is more strict and explict about the path, even they require .ts in the end
i donāt use typescript and i donāt want to either itās a made up language that donāt run anywhere without being compiled to javascript in the first place itās just a wasteful JIT compiler that sits inbetween and needs to compile stuff and wasting your time everytime you want to develop something. itās also unconventional in the way they invent new things on top on javascript when js already has itās way like private class fields for example.
Iām glad that i never jumped on to the Aurelia train and witness it doing the same shit as angular 2.x did.
Your key selling point was
āAureliaās standards-based, unobtrusive style makes it the only framework that empowers you to build components using vanilla JavaScript. If you know modern JS and HTML, thereās little more to learn to build even the most complex apps.ā
It no longer holds true for v2 you now have to learn typescript, decorators and being forced to use build tools. now i need to learn to do things in your way.
ā¦and to that i say my goodbyes once again to Aurelia. glad i never wasted my time on it.
@jimmywarting I am sorry to see that you feel that way. Please note that although the docs are TypeScript-based, it does not mean that Aurelia2 is forcing you to learn TypeScript. You can still use it with vanilla JavaScript. If the public/private access specifiers bother you, you can always use the JavaScript syntax for that. Aurelia2 does not prevent you from doing that.
On the other hand, the decorator proposal is already in Stage 2 Decorators proposal. And I would argue that the decorator concept is not unique in TypeScript.
Lastly, I would like to ask you, is this only a code style issue that you didnāt like, or you have faced any specific issue with Aurelia2?
Just for information, internally, Aurelia2 uses all imports with extensions. Aurelia2 is also ESM and as far as I remember, the choice of using an import path with or without extension is dominated by the type of module resolution and ecosystem around that.
Well, i can say that iām in the frontline of cutting edge version of chrome sometimes running the beta version. I have worked with javascript in 12 years to know the in and outs of it, so i donāt need any typescript stuff in my life to help me with type errors, all doe i use typescript with checkJS + jsdoc, so itās somewhat useful, but what can i say. I like buildless tools above everything else, i want to use script[type=module] everywhere and use import syntax supported nativly in the browser
I know decorators are on the way but it havenāt landed in the browser yet. i only use what is possible in the browser. i donāt like to waste my time on build steps. most often i develop for one browser (chrome or the beta version) and then when i want to release something only then do i downlevel it to something that is supported in older browser, i rather prefer babel over typescript for instances.
the biggest reason why i donāt want to bother learning aurelia now is b/c the docs are in typescript syntax. otherwise i know that i can use it without typescript but there is more things like
constructor(@IRouter readonly router: IRouter) { ā just super weird to me that donāt know typescript that well.
constructor(private router) {
that has special things in typescript that also assign the this value with the this.router = router
i do think itās good that you use typescript as it even helps with IDE, but i will never contribute to such repo cuz itās written in typescript. I see it as just unnecessaryā¦ thatās all, I even created this article to express how much i donāt like or need typescript You Might Not Need TypeScript and how tired iām of seeing more project being written in typescriptā¦
typescript files are impossible to import from plain vanilla js modules and from any cdn, they always have to be compiled and be built to some larger older es3/es5 version of something, and itās mostly bundled into one file so it is no longer code split friendly anymore
if the docs changes to be more vanilla JS friendly, then I might reconsiderā¦
Sometimes i just want to find that new frontend framework that is still written in vanilla js to support it even more so that i can feel like i can contribute, but it seems like every darn things is being converted to typescript nowā¦
As a matter of fact, you can use Aurelia2 as native module in browser, my friend. Here is an example you might like: aurelia/index.html at master Ā· aurelia/aurelia Ā· GitHub. Know what? Give it another try, we can use your feedback
Right now it feels like the docs is an obstacle since itās mostly written to target TypeScript developer, cuz right now i have 2% knowledge of Aurelia.
for instances this decorator example
@bindable() size: string = '100px';
How can i use this without decorator?
Iām not on board with this decorator yet. if i can write aurelia application without having to compile/build things then that would be huge. I like rapid prototyping
I donāt want to bother having to try and strip out all typescript flavored syntax from the docs. Iām to comfortable with good old javascript and itās here to stay, browser is never going to allow Typescript to run nativly in browser, it will only be wasm and javascript, chrome tried with dart when it was popular and it failedā¦ so i always bet on javascript, i just see typescript as another coffeescript language
Note that you can define the bindables using vanilla JS: Conduit
itās mostly written to target TypeScript developer
I mildly disagree here, since I think the knowledge is transportable to JavaScript as well. And as you would probably know and understand, that documentation and keeping those in sync with the changes is a huge undertaking. For Aurelia2 we have tried our best to keep the docs helpful and up to date. A lionās share of that credit goes to @dwaynecharrington. We have paid attention to provide as much example as we can; even how to use the stuffs without decorator in some places.
However, as I said before this is a huge undertaking and maintaining the docs for both TS and JS only adds to that effort. This is where we can use the help of community. If you feel that the docs are lacking enough vanilla JS example, please consider creating PRs. We always welcome and appreciate community contributions.
Lastly, I would say that Aurelia2 is a solid framework, and if you invest a bit more time, you wonāt regret it. Also, if you havenāt already joined the discord chat here is the link: Aurelia, you can leverage the help of the enthusiastic community as well as the core team member bit more easily when you need it.