I feel bad about projects like these, I really do. I'm sure a lot of effort have been put in and it probably satisfies what OP wants to do. But in the end, no one serious would ever consider using it.
Would anyone serious use this as the frontend for a customer facing website?
Maybe not.
Would anyone use this for “line of business” applications? Internal tools? The signed-in experience on an enterprisey product?
Most definitely.
Guess which one 90% of software falls into.
I work at a tech company, we sell to consumers, we’d never use this for customer facing stuff, but being able to rapidly build web apps that show tabular data and editing controls with various integrations with our services for internal customers and partners is critical. If we built that as fancy React apps all the time we’d never get anywhere.
>But in the end, no one serious would ever consider using it.
Why not?
I would say it is the other way around. For any web application project of decent size there is almost always a transpilation step that converts whatever programming language your source code is in, into JavaScript (usually ES5). We also had very successful and widely used projects like GWT for years (GWT was first released in 2006!!!).
Transpiling to JavaScript is a bug on the web, not a feature. node and npm is a shit show. Having to deal with it a couple days ago. I wish that entire ecosystem would just die.
I can make a sophisticated python web app with 20 packages. Or in JavaScript I'll need a few hundred that have massive vulnerabilities and conflicts. Hell npm reported the most modern packages I was installing had over 200 vulnerabilities. JavaScript pretty much guarantees shit code. I'll be downvoted to hell, but whatever. Js sucks.
I think this is a symptom of being accessible not the language or its tools. NPM is fantastic and anytime I use Go or anything like that I miss it sorely.
Even javascript itself isn't "bad". There are ugly parts but anything written in the modern spec is basically semantically the same as any other language like python.
The problem is that people writing packages on the backend are bootcamp grads, frontend devs, and any number of other people who don't take the backend as seriously as someone who has been devoted to it using a non-javascript language.
I think the other issue is the javascript community wants to reinvent itself every couple months, instead of having one project that becomes defacto for x function over many years.
I don't think it is possible to separate language from tools or community. Those things are always together.
It is entirely possible that Javascript itself is an OK language, but it is too late now. The community has already decided that packages should be tiny, that changing prototype of "array" object is an acceptable thing to do, that failing fast is bad and the best reaction to errors is to mess up the page layout in the unexpected way, and so on.
Maybe one day, Javascript will re-invent itself and get reliable software engineering practices. But I highly doubt that -- there are countless people who know the laguage already, and they are not going to be changing their opinions overnight.
> changing prototype of "array" object is an acceptable thing to do
Uhh, no? I code in JS every day and do nothing of the sort, and I would object if I saw it.
> failing fast is bad and the best reaction to errors is to mess up the page layout in the unexpected way
I don't even know what you mean by this, but the fact that you're conflating JS with "the page" suggests to me that you're not that familiar with server-side JS (which has no "page") and the enormous amount of code that is written to be compatible with it.
JavaScript is a god language. Changing Array.prototype is very much considered an antipattern, except in the case of shims, where it's really useful. JavaScript is reinventing itself, introducing a nice, traditional OOP facade with `class`, and making improvements to functional-ish programming with `let` (as opposed to `var`), arrow functions, and object and array destructuring. The DOM is still very much a "try to display something at all costs" mess that doesn't at all fail fast, but most of the things that you want to happen are indeed happening!
Well, Go is not a great example for dependency management either. That’s like saying how much you miss being slapped in the face after now being punched in the face.
Npm might be a good tool like pip. But unlike pip it encourages installing shit.
Even react which from limited experience is pretty cool. But apparently there must be dozens possibly hundreds of true senior devs in the US. Most everyone else fucks it up.
And I agree there is a shallow depth in the js world. Everyone wants the new shiny toy instead of using an evolving toolkit. JS is the embodiment of ADD.
Or delving into it 16 years ago, teaching classes on it in college. So a little bit longer than a few days and while not a complete expert I can say I have some experience.
How about you? Do you consider yourself a senior after a couple of years of js?
Well, I've did JS since 2000, so I'd consider myself a senior. There's lots to learn, and early Node ecosystem was immature, but it's today quite mature, well supported, with a steady update cycle, good backwards compatibility, and no worse than most of the other options.
If people want to go wild with fad frameworks and libs every year or so, that's their thing. But you can have absolutely stable systems with very few dependencies if you wish so.
You can, but actually seeing it in the wild is rare. I consider myself full stack, but I try to avoid anything js because I'm inhereting someone elses shit ecosystem.
If I was forced to on a couple projects I've seen I'd ask for 10k raise.
>I'll be downvoted to hell, but whatever. Js sucks
Ok. Now that you got this off your chest and you want to build an application that can run inside a browser (i.e. a platform available to billions)...what do you do?
Can you add some more here? Personally I'd probably not use this as I'm already using something with the same aim (dash), I certainly use a project like this for serious things.
I think what OP means is that for someone whose goal is to start a successful business, using a more obscure and new framework is akin to shooting yourself in the foot. There's nothing significant enough that a framework like this provides that justifies 1) the difficulty finding people with appropriate experience, 2) relying on something that may become unmaintained, and 3) an immature ecosystem that means having to deal with tricky problems as you build more complex functionality because you're among the first people to need it.
Of course, there's the "just looking to build something (serious or not) and not concerned about it becoming a profitable business" group of people - like you, perhaps - and that's great! But it generally takes a lot of enthusiasts before a library becomes accepted as mainstream and a certain amount of luck is required for that to happen.
Obscure, yes because it's version 4.0.0 and it's around since 2006 and I never heard about it. New, no.
From the few examples in the README I'd say that it makes development more complex than using the usual server side rendering approaches. I'm also not sure Python is the best language for this sort of things. Better than Java but usually Ruby is better at DSLs.