Mojo.js is a port of Perl's Mojolicious to TypeScript
mojojs.org
mojojs.org
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
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."
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?
- 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)
I hope its an opportunity for the Mojolicious team to do things they just couldn't do their Perl framework due to legacy constraints etc and they get to take on fresh new ideas and see them through! I've heard good things on the peripherals for years about Mojolicious
On a side note, I'm surprised to see frameworks trying to use benchmarks against Express as a key feature. Framework overhead is insignificant when requests delays are mostly due to the database/network.
It really depends. When every part of your app is concerned with performance, it tends to hum along. When every part of your app tends to think, “the bottleneck is the database, so this doesn’t matter”, you get modern systems.
Now I feel ROMO, though (Regret on Missing Out :)
I actually feel kinda sorry for the perl, I've been programming it for 10 years now (lots of projects with mojo and catalyst) and after a while getting use to not so good ORM (like dbic is) I'm no longer interested in writing any new perl for brand new code. typescript with the static type check is too good