<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>mvalente.eu/mv.* &#187; Web Development Framework</title>
	<atom:link href="http://mvalente.eu/category/web-development-framework/feed/" rel="self" type="application/rss+xml" />
	<link>http://mvalente.eu</link>
	<description>Heavy Mental Stuff</description>
	<lastBuildDate>Fri, 06 Jan 2012 19:03:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Requirements for a Modern Web Development Framework</title>
		<link>http://mvalente.eu/2009/11/25/requirements-for-a-modern-web-development-framework/</link>
		<comments>http://mvalente.eu/2009/11/25/requirements-for-a-modern-web-development-framework/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 19:44:37 +0000</pubDate>
		<dc:creator>mvalente</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development Framework]]></category>

		<guid isPermaLink="false">http://mvalente.eu/?p=1018</guid>
		<description><![CDATA[For the last 2 years or so I have been harping about a Future Web Development Framework and about how Javascript Will Save Us All. And even 2 years before that (4 years ago) I had actually come to the conclusion that Javascript would be the next big language and the one that would invest [...]]]></description>
			<content:encoded><![CDATA[<p>For the last 2 years or so I have been harping about a <a href="http://mvalente.eu/?s=web+development+framework&amp;x=0&amp;y=0">Future Web Development Framework</a> and about how <a href="http://mvalente.eu/page/3/?s=javascript">Javascript Will Save Us All</a>. And even <a href="http://mvalente.eu/2007/07/13/server-side-javascript/">2 years before</a> that (<a href="http://vitordomingos.com/wlog_old/index.php?entry=entry051005-180312">4 years ago</a>) I had actually come to the conclusion that Javascript would be the next big language and the one that would invest my time in for the next 10 years (2005-2015).</p>
<p>Aditionally, 2 years ago I <a href="http://mvalente.eu/2007/10/07/a-future-web-development-framework-application-logic/">hinted at the need and possibility</a> that Javascript should be used at in all of the <a href="http://mvalente.eu/2007/12/05/javascript-in-all-of-the-tiers/">tiers of aplication development</a>. And 1 year ago, at <a href="http://codebits.eu/">Codebits</a>, I restated the need for a <a href="http://www.slideshare.net/mvalente/serverside-javascript-hope-and-opportunity-introducing-starbucks-js-web-framework-presentation-762180">totally Javascript-based, REST-accessible, JSON-formatted web development framework</a>. I tried to challenge people at Codebits to work in it, but no such luck. I also <a href="http://github.com/mvalente/starbucks">tried to start developing it</a> but it was a no go: I dont have as much patience for coding as I used to (age is a bitch) and the context for serverside Javascript development just wasnt right (lack of standards, lack of OS API access, etc). And even having some Javascript interpreters (like <a href="http://code.google.com/p/jslibs/">jslibs</a> which is what I was using at the time) with access to stuff like files and sockets wasnt much of a help: its not very much fun to try and reinvent the wheel writing a webserver from the (socket) ground up.</p>
<p>Well, things have changed a lot in this past year. The <a href="http://commonjs.org/">ServerJS/CommonJS</a> group has been doing a lot of work on standardising a unified JS API. And there&#8217;s been a lot of work done on top of several Javascript interpreters/compilers/VMs (like Spidermonkey, Rhino, V8, etc) to provide for basic system level functionality. Plus a lot of Javascript-based basic blocks have been developed (like Narwhal, Nitro, Node, Awesome, Lawnchair, DjangoDE, PURE, etc) that allows us to get more concrete about what is needed and what can be done.</p>
<p>So its time to once again <a href="http://en.wikipedia.org/wiki/LazyWeb">tell the Lazyweb</a> what I think is needed or (better yet) what I want in a new web development framework that lasts for 10 years. Here goes:</p>
<ul>
<li>I want it to be Javascript based. All of it. No Erlang, Python, Ruby, etc in sight. I want the frontend/View/presentation in Javascript. I want the appserver/Controller/logic in Javascript. I want to program the appserver in Javascript. I want the DBserver/Model/data in Javascript.</li>
<li>I want all the Javascript code to be compliant with the CommonJS standards. The code should be portable to any of the existing engines (Spidermonkey, Rhino, V8, flusspferd, Jaxer, Helma, etc) although I would touch anything Java-based with a long pole, so please make it work on Spidermonkey or V8.</li>
<li>I want all the data to be JSON formatted and REST-accessible. The data on the database should be stored as JSON data and accessible via REST. The appserver API should be REST-based, accept JSON-formatted parameters and return JSON-formatted results. The templating system should accept JSON-formatted data for rendering the view and make REST JSON-formatted calls to the appserver.</li>
</ul>
<p>If this isnt clear enough, let me refer some analog components that are written in other languages and what is already available in JS:</p>
<ul>
<li>for the database I want CouchDB but written in Javascript. <a href="http://github.com/janl/awesome">Awesome</a> or <a href="http://brianleroux.github.com/lawnchair/">Lawnchair</a> might be starting points. The endpoint would be something like <a href="http://www.persvr.org/">Persevere</a> but without the Java/Rhino dependency. Maybe <a href="http://github.com/kriszyp/pintura">Pintura</a> is *it*&#8230;</li>
<li>for the appserver I dont have the right analog. Of course that it must support <a href="http://jackjs.org/jsgi-spec.html">JSGI</a>. But *the* most important thing: it can not and must not allow the generation of HTML and the return of HTML to the browser/client! All methods/functions should only accept parameters and return results in <a href="http://docs.turbogears.org/1.0/JsonifyDecorator">JSONified </a>format. Maybe <a href="http://www.nitrojs.org/">NitroJS</a> could be *it*. If it threw away the <a href="http://www.nitrojs.org/docs/*templates">sucky template format</a>. Completely. No templates on the serverside. No serverside HTML generation. Pure HTML is the new template standard (see below).</li>
<li>URL routing should use the object hierarchy on the appserver as default. Explicit URL routing (static or using regexp) would have to be done explicitly.</li>
<li>for the presentation layer I want pure HTML+JS. The browser should be the only component responsible for rendering templates. The clientside part of the framework should make all calls to the server using REST/AJAX and providing JSON-formatted parameters. No GET or POST parameters. It should only accept JSON-formatted results. No HTML. Standard HTML is the only templating system needed. Page elements (DIV, SPAN, etc) should have an &#8220;id&#8221; as an identifier for serverside databinding. If a page has a tag/field with &#8220;id=xpto&#8221; then that tag/field should be filled with the contents of the &#8220;id&#8221; key returned from the server in a JSON string. A good starting point would be <a href="http://beebole.com/pure/">PURE</a>, but without using &#8220;class&#8221; as the databinding identifier (&#8220;id&#8221; should be the standard).</li>
<li>I want the appserver to have features that Zope has had for years: I want <a href="http://www.zope.org/Documentation/Books/ZopeBook/2_6Edition/Acquisition.stx">acquisition</a> (aka <a href="http://en.wikipedia.org/wiki/Prototype-based_programming">prototype-based programming</a>, aka <a href="http://ajaxian.com/archives/grokking-prototype-based-oo-in-javascript">JS object-orientedness</a>). I want a <a href="http://www.zopetopia.com/Services/Zope/ZopeManage.png">through-the-web management interface</a>. I want <a href="http://pypi.python.org/pypi/dm.zopepatches.zclasses/">ZClasses</a>. I want automatic form generation for classes/objects and an automatic management (CRUD) interface for objects.</li>
</ul>
<p>So, how&#8217;s that? It&#8217;s Xmas anyway, so I can ask for whatever I want. Gimme, gimme&#8230; Or I can start working on it&#8230; Who&#8217;s with me? I can be the Main Bitcher, Overall Architect and Project Manager.</p>
]]></content:encoded>
			<wfw:commentRss>http://mvalente.eu/2009/11/25/requirements-for-a-modern-web-development-framework/feed/</wfw:commentRss>
		<slash:comments>44</slash:comments>
		</item>
		<item>
		<title>Thin Server Architecture</title>
		<link>http://mvalente.eu/2008/03/17/thin-server-architecture/</link>
		<comments>http://mvalente.eu/2008/03/17/thin-server-architecture/#comments</comments>
		<pubDate>Sun, 16 Mar 2008 23:30:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[OldBlog]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web Development Framework]]></category>

		<guid isPermaLink="false">http://mvbeta.asterisco.pt/2008/03/17/thin-server-architecture/</guid>
		<description><![CDATA[Path: mv.asterisco.pt!mvalente From: mvale&#8230;@ruido-visual.pt (Mario Valente) Newsgroups: mv Subject: Thin Server Architecture Date: Sun, 16 Mar 08 23:30:21 GMT As usual on the Internet, the same idea seems to bubble up from several people all at once. For the last 2 years or so, I&#8217;ve been thinking a lot about web app architecture and app [...]]]></description>
			<content:encoded><![CDATA[<p>Path: mv.asterisco.pt!mvalente<br />
From: mvale&#8230;@ruido-visual.pt (Mario Valente)<br />
Newsgroups: mv<br />
Subject: Thin Server Architecture<br />
Date: Sun, 16 Mar 08 23:30:21 GMT</p>
<p>  As usual on the Internet, the same idea seems to bubble up<br />
 from several people all at once.</p>
<p>  For the last 2 years or so, I&#8217;ve been thinking a lot about<br />
 web app architecture and app server frameworks. My thinking<br />
 has led to an approach that I&#8217;ve been trying to explain in<br />
 some previous posts.</p>
<p>  But now Peter Svensson has given it a name:</p>
<p>    Thin Server Architecture<br />
    <a href="http://unclescript.blogspot.com/2008/02/thin-server-architecture.html">http://unclescript.blogspot.com/2008/02/thin-server-architecture.html</a></p>
<p>  Sounds like a nice buzzword and a nice TLA: TSA.</p>
<p>  Peter has gotten together a group of people (me included) and<br />
 kickstarted a working group, already working on putting up some<br />
 clustered information in a place of its own:</p>
<p>   Thin Server Architecture Working Group<br />
   <a href="http://www.thinserverarchitecture.com/">http://www.thinserverarchitecture.com/</a></p>
<p>  Meanwhile, while researching on the subject, I got a couple of<br />
 aditional links that are important for our thinking and for my<br />
 continuing posts about a future web framework:</p>
<p>  How Nexaweb Works<br />
  <a href="http://www.nexaweb.com/home/us/index.html@cid=2295.html">http://www.nexaweb.com/home/us/index.html@cid=2295.html</a></p>
<p>  Developing Rich Internet Applications with Declarative Markup<br />
  <a href="http://rockstarapps.com/wordpress/wp-content/uploads/2007/08/java-basedria.pdf">http://rockstarapps.com/wordpress/wp-content/uploads/2007/08/java-basedria.pdf</a></p>
<p>  Slides 6-9 are especially interesting. In slide 9 you can easily see<br />
 what TSA is all about: its represented by the 4th stack, the one where<br />
 the app container has only UI stuff (view+logic) and server side you<br />
 only have biz logic and data.</p>
<p>   &#8212; MV</p>
]]></content:encoded>
			<wfw:commentRss>http://mvalente.eu/2008/03/17/thin-server-architecture/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Future Web Development Framework &#8211; Template View</title>
		<link>http://mvalente.eu/2008/02/14/a-future-web-development-framework-template-view/</link>
		<comments>http://mvalente.eu/2008/02/14/a-future-web-development-framework-template-view/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 18:43:21 +0000</pubDate>
		<dc:creator>mvalente</dc:creator>
				<category><![CDATA[OldBlog]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web Development Framework]]></category>

		<guid isPermaLink="false">http://mvbeta.asterisco.pt/2007/02/14/a-future-web-development-framework-template-view/</guid>
		<description><![CDATA[Path: mv.asterisco.pt!mvalente From: mvale&#8230;@ruido-visual.pt (Mario Valente) Newsgroups: mv Subject: A Future Web Development Framework &#8211; Template View Date: Wed, 13 Feb 07 18:43:21 GMT I should start this post (hopefully the last detail before going into a synthesis post) by remembering some words from my initial post in this series: &#8220;Meanwhile, lots of stuff has [...]]]></description>
			<content:encoded><![CDATA[<p>Path: mv.asterisco.pt!mvalente<br />
From: mvale&#8230;@ruido-visual.pt (Mario Valente)<br />
Newsgroups: mv<br />
Subject: A Future Web Development Framework &#8211; Template View<br />
Date: Wed, 13 Feb 07 18:43:21 GMT</p>
<p>  I should start this post (hopefully the last detail before<br />
 going into a synthesis post) by remembering some words from<br />
 my initial post in this series:</p>
<p>  &#8220;Meanwhile, lots of stuff has come up: Django, Pylons,<br />
 TurboGears, Ruby on Rails, you name it&#8230; I dont want to<br />
 go over extensively why I dont like any of them, but let<br />
 me just state this: if the &#8220;framework&#8221; allows for the<br />
 mixing of layout/design/HTML with code/programming, for<br />
 me is enough of a disqualifier.&#8221;</p>
<p>  The problem, as I stated before, is that current frameworks<br />
 stuff a lot of power into the templating languague. And that<br />
 is not only unnecessary but its a bad, bad thing.</p>
<p>  If you dont understand why 1) embedding Python/PHP/Ruby/etc<br />
 in HTML is bad or 2) outputting HTML from Python/PHP/Ruby/etc<br />
 is worse, I&#8217;m not even going to try and explain. Not only<br />
 because that means you are clueless but also because someone<br />
 else has done it better that me:</p>
<p>  <a href="http://www.stringtemplate.org/about.html">http://www.stringtemplate.org/about.html</a><br />
  <a href="http://www.cs.usfca.edu/~parrt/papers/mvc.templates.pdf">http://www.cs.usfca.edu/~parrt/papers/mvc.templates.pdf</a></p>
<p>  Now the problem is that although I agree with this paper and<br />
 the rules set forth in it, I disagree with the implementation.<br />
  Allowing for &#8220;$var&#8221; statements in the templates is still, in<br />
 my view, some form of entanglement and breakup of the MVC pattern.</p>
<p>  What would be the best way to do it? Well look no further than<br />
 some already existent template engines:</p>
<p>  PyMeld<br />
  <a href="http://entrian.com/PyMeld/">http://entrian.com/PyMeld/</a></p>
<p>  HTMLTemplate<br />
  <a href="http://freespace.virgin.net/hamish.sanderson/htmltemplate.html">http://freespace.virgin.net/hamish.sanderson/htmltemplate.html</a></p>
<p>  Meld3<br />
  <a href="http://www.plope.com/software/meld3">http://www.plope.com/software/meld3</a></p>
<p>  They allow for the insertion of values (data binding) through<br />
 the use of HTML element attributes. Both HTMLTemplate and Meld3<br />
 create new attributes (&#8220;node&#8221; and &#8220;meld:id&#8221; respectively) but<br />
 PyMeld does it better: it simply uses the &#8220;id&#8221; attribute to do<br />
 value replacement. This is, in my opinion, the best way to do<br />
 a templating system. And there&#8217;s no need to make it &#8220;powerful&#8221;<br />
 through the introduction of loop control and other stuff like<br />
 Genshi or Zope Page Templates.</p>
<p>  Does this mean that I have found my perfect templating engine?<br />
  No. You see, these are serverside templating engines and the<br />
 template/view should be implemented at the client level, if you<br />
 want to adhere to the MVC pattern.</p>
<p>  What I would like is something like these templating engines:</p>
<p>  Ajax Pages<br />
  <a href="http://ajax-pages.sourceforge.net/">http://ajax-pages.sourceforge.net/</a></p>
<p>  Javascript Templates<br />
  <a href="http://www.fishwasher.com/jst/">http://www.fishwasher.com/jst/</a></p>
<p>  Trimpath Junction Javascript Templates<br />
  <a href="http://code.google.com/p/trimpath/">http://code.google.com/p/trimpath/</a></p>
<p>  Unfortunately all of these engines make the usual mistake of<br />
 introducing new syntax to HTML (the &#8220;$var&#8221; problem or variants<br />
 thereof instead of relying on the existing HTML markup, namely<br />
 the &#8220;id&#8221; element markup.</p>
<p>  To sum it up, what I would rely like is a Javascript implementation<br />
 of Meld.</p>
<p>  Aditional templating functionalities that might not be provided<br />
 through the use of the &#8220;id&#8221; attribute (although I think that it<br />
 would be all that is needed) could be added through the use of<br />
 aditional semantic potential to existing HTML markup with Javascript.<br />
  See for example Inc, for JS code include (although I would prefer<br />
 for this to be done through the implementation of the &#8220;src=&#8221; attribute<br />
 for DIVs.</p>
<p>  <a href="http://johannburkard.de/blog/programming/javascript/inc-a-super-tiny-client-side-include-javascript-jquery-plugin.html">http://johannburkard.de/blog/programming/javascript/inc-a-super-tiny-client-side-include-javascript-jquery-plugin.html</a></p>
<p>  &#8212; MV</p>
]]></content:encoded>
			<wfw:commentRss>http://mvalente.eu/2008/02/14/a-future-web-development-framework-template-view/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RESTful DB and App Servers</title>
		<link>http://mvalente.eu/2007/12/09/restful-db-and-app-servers/</link>
		<comments>http://mvalente.eu/2007/12/09/restful-db-and-app-servers/#comments</comments>
		<pubDate>Sun, 09 Dec 2007 19:40:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[OldBlog]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web Development Framework]]></category>

		<guid isPermaLink="false">http://mvbeta.asterisco.pt/2007/12/09/restful-db-and-app-servers/</guid>
		<description><![CDATA[Path: mv.asterisco.pt!mvalente From: mvale&#8230;@ruido-visual.pt (Mario Valente) Newsgroups: mv Subject: RESTful DB and App Servers Date: Sun, 09 Dec 07 19:40:21 GMT Like I said before, most of the week&#8217;s linkage has had to do with CouchDB or, generally speaking, to do with JSON-formatted REST-accessed database and application servers. http://mvalente.eu/cat.cgi?JavaScript%20in%20All%20of%20the%20Tiers http://del.icio.us/mvalente CouchDB is sure fun to [...]]]></description>
			<content:encoded><![CDATA[<p>Path: mv.asterisco.pt!mvalente<br />
From: mvale&#8230;@ruido-visual.pt (Mario Valente)<br />
Newsgroups: mv<br />
Subject: RESTful DB and App Servers<br />
Date: Sun, 09 Dec 07 19:40:21 GMT</p>
<p>  Like I said before, most of the week&#8217;s linkage<br />
 has had to do with CouchDB or, generally speaking,<br />
 to do with JSON-formatted REST-accessed database and<br />
 application servers.</p>
<p>  <a href="http://mvalente.eu/cat.cgi?JavaScript%20in%20All%20of%20the%20Tiers">http://mvalente.eu/cat.cgi?JavaScript%20in%20All%20of%20the%20Tiers</a><br />
  <a href="http://del.icio.us/mvalente">http://del.icio.us/mvalente</a></p>
<p>  CouchDB is sure fun to use, but its Erlang dependency just<br />
 pisses me off. </p>
<p>  <a href="http://couchdb.org/">http://couchdb.org/</a><br />
  <a href="http://code.google.com/p/couchdb/">http://code.google.com/p/couchdb/</a><br />
  <a href="http://jan.prima.de/~jan/plok/archives/108-Programming-CouchDB-with-Javascript.html">http://jan.prima.de/~jan/plok/archives/108-Programming-CouchDB-with-Javascript.html</a></p>
<p>  The way that I&#8217;ve been thinking about a new web development<br />
 framework indeed involves a REST interface and JSON or XML<br />
 formatted data. But I just think that a) you might as well<br />
 standardise the programming languague used at all tiers (and<br />
 that means Javascript) and b) you should have REST/JSON as<br />
 interface not only to the DB tier but also to the logic tier.</p>
<p>  Sure enough there are some alternatives if you want to go<br />
 that way.</p>
<p>  Basura DB (Python based JSON/REST DB implementation)<br />
  <a href="http://www.intertwingly.net/code/basura/">http://www.intertwingly.net/code/basura/</a><br />
  <a href="http://intertwingly.net/blog/2007/09/24/Tests-Id-Like-CouchDB-to-Pass">http://intertwingly.net/blog/2007/09/24/Tests-Id-Like-CouchDB-to-Pass</a></p>
<p>  Persevere (Java based)<br />
  <a href="http://code.google.com/p/persevere-framework/">http://code.google.com/p/persevere-framework/</a><br />
  <a href="http://www.ibm.com/developerworks/web/library/wa-aj-objmap/">http://www.ibm.com/developerworks/web/library/wa-aj-objmap/</a></p>
<p>  Robaccia (Python based web framework includes a RESTful JSON server)<br />
  <a href="http://bitworking.org/news/restful_json_server">http://bitworking.org/news/restful_json_server</a></p>
<p>  JSONStore<br />
  <a href="http://taoetc.org/97">http://taoetc.org/97</a></p>
<p>  DBSlayer (HTTP/JSON interface for MySQL databases)<br />
  <a href="http://code.nytimes.com/projects/dbslayer">http://code.nytimes.com/projects/dbslayer</a></p>
<p>  But aditionally to databases, I&#8217;m thinking more in line with<br />
 the proposed RADAR architecture of having the REST interface<br />
 also available for the app server. There arent as many options<br />
 here&#8230;</p>
<p>  The RADAR Architecture<br />
  <a href="http://pragdave.pragprog.com/pragdave/2007/03/the_radar_archi.html">http://pragdave.pragprog.com/pragdave/2007/03/the_radar_archi.html</a></p>
<p>  Naked Objects<br />
  <a href="http://www.nakedobjects.org/tutorial/index.shtml">http://www.nakedobjects.org/tutorial/index.shtml</a></p>
<p>  NetKernel<br />
  <a href="http://www.theserverside.com/news/thread.tss?thread_id=47695">http://www.theserverside.com/news/thread.tss?thread_id=47695</a><br />
  <a href="http://www.1060research.com/netkernel/">http://www.1060research.com/netkernel/</a></p>
<p>  And sure enough all of the above is typically Java-based (yuck!),<br />
 with some other languages thrown in (Python, Erlang), but none<br />
 goes all the way and standardises on Javascript as the implementation<br />
 language and the glue language. Apparently I am not the only one<br />
 considering this idea&#8230;</p>
<p>   Alt Framework<br />
   <a href="http://marcello.cellosoft.com/projects/alt/">http://marcello.cellosoft.com/projects/alt/</a></p>
<p>   Simile&#8217;s Exhibit Framework<br />
   <a href="http://simile.mit.edu/exhibit/">http://simile.mit.edu/exhibit/</a></p>
<p>   &#8212; MV</p>
]]></content:encoded>
			<wfw:commentRss>http://mvalente.eu/2007/12/09/restful-db-and-app-servers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MVC, MVP, PAC and Others</title>
		<link>http://mvalente.eu/2007/11/23/mvc-mvp-pac-and-others/</link>
		<comments>http://mvalente.eu/2007/11/23/mvc-mvp-pac-and-others/#comments</comments>
		<pubDate>Thu, 22 Nov 2007 23:42:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[OldBlog]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web Development Framework]]></category>

		<guid isPermaLink="false">http://mvbeta.asterisco.pt/2007/11/23/mvc-mvp-pac-and-others/</guid>
		<description><![CDATA[Path: mv.asterisco.pt!mvalente From: mvale&#8230;@ruido-visual.pt (Mario Valente) Newsgroups: mv Subject: MVC, MVP, PAC and Others Date: Thu, 22 Nov 07 23:42:21 GMT I&#8217;m trying to wrap my mind around Model-View-Presenter, Presentation-Abstraction-Control and other UI architectural patterns, so I might as well warn you that my brain might explode&#8230; http://ctrl-shift-b.blogspot.com/2007/08/interactive-application-architecture.html http://www.martinfowler.com/eaaDev/uiArchs.html Definitely stuff to think about regarding [...]]]></description>
			<content:encoded><![CDATA[<p>Path: mv.asterisco.pt!mvalente<br />
From: mvale&#8230;@ruido-visual.pt (Mario Valente)<br />
Newsgroups: mv<br />
Subject: MVC, MVP, PAC and Others<br />
Date: Thu, 22 Nov 07 23:42:21 GMT</p>
<p>  I&#8217;m trying to wrap my mind around Model-View-Presenter,<br />
 Presentation-Abstraction-Control and other UI architectural<br />
 patterns, so I might as well warn you that my brain might<br />
 explode&#8230;</p>
<p>  <a href="http://ctrl-shift-b.blogspot.com/2007/08/interactive-application-architecture.html">http://ctrl-shift-b.blogspot.com/2007/08/interactive-application-architecture.html</a><br />
  <a href="http://www.martinfowler.com/eaaDev/uiArchs.html">http://www.martinfowler.com/eaaDev/uiArchs.html</a></p>
<p>  Definitely stuff to think about regarding a future web<br />
 app framework.</p>
<p>  &#8212; MV</p>
]]></content:encoded>
			<wfw:commentRss>http://mvalente.eu/2007/11/23/mvc-mvp-pac-and-others/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SOFEA and the Future Web Development Framework</title>
		<link>http://mvalente.eu/2007/11/21/sofea-and-the-future-web-development-framework/</link>
		<comments>http://mvalente.eu/2007/11/21/sofea-and-the-future-web-development-framework/#comments</comments>
		<pubDate>Wed, 21 Nov 2007 01:38:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[OldBlog]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web Development Framework]]></category>

		<guid isPermaLink="false">http://mvbeta.asterisco.pt/2007/11/21/sofea-and-the-future-web-development-framework/</guid>
		<description><![CDATA[Path: mv.asterisco.pt!mvalente From: mvale&#8230;@ruido-visual.pt (Mario Valente) Newsgroups: mv Subject: SOFEA and the Future Web Development Framework Date: Wed, 21 Nov 07 01:38:21 GMT &#8220;SOFEA is an architectural style which in its definition criticizes (and manages to make a very good definition of) the current web frameworks, and (as they say) &#8220;none of them satisfies&#8221;. http://unclescript.blogspot.com/2007/11/coming-frameworks-sofea-jda-squirrel.html [...]]]></description>
			<content:encoded><![CDATA[<p>Path: mv.asterisco.pt!mvalente<br />
From: mvale&#8230;@ruido-visual.pt (Mario Valente)<br />
Newsgroups: mv<br />
Subject: SOFEA and the Future Web Development Framework<br />
Date: Wed, 21 Nov 07 01:38:21 GMT</p>
<p>  &#8220;SOFEA is an architectural style which in its definition<br />
 criticizes (and manages to make a very good definition of)<br />
 the current web frameworks, and (as they say) &#8220;none of them<br />
 satisfies&#8221;.</p>
<p>  <a href="http://unclescript.blogspot.com/2007/11/coming-frameworks-sofea-jda-squirrel.html">http://unclescript.blogspot.com/2007/11/coming-frameworks-sofea-jda-squirrel.html</a></p>
<p>  This is what I have been talking about in my posts about a<br />
 future web framework. The guys that are proposing SOFEA make<br />
 a very good technical argument in their paper and presentation.</p>
<p>  <a href="http://wisdomofganesh.blogspot.com/2007/10/life-above-service-tier.html">http://wisdomofganesh.blogspot.com/2007/10/life-above-service-tier.html</a></p>
<p>  If you pay particular attention to page 26 in the paper (about<br />
 how the Service Oriented Front-End Architecture model should work)<br />
 you will see that it is precisely what I&#8217;ve been talking about.</p>
<p>  David Coffey also seems to have come to the same conclusions. And,<br />
 like me, that it all converges into Javascript. He&#8217;s building Triad,<br />
 a Javascript MVC framework.</p>
<p>  <a href="http://blog.davidadamcoffey.com/4/triad-a-javascript-mvc-framework">http://blog.davidadamcoffey.com/4/triad-a-javascript-mvc-framework</a></p>
<p>  Compare his diagram:</p>
<p>  <a href="http://blog.davidadamcoffey.com/wp-content/uploads/2006/11/mvc2.png">http://blog.davidadamcoffey.com/wp-content/uploads/2006/11/mvc2.png</a></p>
<p>  With my previous post:</p>
<p>  <a href="http://mvalente.eu/cat.cgi?A%20Future%20Web%20Development%20Framework%20-%20Architecture">http://mvalente.eu/cat.cgi?A%20Future%20Web%20Development%20Framework%20-%20Architecture</a></p>
<p>  &#8212; MV</p>
]]></content:encoded>
			<wfw:commentRss>http://mvalente.eu/2007/11/21/sofea-and-the-future-web-development-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Future Web Development Framework &#8211; UI Controller</title>
		<link>http://mvalente.eu/2007/11/03/a-future-web-development-framework-ui-controller/</link>
		<comments>http://mvalente.eu/2007/11/03/a-future-web-development-framework-ui-controller/#comments</comments>
		<pubDate>Sat, 03 Nov 2007 21:03:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[OldBlog]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web Development Framework]]></category>

		<guid isPermaLink="false">http://mvbeta.asterisco.pt/2007/11/03/a-future-web-development-framework-ui-controller/</guid>
		<description><![CDATA[Path: mv.asterisco.pt!mvalente From: mvale&#8230;@ruido-visual.pt (Mario Valente) Newsgroups: mv Subject: A Future Web Development Framework &#8211; UI Controller Date: Sat, 03 Nov 07 21:03:21 GMT There is even less to say about the controller part of the framework. We dont even have to deal with religious wars regarding what language to use. Your option is Javascript [...]]]></description>
			<content:encoded><![CDATA[<p>Path: mv.asterisco.pt!mvalente<br />
From: mvale&#8230;@ruido-visual.pt (Mario Valente)<br />
Newsgroups: mv<br />
Subject: A Future Web Development Framework &#8211; UI Controller<br />
Date: Sat, 03 Nov 07 21:03:21 GMT</p>
<p>  There is even less to say about the controller part of<br />
 the framework. We dont even have to deal with religious<br />
 wars regarding what language to use. Your option is Javascript<br />
 and nothing else. Anyone thinking &#8220;what about Java&#8221; or &#8220;what<br />
 about Flash&#8221; (and current iterarions, Air, JavaFX, etc) will<br />
 have to explain what is the justification to have a VM/interpreter<br />
 available (the browser) and to start yet another VM/interpreter<br />
 (JRE or Flash plugin).</p>
<p>  Nonetheless there are a couple of points that should be made.</p>
<p>  A future web framework would have to guarantee that the controller<br />
 part, in Javascript, doesnt allow for business-logic embedded in<br />
 the controller code and doesnt allow for obtrusive Javascript (in<br />
 particular inline code)</p>
<p>  The right way to do it would be to make declarative the use of<br />
 the UI behaviour the same way that, using CSS, we did away with<br />
 inline styles.</p>
<p>  An obvious candidate would be, of course, Behaviour</p>
<p>  <a href="http://bennolan.com/behaviour/">http://bennolan.com/behaviour/</a></p>
<p>  But there are other options. One is event:Selectors</p>
<p>  <a href="http://alternateidea.com/event-selectors/">http://alternateidea.com/event-selectors/</a></p>
<p>  (although its based on Prototype.js and much prefer JQuery.js)</p>
<p>  Another would be XForms and any Javascript implementation of<br />
 it (ie. not having to depend on the browser implementing the<br />
 standard)</p>
<p>  <a href="http://ajaxforms.sourceforge.net/">http://ajaxforms.sourceforge.net/</a><br />
  <a href="http://www.formfaces.com/">http://www.formfaces.com/</a></p>
<p>  Here though we start getting into a lot more than the UI<br />
 behaviour, namely we start getting into template/view stuff<br />
 and I want to deal with this in a separate post.</p>
<p>  Its not always easy to define where the UI/controller part<br />
 is different from the UI/view/template part. I have a button<br />
 that takes 2 fields and computes some function. Should that<br />
 be done in the controller or in the template? I have a button<br />
 on a menu that takes me to another application screen. Where<br />
 should that be done, in the controller or in the template?</p>
<p>  (just for the record, the first one is template level since<br />
 it has to do with data processing, data binding and business<br />
 logic, and the second one is controller level since it has to<br />
 do with application flow)</p>
<p>  But it is difficult to define and decide and it is one of the<br />
 major problems with current web frameworks since it leads to<br />
 spaghetti code mixing controller stuff and model stuff. A new<br />
 web framework should be able to stop or minimize this problem.</p>
<p>   &#8212; MV</p>
]]></content:encoded>
			<wfw:commentRss>http://mvalente.eu/2007/11/03/a-future-web-development-framework-ui-controller/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Future Web Development Framework &#8211; Application Logic</title>
		<link>http://mvalente.eu/2007/10/07/a-future-web-development-framework-application-logic/</link>
		<comments>http://mvalente.eu/2007/10/07/a-future-web-development-framework-application-logic/#comments</comments>
		<pubDate>Sun, 07 Oct 2007 21:21:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[OldBlog]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web Development Framework]]></category>

		<guid isPermaLink="false">http://mvbeta.asterisco.pt/2007/10/07/a-future-web-development-framework-application-logic/</guid>
		<description><![CDATA[Path: mv.asterisco.pt!mvalente From: mvale&#8230;@ruido-visual.pt (Mario Valente) Newsgroups: mv Subject: A Future Web Development Framework &#8211; Application Logic Date: Sun, 07 Oct 07 21:21:21 GMT There really isnt much to say about the middle component for a 3-tier architecture (the business logic). You can of course get into religious wars about which language it should use. [...]]]></description>
			<content:encoded><![CDATA[<p>Path: mv.asterisco.pt!mvalente<br />
From: mvale&#8230;@ruido-visual.pt (Mario Valente)<br />
Newsgroups: mv<br />
Subject: A Future Web Development Framework &#8211; Application Logic<br />
Date: Sun, 07 Oct 07 21:21:21 GMT</p>
<p>  There really isnt much to say about the middle component for<br />
 a 3-tier architecture (the business logic). You can of course<br />
 get into religious wars about which language it should use. This<br />
 is the component that usually generates all the talk precisely<br />
 because of the language issues. When discussing Django, Rails,<br />
 .NET, etc, people arent really arguing about what the application<br />
 (logic) server should do or what its architecture should be: they&#8217;re<br />
 just arguing on whether Python is better than Ruby is better than<br />
 Rails is better than PHP&#8230;</p>
<p>  Me, although I currently favour Python, I am more of a syncretic<br />
 integrator: whatever solves the problem faster without spending<br />
 too much of my brain processing time (this immediately eliminates<br />
 Java.. LOL :-). Thats why I like some of the more recent options<br />
 available like Virtuoso or ActiveGrid that allow you to program<br />
 the business logic in a variety of languages (either choose one or<br />
 use all at the same time).</p>
<p>  <a href="http://www.activegrid.com/">http://www.activegrid.com/</a><br />
  <a href="http://www.openlinksw.com/virtuoso/">http://www.openlinksw.com/virtuoso/</a></p>
<p>  Virtuoso, for example, by including the VM runtime for several<br />
 languages, is able to run code in Java, .NET, Python, Perl or PHP.</p>
<p>  <a href="http://www.openlinksw.com/virtuoso/architect/vtechnical.htm">http://www.openlinksw.com/virtuoso/architect/vtechnical.htm</a></p>
<p>  (nice graph there, maps some of my ideas nicely)</p>
<p>  Nonetheless there are two points worth exploring about the logic<br />
 layer, whatever the language of your choice: how the logic layer<br />
 interfaces to the storage layer and how the logic layer interfaces<br />
 to the presentation layer.</p>
<p>  The first problem I have already referred to in my previous post<br />
 about storage. Even though the usual interface is the SQL language<br />
 (due to the fact that 99% of the times the storage layer is implemented<br />
 using a relational database), nowadays most programming is being done<br />
 using an object-oriented language. Hence the object-relational impedance<br />
 problem and the proliferation of object-relational mappers (ORM), which<br />
 have become especially popular due to its use in Ruby-on-Rails ( more<br />
 precisely ActiveRecord).</p>
<p>  As I stated in my previous post I dont think that this is the way of<br />
 the future. The indiscriminate use of the relational/SQL database is<br />
 way past due in an object/document/unstructured/hierarchical oriented<br />
 world and object-oriented databases should become the norm. On the other<br />
 hand I do have to admit that having my data closed down in some format<br />
 which is proprietary really bothers me a lot. Since I wrote my post about<br />
 storage, CouchDB has entered the radar of many people and it seems to<br />
 contain the basis for what is needed: a OO database that stores its<br />
 objects in a simple text format (JSON) with a REST interface.</p>
<p>   <a href="http://couchdb.org/">http://couchdb.org/</a></p>
<p>  The second problem (logic-to-presentation interface) actually mimics<br />
 the logic-to-data interface and it also has something to do with a later<br />
 issue (templating or view/controller). As in the logic-to-data interface<br />
 problem, where the logic level (ex: Perl or Python) currently embeds a<br />
 lot of data stuff (ie. SQL), the logic-to-presentation interface also<br />
 suffers from a lot of confusion, especially when you have templating systems<br />
 that allow you to mix code and presentation. PHP is a particularly bad<br />
 example of this problem.</p>
<p>  This could be solved by explicitly denying the logic level to output<br />
 any kind of presentation code. Presentation level stuff (ie. templates<br />
 or view/controller) would be in charge of doing any presentation stuff,<br />
 getting all the data/logic from the applicatin server (through REST calls,<br />
 with data in JSON, XML, SOAP, whatever), with the application server being<br />
 explicitly prohibited from outputing any kind of HTML markup code (it just<br />
 wouldnt be taken into account or rendered).</p>
<p>  What comes to mind as an example is an application server, using whatever<br />
 language, that would behave exclusively like TurboGears/CherryPy with the<br />
 jsonify decorator: you could call any URL in AJAX form and you would receive<br />
 results in JSON (or any other format), no HTML allowed.</p>
<p>   <a href="http://docs.turbogears.org/1.0/JsonifyDecorator">http://docs.turbogears.org/1.0/JsonifyDecorator</a></p>
<p>  Although I see no problem with the same server delivering both page<br />
 templates (ie. view/controllers) and logic (they are both HTTP after all),<br />
 that implies some discipline. An actual separation of concerns would<br />
 imply separate servers: one would only serve static pages (ie. templates)<br />
 and could be a standard HTTP server (Apache, etc) and the other would<br />
 only serve the processing results for received requests.</p>
<p>  Event though I&#8217;m a bit agnostic regarding the choice of language for<br />
 your application server, I do have to state my opinion regarding current<br />
 trends and what I see as being the future endgame and the best choice.</p>
<p>  Everyhing points towards a Javascript future.</p>
<p>  <a href="http://steve-yegge.blogspot.com/2007/02/next-big-language.html">http://steve-yegge.blogspot.com/2007/02/next-big-language.html</a></p>
<p>  This is probably unpopular to say and there will be several voices<br />
 talking about Javascript&#8217;s speed. But the fact is that it doesnt make<br />
 much sense to use a language at logic/application level and then to<br />
 use another at presentation/template/view/controller level. Especially<br />
 when you take into account the current AJAX and JSON trends. You just<br />
 create aditional impedance when your doing stuff in Javascript at<br />
 presentation level (lets say field validation for example) and then<br />
 you&#8217;re encoding form fields into XML or POST fields, requesting some<br />
 processing from the application server which has to unmarshall the data<br />
 into whatever its format is, process it and remarshall the data back<br />
 into XML or JSON for delivery to the presentation layer.</p>
<p>  In the last couple of years Javascript, which was available server<br />
 side back in the Netscape days (it was called LiveWire), is making<br />
 its comeback in the application server layer with a bunch of new<br />
 developments like OpenMocha, Phobos or Helma.</p>
<p>   <a href="http://helma.org/">http://helma.org/</a><br />
   <a href="http://openmocha.org/">http://openmocha.org/</a></p>
<p><a href="https://phobos.dev.java.net/">https://phobos.dev.java.net/</a></p>
<p>  So, to sum it up: a future web development framework would include<br />
 an application server that exclusively served webservice requests<br />
 preferably in a REST way and in JSON format, explicitly barring any<br />
 output of presentation/HTML code. Although it could work in any<br />
 language, Javascript would probably be the best option given current<br />
 trends.</p>
<p>  &#8212; MV</p>
]]></content:encoded>
			<wfw:commentRss>http://mvalente.eu/2007/10/07/a-future-web-development-framework-application-logic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Future Web Development Framework &#8211; Storage</title>
		<link>http://mvalente.eu/2007/08/26/a-future-web-development-framework-storage/</link>
		<comments>http://mvalente.eu/2007/08/26/a-future-web-development-framework-storage/#comments</comments>
		<pubDate>Sun, 26 Aug 2007 15:55:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[OldBlog]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web Development Framework]]></category>

		<guid isPermaLink="false">http://mvbeta.asterisco.pt/2007/08/26/a-future-web-development-framework-storage/</guid>
		<description><![CDATA[Path: mv.asterisco.pt!mvalente From: mvale&#8230;@ruido-visual.pt (Mario Valente) Newsgroups: mv Subject: A Future Web Development Framework &#8211; Storage Date: Sun, 26 Aug 07 15:55:21 GMT The way I see it, there are two problems regarding storage in web frameworks that are orthogonal to each other: &#8211; one problem is the fact that we need storage at each [...]]]></description>
			<content:encoded><![CDATA[<p>Path: mv.asterisco.pt!mvalente<br />
From: mvale&#8230;@ruido-visual.pt (Mario Valente)<br />
Newsgroups: mv<br />
Subject: A Future Web Development Framework &#8211; Storage<br />
Date: Sun, 26 Aug 07 15:55:21 GMT</p>
<p>  The way I see it, there are two problems regarding<br />
 storage in web frameworks that are orthogonal to<br />
 each other:</p>
<p>  &#8211; one problem is the fact that we need storage at<br />
  each level of the 3-tier architecture and/or at<br />
  each component of the MVC pattern. We need to store<br />
  the presentation templates/views, to store the<br />
  logic/model and to store the data itself. Right now,<br />
  and this is one of the problems of current frameworks,<br />
  different types of storage are used at different levels.<br />
   Usually templates and code are stored using files at<br />
  filesystem level and data is stored using a relational<br />
  database.<br />
   This generates two subproblems: one is that you have<br />
  a disconnect between types of storage used (and dont<br />
  tell me that you could use the relational database to<br />
  store scripts and templates; you just look silly) which<br />
  gets even more ugly when the data you want to store is<br />
  not structured/relational (files? images? documents?).<br />
   If you suggest using blobs in the relational database<br />
  you wont just look silly but also stupid.<br />
   The second subproblem is the disconnect you get from<br />
  using a relational database to store the object oriented<br />
  models from the MVC pattern. The infamous object relational<br />
  impedance, usually solved by the use of OR-mappers (that<br />
  only go so far because they store objects properties but<br />
  not objects methods.</p>
<p>  &#8211; the second major problem is the type of storage to<br />
  use, preferably at all levels of the 3-tier architecture.<br />
   As I said before, usually filesystem files are used for<br />
  templates and code and relational databases for data.<br />
   But this is just &#8220;legacy&#8221; thinking and it generates<br />
  impedance problems, not only between MVC/OO thinking<br />
  and relational storage but also between managing files<br />
  and managing tables.</p>
<p>  What should or could be the way to tackle these two<br />
 problems? Well, I think that using a single uniform<br />
 storage would be the way to do it. You either decide<br />
 that you&#8217;re going to use files all the way, relational<br />
 database all the way or whatever other option all the<br />
 way.</p>
<p>  I think that relational is out of the question. Not<br />
 only is it stupid to store templates and/or code in<br />
 this way, but you also get the OR impedance problem<br />
 and the &#8220;binary files in blobs&#8221; problem.</p>
<p>  So its either filestorage for all or a second option.</p>
<p>  Filestorage is quite atractive. Templates are already<br />
 there, code is there, easy to store documents/blobs&#8230;<br />
  The problem is structured data, usually stored in<br />
 relational databases.<br />
  One option to solve this would be to use a file level<br />
 abstraction of relational storage. Plan 9 stuff comes<br />
 to mind; an interesting option would be the use of<br />
 libferris, since that would also bring aditional file<br />
 abstraction views of several resources.</p>
<p>  <a href="http://witme.sourceforge.net/libferris.web/">http://witme.sourceforge.net/libferris.web/</a></p>
<p>  Doing &#8220;ferrisls -0 pg://localhost/xmldotcom2007/customers&#8221;<br />
 to get a listing of the Customers table in PostgreSQL is<br />
 quite cool&#8230;</p>
<p>  Another option would be to use plain old files to<br />
 store data. This data could be stored formatted in XML<br />
 (as is now in fashion), although with current interest<br />
 in REST and JSON, it comes to mind that plain old RFC822<br />
 formatted files would fall in quite nicely (even the<br />
 separator &#8216;:&#8217; is the same&#8230;).</p>
<p>  For this option I can think of at least two tools<br />
 that might come in handy. APE and plain old IMAP/NNTP<br />
 storage&#8230;</p>
<p>  <a href="http://hathawaymix.org/Software/Ape">http://hathawaymix.org/Software/Ape</a><br />
  <a href="http://deflexion.com/messaging/">http://deflexion.com/messaging/</a><br />
  <a href="http://pessoal.org/papercut/">http://pessoal.org/papercut/</a></p>
<p>  Filestorage would have aditional benefits of not being<br />
 opaque, easily accessed by other tools. There would also<br />
 be the benefit of being able to use &#8220;normal&#8221; tools (like<br />
 vi) or more &#8220;advanced&#8221; ones (like versioning and backups)</p>
<p>  The second option for storage: object oriented databases.</p>
<p>  Their time is now more that due. Early ones had huge<br />
 performance problems and didnt have the SQL version du<br />
 jour. But there are now some OO databases that have quite<br />
 good performance, possibility of XML and document storage<br />
 and even SQL queries.</p>
<p>  Some standard relational databases, like PostgreSQL,<br />
 already have the OO usage option.<br />
  Another possibility is the use of native XML databases<br />
 like eXist.<br />
  Finally, the way that my longtime favourite Zope has<br />
 chosen, the use of a native OO database (ZODB in Zope&#8217;s<br />
 case)</p>
<p>  I can tell you that I&#8217;ve been a bigger fan of Zope/ZODB<br />
 in the past. At the end, the fact that ZODB is opaque (ie.<br />
 you can only get at your data using Python as tool)<br />
 actually becomes a problem. You get nice &#8220;things&#8221; like<br />
 acquisition, persistence, versioning, etc but you miss<br />
 out on accessibility (using vi, doing a grep on all your<br />
 code, etc). Unfortunately the development of APE and<br />
 related tools seems to have stopped, since that would seem<br />
 to be the perfect solution.</p>
<p>  <a href="http://www.zope.org/Members/jdoyon/svnapezope">http://www.zope.org/Members/jdoyon/svnapezope</a></p>
<p>  In conclusion: a future web framework would have to<br />
 have a single storage system for all its components. This<br />
 could either be a filesystem based system providing an<br />
 interface acceptable to the code level (SQL? XML?)<br />
 or an OO database with storage viewable as filesystem<br />
 objects. An important thing: the interface provided to<br />
 the code level could have SQL, SPARQL, XPath, whatever,<br />
 as options; but as time goes by its becoming clearer that<br />
 a REST interface is obligatory.</p>
<p>  <a href="http://www.25hoursaday.com/weblog/2007/07/13/GoogleBaseDataAPIVsAstoriaTwoApproachesToSQLlikeQueriesInARESTfulProtocol.aspx">http://www.25hoursaday.com/weblog/2007/07/13/GoogleBaseDataAPIVsAstoriaTwoApproachesToSQLlikeQueriesInARESTfulProtocol.aspx</a><br />
  <a href="http://exist.sourceforge.net/devguide.html#N1021D">http://exist.sourceforge.net/devguide.html#N1021D</a><br />
  <a href="http://phprestsql.sourceforge.net/">http://phprestsql.sourceforge.net/</a></p>
<p>  &#8212; MV</p>
]]></content:encoded>
			<wfw:commentRss>http://mvalente.eu/2007/08/26/a-future-web-development-framework-storage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zope Replacement</title>
		<link>http://mvalente.eu/2007/08/14/zope-replacement/</link>
		<comments>http://mvalente.eu/2007/08/14/zope-replacement/#comments</comments>
		<pubDate>Tue, 14 Aug 2007 00:28:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[OldBlog]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web Development Framework]]></category>

		<guid isPermaLink="false">http://mvbeta.asterisco.pt/2007/08/14/zope-replacement/</guid>
		<description><![CDATA[Path: mv.asterisco.pt!mvalente From: mvale&#8230;@ruido-visual.pt (Mario Valente) Newsgroups: mv Subject: Zope Replacement Date: Tue, 14 Aug 07 00:28:21 GMT Nearly 8 years later, even though I&#8217;m dissatisfied with the path Zope took (in particular version 3), I&#8217;m still searching for something that is better, since all the other web frameworks suck. http://groups.google.com/group/pt.comp.programacao/msg/01af20cd35371370 http://zopereplacement.wikidot.com/ Turbo Gears comes [...]]]></description>
			<content:encoded><![CDATA[<p>Path: mv.asterisco.pt!mvalente<br />
From: mvale&#8230;@ruido-visual.pt (Mario Valente)<br />
Newsgroups: mv<br />
Subject: Zope Replacement<br />
Date: Tue, 14 Aug 07 00:28:21 GMT</p>
<p>  Nearly 8 years later, even though I&#8217;m dissatisfied with the path<br />
 Zope took (in particular version 3), I&#8217;m still searching for something<br />
 that is better, since all the other web frameworks suck.</p>
<p>  <a href="http://groups.google.com/group/pt.comp.programacao/msg/01af20cd35371370">http://groups.google.com/group/pt.comp.programacao/msg/01af20cd35371370</a></p>
<p>  <a href="http://zopereplacement.wikidot.com/">http://zopereplacement.wikidot.com/</a> </p>
<p>  Turbo Gears comes close to what I would like to use; but its<br />
 still missing so many important things that I prefer to keep<br />
 looking and to brainstorm on how to do right a future web<br />
 development framework.</p>
<p>  <a href="http://www.turbogears.org/">http://www.turbogears.org/</a></p>
<p>  <a href="http://www.reahl.org/wfmwiki">http://www.reahl.org/wfmwiki</a></p>
<p>  &#8212; MV</p>
]]></content:encoded>
			<wfw:commentRss>http://mvalente.eu/2007/08/14/zope-replacement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

