<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Comment Feed for Channel 9 - Jonathan Edwards: Programming Futures and Declarative Objects</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects/RSS"></atom:link>
	<image>
		<url>http://ecn.channel9.msdn.com/o9/previewImages/100/563930_100x75.jpg</url>
		<title>Channel 9 - Jonathan Edwards: Programming Futures and Declarative Objects</title>
		<link></link>
	</image>
	<description>&amp;quot;The biggest problem with programming is that we don’t agree on what the problem is&amp;quot;, says

Jonathan Edwards, who is first and foremost a practicing programmer. Jonathan also spends a great deal of time thinking about how to evolve the languages and tools&amp;nbsp;programmers use to solve increasingly complex problems in general purpose computing. He is
 currently a Research fellow at MIT, and I caught up with him at&amp;nbsp;Emerging Languages Camp 2010 shortly after his talk on Declarative Objects (see the&amp;nbsp;PPT
 or&amp;nbsp;PDF slides). His thoughts on a potential future direction for general-purpose programming are quite compelling. In a nutshell, Jonathan is thinking about
 an object-oriented model-view declarative programming world. Discussing this idea, he states, &amp;quot;First, restrict pointers with a new object model that uses nesting and binding. Second, prevent cycles with a new form of dataflow based on the Model-View
 architecture.&amp;quot;Look through the PPT or PDF linked to above, press play, and open your mind a bit. See what you may see. The programming languages rabbit hole is deep. We seem to be hovering at a comfortable position, yet the problems we face will require us to move further
 down the tunnel to discover new means of algorithmic expression and code design. Jump in.
