[ANNOUNCE] Introducing GX

[ANNOUNCE] Introducing GX

am 20.09.2011 15:49:53 von uzarek

I am happy to announce the first public (developer) release of GX, a web=20
application framework that is designed from the ground up to be run in=20
persistent environments like mod_perl (or FastCGI).

You can download the (pre-alpha) release from CPAN:

http://search.cpan.org/~jau/GX-0.2000_01/

or from the GX Framework website:

http://gxframework.org/downloads/

I have also set up a public git repository at:

http://git.gxframework.org

A (pathetic excuse for a) quick start tutorial is available here:

http://gxframework.org/documentation/tutorials/quickstart/

Please give it a try and post feedback here or on the GX Framework mailing=
=20
list (http://groups.google.com/group/gxframework). Additional contact=20
information for reporting bugs, etc. can be found in the POD.

Have fun!

=2D-
Jörg A. Uzarek
runlevelnull.de

Re: [ANNOUNCE] Introducing GX

am 21.09.2011 16:52:32 von Jan Pazdziora

On Tue, Sep 20, 2011 at 03:49:53PM +0200, Jörg A. Uzarek wrote:
> I am happy to announce the first public (developer) release of GX, a web
> application framework that is designed from the ground up to be run in
> persistent environments like mod_perl (or FastCGI).
>
> You can download the (pre-alpha) release from CPAN:
>
> http://search.cpan.org/~jau/GX-0.2000_01/
>
> or from the GX Framework website:
>
> http://gxframework.org/downloads/
>
> I have also set up a public git repository at:
>
> http://git.gxframework.org
>
> A (pathetic excuse for a) quick start tutorial is available here:
>
> http://gxframework.org/documentation/tutorials/quickstart/
>
> Please give it a try and post feedback here or on the GX Framework mailing
> list (http://groups.google.com/group/gxframework). Additional contact
> information for reporting bugs, etc. can be found in the POD.

Hello Jörg,

three questions -- there already seems to be a GX framework for JS
animation:

http://gx.riccardodegni.net/
http://code.google.com/p/gxframework/

Aren't you affraid of namespace clash?

The tutorial is nice but it's mostly a get-mod_perl-running tutorial
-- the resulting application is what seems to be just a static
welcome.html there. Any more complex example application, showing
some Perl code executed, and database accessed? The GX man page it
lacking the relationship explanation as well.

Can you provide some high level comparison to (say) Catalyst? Surely
there was a reason to come up with yet another web application
framework, so what are the selling points?

Thanks,

--
Jan Pazdziora

Re: [ANNOUNCE] Introducing GX

am 21.09.2011 18:18:21 von Dave Morgan

On 21/09/11 08:52 AM, Jan Pazdziora wrote:
> On Tue, Sep 20, 2011 at 03:49:53PM +0200, Jörg A. Uzarek wrote:
>> I am happy to announce the first public (developer) release of GX, a web

Snip ......

> Hello Jörg,

Snip .....

> Can you provide some high level comparison to (say) Catalyst? Surely
> there was a reason to come up with yet another web application
> framework, so what are the selling points?

I would be extremely interested in such a comparison. Almost required
for me to consider using it.

Thanks

Dave

--
Dave Morgan
Operations Manager, Cool Places In Canada
http://www.coolplaces.ca
dave.morgan@coolplaces.ca
403 288 8759

Re: [ANNOUNCE] Introducing GX

am 22.09.2011 18:36:37 von uzarek

> Hello Jörg,
>=20
> three questions -- there already seems to be a GX framework for JS
> animation:
>=20
> http://gx.riccardodegni.net/
> http://code.google.com/p/gxframework/
>=20
> Aren't you affraid of namespace clash?

No. The name collision is unfortunate, but shouldn't be a problem since the=
=20
two frameworks do very different things in two different programming langua=
ges=20
=2D there isn't much room for confusion IMHO. Besides that, the JS project=
=20
hasn't seen an update for two years now (correct me if I'm wrong), so this=
=20
should be a non-issue.

> The tutorial is nice but it's mostly a get-mod_perl-running tutorial
> -- the resulting application is what seems to be just a static
> welcome.html there. Any more complex example application, showing
> some Perl code executed, and database accessed? The GX man page it
> lacking the relationship explanation as well.

You are right. There is no end user documentation at the moment (and almost=
=20
certainly won't be for the next couple of months). I probably should have=20
chosen "Looking for fearless pre-alpha-testers with too much free time on=20
their hands" as the subject of my original post. The API reference, however=
,=20
is pretty much complete - but, as you said, it doesn't connect the dots yet.

If you (still) want to play with GX, I suggest using the bootstrapped=20
application (from the tutorial) as a starting point. Try modifying the=20
default() action in the application's Root controller for starters. Since=20
everything in a GX application revolves around the context object skimming=
=20
over the GX::Context POD is probably very insightful. The GX::Controller PO=
D=20
contains some basic examples on how to declare routes, use filters and defi=
ne=20
(custom) renderers for your actions. Unfortunately, it doesn't explain the=
=20
automatic template rendering mechanism yet. But it works as expected: Simpl=
y=20
add a template file to your application's templates/ directory and GX will=
=20
render it automatically (if a corresponding action exists). The test=20
application in t/GX-Controller/06_rendering/data/ gives an overview of the=
=20
possibilities (formats, multiple template engines). Looking at the other te=
st=20
applications in t/GX-Controller (and in t/GX-Context) is probably helpful t=
oo.

To use the GX database API, simply create a database component (module) and=
=20
add it to your application's lib/ directory. Just take a look at the synops=
is=20
of the GX::Database subclass you want to use (e.g. GX::Database::Pg). To ge=
t a=20
(cached) database handle, simply call MyApp::Database::Foo->dbh().

> Can you provide some high level comparison to (say) Catalyst? Surely
> there was a reason to come up with yet another web application
> framework, so what are the selling points?

The main selling point would be that GX is designed for persistent=20
environments (mod_perl or FastCGI). GX preloads, precaches, prerenders and=
=20
precompiles as much as possible as soon as the application is loaded/setup.=
=20
Besides the performance gain, this has the additional advantage that many=20
common errors can be caught at setup time (e.g. a bad route or a missing [%=
=20
END %] tag in a .tt template).

Another major selling point would be the reload mechanism. When running in=
=20
development mode, a GX application automatically reloads itself whenever on=
e=20
of its components (or templates) is changed: No need to restart the server.

GX is also highly modular and very easy to extend. A GX application is=20
basically a sequence of hooks. The application's components/plugins add=20
callbacks ("handlers" in GX terminology) to those hooks. You can add/remove=
=20
hooks/handlers as you like, which makes customizations/optimizations (and a=
lso=20
writing plugins) a breeze.

GX also offers a database connection cache, a highly customizable rendering=
=20
mechanism, powerful flow control options, out-of-the-box session management=
,=20
informative exceptions and, last but not least, a clean, consistent API.=20

But again, this is a pre-alpha release. I'm just looking for some feedback =
and=20
maybe a few fearless testers. I'm sorry for not making that clear earlier.

=2D-
Jörg A. Uzarek
runlevelnull.de