top | item 33662870

(no title)

sarabob | 3 years ago

It has been interesting watching this develop, if for no other reason that Express is somewhat stuck after TJ left to make koa[0] and hasn't changed much since 2014. Express 5 has had no commits for 9 months - it's not dead, but it's not exactly thriving either. While there are alternatives to Express, none seem to have huge amounts of traction or do far more than a backend framework (nextjs, sveltekit), so maybe there is room for another framework.

I'll never forget seeing this tweet[1] - what I considered a core pillar of the perl community discovered that after a short period of familiarization, a perl developer of many years could write code that is many times faster just by switching from perl to js. No deep voodoo, no special tricks - just write code in JS and handle 3x as many reqs/s. I'm glad to see that the rest of the mojo ecosystem is coming along - Minion is a really nice, simple job queue that can piggyback on your existing postgres database without depending on redis or anything. Would be awesome to see a dynamodb backend someday. Hmmm.

Unfortunately I'm not sure who the target market is - a typescript web framework selling itself as "Perl-grade" anything is not a good look for 99% of JS/TS devs. Maybe it's positioning itself as the logical migration path for companies moving away from perl?

[0]https://github.com/expressjs/express/issues/2844 [1]https://twitter.com/kraih/status/1392405140406210560

discuss

order

kraihx|3 years ago

Hi, Mojolicious founder here. The "Perl grade" is meant to be a cheeky callback to Perl's famous backwards compatibility (you can run pretty much any Perl code written in the past 30 years with the latest Perl unchanged...yada yada). Perhaps it is a bit too subtle.

Back when i started with Node, one of the first problems i constantly ran into was some NPM module deep down in my node_modules folder breaking its API in a minor version bump and causing hours of cleanup work. So pretty early on avoiding this issue became a priority for the mojo.js port, and i see it as one of the main niches for us to corner. You want to write a fast JS/TS web service that still works in 10 years? Use mojo.js!

Maybe you've got a suggestion for how to better communicate this idea?

ofrzeta|3 years ago

You seem to have followed the development, but anyway in this blog entry they explain the motivation and the plans for the TS version:

https://mojojs.org/news/mojo.js-1-released

Among other things I find this quite interesting:

"Software supply chain attacks around NPM are a hot topic right now. And it can be quite problematic to audit your whole dependency tree. Thankfully, while the Perl version has no dependencies at all, in JavaScript we only have 23 trusted third party dependencies. And we are prepared to replace every single one of them if necessary, with a port of the battle-tested Perl implementation."

christophilus|3 years ago

I’ve been slowly working on a 0 dependency framework in Bun for similar reasons. The size of the average package-lock.json is absurd and nerve wracking.

sideproject|3 years ago

I know there is still a tendency to choose Express as a de-facto standard, but I have been using Adonisjs more thesedays. For me it feels more familiar since it follows much of the Laravel principles and patterns, but I also like it because it does come with a lot of boilerplate stuff filled out, but not enough to overwhelm you.

[0] https://adonisjs.com

ofrzeta|3 years ago

It looks interesting. Some observations/metrics of the repo I use for a preliminary judgment of a project:

- comparatively large community

- only a handful of open issues while approximately a thousand issues have been closed

- on the downside it seems driven (and developed) by a single person (same as with Nest.js) which imposes a comparatively high risk in my opinion

- includes a lot of "first party packages" for things that already exist in the ecosystem, such as their own Lucid ORM. Depending on your point of view might be a good (less dependency on NPM ecosystem) or bad (NIH)