6 ms·
Mojolicious 8.0 released: Perl real-time web framework
- lazyloop 8y agoCongrats! Where i work Mojolicious is what keeps us using Perl.
- f055 8y agoMy company uses Mojolicious for all our webdev and Perl for all our in-house stack. Full disclosure, it was my decision ;) but the work is so fast and smooth, I can't imagine switching to anything else.
- Coffeewine 8y agoI've been using Dancer/Plack for a number of years now, are there any particular features of Mojolicious which make it preferable to your mind?
- Grinnz 8y agoSince it is built from the ground up around an event loop, asynchronous requests and responses as well as websockets work much more naturally. With Plack-based frameworks the PSGI spec is not built for asynchronous behavior, so you have to rely on hacks and use specific PSGI servers like Twiggy.
- Cyberdog 8y agoWhat does "real-time" mean in terms of a web framework? As a web developer for over a decade, I don't recall seeing a web framework described with that before and have no idea how to interpret it.
- joelberger 8y agoIt is built on an ioloop and has a special emphasis on making websockets and other streaming communications easy.
- kraih 8y agoIt's "real-time web", which mostly means WebSockets these days. (https://en.wikipedia.org/wiki/Real-time_web https://en.wikipedia.org/wiki/Real-time_web) But in the case of Mojolicious it is also used to highlight certain optimizations that make it very easy to use WebSockets and HTTP side by side in the same web application. https://mojolicious.org/perldoc/Mojolicious/Guides/Cookbook#REAL-TIME-WEB https://mojolicious.org/perldoc/Mojolicious/Guides/Cookbook#...
- mncharity 8y agoCongrats on the release. > mostly means WebSockets these days And some WebRTC. Sub-100 ms latencies. 200? Voice and video chat, and gaming. npm's Primus. PubNub. >> As a web developer for over a decade, I don't recall seeing a web framework described with that before and have no idea how to interpret it. 'Realtime web' has been a phrase for a decade-ish - used to be server push. Google is fruitful; the Wikipedia article... needs help.
- deleted 8y ago[deleted]
- fibo 8y agoMojolicious was maybe the first framework with Websocket support.
- kraih 8y agoI've not really thought about that before, but looking through the commit history it actually seems very likely that we were the first. Back then the WebSocket protocol looked very different from today. https://github.com/mojolicious/mojo/commit/a1a7060e35a6a0965938f00a1971047bfed26b5a https://github.com/mojolicious/mojo/commit/a1a7060e35a6a0965...
- ricardobeat 8y agoClose, socket.io’s first release was on January 3rd 2010. There were a few other experiments before that in late 2009.
- kraih 8y agoThe initial commit for socket.io was actually on March 17 2010. https://github.com/socketio/socket.io/commit/c8edad861a1b920470a3ebe45b3ae64fed6bdd75 https://github.com/socketio/socket.io/commit/c8edad861a1b920...
- ricardobeat 8y agoThat was the first public release. There used to be a History.md file in the repo with the January date. There was a lot of experimentation even before that - browsers started adding experimental WS support on the second half of 2009, right as node was gearing up. Some artifacts from that era: https://github.com/socketio/socket.io/blob/5518f8cb2c41251282e863a5a43f2194f6b0299f/History.md https://github.com/socketio/socket.io/blob/5518f8cb2c4125128... https://robots.thoughtbot.com/real-time-online-activity-monitor-example-with-node-js-and-websocket https://robots.thoughtbot.com/real-time-online-activity-moni... https://groups.google.com/d/msg/nodejs/1Bla2JHc3f0/N3fpKe7dYWYJ https://groups.google.com/d/msg/nodejs/1Bla2JHc3f0/N3fpKe7dY... Another thing to keep in mind is that the precursor SSJS environments like Jack/Narwhal, Helma etc probably added it even earlier. Hard to tell since GitHub itself was new and many of these sources are hard to find today.
- s99x 8y agoWoho 8.0! I enjoy quickly writing simple web apps with Mojolicious::Lite in particular.
- twistedanimator 8y agoCongrats on the release! I've used mojolicious for several of my personal projects and it's been wonderful. @kraih I applaud your work ethic as the frequency of your commits and releases show you are dedicated to the project and keeping it moving forward. Thank you!
- kraih 8y agoThank you. I've been very fortunate to have found an employer that enables me to keep contributing to open source projects this actively. So SUSE also deserves a big thank you for making Mojolicious 8.0 possible! :)
- petre 8y agoWe are also heavily using it since 3.x. Thank you! Any reasons for picking Cpanel::JSON::XS over JSON::XS? The latter has marginally better performance.
- kraih 8y agoYes, Cpanel::JSON::XS can be configured to be closer to the original Mojo::JSON behaviour. And the maintainer has historically been more cooperative with efforts to make Perl JSON modules compatible with each other.
- xeeeeeeeeeeenu 8y ago>And the maintainer has historically been more cooperative with efforts to make Perl JSON modules compatible with each other. Indeed, MLEHMANN's (JSON::XS maintainer) difficult personality was one of the main reasons why Cpanel::JSON::XS was created and why it has gained so much popularity despite being almost identical functionally.
- rurban 8y agoI would rather point out that JSON::XS simply refused to fix its most important bugs, and rather blamed upstream. I simply fixed those bugs and kept maintaining it. I also added many new features, just streaming support not yet. The name is a bit unfortunate though as Cpanel itself still refuses to use it for political reasons. There is a high-profile jerk there running an agenda for his own personal profit. So I rather want to persuade Lehmann to give me his namespace and continue with it under the original name.
- Grinnz 8y agoThere is a long list of bug fixes and enhancements that have been made in the fork, many of which are critical in my opinion: https://metacpan.org/pod/Cpanel::JSON::XS#cPanel-fork https://metacpan.org/pod/Cpanel::JSON::XS#cPanel-fork
- claydavisss 8y agoLove Mojo. Easy to use and fun!
- CamTin 8y agoJust recently trying to get into Perl (trying to bone up for a specific position that requires it) and Mojolicious has been an incredible discovery: the "lightweight" Rails/Django replacement (somewhere between Rails and Sinatra in terms of ceremony and structure) I've always wanted.
- captain_perl 8y agoMojolicious is a mind-blowing framework, doubly so with Mojolicious::Plugin::OpenAPI. Unlike Catalyst, there's very few dependencies. For a beginner, I'd recommend reading "Learning Perl" by Randal Schwartz first, then read a couple of the online Mojolicious tutorials/blogs. Also, beginners should note that there's 2 framework approaches, Mojolicious::Lite (a wrapper) and the full Mojolicious, and mixing up the examples or documentation will confuse you.
- CamTin 8y agoYep I'm tearing through "Learning Perl" and "Intermediate Perl" (aka the "llama book" and "alpaca book") while also trying to do some "practical" projects in Mojolicious (https://github.com/ctindall/hotseat https://github.com/ctindall/hotseat is the closest to an actual releasable project, which also has a client in Racket (which I'm just trying to get into, though just for fun)) to apply what I'm learning.
- richardkmichael 8y agoI'd recommend "Modern Perl" as well. It's online as HTML or a free PDF, start here: http://modernperlbooks.com/books/modern_perl_2016/ http://modernperlbooks.com/books/modern_perl_2016/
- CamTin 8y agoThis looks great. Thank you.
- f055 8y agoBrilliant news! Mojolicious is the best. And the new logo is fantastic.
- arrakeen 8y agoshagadelic!
- ethelward 8y agoI absolutely love how Mojolicious::Lite let me develop in an afternoon a simple website for a little idea of mine in a single file. And the “deployment” was suprisingly painles. Thanks for that and congratulations for the new release!
- dang 8y agoIt's fine for this project, like others, to have a turn on HN every now and then, but could you drop the promotional voting and commenting? It's happened several times and we usually ban accounts that do this.
- jokab 8y agoAnd they said naming shit is hard.