<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://herbsutter.spaces.live.com/mmm2008-04-25_07.02/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fherbsutter.spaces.live.com%2fcategory%2fSoftware%2bDevelopment%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Sutter's Mill: Software Development</title><description /><link>http://herbsutter.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&amp;_c=BlogPart&amp;partqs=catSoftware%2bDevelopment</link><language>en-US</language><pubDate>Fri, 09 May 2008 07:07:32 GMT</pubDate><lastBuildDate>Fri, 09 May 2008 07:07:32 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://herbsutter.spaces.live.com/blog/feed.rss</cf:parentRSS><live:type>blogcategory</live:type><live:identity><live:id>3261494312968475067</live:id><live:alias>herbsutter</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>Suggestion for "Required Viewing": Machine Architecture Talk Online</title><link>http://herbsutter.spaces.live.com/Blog/cns!2D4327CC297151BB!304.entry</link><description>&lt;p&gt;Over the past 15 years or so that I've been giving software development talks, I've never had the chutzpah to suggest one of my own talks be considered &amp;quot;required viewing&amp;quot; for serious developers regardless of language or platform. But I'm going to suggest it now. &lt;p&gt;Two years ago, several highly experienced software architects I know (whose names many of you gentle readers would recognize) complained to me privately that &lt;strong&gt;&amp;quot;we shouldn't let developers labor in ignorance&amp;quot;&lt;/strong&gt; of how the enormous complexity of modern commodity computers affects our code's performance and correctness. From that seed and others like it sprang this talk, now freely available online: &lt;blockquote&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;&lt;a href="http://byfiles.storage.msn.com/y1pgF2c1f0SPofbSK2El_Ow4OvGwRvVTG0rCrzbAHmplzS5XjcA-aMq4PAaGu4NzIUlTWZOEMw0oX0"&gt;&lt;img style="border-right:0px;border-top:0px;margin:0px 0px 0px 15px;border-left:0px;border-bottom:0px" height=237 alt="Section of a slide image" src="http://byfiles.storage.msn.com/y1pgF2c1f0SPofPnViCaWFA82l9IBggpX6u3vNQ5EQx-De-OEkH__eQITc5Tt-nEtfriijiBw5VvFE" width=240 align=right border=0&gt;&lt;/a&gt;Machine Architecture: Things Your Programming Language Never Told You (117 minutes)&lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&lt;b&gt;Video: &lt;a href="http://video.google.com/videoplay?docid=-4714369049736584770"&gt;&lt;font color="#0000ff"&gt;Google video&lt;/font&gt;&lt;/a&gt;&lt;/b&gt; (recorded live on Sep 19, 2007)&lt;br&gt;&lt;strong&gt;Slides: &lt;a href="http://www.nwcpp.org/Downloads/2007/Machine_Architecture_-_NWCPP.pdf"&gt;&lt;font color="#0000ff"&gt;PDF slides&lt;/font&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;Abstract:&lt;/strong&gt; Programmers are routinely surprised at what simple code actually does and how expensive it can be, because so many of us are unaware of the increasing complexity of the machine on which the program actually runs. This talk examines the “real meanings” and “true costs” of the code we write and run especially on commodity and server systems, by delving into the performance effects of bandwidth vs. latency limitations, the ever-deepening memory hierarchy, the changing costs arising from the hardware concurrency explosion, memory model effects all the way from the compiler to the CPU to the chipset to the cache, and more -- and what you can do about them. &lt;p&gt;&lt;strong&gt;Teaser:&lt;/strong&gt; Would you be surprised to discover that only about 1% (one percent) of all the transistors on your modern CPU exist to ever compute &lt;em&gt;anything&lt;/em&gt;? And that the other 99% (ninety-nine percent) of your CPU's transistors are essentially dedicated to nothing but hiding memory latency? Those are round numbers, of course. But you get the idea...&lt;/blockquote&gt; &lt;p&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;margin:0px 0px 0px 15px;border-right-width:0px" height=282 alt="Slide image: So how do we cope with latency...?" src="http://byfiles.storage.msn.com/y1pgF2c1f0SPoc8ATum017HR1AGQcxNyA4o69z9xqMWcCgj5dkHdixdyGEdD87Ej63gc2bt0cTdvbU" width=371 align=right border=0&gt;This is a talk I wish I'd been able to attend years ago. Consider making this required viewing for your team, including for new hires in software development roles. I guarantee it'll be time well invested. &lt;p&gt;Here's one suggestion: &lt;strong&gt;Roll your own training session.&lt;/strong&gt; Arrange an extended lunch brownbag for your developers in a conference or training room, give each person a printout of the PDF slides to follow along and make notes, and display the video on the big screen. For extra benefit, leave a little time for group discussion, both during the session (the Pause feature is your friend) and afterwards (&amp;quot;how does this apply to our projects?&amp;quot;). Presto, instant training session -- and you don't even have to put your developers on a plane to attend a class somewhere, or arrange for a speaker to fly out to your site. &lt;p&gt;Finally, if you like the material and agree that it's worthwhile, &lt;strong&gt;please help spread the word.&lt;/strong&gt; For example, you can tell &lt;a href="http://developers.slashdot.org/"&gt;Slashdot&lt;/a&gt; by going to &lt;a href="http://slashdot.org/submit.pl"&gt;Submit Story&lt;/a&gt;. Or, if you prefer, you can tell &lt;a href="http://digg.com/"&gt;Digg&lt;/a&gt;, or &lt;a href="http://reddit.com/"&gt;Reddit&lt;/a&gt;, or one of the others... you know the rest of the usual suspects. &lt;p&gt;Enjoy!&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=3261494312968475067&amp;page=RSS%3a+Suggestion+for+%22Required+Viewing%22%3a+Machine+Architecture+Talk+Online&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=herbsutter.spaces.live.com&amp;amp;GT1=herbsutter"&gt;</description><comments>http://herbsutter.spaces.live.com/Blog/cns!2D4327CC297151BB!304.entry#comment</comments><guid isPermaLink="true">http://herbsutter.spaces.live.com/Blog/cns!2D4327CC297151BB!304.entry</guid><pubDate>Mon, 24 Sep 2007 23:14:39 GMT</pubDate><slash:comments>19</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://herbsutter.spaces.live.com/blog/cns!2D4327CC297151BB!304/comments/feed.rss</wfw:commentRss><wfw:comment>http://herbsutter.spaces.live.com/Blog/cns!2D4327CC297151BB!304.entry#comment</wfw:comment><dcterms:modified>2007-09-24T23:16:01Z</dcterms:modified></item><item><title>The Pit and the Pendulum</title><link>http://herbsutter.spaces.live.com/Blog/cns!2D4327CC297151BB!266.entry</link><description>&lt;p&gt;Don't fall into the pit of thinking there's no pendulum, or that the pendulum can be nailed to one side.  &lt;p&gt;Earlier today, Michael Swaine wrote an article commenting on the &amp;quot;trend&amp;quot; of &lt;a href="http://gears.google.com/"&gt;Google Gears&lt;/a&gt;, &lt;a href="http://labs.adobe.com/technologies/air/"&gt;Adobe AIR&lt;/a&gt;, and &lt;a href="http://silverlight.net/"&gt;Microsoft Silverlight&lt;/a&gt;. Here's the opening blurb and intro paragraph:  &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt; &lt;p&gt;&lt;a href="http://ddj.com/architect/201202675"&gt;&lt;strong&gt;Return of the Desktop&lt;/strong&gt;&lt;/a&gt;  &lt;p&gt;&lt;em&gt;Is the rediscovery of the desktop just the latest swing of some tech-trend pendulum, or is there something more going on here?&lt;/em&gt;  &lt;p&gt;This year, some of the big boys gave every impression of having suddenly and simultaneously remembered that there is such a thing as a desktop. Google got Geared up, Adobe announced AIR, and Microsoft saw the light with Silverlight, all of which are tools to help web developers integrate operations on the Web and the desktop just a little better. That oft-repeated mantra that the web browser is the new operating system? In 2007, not so much.&lt;/blockquote&gt; &lt;p&gt;Of course it's a pendulum. More specifically, it's the industry constantly rebalancing the mix of several key technology factors, notably:  &lt;ul&gt; &lt;li&gt;&lt;strong&gt;computation&lt;/strong&gt; capacity available on the edge (from motes and phones through to laptops and desktops) and in the center (from small and large servers through to local and global datacenters)  &lt;li&gt;&lt;strong&gt;communication&lt;/strong&gt; bandwidth, latency, cost, availability, and reliability&lt;/ul&gt; &lt;p&gt;This balancing actually isn't news; we've been doing it since the dawn of computing. Conceptually, it's not much different from how the designers of your PC balanced the kind and speed of memory to match the speed of the processor and the bus and the hard drive etc. to create a balanced system. We do and redo this exercise all the time. Here are just a few of the pendulum swings we've seen historically:  &lt;table cellspacing=5 cellpadding=5 width=447 border=0&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign=top width=91&gt;&lt;strong&gt;&lt;font color="#000080"&gt;Era/Epoch&lt;/font&gt;&lt;/strong&gt;  &lt;td valign=top width=102&gt;&lt;strong&gt;&lt;font color="#000080"&gt;The Center&lt;/font&gt;&lt;/strong&gt;  &lt;td valign=top width=107&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;td valign=top width=120&gt;&lt;strong&gt;&lt;font color="#000080"&gt;The Edge&lt;/font&gt;&lt;/strong&gt;  &lt;tr&gt; &lt;td valign=top width=91&gt;&lt;font color="#000080"&gt;Precambrian&lt;/font&gt;  &lt;td valign=top width=102&gt;&lt;font color="#000080"&gt;ENIAC&lt;/font&gt;  &lt;td valign=top width=107&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;td valign=top width=120&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;tr&gt; &lt;td valign=top width=91&gt;&lt;font color="#000080"&gt;Cambrian&lt;/font&gt;  &lt;td valign=top width=102&gt;&lt;font color="#000080"&gt;Walk-up mainframes&lt;/font&gt;  &lt;td valign=top width=107&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;td valign=top width=120&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;tr&gt; &lt;td valign=top width=91&gt;&lt;font color="#000080"&gt;Devonian&lt;/font&gt;  &lt;td valign=top width=102&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;td valign=top width=107&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;td valign=top width=120&gt;&lt;font color="#000080"&gt;Terminals and time-sharing&lt;/font&gt;  &lt;tr&gt; &lt;td valign=top width=91&gt;&lt;font color="#000080"&gt;Permian&lt;/font&gt;  &lt;td valign=top width=102&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;td valign=top width=107&gt;&lt;font color="#000080"&gt;Minicomputers&lt;/font&gt;  &lt;td valign=top width=120&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;tr&gt; &lt;td valign=top width=91&gt;&lt;font color="#000080"&gt;Triassic&lt;/font&gt;  &lt;td valign=top width=102&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;td valign=top width=107&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;td valign=top width=120&gt;&lt;font color="#000080"&gt;Microcomputers, personal computers&lt;/font&gt;  &lt;tr&gt; &lt;td valign=top width=91&gt;&lt;font color="#000080"&gt;Jurassic&lt;/font&gt;  &lt;td valign=top width=102&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;td valign=top width=107&gt;&lt;font color="#000080"&gt;File and print servers&lt;/font&gt;  &lt;td valign=top width=120&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;tr&gt; &lt;td valign=top width=91&gt;&lt;font color="#000080"&gt;Cretaceous&lt;/font&gt;  &lt;td valign=top width=102&gt;&lt;font color="#000080"&gt;Client/Server, server tier&lt;/font&gt;  &lt;td valign=top width=107&gt;&lt;font color="#000080"&gt;Client/Server, middle tier&lt;/font&gt;  &lt;td valign=top width=120&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;tr&gt; &lt;td valign=top width=91&gt;&lt;font color="#000080"&gt;Paleocene&lt;/font&gt;  &lt;td valign=top width=102&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;td valign=top width=107&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;td valign=top width=120&gt;&lt;font color="#000080"&gt;PDA&lt;/font&gt;  &lt;tr&gt; &lt;td valign=top width=91&gt;&lt;font color="#000080"&gt;Eocene&lt;/font&gt;  &lt;td valign=top width=102&gt;&lt;font color="#000080"&gt;Web servers&lt;/font&gt;  &lt;td valign=top width=107&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;td valign=top width=120&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;tr&gt; &lt;td valign=top width=91&gt;&lt;font color="#000080"&gt;Oligocene&lt;/font&gt;  &lt;td valign=top width=102&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;td valign=top width=107&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;td valign=top width=120&gt;&lt;font color="#000080"&gt;ActiveX, JavaScript&lt;br&gt;PDA phone&lt;/font&gt;  &lt;tr&gt; &lt;td valign=top width=91&gt;&lt;font color="#000080"&gt;Miocene&lt;/font&gt;  &lt;td valign=top width=102&gt;&lt;font color="#000080"&gt;E-tailers&lt;/font&gt;  &lt;td valign=top width=107&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;td valign=top width=120&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;tr&gt; &lt;td valign=top width=91&gt;&lt;font color="#000080"&gt;Pliocene&lt;/font&gt;  &lt;td valign=top width=102&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;td valign=top width=107&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;td valign=top width=120&gt;&lt;font color="#000080"&gt;Flash, AJAX&lt;/font&gt;  &lt;tr&gt; &lt;td valign=top width=91&gt;&lt;font color="#000080"&gt;Pleistocene&lt;/font&gt;  &lt;td valign=top width=102&gt;&lt;font color="#000080"&gt;Web services&lt;br&gt;Data centers&lt;/font&gt;  &lt;td valign=top width=107&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;td valign=top width=120&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;tr&gt; &lt;td valign=top width=91&gt;&lt;font color="#000080"&gt;Holocene&lt;/font&gt;  &lt;td valign=top width=102&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;td valign=top width=107&gt;&lt;font color="#000080"&gt;&lt;/font&gt; &lt;td valign=top width=120&gt;&lt;font color="#000080"&gt;Google Gears&lt;br&gt;Adobe AIR&lt;br&gt;Silverlight&lt;/font&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;How many pendulum swings can you count on just that list? In my own career, I've missed only the Precambrian and Cambrian (I'm a child of terminals and micros, and never had to carry stacks of punched cards uphill both ways in snow up to my waist). Many of you have experienced most of these swings.  &lt;p&gt;It's also not news that &lt;strong&gt;neither the center nor the edge is going to go away. We're in an expanding computing universe:&lt;/strong&gt; The question is not whether one will replace the other, but what balance they will be in at a given point. This will continue to be true for the foreseeable future no matter how often people on either end of the pendulum swing try to nail the pendulum where they want it for their own business reasons. (Take it from someone who lived through trying to market early peer-to-peer database and application models in the midst of &lt;a href="http://www.mondaymemo.net/031103feature.htm"&gt;Larry Ellison's screaming-loud &amp;quot;network computer&amp;quot; hype&lt;/a&gt;, and had to deal with VC after VC who believed desktops and notebooks were going to evaporate. Sigh.)  &lt;p&gt;&lt;a href="http://byfiles.storage.msn.com/y1pmEhyM4hSkGjwa5vawp-D3NItDgLwqzWJq5uzDvyZOWDUd9jfiBoztNfYcc2tCJkGjqfQPE4Xag4"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=133 alt="The Computing Pendulum (slide from Craig Mundie's talk)" src="http://byfiles.storage.msn.com/y1pmEhyM4hSkGg0fqTVhyBSRTY0H1UZRVtRFDKfAiCT2djR1x0N7Vtoj9GqG7kbcq61Ty3pXsHVWgM" width=240 align=right border=0&gt;&lt;/a&gt;What is news, of course, is how those factors are changing and therefore how their balance is changing. &lt;a href="http://www.microsoft.com/presspass/exec/craig/default.mspx"&gt;Craig Mundie&lt;/a&gt; has spoken about this pendulum in several talks this year, including last week's Financial Analysts Meeting (&lt;a href="http://www.microsoft.com/msft/speech/FY07/MundieFAM2007.mspx"&gt;transcript&lt;/a&gt; and WMP webcast link; &lt;a href="http://www.microsoft.com/msft/download/FAM_2007/Mundie_FAM_2007.ppt"&gt;slides&lt;/a&gt;, including the one reproduced at right).  &lt;p&gt;Quoting from &lt;a href="http://www.microsoft.com/Presspass/exec/craig/05-092007ChileCraigM.mspx"&gt;one&lt;/a&gt; of those talks:  &lt;blockquote&gt; &lt;p&gt;One of the things that I also find fascinating at this point in time is how people, &lt;strong&gt;how easily we forget about the cyclical nature of the evolution of the computing paradigm&lt;/strong&gt;.&lt;/blockquote&gt; &lt;p&gt;And from &lt;a href="http://www.microsoft.com/Presspass/exec/craig/05-15-2007WinHECMundie.mspx"&gt;another&lt;/a&gt;:  &lt;blockquote&gt; &lt;p&gt;Right now, as the Internet has evolved, &lt;strong&gt;broadband has become more highly penetrated, and to some extent the computers seems to be not fully utilized&lt;/strong&gt;, we're in the middle of one of these natural pendulum like swings between centralized computing and computing at the edge. It started with the mainframe, and then we added terminals, and then we moved to departmental, and then we moved to personal; it just kind of moves back and forth. And there are a lot of people today who say, oh, you know, I think that in the future we'll just have dumb presentation devices again, and we'll do all the computing in the cloud.  &lt;p&gt;But ... I contend that since the cloud is made ultimately from the same microprocessors, as the utilization becomes higher, it becomes impractical for a whole variety of costs and latency reasons to think you can just push everything up the wire into some centralized computing utility.  &lt;p&gt;And so, in fact, I think for the first time in a long time &lt;strong&gt;we're going to see the pendulum come into a fairly balanced position where we, in fact, do have incredible power plants of the Internet in these huge datacenters&lt;/strong&gt; that provide these integrating services across the network, &lt;strong&gt;but at the same time we're going to see increasingly powerful local personal computing facilities in everything from embedded devices, cell phones, and on up&lt;/strong&gt; the computing spectrum.&lt;/blockquote&gt; &lt;p&gt;A nicely balanced view. The center (mainframes, datacenters) isn't going away anytime soon. But neither is the edge (PDAs, laptops). It would obviously be foolish to imagine either away, at least yet, because they each have different capability, availability, performance, and reliability characteristics, so there's plenty of reason to choose each one for a different part of an application or system.  &lt;p&gt;Don't fall into the pit of assuming the pendulum will get nailed to one side. That's pretty unlikely. Bet on new technologies constantly being developed to bring the center and the edge into new balance by filling the holes where each is deficient and as the center and edge grow at different rates. Yesterday's disconnected computers just couldn't do everything you can on an Internet -- so as internetworks became mainstream something like HTML and AJAX had to come to let us exploit them. Early and current web apps just can't do everything you can on a rich client -- hence first AJAX, then Gears, AIR, and Silverlight, with more still to come tomorrow and next year and next decade.  &lt;p&gt;Fasten your seat belts.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=3261494312968475067&amp;page=RSS%3a+The+Pit+and+the+Pendulum&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=herbsutter.spaces.live.com&amp;amp;GT1=herbsutter"&gt;</description><comments>http://herbsutter.spaces.live.com/Blog/cns!2D4327CC297151BB!266.entry#comment</comments><guid isPermaLink="true">http://herbsutter.spaces.live.com/Blog/cns!2D4327CC297151BB!266.entry</guid><pubDate>Thu, 02 Aug 2007 22:12:15 GMT</pubDate><slash:comments>7</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://herbsutter.spaces.live.com/blog/cns!2D4327CC297151BB!266/comments/feed.rss</wfw:commentRss><wfw:comment>http://herbsutter.spaces.live.com/Blog/cns!2D4327CC297151BB!266.entry#comment</wfw:comment><dcterms:modified>2007-08-06T02:54:32Z</dcterms:modified></item><item><title>Rico Mariani Interviewed on Behind the Code</title><link>http://herbsutter.spaces.live.com/Blog/cns!2D4327CC297151BB!165.entry</link><description>&lt;p&gt;Rico Mariani is a performance guru at Microsoft and a wonderful person. After a number of years on the Visual C++ team since 1.0, he went to MSN and then to CLR land where he now beats the &amp;quot;measure! don't ship bad performance! measure!&amp;quot; drum to much good effect. It's a pleasure to work with him. Interestingly, Rico is one of the handful of people I polled for &amp;quot;what should I cover&amp;quot; in the new Machine Architecture talk I'm currently writing for the seminar Bjarne and I are doing next month. In the current draft of that talk, I have two slides titled &amp;quot;Mariani's Methodology (or, Rico's Rules)&amp;quot; -- I'm sure he'll be mortified at the capitals. &lt;p&gt;Rico has just been &lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=285570"&gt;interviewed&lt;/a&gt; on &lt;a href="http://channel9.msdn.com/"&gt;Channel 9&lt;/a&gt;. Recommended viewing. It's sprinkled throughout with everything from useful career advice (whether you're just starting out or looking for a next project), to interesting insights into early Visual C++ and Web product development, to how to ship at high performance and high quality in any language. Rico's &lt;a href="http://blogs.msdn.com/ricom/"&gt;blog&lt;/a&gt; is also a great resource -- and don't get hung up when he talks mostly about .NET managed code, because the principles generalize to performance in any language and on any system. &lt;p&gt;How do friends congratulate the man? The &lt;a href="http://blogs.msdn.com/ricom/archive/2007/02/23/behind-the-code.aspx"&gt;pictures&lt;/a&gt; tell the story. Good on you, Rico! &lt;p&gt;On a sad note: One of the five people previously interviewed on the &lt;a href="http://channel9.msdn.com/Shows/Behind_The_Code"&gt;Behind the Code series&lt;/a&gt; is Technical Fellow and Turing Award winner &lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=168181"&gt;Jim Gray&lt;/a&gt;. Jim is still missing after disappearing in the Pacific on January 28. Widely known and loved, he is greatly missed. Our thoughts are with Jim's family.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=3261494312968475067&amp;page=RSS%3a+Rico+Mariani+Interviewed+on+Behind+the+Code&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=herbsutter.spaces.live.com&amp;amp;GT1=herbsutter"&gt;</description><comments>http://herbsutter.spaces.live.com/Blog/cns!2D4327CC297151BB!165.entry#comment</comments><guid isPermaLink="true">http://herbsutter.spaces.live.com/Blog/cns!2D4327CC297151BB!165.entry</guid><pubDate>Sat, 24 Feb 2007 15:19:21 GMT</pubDate><slash:comments>4</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://herbsutter.spaces.live.com/blog/cns!2D4327CC297151BB!165/comments/feed.rss</wfw:commentRss><wfw:comment>http://herbsutter.spaces.live.com/Blog/cns!2D4327CC297151BB!165.entry#comment</wfw:comment><dcterms:modified>2007-02-24T15:19:21Z</dcterms:modified></item><item><title>Channel 9 Interview: Software Composability and the Future of Languages</title><link>http://herbsutter.spaces.live.com/Blog/cns!2D4327CC297151BB!144.entry</link><description>&lt;p&gt;Last week, &lt;a href="http://www.microsoft.com/presspass/exec/techfellow/Hejlsberg/default.mspx"&gt;Anders Hejlsberg&lt;/a&gt;, &lt;a href="http://research.microsoft.com/~emeijer/"&gt;Erik Meijer&lt;/a&gt;, &lt;a href="http://weblogs.asp.net/brianbec/"&gt;Brian Beckman&lt;/a&gt; and I recorded an interview/chat that covered a range of topics related to programming and languages.
&lt;p&gt;The &lt;a href="http://channel9.msdn.com/Showpost.aspx?postid=273697"&gt;video is now available&lt;/a&gt; online. Here's the summary pasted from the Channel 9 site:
&lt;blockquote&gt;
&lt;p&gt;&lt;font size=3&gt;&lt;a href="http://channel9.msdn.com/Showpost.aspx?postid=273697"&gt;&lt;strong&gt;Software Composability and the Future of Languages&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;&lt;/font&gt;&lt;strong&gt;Anders Hejlsberg, Herb Sutter, Erik Meijer, Brian Beckman&lt;/strong&gt;
&lt;p&gt;﻿How will imperative programming languages evolve to suit the needs of developers in the age of Concurrency and Composability? What role can programming languages play in enabling true composability? What are the implications of LINQ on the future of managed (CLS-based) and unmanaged(C++) languages? How will our imperative languages (static) become more functional (dynamic) in nature while preserving their static &amp;quot;experience&amp;quot; for developers?
&lt;p&gt;Answers to these questions and much more are to be found in this interview with some of Microsoft's leading language designers and programming thought leaders: Anders Hejlsberg, Technical Fellow and Chief Architect of C#, Herb Sutter, Architect in the C++ language design group, Erik Meijer, Architect in both VB.Net and C# language design and programming language guru, and Brian Beckman, physicist and programming language architect working on VB.Net.
&lt;p&gt;This is a &lt;em&gt;great&lt;/em&gt; conversation with some of the industry's most influential programming language designers. Tune in. You may be surprised by what you learn...&lt;/blockquote&gt;
&lt;p&gt;Apologies in advance if the video doesn't work for some combination of platforms and browsers.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=3261494312968475067&amp;page=RSS%3a+Channel+9+Interview%3a+Software+Composability+and+the+Future+of+Languages&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=herbsutter.spaces.live.com&amp;amp;GT1=herbsutter"&gt;</description><comments>http://herbsutter.spaces.live.com/Blog/cns!2D4327CC297151BB!144.entry#comment</comments><guid isPermaLink="true">http://herbsutter.spaces.live.com/Blog/cns!2D4327CC297151BB!144.entry</guid><pubDate>Fri, 19 Jan 2007 16:44:03 GMT</pubDate><slash:comments>5</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://herbsutter.spaces.live.com/blog/cns!2D4327CC297151BB!144/comments/feed.rss</wfw:commentRss><wfw:comment>http://herbsutter.spaces.live.com/Blog/cns!2D4327CC297151BB!144.entry#comment</wfw:comment><dcterms:modified>2007-01-20T01:37:53Z</dcterms:modified></item></channel></rss>