Why Aurelia Struggles to Gain Popularity

Looks like Aurelia is headed forward to the next level in the not too distant future. Webpack and Tooling will no longer be dependencies so much documentation will no longer be needed. Efforts to show how to do things (simple and advanced) could be diverted to comprehensive example sets and new adopters will find things easy to use from installation onwards. Perhaps a good place to place the official examples would be the Official site at a top level navigation item (ie same level as Guides, APIs Discourse, etc)?

4 Likes

Just wanted to update this thread with a pointer to our 2018 Q3 report: https://aurelia.io/blog/2018/11/04/aurelia-2018-q3-report We announced Aurelia Script and our Code Sandbox work, which I think are important steps to help address some of the issues in this thread. Weā€™ll be taking additional steps through updates to the docs, getting started guides and home page in the coming months. Everything that weā€™re learning and doing for vCurrent, weā€™re carrying over to vNext so that we have everything in a better state from day one with the next major release. Thanks again to everyone for their feedback and continued support! We take it seriously and we love working together with you to continue to improve Aurelia.

6 Likes

VNext sounds good. Iā€™m not sure about the new bundling thing or if I understand it correctly. The reason has been that itā€™s been a bit of a sore point for myself getting projects off the ground (as in small enough bundles, bundling just working in general and writing new TS/JS).

Hereā€™s something from a perspective of a mostly backend programmer in .NET that occasionally does something on the front-end.

