<?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>techno.blog(&#34;Dion&#34;) &#187; abstraction</title>
	<atom:link href="http://almaer.com/blog/tag/abstraction/feed" rel="self" type="application/rss+xml" />
	<link>http://almaer.com/blog</link>
	<description>blogging about life, the universe, and everything tech</description>
	<lastBuildDate>Tue, 28 Aug 2012 14:41:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Finding the right abstraction; Not repeating the same mistakes</title>
		<link>http://almaer.com/blog/finding-the-right-abstraction-not-repeating-the-same-mistakes</link>
		<comments>http://almaer.com/blog/finding-the-right-abstraction-not-repeating-the-same-mistakes#comments</comments>
		<pubDate>Mon, 09 Jun 2008 16:01:40 +0000</pubDate>
		<dc:creator>dion</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[abstraction]]></category>

		<guid isPermaLink="false">http://almaer.com/blog/finding-the-right-abstraction-not-repeating-the-same-mistakes</guid>
		<description><![CDATA[
I got to meet (and interview) the crew behind 280 Slides, the beginning of &#8220;Keynote on the Web.&#8221;
The application looks like an Apple.app for a reason. Two of the crew jumped from USC to Apple, and drank the Steve-aid of compelling user experience, the Mac-way.
Francisco built the beginnings of Objective-J at school, and then resurrected [...]]]></description>
			<content:encoded><![CDATA[<p><img src='http://almaer.com/blog/uploads/abstraction1.png' alt='Abstract Art' border='0'/></p>
<p>I got to <a href="http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino">meet (and interview) the crew</a> behind <a href="http://280slides.com/">280 Slides</a>, the beginning of &#8220;Keynote on the Web.&#8221;</p>
<p>The application looks like an Apple.app for a reason. Two of the crew jumped from USC to Apple, and drank the Steve-aid of compelling user experience, the Mac-way.</p>
<p>Francisco built the beginnings of <a href="http://objective-j.org/">Objective-J</a> at school, and then resurrected it later.</p>
<p>When they wanted to build rich Ajax applications, they wanted to use the toolchain they were used too, and thus they continued the work of porting Objective-C to Objective-J, and Cocoa to Cappuccino.</p>
<p>The podcast talks about how the runtime itself loads .j files and on the fly munges to JavaScript and runs. There isn&#8217;t a compilation step (e.g. like GWT generating JavaScript from Java).</p>
<p>280 Slides is the first application built on the framework, and people are talking about it. It seems like we have two differing views:</p>
<ul>
<li>&#8220;Why would you go to ALL of that work to build a framework that complicated instead of just building the darn application on a good Ajax framework like jQuery/Dojo/Prototype/&#8230;&#8221;</li>
<li>&#8220;Wow, I can&#8217;t wait to see this open sourced so I can build Mac-like software too&#8221;</li>
</ul>
<p>I can see the allure of Objective-J / Cappuccino for building  desktop-like Web applications. It gives you a very high level abstraction over the browser. No more DOM. No more CSS layouts, which can be the bane of your existence for a complicated and dynamic layout. If done correctly, it can allow you to not keep making the same mistakes.</p>
<p>Do you sometimes feel like you are fixing the same bugs again and again? If you do, then maybe you aren&#8217;t at the right abstraction?</p>
<p>Then, think about how hard it is to get copy and paste working across objects. Cappuccino gives this to you, and certain Web applications will love this.</p>
<p>Francisco Tolmasky had a good response to some concerns on the <a href="http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino">Ajaxian thread</a>:</p>
<blockquote><p>
Let me first lessen your concerns by telling you that can *still* do string = “Today” + date. That’s the beauty of Objective-J, it’s both languages, which means you get all the benefits of JS, while still getting to have real classes and so forth.</p>
<p>Now, completely separate from this, is that no *language* truly makes writing applications easier. Sure, little pet peeves may come up here and there, but 90% of what happens in an application deals with the frameworks you use. I’m sure all the iPhone “problems” you’re having with Objective-C are more than compensated by all the amazing power you get from things like CoreAnimation, which is precisely why we wrote Cappuccino.</p>
<p>JavaScript does not have any way of writing applications today in the same way mature platforms like Cocoa do. Cappuccino provides you with very high level features like copy-paste (of anything), undo and redo, document management and archiving, vector graphics and animation, etc etc. when you write an application for Mac OS X or iPhone, you can truly focus *just* on your application, not whether it will work on some obscure browser or how to get something as simple as undo working, and that’s precisely what we are trying to provide.</p>
<p>Again, Cappuccino is not for everyone. There is an incredibly wide spectrum of web content out there, from completely static pages, to dynamic pages, to full blown applications. We *only* serve the latter. It would not make sense to put Cappuccino on something like Amazon.com, but 280slides would have been an incredibly more difficult task for a 3 person team like ours without having all of the foundation already complete.
</p></blockquote>
<p>Of course, if the high level abstraction is your muse, then you should make sure that you stay in that land. Gone are the days of mashing up other JavaScript code.</p>
<p>Trying to find the right level can be tough, depends on what you are doing, and more importantly&#8230;. the mojo that feels right.</p>
]]></content:encoded>
			<wfw:commentRss>http://almaer.com/blog/finding-the-right-abstraction-not-repeating-the-same-mistakes/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
