in reply to What's your reaction to "Reaction?"

Well, I'm probably slitting my own throat here, but here goes.

My answer would be, for Reaction, a resounding "not yet". It has great potential, but it is a very long way from being ready for prime time, or really even ready for playing-with.

It is extremely cerebral - possibly over-abstracted but time will tell on that. Being overcerebral is forgivable if you've got great docs, featuring concrete examples - which the Reaction project certainly doesn't yet. In fact, most modules don't have POD at all, and those that do, are almost all doc stubs. I'm certain that it improve will eventually - but in the meantime, you'll be lost in a haze of terminology that is used inconsistently both in the scant docs and on #reaction.

I recently (October 2008) consulted on a project in which the project lead - a big Catalyst fan - was talked into using Reaction (by the Catalyst and Reaction projects founder's consulting group). It was a fairly straightforward web app, mostly CRUD but with some interesting summarization needed for reporting. The project was repeatedly delayed by the need to address the lack of documentation - longwinded lectures from the consultants being the only solution. The project came in late with reduced functionality after many long hours and frayed nerves. I don't know about you, but I want a framework to make my life easier, not worse.

So, overall, for production work, I think Reaction is just way too immature at the moment. You can always implement in Catalyst, and then moving to Reaction won't be very painful once it's ready.

If you insist on using Reaction - which I can't advise against strongly enough, for the time being - I'd suggest becoming a regular on #reaction and/or hiring the aforementioned consultants - it's unfortunately the only way to get the knowledge you'll desperately need to work with this complex system.

All that said, if you've got time to play with it, I'm sure they'd be eager to get docs patches.

  • Comment on Re: What's your reaction to "Reaction?"

Replies are listed 'Best First'.
Re^2: What's your reaction to "Reaction?"
by locked_user sundialsvc4 (Abbot) on Dec 18, 2008 at 03:01 UTC

    Okay, that settles it for me. I'll wait. Thanks.

    “Slitting your own throat here?” Heh... That's why we invest our time here. “Blunt professional honesty = Priceless.”

    And... lest anyone from the Reaction group think that this is “a negative reaction” ... I think that it is quite fair to say:

    • Rome was not built in a day... neither was anything else on CPAN. “We can wait!”
    • “We shall make no wine before its time.”
    • Meanwhile, we all have customers to serve.   :-D

    I, like you, am very interested in Reaction (and based on my code-reading this evening, I am...), and willing to wait-a-bit for its maturity. I see now that I don't have to “shut the door on” using it effectively within the scope of even this project. To leap onto this bandwagon prematurely ... is quite unnecessary.

    Thanks again.

Statistics, Lies and Damn Lies
by xhunter (Sexton) on Dec 19, 2008 at 03:55 UTC

    Being the project lead clwolfe refers to above, allow me to diatribe my view:

    To fully take advantage of Reaction one needs solid working knowledge of Catalyst, M(F)CV pattern, OO, Moose, and most likely an ORM such as DBIC. These skills don't come overnight or a even in a fortnight, but for me me they are valuable skills to seek.

    IMHO, Reaction breaks an application into more than just the three traditional parts of the MVC design pattern. For instance, it requires splitting the model into two parts: business domain and an interface between the business domains and the controllers/views. The views divided into widgets and layout (nested containers for the widgets). In a simpleton's world you may say Reaction carves the app up into 5 or more parts.

    It is true that Reaction is in an early stage and the documentation is growing from sparse to better, but needs community help. What isn't true is the claim that I was talked into using Reaction. It was a choice I made based on a number factors, some better than others:

    * The success I had with mst's perl contributions, even modules at early version numbers.
    * The idea of diversifying the model into multiple components.
    * Being involved with an open source project at an earlier stage.
    * Securing the interest of busy consultants to help us with a substantial project with very short turn-around time.
    * Expand my comfort zone
    * Move away from homegrown components of a framework to standard libraries, or at least libraries being standardized.
    

    One can see that there was some risk involved being an earlier adopter, but the project did not come in late. In fact we achieved one of the few major deadlines in the entire contract so far. Did we get on each other nerves some in the process, hells yes. Did we have reduced functionality? I would say not. What we had was the (I should have known) moving of the goalposts. Do we need such and such feature (from previous system we were redesigning in similar but not exact business domain)? The answer would be no at first then change to yes in midstream of a super-tight deadline. We delivered all the original functionality and more on time. We hadn't planned on scrapping the whole data model we were forking from a similar project, but at the last hour possible we did. That created the most stress, but that data model change from the old cankerous model to the intelligent design model has been a builder's stone worth creation. Changing the data model allowed the the whole application to coalesce using Reaction libraries and Catalyst in short time, and it smoothed the way for data population and computation.

    Reaction is definitely not for everybody, and it probably isn't but for the minority of perl web app. devs, but it is a vital project that delivered a solid application for us on time. If you are comfortable with Catalyst or another M(F)CV and would like to enrich that experience then Reaction is definitely worth investigating.

    Docs may not abound, but there are some examples and I be willing share our code with anyone interested. Reaction evolves quicker with action not words.