The Artima Developer Community
Sponsored Link

Java Buzz Forum
Markup Thoughts: Groovy, XQuery and XML in PHP 5

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Russell Beattie

Posts: 727
Nickname: rbeattie
Registered: Aug, 2003

Russell Beattie is a Mobile Internet Developer
Markup Thoughts: Groovy, XQuery and XML in PHP 5 Posted: Mar 24, 2004 11:52 AM
Reply to this message Reply

This post originated from an RSS feed registered with Java Buzz by Russell Beattie.
Original Post: Markup Thoughts: Groovy, XQuery and XML in PHP 5
Feed Title: Russell Beattie Notebook
Feed URL: http://www.russellbeattie.com/notebook/rss.jsp?q=java,code,mobile
Feed Description: My online notebook with thoughts, comments, links and more.
Latest Java Buzz Posts
Latest Java Buzz Posts by Russell Beattie
Latest Posts From Russell Beattie Notebook

Advertisement
I'm a Java head, but I'm really starting to warm up to PHP, especially the next version PHP 5. I just saw this neat article about the new XML support in PHP and it's pretty great. I really like the simplicity of dealing with XML and XPath. (All bow down to XPath). Check it out:

$sxe = simplexml_load_file("articles.xml");
	
foreach(
$sxe->item as $item) {
    print
$item->title ."\n";
}

foreach($sxe->xpath('/articles/item/title') as $item) {
    print
$item . "\n";
}

I personally think that's very cool. It's up there with JSTL x: tags in terms of ease of use, but PHP is so much more deployed that I can see this being used quite a bit as new apps are developed.

Now since I'm looking with a critical eye at page markup (again) I have to say that Groovy looks like it could be a real winner in this space. Like JSP it compiles down to Java bytecode, so it's not interpreted like Velocity or even the Expression Language syntax in JSP. But unlike Java's bonehead handling of NullPointerExceptions and things like that, Groovy would be a real scripting language and really applicable to creating the Web/WAP view layer.

I'm not interested in artificially limiting the power of the script on the pages. There's always tricky logic to be had on the view side of things. Always. No matter what you do, no matter what project I've worked on, there's always a requirement in the view layer that ends up needing a lot of logic. It's "view logic" but it's logic nonetheless. This can end up being some call out to another template page like in Velocity or insane use of JSTL logic or a custom tag or (*gasp*) an embedded scriptlet, but no matter what it always ends up on the page due to resource or time constraints. It's just life.

So looking at it like that, a full-featured scripting language for page creation would be great. I looked at Groovy's Groovlets, and I looked at Cedric's Canvas (a Groovy based Velocity clone) and I looked at "GSP" and they all seem to be lacking in one way or another. What I'd like to see is a PHP-like solution, but with Groovy as the language being used not Java. And I want to put the controller logic in Groovy as well - since, hey, it ends up as bytecode, why not? Rapid App Development plus MVC goodness. I'm down with that... (yesssss, Anthony, I know you use Jython in that layer and it works great. But Groovy would be more Java-like and maybe it'll be a JSR as well...).

This brings me to XQuery. If we're only talking about markup + logic in the view, then this is really the answer since it is being created to do exactly that. Tags are native datatypes and XPath is integrated into the language. It seems that this actually could be a perfect solution. Have you seen XQuery? It's Yet Another Procedural Language akin to JavaScript and Java, but it's got some very cool tricks to it:

<frequent_bidder>
{
  FOR $u IN document("users.xml")
  WHERE 
    EVERY $item IN document("items.xml")
      SOME $b IN document("bids.xml")
        ($item/itemno = $b/itemno AND $u/userid = $b/userid)
  RETURN
    $u/name
}
</frequent_bidder>
This is pretty powerful stuff. I'm not sure how much momentum XQuery will ultimatly get in the programming community, but IBM seems to be doing a lot of work in that area and it seems to really match the problem of manipulating user-facing markup for web and handheld based devices pretty well.

It would definitely be cool if Groovy did a lot of that though, no?

-Russ

Read: Markup Thoughts: Groovy, XQuery and XML in PHP 5

Topic: Monday's meetup review Previous Topic   Next Topic Topic: Taking Subversion for a spin

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use