Blogs : Latest entries
|
|
| < Previous page | Next page > |
|
Frank Sommers of Artima has started a discussion about template engines and asks what you find important in them. Template engines seem to be one of the most stagnant technologies in Java, many adopt the design that mixes content and logic but implement it differently (PHP, JSP, Velocity, Freemarker, ...). It's a good thing that Terrence Parr (of ANTLR fame) created StringTemplate which seems to move in a similar direction as what we've been doing with our template engine in RIFE. He acknowledges the push model that injects values and text into a template instance instead of pulling them in with an expression language. While I prefer our approach where there really is no logic in the template at all, I really appreciates what Terrence says in his docs: Language theory supports my premise that even a minimal StringTemplate engine with only these features is very powerful--such an engine can generate the context-free languages (see Enforcing Strict Model-View Separation in Template Engines); e.g., most programming languages are context-free as are any XML pages whose form can be expressed with a DTD. This goes back to a less-is-more philosophy where you build what is needed to comfortably use a technology in trivial and advanced situations, and nothing more. RIFE's template engine does the same. Instead of including a whole collection of additional features, we rely on you making a mental shift to adapt your development habits towards the new capabilities and characteristics of our template engine. In my case its not language theory, but rather lots of very complex HTML layouts and other uses of our template engine that gets me to say that our template engine is powerful enough to allow you to comfortably build anything you want, without compromising on context separation and reusability. Have you ever tried out another template engine besides the classic pull model in anger? What did you think of it? |
|
There are no new features since release 1.6, this is a bugfix release. Everyone using continuations is urged to upgrade to 1.6.1 due to performance regressions that crept into the previous release. You can read the full changelog for more details. This release can be downloaded from the downloads section, as usual. |
|
Below are the highlights:
Full documentation for the new features is being written and will be published in the RIFE wiki cookbook. You can read the full changelog for more details. This release can be downloaded from the downloads section, as usual. |
|
The podcast of my mini-talk at JavaOne 2007 has been published on java.net, this is the abstract: State management has always been a complex and tricky part of web application development. Continuations simplify this and automatically allow you to create a one-to-one conversation between users and a web application. State preservation and flow control no longer need to be handled manually, bringing you back to the simplicity of single user console applications. Remember 'scanf()'? This presentation will introduce continuations from general principles, followed by practical examples that explain how they benefit web application development and their frequent usage patterns. Finally, automatic fail-over and scalability will be demonstrated through the integration with Open Terracotta. You can listen to it here. The corresponding slides and examples can also be downloaded. |
|
I already bumped into some RIFE users on the conference floor and I thought it would be nice to at least set a time apart to have some drinks together and exchange war stories I propose that we meet today, May 9th at 17h30, at the Thirsty Bear. This is right before the JavaOne bloggers party, so you don't have to miss that. Maybe we can even spread the word about our favorite projects! Even if you don't know open any of the projects in detail but are interested cutting-edge web development, native Java continuations, Rich Internet Applications, ... you're welcome to stop by for a chat. If you don't know what I look like, here's a recent picture: |
| < Previous page | Next page > |



