We know folks have been waiting for an announcement about Apostrophe
2. And we don't want to keep you in the dark.
So here's the big news:
Apostrophe 2 will be built on node.js.
OK, now the FAQ:
* "What is node.js?" node.js, for those who don't already know, is a
powerful framework for developing server-side applications that run on
the open source v8 JavaScript engine developed for Chrome. node.js is
event-driven, allowing for startling levels of performance in web
applications, yet the ability to use JavaScript closures allows for
elegant and maintainable code.
* "What happens to my existing sites?" Only good things! We are still
building Apostrophe 1.5 projects, and even new plugins. We'll be
supporting Apostrophe 1.5 for a long time to come, much as the Symfony
community continues to support Symfony 1.4. And we'll be maintaining
the existing trac documentation and svn repository for Apostrophe 1.5.
Code and documentation for Apostrophe 2 will live on github.
* "Not PHP? Not Symfony 2?" That's correct. Symfony 2 is a great
framework that does a lot to make PHP better. But node.js and the
JavaScript language are a better fit for us. node.js has taken our
office by storm, and for very good reason. The performance,
maintainability, and sheer power of node.js development is a value
proposition we can't ignore. Our clients love the responsiveness of
node.js applications. And every JavaScript developer - which probably
includes just about all of you - is already a node.js developer
waiting to happen.
* "Does this mean I can use one language for the browser and the
server?" Yep! If you're familiar with jQuery at all, you'll find
yourself right at home with node's callback-driven style. Limiting the
cognitive shift required to move back and forth between browser and
server code is a big win, especially as you can use the same template
languages and utility libraries on both sides.
* "Where can I play with Apostrophe 2?"
https://github.com/punkave/a2-sandbox
Right now the sandbox project displays a simple one-page site with two
areas, which currently allow you to add text items (formerly known as
"slots"). You can drag and drop those items freely between areas,
something that wasn't possible in Apostrophe 1.5. The "save" button
saves the content on the server for the lifetime of the server
process, demonstrating the serialization and validation features of
the a2 core.
Keep in mind that we've been focusing on the area and item concepts
(akin to areas and slots in A1.5) and haven't yet turned our full
attention to the page tree concept. Also, we're hard at work on the
file item, which will serve the role of the image, slideshow and file
slots of Apostrophe 1.5.
* "What happened to your work on Apostrophe 2 for Symfony 2?" We
pursued it for a pilot project. We learned valuable lessons from that
project but ultimately decided node.js was a better platform to reach
our goals for A2.
* "Can I contribute?" Sure! But keep in mind that we're moving fast
and refactoring brutally at this point. Right now the project is a
single sandbox repository, but we've already established a plugin (aka
"bundle") architecture which will allow third party code in modules
distributed via the node.js npm repository to be included in a project
easily.
* "When will it be usable?" We plan to complete client projects based
on Apostrophe 2 in just a few months.
* "When will it be stable?" It'll take a while for A2 to settle down
to a "we promise not to break anything" level of stability.
* "What about the database? Are you using MySQL? MongoDB? Or..." We're
using MongoDB. MongoDB is a really good fit for this kind of work,
with extraordinary performance married to a JavaScript-based API
(there's that language again).
* "What Node framework are you using?" We'll be using Express. We're
still finalizing decisions about our preferred template language but
we don't expect you'll be forced to use it. We're taking a careful
look at Nunjucks (
http://nunjucks.jlongster.com/), a port of jinja2,
which is part of Twig's family tree (har har har).
* "Where can I learn more about node.js?"
http://nodejs.org/
* "What else are you guys doing with node?" Quite a bit actually. This
is just the stuff in the punkave repo; our team is involved in many
node projects:
https://github.com/punkave/a2-sandbox
https://github.com/punkave/node-netpbm
https://github.com/punkave/dox-foundation
https://github.com/punkave/grunt-dox
https://github.com/punkave/jquery-rest-admin (this is browser side but
we plan to use it a lot in our node projects)
https://github.com/punkave/stagecoach
We hope you'll join us in the Apostrophe 2 and node.js world. And
we'll still be active in the Apostrophe 1.5 world.
Thanks for everything you do with Apostrophe!
--
Tom Boutell
P'unk Avenue
215 755 1330
punkave.com
window.punkave.com