
Mojolicious 8.0 released: Perl real-time web framework - kraih
http://blog.kraih.com/post/178173935636/mojolicious-80-released-perl-real-time-web
======
ethelward
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!

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

~~~
kraih
It'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#...](https://mojolicious.org/perldoc/Mojolicious/Guides/Cookbook#REAL-
TIME-WEB)

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

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

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

~~~
kraih
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! :)

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

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

~~~
CamTin
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](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
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/](http://modernperlbooks.com/books/modern_perl_2016/)

~~~
CamTin
This looks great. Thank you.

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

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

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

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

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

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

~~~
Coffeewine
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?

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

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

------
jokab
And they said naming shit is hard.

------
claydavisss
Love Mojo. Easy to use and fun!

------
arrakeen
shagadelic!

