<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-6181310435977891397.post5997947688881633476..comments</id><updated>2010-07-31T21:02:16.914-04:00</updated><category term='atomic zombie marauder'/><category term='astronomy'/><category term='urban planning'/><category term='2008 democratic primary elections'/><category term='vehicle'/><category term='improvised'/><category term='one-liner'/><category term='domain name'/><category term='free'/><category term='cheap'/><category term='predictions'/><category term='minilathe'/><category term='events'/><category term='phone'/><category term='chainring'/><category term='product'/><category term='tig welding'/><category term='bike'/><category term='tax'/><category term='design criticism'/><category term='sheldonbrown'/><category term='make'/><category term='waste management'/><category term='park slope'/><category term='job'/><category term='metal working'/><category term='tune-up'/><category term='software engineering'/><category term='single-serving'/><category term='standard library'/><category term='reliability'/><category term='lunar eclipse'/><category term='video'/><category term='spoke'/><category term='craigslist'/><category term='repair'/><category term='hvac'/><category term='eclipse'/><category term='brooklyn'/><category term='alarm clock'/><category term='shattered dreams'/><category term='charge coupled device'/><category term='software engineer'/><category term='alternative'/><category term='lwb'/><category term='cars'/><category term='rant'/><category term='obituary'/><category term='voting'/><category term='bed-stuy'/><category term='modifications'/><category term='biofuel'/><category term='diy'/><category term='java'/><category term='bent'/><category term='princeton'/><category term='lock'/><category term='dragons'/><category term='ccd'/><category term='makenyc'/><category term='holiday'/><category term='stirling'/><category term='haha'/><category term='lathe'/><category term='india'/><category term='long wheel-base'/><category term='urbanity'/><category term='toilet'/><category term='123 tompkins'/><category term='cart'/><category term='compost'/><category term='disappointment'/><category term='obama'/><category term='implementation issues'/><category term='caste'/><category term='septic tank'/><category term='idiotarod'/><category term='software'/><category term='flickr'/><category term='&quot;unix is great&quot;'/><category term='bamboo'/><category term='headset'/><category term='pollution'/><category term='color'/><category term='chinese new year'/><category term='coding'/><category term='power'/><category term='freegan'/><category term='wheel'/><category term='turing alarm clock'/><category term='led'/><category term='design'/><category term='dumpster'/><category term='human waste'/><category term='entrepeneur'/><category term='grow-lamp'/><category term='race'/><category term='nyc'/><category term='urban effect'/><category term='register.com'/><category term='greenwash'/><category term='sugino sucks'/><category term='recumbent'/><category term='bikes'/><category term='education'/><category term='stirling engine'/><category term='one-time-use'/><category term='moon'/><category term='short'/><category term='efficiency'/><category term='night'/><category term='bakfiets'/><category term='Innertubes'/><category term='winter'/><category term='photos'/><category term='press'/><category term='bio-gas'/><category term='pwm'/><category term='interface'/><category term='green'/><category term='sewer'/><category term='nokia'/><category term='quote depth exceeded'/><category term='congestion tax'/><category term='scavenger'/><category term='bicycle'/><category term='rim'/><category term='bakfiet'/><category term='maintenance'/><category term='welding'/><category term='building wheels'/><category term='princeton university'/><category term='london'/><category term='cellular'/><category term='update'/><category term='advertisements'/><category term='mods'/><category term='hack'/><category term='embedded'/><category term='tool'/><category term='idiotarod2008'/><category term='primaries'/><category term='grow-light'/><category term='programming'/><category term='mixin'/><category term='politics'/><category term='cell phone'/><category term='norway'/><category term='lunar'/><category term='padlock'/><category term='graduate school'/><category term='sterling engine'/><category term='hillary'/><category term='electronics'/><category term='trash'/><category term='coal'/><category term='cargo'/><category term='energy'/><category term='sanitation'/><category term='clock'/><category term='deposits'/><category term='bike tool'/><category term='gardening'/><category term='lamp'/><category term='Recycling'/><category term='developing nation'/><category term='7x12'/><category term='polluter-pays'/><category term='maps'/><category term='traffic'/><category term='lcd'/><category term='rambling'/><category term='metal lathe'/><category term='solar'/><category term='reuse'/><category term='transportation'/><title type='text'>Comments on cheaphack: Bjarne Stroustrup is so metal!</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.cheaphack.net/feeds/5997947688881633476/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6181310435977891397/5997947688881633476/comments/default'/><link rel='alternate' type='text/html' href='http://www.cheaphack.net/2009/03/bjarne-stroustrup-is-so-metal.html'/><author><name>Nick Johnson</name><uri>http://www.blogger.com/profile/09742551843387605596</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6181310435977891397.post-6476473083744755710</id><published>2010-07-31T21:02:16.914-04:00</published><updated>2010-07-31T21:02:16.914-04:00</updated><title type='text'>Haskell.</title><content type='html'>Haskell.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6181310435977891397/5997947688881633476/comments/default/6476473083744755710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6181310435977891397/5997947688881633476/comments/default/6476473083744755710'/><link rel='alternate' type='text/html' href='http://www.cheaphack.net/2009/03/bjarne-stroustrup-is-so-metal.html?showComment=1280624536914#c6476473083744755710' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.cheaphack.net/2009/03/bjarne-stroustrup-is-so-metal.html' ref='tag:blogger.com,1999:blog-6181310435977891397.post-5997947688881633476' source='http://www.blogger.com/feeds/6181310435977891397/posts/default/5997947688881633476' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2023201484'/></entry><entry><id>tag:blogger.com,1999:blog-6181310435977891397.post-3744646027292901231</id><published>2009-03-09T22:37:00.000-04:00</published><updated>2009-03-09T22:37:00.000-04:00</updated><title type='text'>Dennis,&lt;br&gt;&lt;br&gt;I definately want to talk about it ...</title><content type='html'>Dennis,&lt;BR/&gt;&lt;BR/&gt;I definately want to talk about it sometime.&lt;BR/&gt;&lt;BR/&gt;The language you describe sounds interesting.  It reminds me of a language described in an academic paper several years back named Z (I'll try to find a link).  Having said that, it of course has some similarities to lisp.&lt;BR/&gt;&lt;BR/&gt;Bjarne had an interesting prediction about lambdas in C++0x: he thinks that in the first year-or-so after their adoption they will be overused.  After that, people will calm down and use them more conservatively.  Having said that, I caution: your MMO codebase doesn't *require* them, since lambdas can be efficiently emulated with function classes (especially those which capture some environment during construction).  Bjarne's lambdas don't deal well with escaped variables---stack variables still disappear upon scope exit, even if you return a lambda that captures them.&lt;BR/&gt;&lt;BR/&gt;Though it is quite different than what I am planning.  I'm looking more towards static type systems, but providing some very high level features that are generally only available with dynamic typing (e.g. safe variadic functions) or in scripting languages (fancy syntax for literals of many classes, including ranges, xml, regexen, etc).  Also, a lot of my work will go into a decent standard library (I'm so unhappy with the standard libraries of C++ and Java)...  I have one focus which is clear: make software development easier without sacrificing performance.  I pull in high level features only after I'm sure they can be efficiently implemented.  Too much to discuss here, we'll talk over email.&lt;BR/&gt;&lt;BR/&gt;Shoot me an email; without telling the spammers (they're always listening), you can google for "nick johnson princeton" and find my email address at my princeton site.&lt;BR/&gt;&lt;BR/&gt;Nick</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6181310435977891397/5997947688881633476/comments/default/3744646027292901231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6181310435977891397/5997947688881633476/comments/default/3744646027292901231'/><link rel='alternate' type='text/html' href='http://www.cheaphack.net/2009/03/bjarne-stroustrup-is-so-metal.html?showComment=1236652620000#c3744646027292901231' title=''/><author><name>Nick Johnson</name><uri>http://www.blogger.com/profile/09742551843387605596</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.cheaphack.net/2009/03/bjarne-stroustrup-is-so-metal.html' ref='tag:blogger.com,1999:blog-6181310435977891397.post-5997947688881633476' source='http://www.blogger.com/feeds/6181310435977891397/posts/default/5997947688881633476' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1975265383'/></entry><entry><id>tag:blogger.com,1999:blog-6181310435977891397.post-4055791273956721181</id><published>2009-03-06T18:50:00.000-05:00</published><updated>2009-03-06T18:50:00.000-05:00</updated><title type='text'>(A bug in the input form sliced my comment, I had ...</title><content type='html'>(A bug in the input form sliced my comment, I had more to say:)&lt;BR/&gt;&lt;BR/&gt;I'd like to have a discussion with you about the language you're designing.  I have some (incomplete) ideas about a language design and I'd like to see if you either want to incorporate them or have some suggestions for my language.  One idea is every block of code in curly braces would implicitly be a block/lambda function, so for instance while (x) { do_something; } is the same as var block = { do_something; };  while (x) block;&lt;BR/&gt;&lt;BR/&gt;Anyhow great post, bravo.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6181310435977891397/5997947688881633476/comments/default/4055791273956721181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6181310435977891397/5997947688881633476/comments/default/4055791273956721181'/><link rel='alternate' type='text/html' href='http://www.cheaphack.net/2009/03/bjarne-stroustrup-is-so-metal.html?showComment=1236383400000#c4055791273956721181' title=''/><author><name>Dennis Ferron</name><uri>http://www.blogger.com/profile/03601234553344631838</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp0.blogger.com/_s7k3i46yEG0/SBWaE8oyuzI/AAAAAAAAAKk/cmVL9L_ZVjw/S220/Me+working+on+engine.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.cheaphack.net/2009/03/bjarne-stroustrup-is-so-metal.html' ref='tag:blogger.com,1999:blog-6181310435977891397.post-5997947688881633476' source='http://www.blogger.com/feeds/6181310435977891397/posts/default/5997947688881633476' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1092048615'/></entry><entry><id>tag:blogger.com,1999:blog-6181310435977891397.post-6135746424239670595</id><published>2009-03-06T18:46:00.000-05:00</published><updated>2009-03-06T18:46:00.000-05:00</updated><title type='text'>You got to meet Bjarne Stroustroup?!  Ah, I so jea...</title><content type='html'>You got to meet Bjarne Stroustroup?!  Ah, I so jealous.  I've watched every video I can find online of him speaking about C++0x.  He's not just a brilliant man, but also a good speaker; one of those people who makes you feel like you just gained 2 IQ points just from grokking what he's got to say.&lt;BR/&gt;&lt;BR/&gt;Oh yeah, C++0x is going to totally rock our socks off.  I have in fact read some of the technical documents, and as far as I can remember you have it right about concepts; I hadn't read about or perhaps failed to grasp axioms until now, so thanks for explaining those.  &lt;BR/&gt;&lt;BR/&gt;My business partner and I are impatiently awaiting the release of C++0x so that we can update our MMO game codebase to use it.  The design of our game engine actually &lt;B&gt;requires&lt;/B&gt; lambda functions to be at all convenient to use.  We&amp;#39;re doing this neat thing whereby most of the functionality of the game is implemented using functors, so for instance game-&amp;gt;draw() doesn&amp;#39;t know about the graphics api, it takes a functor and the functor talks to the graphics api.  When you use this technique all over the place, it&amp;#39;s a pain to create a class for every functor, and much better to be able to declare the code of the functor near the usage of the functor. Right now I&amp;#39;m using a hack that simulated lambdas in ordinary C++, but it&amp;#39;s limited, although I did come up with a really sick way of shoehorning closures onto current C++!  Incidently, it&amp;#39;s the topic of a blog post I&amp;#39;ve had in draft for a while; you might have just spurred me to publish it.&lt;BR/&gt;&lt;BR/&gt;Also funny you should mention duck typing in relation to concepts, because I have an upcoming blog entry about that as well.  My premise is that current C++ templates actually &lt;I&gt;already&lt;/I&gt; implement "static duck typing", which is frankly a downright weird and absolutely fun combination, and I want to talk about some of the implications of that.  I say C++ templates are already duck typed because they don't care about either the types or the signatures of objects and methods that are templated; they only care about whether the &lt;I&gt;names&lt;/I&gt; of the methods are implemented.  The problem is that if you make a mistake, you don't see the error where you made it, but 15 nested classes down inside some library header you've never heard of where the mismatch finally bottoms out.  Concepts will fix that by letting the author of the template catch those at the top level, not the bottom.  You are right, however, in that the way concepts themselves are implemented is duck typed.  I like that; I think in a way the existing de facto duck typed way templates have been used forced them into making concepts work this way for compatibility, so the result is they were forced to implement them the way &lt;B&gt;I&lt;/B&gt; would have wanted them to do it regardless.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6181310435977891397/5997947688881633476/comments/default/6135746424239670595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6181310435977891397/5997947688881633476/comments/default/6135746424239670595'/><link rel='alternate' type='text/html' href='http://www.cheaphack.net/2009/03/bjarne-stroustrup-is-so-metal.html?showComment=1236383160000#c6135746424239670595' title=''/><author><name>Dennis Ferron</name><uri>http://www.blogger.com/profile/03601234553344631838</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://bp0.blogger.com/_s7k3i46yEG0/SBWaE8oyuzI/AAAAAAAAAKk/cmVL9L_ZVjw/S220/Me+working+on+engine.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.cheaphack.net/2009/03/bjarne-stroustrup-is-so-metal.html' ref='tag:blogger.com,1999:blog-6181310435977891397.post-5997947688881633476' source='http://www.blogger.com/feeds/6181310435977891397/posts/default/5997947688881633476' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1092048615'/></entry></feed>