A big problem for me and some others I know has been setting up an ā€œindustrial strength projectā€. Related to already written here, I very much like to have take Visual Studio and have a web project ā€œthat just worksā€. The ā€œjust worksā€ in a problem since then I go to see how to:

  • The new Babel 7 + TypeScript + Aurelia + WebPack (https://blogs.msdn.microsoft.com/typescript/2018/08/27/typescript-and-babel-7/ got it working finally).
  • Split bundles by feature (fast basic things, then extra pieces per portion like based on route).
  • Split the aforementioned bundles so that theyā€™re for ā€œthe fairly newestā€ and then the older ones (i.e. not giving a lot of code to newer browsers).
  • Switch writing direction (some CSS plugin).
  • Usability. Whatā€™s the story here is one uses Aurelia? Is Aurelia better or worse than others? This is coming increasingly an issue especially in public projects. It hasnā€™t got yet as much attention as GDPR, but https://ec.europa.eu/digital-single-market/en/web-accessibility is coming fast (no headline grabbing penalties?).
  • Set perhaps bundle alerts either in WebPack or then just read the bundles in the XUnit test project and fail tests if exceeding some size.
  • Set up some sort of a bundle visualization.

Then I want to integrate Aurelia via MSBuild so it does debug, release and packing (also ā€œDebugReleaseā€ and ā€œReleaseDebugā€ see also bundle visualization and how much optimization there is and other measures). It took a lot of time to piece these things together and then I noticed very helpful blog posts

https://natemcmaster.com/blog/2018/07/05/aspnetcore-hmr/


The aforementioned blog posts may help others too and maybe can facilitate discussion here, so Iā€™ll give here. Related to them, I might want to set up XUnit project (handling DB things and others) that can start a headless Firefox/Chrome (Edge coming) to have nice tests rolling constantly while working (something to keep in mind with the testing story).

Echoing what @dwaynecharrington wrote, an example with OpenID sign-in was a real sore point I know has tipped the scales towards other frameworks. Currently there is another thing on the .NET world and itā€™s Blazor (WASM) in .NET Core 3.0 rather soon. Currently, server side rendering via WebSocket (SignalR), but thereā€™s also work on client side WASM which will be interesting. The goal is to have a full stack with .NET using Razor. I see Aurelia is a suited option, but I think many are looking into WASM and are thinking using Aurelia together with Razor as already now. Related examples I know people have been wondering are Aurelia in PWAs and how to do some of the rendering on server side using Razor (and still have things like routing work).

I was very happy to see those announcements yesterday. Great work everyone!

2 Likes

That only concerns public sector, so of course itā€™s not going to get too much attention as it only affects very few.

1 Like

Will there be an upgrade path for those of us who (foolishly, in retrospect) opted to use JSPM and Gulp?

@joelowrance start a new project with cli, install packages, and copy files from the old projectā€¦ done

I suffered from having chosen jspm past year.
I did what Maxim says, start a new project and copy source files.
The issue is that all references to modules must be done with PLATFORM.moduleName. Otherwise, webpack doesnā€™t ā€œseeā€ them.

Regards.

2 Likes

I would expect GDPR to affect far more than the public sector, indeed all companies doing business in Europe both pre/post - Brexit and far beyond. $20 Trillion is 20% of world GDP and presumably business would be interested in participating in some of this market

Back to the original topic, I noticed this morning that the Q3 report made it to JavaScript Weekly. https://javascriptweekly.com/issues/411

That kind of thing is great for gaining traction.

2 Likes

Certainly a game changer for all adopters.

Btw with regards to component vendors and Aurelia

Heavyweight controls that cover most things though at very least need to learn a new binding syntax. I believe older JS1 were jQuery based but JS2 pure JavaScript so they continue to support Aurelia. Similarly Telerik though bear in mind they support multiple versions of Angular too so need to fit in with the way they do things :slight_smile:

We were talking about the web accessibility directive, not GDPR.

I am fairly new to Aurelia (although Iā€™m ready to build my own plugins shortly). Iā€™m an experienced Angular 1 engineer, years of jQuery and other javascript frameworks, Iā€™ve mostly been doing backend stuff lately though with Python Flask, express.js & SparkJava framework (which seems to be all the rage these days for backends). Let me give you guys a bit of my experience if youā€™re interestedā€¦

Yeah let me just briefly describe the overall problems, because as an experienced engineer I recognize the elegance of Aurelia (The Einstein philosophy of elegance and simplicity => correct) hence why I adopted itā€¦ (no it wasnā€™t because I had never heard of vue or react at the time! :hear_no_evil: No it wasnā€™t cuz I have an irrational irritation to strong typing and hated angular2 switch to typescript). Iā€™ll try to be constructive, please donā€™t take it the wrong way.

  1. Starting with the TINY ā€œget startedā€ button on the main Aurelia page. haha. Make it bigger!
  2. Get started takes you to TODO tutorial. Too much setup. Why is it showing me index.html? I donā€™t care about that. As a beginner I only care about ā€œapp.htmlā€ and ā€œapp.jsā€. Instead the tutorial should start with ā€œnpm installā€ and ā€œnpm install au-cliā€ or something. Then ā€œau new TodoProj --quicksetupskipallthedamnoptionsā€.
  3. Why not just put a pasteable CSS (CDN-hosted link to CSS via link tag) to make the todo app look slick?
  4. MORE SCREENSHOTS. There are very few screenshots of each code result. Many engineers learn visually rather than reading (great idea on CODEPEN links Mr. Eisenberg!!!). Some people secretly hate reading it seems.
  5. What the? visual studio is being discussed in the todo tutorial? Most ES engineers (that I know in my industry) use Visual Code or Sublime or notepad++.
  6. I was comparing to the Vue.js intro tutorialā€¦ and I got so bored out of my mind because itā€™s so lengthy. But they had it right when they started off super simple, super easy install, and then showed a custom component. No custom component / element stuff exists in Aureliaā€™s tutorial. However, it went on way too long. I donā€™t have the patience for anything except Chess!
  7. Oh, Aurelia todo tutorial is telling me about main.js now, I really donā€™t think I care as a beginner. Au cli should do the bootstrapping for me already. Oh and by the way, ā€œau generateā€ is broken at this time. Think about tutorials like ā€œtwitterā€ if you can fit your tutorial in 150 characters, even better.
  • Put some more tutorials on getting started, basic custom elements. Basic UI elements utilized. There was a section in AureliaCasts about ToastService event-aggregator, that was a great simple tutorial in the middle of a video! How do I create a component quickly and connect a folder of new custom elements?
  • Perhaps have a tutorial for ā€œblog postā€ (but without all the ā€œarchivesā€ and other nonsense things of traditional blogs), just show me the router & url-slugs!
  • Insert an advanced UI framework tutorial (AureliaCasts was a great tutorial for me, loved it, but I no longer enjoy bootstrap, I am more into Material design now). Maybe you can write a tutorial utilizing Aurelia Material Design (aurelia-materialize-bridge?) showcasing some advanced UI capabilities that engineers today are interested in.
  • More advanced tutorials: how do I design a plugin? How should I organize my static assets?
  • Demos, codepens, demo linksā€¦Have links to cool demo sample websites. The coolest thing Iā€™d want to see first would be to see all big websites using aurelia or some big sample apps using aurelia that look sleek and modern. I saw there was a ā€œaurelia-ux-showcaseā€ and there was no demo link to it, I tried compile, didnā€™t work, gave up.

If I make a medium.com post about some intro tutorials, can I submit any of them to aurelia for approval to be rehosted in aurelia.io ? Just curious.

7 Likes

@ArchEnemy Thanks for the feedback. It aligns well with a lot of what weā€™re hearing from others and what weā€™ve been thinking too. Weā€™ve been doing some core work on our docs infrastructure lately. In the next few days weā€™ll be deploying with some minor updates but the interesting new thing is that we now have an easy way to put CodeSandbox demos anywhere in our docsā€¦so weā€™ll be doing more of that. Next up after that is released, Iā€™m going to re-work the Todo tutorial. No downloads, no installs, no configurationā€¦just getting straight to the learning. Our plan is to put CodeSandbox side-by-side in the browser with the tutorial so you can actually learn in the browser. Since we skip all the setup stuff, we can probably replace that with some more interesting additions, such as showing how to create a custom element, like you suggest. I think thatā€™s a great idea. Summary is, weā€™re working to incrementally address these issues. Weā€™re doing as much as we can for todayā€™s Aurelia and also working to carry all of this forward for our vNext Aurelia as well, so we start out of the gate with that in a more solid position.

10 Likes

From my own experience, initial impressions were very important to me. I needed to be able to get the CLI, ā€˜new upā€™ a project, build and run it without issue. This was not the case. I look around many dotnet CMS projects every so often and, after a short while, leave the projects that require too much time to get up and running or cause me to troubleshoot.
First impressions are vital. One needs to be able to:

  1. Clone repo or CLI a new project
  2. Install the dependencies
  3. Run it

This should happen with zero errors and show nothing but good news in the web console of developer tools. This was not my experience. I made some forum posts earlier this year including:

https://discourse.aurelia.io/t/aurelia-cli-with-a-new-command-and-templates

My thoughts are in there.

Aurelia is my framework of choice and it is a bit of a shame it is not much ā€˜biggerā€™. It really deserves to be. Show Aureliaā€™s power as succinctly as possible to first time visitors (or even those revisiting) and do so without that user needing to troubleshoot. It must just work.

2 Likes

I have used Syncfusion for Aurelia for some time with great success. Awesome support when needed.

Iā€™m sure there would be enough people interested in reading an article about their component suite used with Aurelia. Maybe @EisenbergEffect would also be willing to host it on the official blog if you could create one?

Iā€™d absolutely love to have that on the official blog. Just write a post up in normal Mardown and send it to me. Iā€™ll help edit and work with you to get it in @gregoryagu