Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Mojolicious 8.0 released: Perl real-time web framework (kraih.com)
123 points by kraih on Sept 17, 2018 | hide | past | favorite | 33 comments


I 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!


What 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.


It's "real-time web", which mostly means WebSockets these days. (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#...


Congrats 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.


It is built on an ioloop and has a special emphasis on making websockets and other streaming communications easy.


Mojolicious was maybe the first framework with Websocket support.


I'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/a1a7060e35a6a0965...


Close, socket.io’s first release was on January 3rd 2010. There were a few other experiments before that in late 2009.


The initial commit for socket.io was actually on March 17 2010. https://github.com/socketio/socket.io/commit/c8edad861a1b920...


That 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/5518f8cb2c4125128...

https://robots.thoughtbot.com/real-time-online-activity-moni...

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.


Public release is what counts though, we had been privately experimenting with WebSockets for weeks at that point as well.


It'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.


Congrats 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!


Thank 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! :)


Just 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.


Mojolicious 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.


Yep 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 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.


I'd recommend "Modern Perl" as well. It's online as HTML or a free PDF, start here: http://modernperlbooks.com/books/modern_perl_2016/


This looks great. Thank you.


We 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.


Yes, 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.


>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.


I 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.


There 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


Brilliant news! Mojolicious is the best. And the new logo is fantastic.


Congrats! Where i work Mojolicious is what keeps us using Perl.


My 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.


I'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?


Since 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.


Woho 8.0! I enjoy quickly writing simple web apps with Mojolicious::Lite in particular.


And they said naming shit is hard.


Love Mojo. Easy to use and fun!


shagadelic!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: