Dr. Dobb's Blogs http://www.drdobbs.com//author/6826 Dr. Dobb's Copyright 2013, United Business Media. en-us What Do We Need From a System Programming Language? http://www.drdobbs.com/tools/what-do-we-need-from-a-system-programmin/228700087 What features would you expect from a modern system language? Wed, 10 Mar 2010 04:41:27 -0500 Exploiting Multiple Cores in the Heron Interpreter with .NET 4.0 http://www.drdobbs.com/windows/exploiting-multiple-cores-in-the-heron-i/228700455 <div>The&nbsp;<a href="http://www.heron-language.com">Heron interpreter</a> &nbsp;now uses the task parallel library from .NET 4.0 for its concurrent list operations.</div><div><br /></div><div> Sun, 28 Feb 2010 19:00:00 -0500 Bit by the Cache http://www.drdobbs.com/architecture-and-design/bit-by-the-cache/228700848 While profiling the parallel list operators for&nbsp;<a href="http://www.heron-language.com">Heron</a>&nbsp;I kept running into some really unsettling results. Only getting 25-40% increase in speed for even the most trivially parallelizable computations, on my dual-core machine. The most likely culprit: the cache.</p> Thu, 11 Feb 2010 19:00:00 -0500 Distributing Work across Cores using .NET http://www.drdobbs.com/windows/distributing-work-across-cores-using-net/228700711 The easiest way in C# using .NET 3.5 to distribute work across cores is to use the ThreadPool static class. I found however, it wasn&#39;t quite as effective as it could be so I rolled my own.</p> Sun, 07 Feb 2010 19:00:00 -0500 Parallel Map and Reduce in Heron http://www.drdobbs.com/architecture-and-design/parallel-map-and-reduce-in-heron/228701672 I&#39;ve been rather quiet lately, while I continue to labor away on Heron in the background. Rather than freezing the feature set and moving as fast as I can towards an official v1.0 release of Heron, I&#39;ve decided to make it a bit more sexy by parallelizing the reduce and map operators.</p> Tue, 02 Feb 2010 19:00:00 -0500 Tables and Records http://www.drdobbs.com/architecture-and-design/tables-and-records/228700594 Many languages have an associative collection data type built into a language, for example Python has a&nbsp;<a href="http://docs.python.org/tutorial/datastructures.html#dictionaries">dictionary</a>,&nbsp;Lua has&nbsp;<a href="http://lua-users.org/wiki/TablesTutorial">tables</a>&nbsp;and JavaScript has objects. I want something similar in Heron, &nbsp;but I will be putting my own spin on it.</p> Wed, 13 Jan 2010 19:00:00 -0500 Why I am not a fan of F# http://www.drdobbs.com/architecture-and-design/why-i-am-not-a-fan-of-f/228700181 I have to admit that I do like both C# and functional programming a lot, but I am really not a fan of F#, here&#39;s why.</p> Wed, 13 Jan 2010 19:00:00 -0500 Heron version 0.9: Modules without Global Static Data http://www.drdobbs.com/architecture-and-design/heron-version-09-modules-without-global/228701016 I&#39;ve recently posted&nbsp;<a href="http://code.google.com/p/heron-language/">Heron version 0.9</a> . The major new feature with this version is the module system. I am quite happy with the new module system because it makes it possible to write code which offers the convenience of using (what look like) global or static variables but without all of the disadvantages.</p> Tue, 05 Jan 2010 19:00:00 -0500 Writing Code Comments for Effective API Reference Documentation http://www.drdobbs.com/architecture-and-design/writing-code-comments-for-effective-api/228700741 At Autodesk, like many companies, we produce our API reference documentation directly from programmer comments. In this blog I share a draft best practices document that I am hoping we can start using for our developers, when they write code comments.</p> Mon, 04 Jan 2010 19:00:00 -0500 C# 4.0 with a REPL (Read Eval Print Loop) http://www.drdobbs.com/windows/c-40-with-a-repl-read-eval-print-loop/228701740 C# 4.0 will apparently have significantly more powerful dynamic programming language features.&nbsp;</p> Thu, 31 Dec 2009 19:00:00 -0500 Sickness and Stream of Conciousness http://www.drdobbs.com/architecture-and-design/sickness-and-stream-of-conciousness/228701025 I&#39;m feeling under the weather so pardon this rather unstructured blog posting.</p> Mon, 28 Dec 2009 19:00:00 -0500 Proposed Design of the Heron Module System http://www.drdobbs.com/architecture-and-design/proposed-design-of-the-heron-module-syst/228700726 I show here the design of the module system under consideration for Heron.</p> Tue, 22 Dec 2009 19:00:00 -0500 Modules, Dependency Injection, and Newspeak http://www.drdobbs.com/architecture-and-design/modules-dependency-injection-and-newspea/228701368 I&#39;m about to put the finishing touches on the Heron design for its big 1.0 release, by putting in the module system. I left this for last thinking that it would be trivial. Boy was I wrong!</p> Sun, 20 Dec 2009 19:00:00 -0500 Sequences in Clojure and in Heron http://www.drdobbs.com/architecture-and-design/sequences-in-clojure-and-in-heron/228700021 In Heron the fundamental data type is the sequence &quot;Seq&quot;, which is a abstract representation of a collection. In turns out that this idea is very similar to the Clojure approach to sequences.</p> Wed, 16 Dec 2009 19:00:00 -0500 Explicit Structural Typing (Duck Typing) http://www.drdobbs.com/architecture-and-design/explicit-structural-typing-duck-typing/228701413 I have always liked structural typing of interfaces (as found in Go and Scala), but I also like nominative typing of interfaces (as found in C# and Java). I kept switching back and forth between the two approaches when I realized that the middle ground was to provide a more powerful type coercion operator, by overloading the &quot;as&quot; operator.</p> Tue, 15 Dec 2009 19:00:00 -0500 Compile-Time Reflection: Metaprogramming in Heron http://www.drdobbs.com/windows/compile-time-reflection-metaprogramming/228700607 I have just released <a href="http://code.google.com/p/heron-language/downloads/list">version 0.8 of Heron</a> . This is a pretty significant version of Heron for me, because it implements a feature that I have wanted for a long-time: the ability to execute arbitrary code at compile-time and to modify the abstract syntax tree.</p> Thu, 10 Dec 2009 19:00:00 -0500 What is the Definition of Elegant Code? http://www.drdobbs.com/architecture-and-design/what-is-the-definition-of-elegant-code/228701510 I always try to write elegant code, but what does that mean exactly? Up until now, it was always a "I knows it when I sees it" kind of thing, but I believe I have captured the key points that define elegant code for myself.</p> Fri, 04 Dec 2009 19:00:00 -0500 No Typeswitch in C#: Bogus Arguments http://www.drdobbs.com/architecture-and-design/no-typeswitch-in-c-bogus-arguments/228701881 I just read a blog post about why there are no type-switches in C#. This is the second time I read the argument, and it still peeves me off.</p> Thu, 03 Dec 2009 19:00:00 -0500 Non-Nullable References by Default http://www.drdobbs.com/architecture-and-design/non-nullable-references-by-default/228700474 Some languages have non-nullable types. Object references which can't be assigned null. I first heard of it in <a href="http://research.microsoft.com/en-us/projects/specsharp/">Spec#</a> . It recently occurred to me that maybe in Heron this should be the default behavior of reference types.</p> Tue, 01 Dec 2009 19:00:00 -0500 Heron Wiki Online http://www.drdobbs.com/architecture-and-design/heron-wiki-online/228700128 I&#39;ve started using the Google-code wiki for the&nbsp;<a href="http://code.google.com/p/heron-language/wiki/TableOfContents">Heron documentation</a> , and have written several topics over the weekend.</p> Sat, 28 Nov 2009 19:00:00 -0500 Version 0.7 of the Heron Programming Language http://www.drdobbs.com/windows/version-07-of-the-heron-programming-lang/228701553 I&#39;ve just released version 0.7 of the Heron interpreter. &nbsp;</p> Wed, 25 Nov 2009 19:00:00 -0500 Duck Typing and the Go Programming Language http://www.drdobbs.com/architecture-and-design/duck-typing-and-the-go-programming-langu/228701527 I was reading up on the Go programming language, specifically the language design FAQ (<a href="http://golang.org/doc/go_lang_faq.html">http://golang.org/doc/go_lang_faq.html</a>) and it got me thinking again about duck-typing (signature based polymorphism).&nbsp;</p> Mon, 23 Nov 2009 19:00:00 -0500 Subtyping Primitives (or Abuse of the Integer) http://www.drdobbs.com/architecture-and-design/subtyping-primitives-or-abuse-of-the-int/228700391 A common source of bugs in the code bases I am working with lately (3d graphics in C# and C++) are related to the overloading of the notion of an integer.</p> Fri, 20 Nov 2009 19:00:00 -0500 Unit Testing as the Last Resort for Code Verification http://www.drdobbs.com/architecture-and-design/unit-testing-as-the-last-resort-for-code/228700513 I love code which is stable and rigorous, I just don&#39;t feel that unit testing is the most effective way to achieve it.&nbsp;</p> Fri, 06 Nov 2009 19:00:00 -0500 Good Ole Cpp http://www.drdobbs.com/architecture-and-design/good-ole-cpp/228701505 I have spent a lot of time in fancy new languages, using higher-order functions and using generators. Recently I had an opportunity to write some down and dirty number crunching. Multi-million polygon mesh handling baby! This reminded me why I will never ever be able to +</p> -C++.&nbsp;</p> Tue, 03 Nov 2009 19:00:00 -0500