Enjoy. </description>
	<link></link>
	<language>en</language>
	<pubDate>Sat, 18 May 2013 09:20:50 GMT</pubDate>
	<lastBuildDate>Sat, 18 May 2013 09:20:50 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<item>
		<title>Re: Jonathan Edwards: Programming Futures and Declarative Objects</title>
		<description>
			<![CDATA[
<p>It would be nice to find a nice mid-point between imperative and functional programming. And no, Scala is not it <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>posted by bryanedds</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634166396280000000</link>
		<pubDate>Thu, 05 Aug 2010 21:13:48 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634166396280000000</guid>
		<dc:creator>bryanedds</dc:creator>
	</item>
	<item>
		<title>Re: Jonathan Edwards: Programming Futures and Declarative Objects</title>
		<description>
			<![CDATA[
<p>And on that note, <span id="ctl00_MainPlaceHolder_Starter_BodyLabel">Jonathan Shapiro's
</span>BitC seems to be doing some ground-breaking work toward that end.</p>
<p>posted by bryanedds</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634166747370000000</link>
		<pubDate>Fri, 06 Aug 2010 06:58:57 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634166747370000000</guid>
		<dc:creator>bryanedds</dc:creator>
	</item>
	<item>
		<title>Re: Jonathan Edwards: Programming Futures and Declarative Objects</title>
		<description>
			<![CDATA[
<p>Very interesting interview.&nbsp;I too have a very hard time working with async callback code. The presentation side of silverlight is awesome. But its reliance on WCF ramps up the complexity far too much.
</p>
<p>posted by SteveRichter</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634166899430000000</link>
		<pubDate>Fri, 06 Aug 2010 11:12:23 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634166899430000000</guid>
		<dc:creator>SteveRichter</dc:creator>
	</item>
	<item>
		<title>Re: Jonathan Edwards: Programming Futures and Declarative Objects</title>
		<description>
			<![CDATA[
<p>Scala is a multi-paradigm language: object-oriented, functional and imperative. There's not really a &quot;mid-point&quot; (what does that mean), but you can mix features as you like.</p>
<p>&nbsp;</p>
<p>Now the mention of aliasing immediately led my thoughts to Bertrand Meyer's <a href="http://se.ethz.ch/~meyer/publications/aliasing/alias.pdf">
paper</a> on the <a href="http://bertrandmeyer.com/2010/01/21/the-theory-and-calculus-of-aliasing/">
theory and calculus of aliasing</a>.</p>
<p>posted by exoteric</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634166988580000000</link>
		<pubDate>Fri, 06 Aug 2010 13:40:58 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634166988580000000</guid>
		<dc:creator>exoteric</dc:creator>
	</item>
	<item>
		<title>Re: Jonathan Edwards: Programming Futures and Declarative Objects</title>
		<description>
			<![CDATA[
<p>There is an interesting paper on functional reactive programming (FRP) that uses scala:</p>
<p><a href="http://lamp.epfl.ch/~imaier/pub/DeprecatingObserversTR2010.pdf">http&#58;&#47;&#47;lamp.epfl.ch&#47;&#126;imaier&#47;pub&#47;DeprecatingObserversTR2010.pdf</a></p>
<p>&nbsp;</p>
<p>It is interesting in that it demonstrates a little of what Jonathon Edwards was talking about. By the middle of the paper I was excited about FRP and DataFlow programming in general, but by the end of it I was trying to wrap my head around the complex compositional
 relationships I would now have to manage. If you were to use instead a declarative model, a large portion of the complexity could simply be represented by implied relationships in a declarative expression.</p>
<p>&nbsp;</p>
<p>In defense of scala (though I personally have a love-hate relationship with the language), scala has an expression-based syntax, not a statement based one (like C#, not counting LINQ). This single distinction makes custom declarative programming models a
 natural part of the language, and in fact this is one of the features that are critical to implementing internal DSLs in scala. For example, you can (and some have tried already: <a href="http://github.com/vladimirk/scalalinq/">http&#58;&#47;&#47;github.com&#47;vladimirk&#47;scalalinq&#47;</a>) implement things like linq in scala without
 using any custom syntax or compiler plugins - just plain scala.</p>
<p>posted by JeroMiya</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634167032940000000</link>
		<pubDate>Fri, 06 Aug 2010 14:54:54 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634167032940000000</guid>
		<dc:creator>JeroMiya</dc:creator>
	</item>
	<item>
		<title>Re: Jonathan Edwards: Programming Futures and Declarative Objects</title>
		<description>
			<![CDATA[
<p>Interesting.</p>
<p>1) Isn't this bring a form of sql to the desktop?&nbsp; Declaritive and&nbsp;data driven language?&nbsp; Linq?</p>
<p>2) Declaring the data first sounds like we can still learn some things from Cobol's declarations section.&nbsp; Declare the data tree first. The data is the application model.&nbsp; A tree would seem&nbsp;to solve a few other problems regarding transactions and&nbsp;rollback
 and locking.&nbsp; With&nbsp;a tree, the runtime can know what&nbsp;the locking order is by tree&nbsp;order.</p>
<p>3) Couldn't you start&nbsp;experiments on this idea without boiling the ocean?&nbsp; I mean&nbsp;a framework like Rx can express some pretty&nbsp;progressive ideas without have to start from a new runtime and language.&nbsp; It&nbsp;could take&nbsp;five years or more just to get the point
 of being able to experiment with the core ideas to see if it any of them work.</p>
<p>4) Haven't people like Jim Gray&nbsp;solved&nbsp;some of this on server end using parallel pipelines, trees and folk-joins?&nbsp;</p>
<p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634167127490000000</link>
		<pubDate>Fri, 06 Aug 2010 17:32:29 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634167127490000000</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
	<item>
		<title>Re: Jonathan Edwards: Programming Futures and Declarative Objects</title>
		<description>
			<![CDATA[
<p>This was what I was wondering too, staceyw. It seems like a simple DSL might be more appropriate than a new general purpose lanauge...</p>
<p>posted by bryanedds</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634167333880000000</link>
		<pubDate>Fri, 06 Aug 2010 23:16:28 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634167333880000000</guid>
		<dc:creator>bryanedds</dc:creator>
	</item>
	<item>
		<title>Re: Jonathan Edwards: Programming Futures and Declarative Objects</title>
		<description>
			<![CDATA[
<p>Elaborate... The purpose of Jonathan's quest is that of designing a general purpose tool to help compose (as in write) programs that solve problems of a general purpose nature. I don't see how domain specificity applies here.</p>
<p><br />C</p>
<p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634167347160000000</link>
		<pubDate>Fri, 06 Aug 2010 23:38:36 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634167347160000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: Jonathan Edwards: Programming Futures and Declarative Objects</title>
		<description>
			<![CDATA[
<p>I totally agree with Jonathans ideas but would suggest taking them even further in the form of DSLs on VMs so that there are the base layers; mark up with bindings view layer, declarative code behind layer, optional program smarts business layer and data
 management layer.</p>
<p>&nbsp;</p>
<p>The view would be markup language agnostic as long as it understands bindings and has a provider to communicate with the View VM. Ie. You could declare a text box or red cube if the markup supported it in XAML, html or VRML and it would display as needed.</p>
<p>&nbsp;</p>
<p>The super code behind (SCB) would be a declarative domain specific language (DSL) that provided attributes, behaviours, triggers, events landings, and bindings to the data management layer and/or program smarts layer.</p>
<p>&nbsp;</p>
<p>An optional program smarts layer (PSL) would be programming language agnostic as long as it compiled to an IL that could be used by the SCB. Basically it is the foreign code access layer that can do all the dangerous stuff like access file system directly,
 internet, C libraries, etc. How you would be able to do this would be similar what I said in Brian Beckman’s monads and coordinate systems where the VM would declare binary landmarks that the language assembly provider would work out how that relates to its
 types and structures, then be sandboxed in an security overseer.</p>
<p>&nbsp;</p>
<p>The data management layer (DML) would be about organising access points to data sources that you could declaratively work with. This would enable you to add data access points to text/xml files, sql/object/no-sql databases, data services, etc. as long as
 each data point had a provider that we could declaratively read/write to. Eg. In the PSL you could use LINQ to query data from a text file merging it with sql server data and a web service. The SCB would display the data as it arrived and signalled to the
 SCB that more data is on the way to display as such in the View. The DML would also have its own code behind DSL that could be called to perform data source specific features. Ie. Non-read/update/add/delete operations.</p>
<p>&nbsp;</p>
<p>That's how I would describe my idea of programming futures.</p>
<p>posted by N2Cheval</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634167393030000000</link>
		<pubDate>Sat, 07 Aug 2010 00:55:03 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634167393030000000</guid>
		<dc:creator>N2Cheval</dc:creator>
	</item>
	<item>
		<title>Re: Jonathan Edwards: Programming Futures and Declarative Objects</title>
		<description>
			<![CDATA[
<p>You just defined a DSL I think.</p>
<p>&nbsp;</p>
<p>Perhaps the use of 'Domain' in DSL is a misnomer. What is special about a DSL is not the domain it covers, but the specialized forms of expression it provides to solve a specific class of problems (in this case, defining dataflows). The class of problems
 don't necessarily have to apply to a specific application domain AFAIK, though that's a common usage.</p>
<p>&nbsp;</p>
<p>In short, a DSL captures an expression model. That expression model can be conveniently applied to one or more domains (assuming the DSL is well-motivated).</p>
<p>&nbsp;</p>
<p>I've only written a couple of DSLs, though, so someone please correct this if there is a more concrete or better definition.</p>
<p>posted by bryanedds</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634167464140000000</link>
		<pubDate>Sat, 07 Aug 2010 02:53:34 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634167464140000000</guid>
		<dc:creator>bryanedds</dc:creator>
	</item>
	<item>
		<title>Re: Jonathan Edwards: Programming Futures and Declarative Objects</title>
		<description>
			<![CDATA[
<p>Functional Reactive Programming is indeed an alternative approach, and one that is being actively developed. My reaction has been similar to yours: it just seems very abstract and counter-intuitive to me. The most important thing for me is being easy to
 understand and use, because programming is already hard enough. I also think it ends up punting on the hard problem of coordinating the changes from different events that may influence each other via side-effects. &nbsp;But maybe I just don't get it, or they will
 eventually work it out.</p>
<p>posted by edwards</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634168027460000000</link>
		<pubDate>Sat, 07 Aug 2010 18:32:26 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634168027460000000</guid>
		<dc:creator>edwards</dc:creator>
	</item>
	<item>
		<title>Re: Jonathan Edwards: Programming Futures and Declarative Objects</title>
		<description>
			<![CDATA[
<p>Stacey, the limitation with SQL, LINQ, et. al. is that they solve the problem of reading data, but not modifying it. If you want to modify the data, you are back to imperative programming. DSL's leave you in a similar situation: if you want to modify complex
 data, you end up recreating the control structures of an imperative language. We just don't know of any good alternative yet. I am basically trying to do the same thing for modification that queries did for reads: invent a declarative semantics that has nice
 compositional properties.</p>
<p>posted by edwards</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634168034790000000</link>
		<pubDate>Sat, 07 Aug 2010 18:44:39 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634168034790000000</guid>
		<dc:creator>edwards</dc:creator>
	</item>
	<item>
		<title>Re: Jonathan Edwards: Programming Futures and Declarative Objects</title>
		<description>
			<![CDATA[
<p>edwards,</p>
<p>&nbsp;</p>
<p>Using a declarative approach, perhaps there's a way to specify the outcome (state delta or some such) of desired changes under certain conditions instead of invoking mutating operators / imperative statements directly. Since you'd be specifying the outcome
 declaratively, presumably it can be done within a DSL. I've not implemented such a feature before, however, so I don't know if it will actually work...</p>
<p>posted by bryanedds</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634168083260000000</link>
		<pubDate>Sat, 07 Aug 2010 20:05:26 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634168083260000000</guid>
		<dc:creator>bryanedds</dc:creator>
	</item>
	<item>
		<title>Re: Jonathan Edwards: Programming Futures and Declarative Objects</title>
		<description>
			<![CDATA[
<p>@edwards.&nbsp; Maybe I am not thinking right.&nbsp; But sql has Insert/Update/Delete.&nbsp; Linq could have an Update if they add it (add Update next to Select as an extention method?).&nbsp; Maybe you need something more specific to trees.&nbsp; Please keep us updated.&nbsp; Could
 also bounce ideas here in Tech forum&nbsp;as you never know what&nbsp;some crazy 9er will inspire.</p>
<p>posted by staceyw</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634171284540000000</link>
		<pubDate>Wed, 11 Aug 2010 13:00:54 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Charles/Jonathan-Edwards-Programming-Futures-and-Declarative-Objects#c634171284540000000</guid>
		<dc:creator>staceyw</dc:creator>
	</item>
</channel>
</rss>