A Vision of Attributes in “The Spirit of Delphi”

[Estimated Reading Time: 8 minutes] A welcome new language feature in Delphi 2010 is the introduction of attributes, as previously found in .NET languages.  However I am slightly disappointed that the language implementation is also very close to that found in C# and other .NET languages and not more in keeping with what I would consider The Spirit Of Delphi.

Weave Some Magic

[Estimated Reading Time: 2 minutes] I don’t think it’s “news” anymore that news of the Delphi (or RAD Studio) formerly known as “Weaver” is starting to appear “on the wires”.  I shall not add to the plethora of links to the links to the articles that link to the videos which you’ve no doubt seen already – you can find your way there on your own without my help.  Suffice for me to give my first impressions.

Cross Platform More Important Than 64-Bit?

[Estimated Reading Time: 2 minutes] Whilst it’s nice to see Delphi in the news again in a context other than the Borland firesale, an interview with Wayne Williams recently posted on The Register is something of a mixed bag when it comes to content.  There is some confidence inspiring news but also disclosure of some rather puzzling priorities.  Specifically: “Williams says cross-platform is now a higher priority than a 64-bit compiler”. The full interview is available here.

The “Big Switch”

[Estimated Reading Time: 4 minutes] Much has been made in the past and again more recently, about the lack of a compiler switch in Delph 2009 to govern the behaviour of the String type. CodeGear have repeatedly said that it was not possible/practical to provide such a switch, but their advice to anyone concerned about a unilateral change from ANSI to Unicode string in their applications itself suggests that a switch was not only possible, but actually very simple to incorporate.  So much so that they could provide it even now without having to change anything already delivered in Delphi 2009 or committed to for Delphi 2010. Let me explain what I mean.

A Timely Poll?

[Estimated Reading Time: < 1 minutes] I’ve been thinking for some time about the direction that the Delphi variant of Pascal is heading, and have had this poll in my back pocket for a couple of weeks.  Just recently the topic has become rather prominent in the NGs, and I myself just logged a language change suggestion. So I thought now might be a good time to “Pop The Question”, hence this weeks poll: How should new language features be introduced to Delphi? You only get to choose one response this week. Choose wisely. 🙂

Proposal for Automated Variables

[Estimated Reading Time: 4 minutes] Or: “Environmentally Friendly Coding – Recycle Your Keywords” Yesterday I logged a Quality Central report proposing the addition of support for “automatic variables” to the Delphi language.  Not only is it an excellent idea (in my humble and utterly objective opinion :)), but there is already a keyword in the language that could be co-opted for this purpose, a keyword that has been at something of a loose-end since it was deprecated (rendered obsolete even) a long, long time ago…

Free Yourself

[Estimated Reading Time: 4 minutes] Barry Kelly recently posted an example of “smart” pointers (specifically the auto-pointer variant of a smart pointer) using generics in Delphi 2009.  It was an interesting use of generics but the end result was something that has – in part at least – been possible for some time in Delphi even without generics – reliable cleanup of objects. This was something that a colleague of mine, Geza Sabo, pointed out, based on some code I’d previously shared with him to robustly manage the hourglass cursor in a GUI application.

Delphi 2009 – StringPerformance Redux

[Estimated Reading Time: 3 minutes] It looks like I may have jumped the gun with my conclusions from the previous exercise to benchmark string performance in Delphi 2009.  Following a useful exchange in the comments with Kryvich I corrected a small discrepancy in the tests and made some changes to the performance testing subsystem within the SmokeTest framework.  I then re-ran my string performance benchmarks with some significant – and more encouraging – differences in the results.