<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jamie&#039;s Blog &#187; codegear</title>
	<atom:link href="http://jamiei.com/blog/topic/development/codegear/feed/" rel="self" type="application/rss+xml" />
	<link>http://jamiei.com/blog</link>
	<description>Delphi Programming, Web Development, General Technology and, of course, Midget Gems</description>
	<lastBuildDate>Sun, 05 Sep 2010 21:27:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
<cloud domain='jamiei.com' port='80' path='/blog/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>Time to bury this &#8220;Is Delphi Dying&#8221; nonsense</title>
		<link>http://jamiei.com/blog/2009/10/time-to-bury-this-is-delphi-dying-nonsense/</link>
		<comments>http://jamiei.com/blog/2009/10/time-to-bury-this-is-delphi-dying-nonsense/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 12:05:45 +0000</pubDate>
		<dc:creator>jamiei</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Much ado about Nothing]]></category>
		<category><![CDATA[codegear]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[joke]]></category>

		<guid isPermaLink="false">http://jamiei.com/blog/?p=477</guid>
		<description><![CDATA[Every 3-6 months or, more frequently it seems, someone has the urge to post some attention grabbing headline such as &#8220;Is Delphi Dying&#8221; or &#8220;Is Delphi a Dead language?&#8221; (yes, even unintentionally negative headlines hurt). It recently even despicably overflowed onto StackOverflow. Enough is enough, I thought, I am utterly bored with this discussion. So, I decided to do [...]]]></description>
			<content:encoded><![CDATA[<p>Every 3-6 months or, more frequently it seems, someone has the urge to post some attention grabbing headline such as &#8220;<a href="http://www.google.co.uk/search?hl=en&amp;rlz=1C1GGLS_en-GBGB331GB331&amp;q=%22Is+delphi+dying%22&amp;btnG=Search&amp;meta=&amp;aq=f&amp;oq=">Is Delphi Dying</a>&#8221; or &#8220;Is Delphi a Dead language?&#8221; (yes, even <a href="http://wings-of-wind.com/2009/10/18/delphi-is-dying-tm/">unintentionally negative</a> headlines hurt). It recently even <a href="http://stackoverflow.com/questions/1584760/what-to-do-when-delphi-dies">despicably</a> overflowed onto StackOverflow. Enough is enough, I thought, I am <strong>utterly bored</strong> with this discussion.<img class="alignright size-medium wp-image-480" title="Google Suggest" src="http://jamiei.com/blog/wp-content/uploads/2009/10/googlesays-300x167.png" alt="Google Suggest" width="300" height="167" /></p>
<p>So, I decided to do something about it. Some of you might have seen some of the marvellous single purpose websites floating around the internet such as:</p>
<ul>
<li><a href="http://letsturnthisfuckingwebsiteyellow.com/">Lets turn this f***ing website yellow</a></li>
<li><a href="http://www.isapplestoredown.com/">Is the Apple Store Down?</a></li>
<li><a href="http://dowebsitesneedtolookexactlythesameineverybrowser.com/">Do websites need to look the same in every browser?</a></li>
<li><a href="http://www.islostarepeat.com/">Is Lost a repeat?</a></li>
<li>and <a href="http://www.yetanotheruselesswebsite.com/">Yet another useless website.</a></li>
</ul>
<p>All are simple, single purpose websites, which generally do <strong>exactly </strong>what they say on the tin (or in the URL as is the case here) and as we know: The information they give must be true after all: &#8220;<em>I read it on the internet, so it must be true&#8221;</em>. So, late last night I got thinking..</p>
<p>May I proudly introduce to you, the Delphi community&#8217;s new and hopefully favourite single serving sites:</p>
<ul>
<li><a href="http://www.isdelphidead.com">www.</a><a href="http://www.isdelphidead.com">isdelphidead</a><a href="http://www.isdelphidead.com">.com</a></li>
<li><a href="http://www.isdelphidying.com">www.isdelphidying.com</a></li>
</ul>
<p>Next time you see someone on a forum, in the newsgroups or on stackoverflow asking the most dull and tedious of all the questions I could possibly hear: <a href="http://www.isdelphidying.com/">Is Delphi Dying?</a> or <a href="http://www.isdelphidead.com/">Is Delphi Dead?</a>,  point them to one of these sites.</p>
<div id="attachment_482" class="wp-caption alignright" style="width: 310px"><img class="size-medium wp-image-482" title="Is Delphi Dying?" src="http://jamiei.com/blog/wp-content/uploads/2009/10/isit-300x174.png" alt="Is Delphi Dead? Is Delphi Dying?" width="300" height="174" /><p class="wp-caption-text">Is Delphi Dead? Is Delphi Dying?</p></div>
<p>I should point out that the people who like to bring up this particular topic are normally quite persistent. In order to dissuade them from rehashing the same <a href="http://wings-of-wind.com/2009/10/18/delphi-is-dying-tm/#comment-1288">tedious</a> and <a href="http://stackoverflow.com/questions/1584760/what-to-do-when-delphi-dies">dull</a> discussions time and time again I have cunningly built in an API.</p>
<p>People who are concerned that that answer might change without them being informed can build an application based on the API which spits out your choice of <a href="http://www.isdelphidying.com/API/?xml">XML</a> or <a href="http://www.isdelphidying.com/API/?json">JSON</a>. This way, the aforementioned doom mongerers can simply build an application (in <a href="http://www.embarcadero.com/products/delphi">Delphi</a>, of course) that sits in their tray and periodically polls the service and reassures those greatly concerned of the answer.</p>
<p>The API is very simple, you merely need to append</p>
<pre class="brush: delphi;">/API</pre>
<p>to the <a href="http://isdelphidead.com">isdelphidead.com</a> or <a href="http://isdelphidying.com">isdelphidying.com</a> domain of your choice and then request either format by querying for XML (default):</p>
<pre class="brush: delphi;">/API?xml</pre>
<p>or JSON:</p>
<pre class="brush: delphi;">/API?json</pre>
<p>It&#8217;s that simple.  So go now and <strong>spread the word</strong> so that the rest of us can carry on in peace.</p>
<p><strong>[Update 01/11/09]:</strong> Russian Delphi programmer <a href="http://www.isdelphidying.narod.ru/">Valerian Kadyshev</a> has posted <a href="http://jamiei.com/blog/2009/10/time-to-bury-this-is-delphi-dying-nonsense/comment-page-1/#comment-595">below</a> to inform us that he has in fact made a tray monitoring application (in Delphi of course!) so that concerned people can download his pre-made one if they don&#8217;t even want to goto the trouble of making it themselves. You can find version 1 of his &#8220;<a href="http://www.isdelphidying.narod.ru/">Is Delphi Dying Monitor</a>&#8221; over on <a href="http://www.isdelphidying.narod.ru/">his site</a>. Marvellous Work Valerian!</p>
]]></content:encoded>
			<wfw:commentRss>http://jamiei.com/blog/2009/10/time-to-bury-this-is-delphi-dying-nonsense/feed/</wfw:commentRss>
		<slash:comments>44</slash:comments>
		</item>
		<item>
		<title>The Delphi Community: From the Outside</title>
		<link>http://jamiei.com/blog/2009/07/the-delphi-community-from-the-outside/</link>
		<comments>http://jamiei.com/blog/2009/07/the-delphi-community-from-the-outside/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 17:55:13 +0000</pubDate>
		<dc:creator>jamiei</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[codegear]]></category>
		<category><![CDATA[language choices]]></category>

		<guid isPermaLink="false">http://jamiei.com/blog/?p=362</guid>
		<description><![CDATA[Someone on Twitter recently pointed me to LangPop.com &#8211; which claims to gather together data to give you an estimated rating of how popular certain Programming languages are. I know that most people have seen the TIOBE Programming Community index at some point which uses similar data mining methods to LangPop. This is the first [...]]]></description>
			<content:encoded><![CDATA[<p>Someone on Twitter recently pointed me to <a href="http://langpop.com/">LangPop.com</a> &#8211; which claims to gather together data to give you an estimated rating of how popular certain Programming languages are. I know that most people have seen the <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">TIOBE Programming Community index</a> at some point which uses similar data mining methods to LangPop. This is the first chart which uses a similar data method to the TIOBE index which uses a very broad search engine ranking:</p>
<div id="attachment_369" class="wp-caption aligncenter" style="width: 558px"><a href="http://langpop.com/"><img class="size-full wp-image-369 " title="Yahoo Search Results" src="http://jamiei.com/blog/wp-content/uploads/2009/07/yahoo_lang_results.png" alt="LangPop.com - Yahoo Search Results - Searches took the form &quot;language programming&quot;" width="548" height="364" /></a><p class="wp-caption-text">LangPop.com - Yahoo Search Results - Searches took the form &quot;language programming&quot;</p></div>
<p>What is different about <a href="http://langpop.com">LangPop</a>, however, is the other graphs that it presents later on which searches different data sources and tries to present different angles of a particular programming language community. For those who like their summaries like an icicle, cold and to the point: Delphi doesn&#8217;t appear to pull the weight we owe it in certain areas.</p>
<h3>What does this all mean?</h3>
<p><strong>Absolutely Nothing</strong> much but also something.</p>
<h3>Absolutely Nothing Much?</h3>
<p>This is <strong>not a popularity contest</strong>, nor should it be. Critics of the data sampling methods used in on LangPop and the TIOBE index can argue that they are inaccurate, flawed, biased and any number of other ways of describing why the data should not be relied upon. In the end, the business case for the language used in your projects can only be considered <strong>by you</strong> based on a huge number of project specific factors and whilst this chart can hint at an economic condition it can also be argued to be a fairly superficial reason amongst others. These charts didn&#8217;t change the way I saw any one particular language.</p>
<h3>But also something?</h3>
<p>What interested me about this particular page wasn&#8217;t where Delphi was ranked in comparison to other languages but where it ranked in comparison to itself when compared to the other sources of data. By looking at Data sources where Delphi programming has slid a long way down or up when compared with the nominal position that both <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">TIOBE</a> and the initial chart on <a href="http://LangPop.com">LangPop.com</a> (<strong>Roughly 11th</strong>) we can see where the Delphi is <em>lacking</em> in the eyes of an outsider who has no experience with the Delphi community.</p>
<p>This means that we can effectively see in what areas Delphi maintains a low profile (and can be improved). These are the areas where maybe with some improvement we could begin to l<em>ure new programmers</em>, <em>fresh blood</em> and begin to <em>change the perception of Delphi</em>. Lets look at the other data sources presented in these charts:</p>
<p><strong>Craigslist: </strong>Used to search for job availability specifying a certain language. Arguments aside over Craigslist not being representative of the job market. At least it&#8217;s occasionally used to post some <a href="http://sfbay.craigslist.org/sfc/eng/1246353621.html">seriously funny job listings</a>. Delphi produces a disappointing score on this test and slips below Assembly, Shell Scripting and Cobol. There must be better data on the number of Delphi jobs out there so I&#8217;m not too focussed on this.</p>
<p><em><span style="color: #ff0000;">Slips -7 places.</span></em></p>
<p><strong>Amazon:</strong> Used to assess the number of books written about a particular language. Delphi appears to have relatively few books, especially when compared to languages that are both younger and older, languages that jump up the list here include Fortran, Cobol and Ada. As anecdotal backup for this: the number of Delphi books released each year in the past 10 years seems to be in decline.</p>
<p><span style="color: #ff0000;"><em>Slips -7 places.</em></span></p>
<p><strong>Google Code &amp; Freshmeat: </strong>Used to assess the volume of Open Source projects created with a language. Before this I had a mis-guided impression that there was a relatively small number open source projects using Delphi but on Google Code Delphi actually holds it&#8217;s own nicely. I attribute the slip in its form on the Freshmeat comparison because Freshmeat <a href="http://freshmeat.net/about">declares itself</a> to be an index of Unix and cross-platform software (which Delphi isn&#8217;t really cut out for just yet &#8211; but will be).</p>
<p><span style="color: #ff0000;"><em>Equal &amp; Slips -7 places respectively.</em></span></p>
<p><strong>Del.icio.us: </strong>Gives us an indicator of what programmers are bookmarking and therefore indicates a rough measure of how interesting and &#8220;desirable&#8221; a language is. This is where the table of results differed most from the index <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">TIOBE results</a>. Delphi programmers are clearly not adopting social-bookmarking tools because this is we see that the number of Delphi bookmarks is disappointingly low (I&#8217;m doing <a href="http://delicious.com/jamiei">my part</a>, fwiw). You can&#8217;t read too much into this measurement except that it also indicates that not many people outside the Delphi community bookmark &amp; tag delphi links (whereas many up and coming languages are researched by people wanting to learn it).</p>
<p><span style="color: #ff0000;"><em>Slips 10 places.</em></span></p>
<p><strong>Ohloh:</strong> <a href="http://www.ohloh.net/">Olhloh</a> provides information and statistics about various open source projects and the developers that contribute to them. On Ohloh Delphi appears to be underrepresented and it is here that Olhloh actually measures more registered developers contributing to Pascal Projects (such as <a href="http://www.ohloh.net/p/lazarus">Lazarus</a> and <a href="http://www.ohloh.net/p/3311">fpc</a>) than Delphi developers. This doesn&#8217;t necessarily mean that there are more pure Pascal developers than Delphi developers but that there are more Pascal developers contributing to large open source projects.</p>
<p><span style="color: #ff0000;"><em>Slips 7 places.</em></span></p>
<p>There are also other measurements such as the number of times it is mentioned on <a href="http://langpop.com/#reddit">programming.reddit.com</a> and <a href="http://langpop.com/#slashdot">Slashdot</a> where it represents <strong>almost a zero presence</strong> in the selection of languages that they&#8217;ve chosen to sample.</p>
<div id="attachment_387" class="wp-caption aligncenter" style="width: 554px"><a href="http://langpop.com"><img class="size-full wp-image-387 " title="Sample from programming.reddit.com" src="http://jamiei.com/blog/wp-content/uploads/2009/07/reddit.png" alt="LangPop.com - programming.reddit.com Results" width="544" height="362" /></a><p class="wp-caption-text">LangPop.com - programming.reddit.com Results</p></div>
<p>This might be linked to the same reason why it doesn&#8217;t rank highly in the <a href="http://langpop.com/#delicious">del.icio.us index</a> either. Delphi also appears to be under represented in the <a href="http://langpop.com/#irc">FreeNode IRC network chart</a> as well being pitifully under represented in the &#8220;<a href="http://langpop.com/#normalizeddiscussion">Normalized Discussion Site</a>&#8221; results (although it&#8217;s interesting to note that they don&#8217;t mention which discussion sites they monitor). IRC use in general could be considered to have experienced better days but I have spent a lot of time helping in the #delphi room of a  <a href="http://irc.netsplit.de/networks/top100.php">Top 5 IRC network</a> and would always love to see more people sharing and helping others.</p>
<p><em>[<strong>Updated 9th July: </strong>Dave Welton from LangPop.com has since notified me in <a href="http://jamiei.com/blog/2009/07/the-delphi-community-from-the-outside/#comment-447">a comment below</a> that the Normalised Discussion Site results are a combination of the section with  programming.reddit.com and slashdot etc. My fault!]</em></p>
<h3>Should we be concerned?</h3>
<p>No. There are good reasons why some of these measurements do not accurately represent the picture that they claim to portray. It does give us food for thought because this represents how outsiders see the Delphi community and the Delphi Language as a whole. It is interesting though, why do we have an apparent shortage of Delphi Programming books being published? Although some authors are still producing excellent books (such as the <a href="http://www.marcocantu.com/dh2009/">Delphi 2009 HandBook</a> by <a href="http://www.marcocantu.com/">Marco Cantu</a> which you can currently get for free if you buy or <a href="http://www.embarcadero.com/rad2009promo-delphibook/">try Delphi 2009</a>) there does appear to be a very small number published in the last few years. I&#8217;m not sure why this is, I&#8217;ve always thought that there is certainly room for a several books on Delphi 2009, Delphi Prism and I personally would like to see a book solely on recipes for <a href="http://jamiei.com/blog/2009/06/delphi-prism-cirrus-framework/">Delphi Prism Cirrus Aspects</a>.</p>
<p>What of the open source projects? As a commercial tool Delphi isn&#8217;t a terribly good offering for open source projects at present which might explain why it doesn&#8217;t feature that strongly in Open source offerings. I&#8217;ve <a href="http://jamiei.com/blog/2009/02/turbo-delphi-an-open-letter/">long campaigned</a> for a renewed focus on the <a href="http://jamiei.com/blog/2009/02/turbo-delphi-an-open-letter/">Turbo Delphi</a>&#8216;s or Delphi Personal editions for exactly this reason.</p>
<p>I did find it interesting that as a community we seem to be quite bad at making &#8220;noise&#8221; in bookmarking sites, programming news sites and discussion boards leading those outside the community to believe that Delphi Developers are fewer in numbers than they actually are. Some may scorn these as useless activities however I do feel that general publicity, interesting news, projects and cool links do have a huge impact on how outsiders view a language community. I do also feel that the planned releases of Delphi containing Cross platform Delphi and 64 Bit Delphi will pull Delphi back up on these metrics as it begins to be used in new and interesting ways.  I&#8217;m not sure if it&#8217;s just me but I have noticed a renewed vigour in the Delphi community of late.</p>
<h3>What now?</h3>
<p>Personally, I feel that the Delphi Community is beginning the fight back, with more high profile projects, more unusual projects and fresh users are increasingly <a href="http://delphi.wikia.com/wiki/The_Business_Case_For_Delphi">making the case for Delphi</a> (and we&#8217;re also seeing some great evangelism posts from <a href="http://compaspascal.blogspot.com/2009/06/delphi-is-fast-very-fast.html">within the community</a>, not to mention great new initiatives like <a href="http://www.delphi.org">Delphi Podcasts</a>). The kind of community growth that will highlight delphi to an outsider can only be built organically with hard work and we can take small steps to begin on that path. Delphi itself is also in great hands, it seems to me to be going from strength to strength since CodeGear splitting away from a certain troubled parent company that rhymes with <a href="http://www.borland.com">Morland</a>. Think about this: In the last 12 months we&#8217;ve seen significantly revived confidence in the community, A superb .NET offering with <a href="http://www.embarcadero.com/products/delphi_prism/">Delphi Prism</a> and news of a renewed attack force with <a href="http://www.theregister.co.uk/2009/06/12/embarcadero_codegear_tools_future/">Cross Platform Delphi</a> and <a href="http://blog.marcocantu.com/blog/my_take_new_delphi_roadmap.html">64-Bit Delphi applications</a> for extra-strength apps.</p>
<p>What do you think of my reaction to these graphs? What other ways can we, the community, evangelise Delphi and change an unfamiliar programmers perspective of Delphi and the Delphi Community? What makes you excited about a particular language? (in both a professional and a personal setting)</p>
<p>And to pre-empt the inevitable naysayers out there: Delphi is neither dead nor dying.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamiei.com/blog/2009/07/the-delphi-community-from-the-outside/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Turbo Delphi: A Hidden gem in DelphiLive?</title>
		<link>http://jamiei.com/blog/2009/05/turbo-delphi-a-hidden-gem-in-delphilive/</link>
		<comments>http://jamiei.com/blog/2009/05/turbo-delphi-a-hidden-gem-in-delphilive/#comments</comments>
		<pubDate>Thu, 21 May 2009 10:54:30 +0000</pubDate>
		<dc:creator>jamiei</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[apps-i-love]]></category>
		<category><![CDATA[codegear]]></category>
		<category><![CDATA[hobbyist]]></category>
		<category><![CDATA[turbos]]></category>

		<guid isPermaLink="false">http://jamiei.com/blog/?p=314</guid>
		<description><![CDATA[I enjoyed the Twitter live-coverage and exciting revelations of DelphiLive! particularly from JimMcKeeth and marcocantu but also many others. Despite the surprise revelations of Project X etc a particular slide caught my eye amongst the many others: Did you see it? ..ISVs, VARs, Consultants and Hobbyists.. I jumped at the phrase and asked Jim whether [...]]]></description>
			<content:encoded><![CDATA[<p>I enjoyed the Twitter live-coverage and <a href="http://blogs.embarcadero.com/abauer/2009/05/20/38885">exciting revelations</a> of <a href="http://www.delphilive.com/">DelphiLive!</a> particularly from <a href="http://twitter.com/JimMcKeeth">JimMcKeeth</a> and <a href="http://twitter.com/marcocantu">marcocantu</a> but also <a href="http://search.twitter.com/search?q=&amp;ands=%23delphilive&amp;phrase=&amp;ors=&amp;nots=&amp;tag=&amp;lang=all&amp;from=&amp;to=&amp;ref=&amp;near=&amp;within=15&amp;units=mi&amp;since=2009-05-13&amp;until=2009-05-17&amp;rpp=15">many others</a>. Despite the surprise revelations of Project X etc a particular slide caught my eye amongst the many others:</p>
<p style="text-align: center;"><a href="http://twitter.com/JimMcKeeth/status/1797365000"><img class="size-full wp-image-315 aligncenter" title="Delphi Targets" src="http://jamiei.com/blog/wp-content/uploads/2009/05/windowclipping.png" alt="Delphi Targets" width="601" height="292" /></a></p>
<p>Did you see it? ..ISVs, VARs, Consultants and<strong> Hobbyists.</strong>. I jumped at the phrase and asked Jim whether any of the Product Roadmaps he&#8217;d seen at <a href="http://www.delphilive.com">DelphiLive</a> had revealed any plans for a renewed focus on Turbo or Hobbyist editions of Delphi however it seems that they did not specifically mention anything. Luckily Jim had noticed the significance of this <span style="text-decoration: line-through;">typo</span> phrase too and was kind enough to pose my question to the new Delphi Product Manager, <a href="ttp://blogs.embarcadero.com/michaelrozlog/">Michael Rozlog</a>:</p>
<p><a href="http://twitter.com/JimMcKeeth/status/1810532948"><img class="aligncenter size-full wp-image-316" title="Hope" src="http://jamiei.com/blog/wp-content/uploads/2009/05/windowclipping-2.png" alt="Hope" width="607" height="294" /></a></p>
<p>I should make it entirely clear that this should <strong>not be read as a statement of intent</strong> from <a href="http://blogs.embarcadero.com/michaelrozlog/">Michael</a> or <a href="http://www.embarcadero.com">Embarcadero</a> but merely an indication of <a href="http://blogs.embarcadero.com/michaelrozlog/">Michael</a>&#8216;s personal thoughts on Turbo or Personal Delphi editions. This is encouraging news though, as many of you will know I wrote a long <a href="http://jamiei.com/blog/2009/02/turbo-delphi-an-open-letter/">Open letter to Codegear</a> on the subject of the sadly neglected Turbos and received a lot of feedback indicating that many of you felt the same way.</p>
<p><strong>So what now?</strong></p>
<p>Personally I&#8217;m thrilled that there seems to be at least some internal support for a renewed Turbo or Personal Delphi Edition but as usual, the devil is in the detail, How can we get a great home/hobbyist product (as opposed to a crippled and essentially useless product) without costing Codegear precious sales/revenue?</p>
<p>There are several different facets to this problem:</p>
<ul>
<li>What type of audience is the product is actually targetting? (Home users, Small ISVs, commercial vs strictly hobbyists?)</li>
<li>How should product be limited for that audience without damaging it&#8217;s viability or sales of the full product (As Delphi&#8217;s fate is intertwined with that of Codegear &#8211; not something we want).</li>
</ul>
<p>There are three different potential products in my mind:</p>
<ol>
<li>A Purchasable Commercial Product which is essentially a step down from Delphi Professional SKU in both price and features made for smaller software shops and developers that don&#8217;t need the features of the full versions.</li>
<li>A Non-commercially licensed product equivalent to the educational edition (which If I remember correctly is the Professional SKU?) where the price is a token amount to cover the cost of the bandwidth and packaging cost of the product.</li>
<li>A Commercially licensed but absolutely free product which is crippled in its functionality and features even more than the current Turbo Explorer Editions.</li>
</ol>
<p>As you might have guessed from my use of mildly emotive language in the 3rd point above and in my <a href="http://jamiei.com/blog/2009/02/turbo-delphi-an-open-letter/">Open Letter to Codegear</a> regarding the Turbos I consider the 3rd Option to be a non-offering. Sadly, previous statements from the former Delphi Product Manager, Nick Hodges, hinted that this was also the way he felt it might go.</p>
<p>I would be interested to see how the previous editions of Delphi impacted Sales (there must be paperwork, come on?) as I felt that these were always an amazing offering for Hobbyists and Home users wanting to take up the language (I remember finding Delphi 6 Personal on a <a href="http://www.pcw.co.uk">magazine</a> cover disc &#8211; presumably thanks to the always excellent <a href="http://itwriting.co.uk/">Tim Anderson</a>).</p>
<p>I would ideally like to see something in between the 2nd and 3rd options option a reality, I am not qualified to make a factual assertion on this but I don&#8217;t think it would hurt sales if <strong>strictly</strong> limited to non-commercial use in the license. Massive Feature limiting such as removing the ability to use 3rd Party VCL components as the Turbo Editions persued removes some of the most well-known and advantageous reasons for using Delphi in my opinion and is therefore unsuitable for an ambassador product (which these editions would be). I won&#8217;t rehash my argument about why the product needs to be both free and well featured (see my <a href="http://jamiei.com/blog/2009/02/turbo-delphi-an-open-letter/">Turbo Delphi Open Letter</a>) but I will say this:</p>
<blockquote><p>Whether it is fair or not, Microsoft and the Eclipse foundation have forced their hand &#8211; a reasonably useful free IDE for home and hobbyist users wanting to experiment with a language is now a minimum requirement for competitiveness in the programming language market.</p></blockquote>
<p>It is worth noting that the <a href="http://delphi.uservoice.com/pages/4432-general/suggestions/144386-release-an-up-to-date-turbo-delphi">Updated Personal or Turbo delphi</a> is currently only number 8 on the list requests at the <a href="http://delphi.uservoice.com/pages/4432-general">Delphi Uservoice</a> page, we really need people to vote for it and also to discuss their thoughts on the potential product in the comments over there.</p>
<p>Michael suggested that he was looking for feedback, so I&#8217;m looking for feedback. Firstly: What would your Turbo or Personal Product look like and secondly: what would you do if you were the Delphi Product Manager? How do the results of these two views differ? Please think about it and then either put it in the comments below or on the <a href="http://delphi.uservoice.com/pages/4432-general/suggestions/144386-release-an-up-to-date-turbo-delphi">Delphi Uservoice</a> page.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamiei.com/blog/2009/05/turbo-delphi-a-hidden-gem-in-delphilive/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>The Delphi Channel: Coding Delphi for Fun</title>
		<link>http://jamiei.com/blog/2009/02/the-delphi-channel-coding-delphi-for-fun/</link>
		<comments>http://jamiei.com/blog/2009/02/the-delphi-channel-coding-delphi-for-fun/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 13:22:33 +0000</pubDate>
		<dc:creator>jamiei</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Delphi Channel]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[codegear]]></category>
		<category><![CDATA[coding4fun]]></category>
		<category><![CDATA[delphi channel]]></category>

		<guid isPermaLink="false">http://jamiei.com/blog/?p=137</guid>
		<description><![CDATA[I am a great fan of the Microsoft Coding 4 Fun blog and feel that there should be something similar for Delphi Progammers. I am trying to get something similar started as a way of boosting the relevance, appeal and attraction of Delphi to novice, hobbyist or student programmers.  Why?  The aim of it would [...]]]></description>
			<content:encoded><![CDATA[<p>I am a great fan of the Microsoft <a href="http://blogs.msdn.com/coding4fun/">Coding 4 Fun</a> blog and feel that there should be something similar for Delphi Progammers. I am trying to get something similar started as a way of boosting the relevance, appeal and attraction of Delphi to novice, hobbyist or student programmers. </p>
<p><strong>Why? </strong></p>
<p>The aim of it would be to encourage developers to dabble in a series of fun projects and technologies which they might not get the chance to use in their everyday work. It will also have the aim of trying to encourage more novice/student/hobbyist developers to take up Delphi by demonstrating that it can be used for more than Enterprise N-Tier Database Applications. This also ties in nicely with my <a href="http://jamiei.com/blog/2009/02/turbo-delphi-an-open-letter/">Open Letter to CodeGear</a> about the Turbo Delphi family last week (Short update on that article at the end of this one).</p>
<p><strong>What sort of articles would it include?</strong></p>
<p>It will publish articles in 4 very broad categories, but not be strictly limited to those categories, which may intersect each other at various points: </p>
<ol>
<li>Hardware &#8211; Interacting with any kind of hardware gadget. Examples would include interacting with a USB Bluetooth Lock, WiiMotes or controlling your home.</li>
<li>Software &#8211; Interacting with other software. Anything that solely interacts with other software such writing plugins for Windows Live Writer (ok &#8211; I was short of ideas on this one!).</li>
<li>Web Services &#8211; Interacting with plenty of Web 2.0 APIs. Examples such as getting pictures from Flickr, Updating Twitter or Writing a Facebook Application.</li>
<li>Gaming &#8211; Interacting with or Writing Games. Good Example: <a href="http://www.delphi.org/robot-rage/">Revenge of the Robot Rage</a> contest which Jim McKeeth held over on the <a href="http://www.delphi.org">Podcast at Delphi.org</a> (which incidentally I did win <img src='http://jamiei.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ). <em>Please note that this would not aim to replace the many excellent resources on writing games in Delphi</em>.</li>
</ol>
<p>I realise that there is a lot of overlap between those categories but I wanted to demonstrate the types of articles and example projects that I was thinking of. Many of these projects could simply be a simple translation of the C# or VB.NET version on Coding4Fun as even just having the code in Delphi would still add value.</p>
<p>This wouldn&#8217;t simply be an extension of my personal blog, I would ideally like to see articles being contributed by lots of Delphi Developers who may have played with projects like this in the past and wouldn&#8217;t mind putting their experiences into Article form. I have a domain and I have a draft site running but I consider this post a <strong>call for Delphi Developers to suggest, contribute or request articles that they would like to see</strong>.</p>
<p><strong>Why not write all the articles yourself?</strong></p>
<p>Whilst I have a few articles which I am in the process of writing I feel that as a resource it would be much better with Developers contributing on areas of their own interest and expertise. Many more developers than myself would be able to contribute much more adventurous tickerings. </p>
<p><strong>How can I get involved?</strong></p>
<p>It is nothing urgent but please give it some thought: have you had any projects recently which other people might find fun? Have you bought any new gadgets recently that you&#8217;d like to try to tinker with in a Delphi environment? Is there something you would particularly like to see an article written about? </p>
<p>If you have any thoughts then please contact me by email or through twitter (@<a href="http://twitter/jamiei">jamiei</a>).</p>
<p> </p>
<p><strong>Update on my <a href="http://jamiei.com/blog/2009/02/turbo-delphi-an-open-letter/">Open Letter to CodeGear about the Turbo Product Family</a>.</strong></p>
<p>I had a lot of great (and supportive) feedback from my Open Letter to CodeGear last week but I saw the below information in my <a href="http://www.google.com/analytics">Google Analytics</a> statistics for this blog and it made me laugh. It would seem that either the folks at CodeGear HQ (in Scotts Valley) are miraculously fast readers or they read just the title and immediately became bored enough to click away. </p>
<div id="attachment_142" class="wp-caption aligncenter" style="width: 391px"><img class="size-full wp-image-142" title="Did they really consider it?" src="http://jamiei.com/blog/wp-content/uploads/2009/02/reallyconsidered.jpg" alt="Did they really consider it? The great people at CodeGear HQ must be very fast readers! " width="381" height="138" /><p class="wp-caption-text">Did they really consider it? The great people at CodeGear HQ must be very fast readers!</p></div>
<p>Being able to read that quickly is something that I would love to learn to do, if anyone knows their secret, please let me know!</p>
]]></content:encoded>
			<wfw:commentRss>http://jamiei.com/blog/2009/02/the-delphi-channel-coding-delphi-for-fun/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>The Turbo Delphi Product Family: An Open Letter.</title>
		<link>http://jamiei.com/blog/2009/02/turbo-delphi-an-open-letter/</link>
		<comments>http://jamiei.com/blog/2009/02/turbo-delphi-an-open-letter/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 16:20:19 +0000</pubDate>
		<dc:creator>jamiei</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[codegear]]></category>
		<category><![CDATA[embracadero]]></category>
		<category><![CDATA[turbos]]></category>

		<guid isPermaLink="false">http://jamiei.com/blog/?p=127</guid>
		<description><![CDATA[To whom it may concern at Codegear, A Recent posting over at The Doric Temple titled &#8220;how do I make the case for delphi (as a target business development environment)&#8221; has prompted me to wonder why Codegear has slightly neglected the Turbo family which to my knowledge hasn&#8217;t been updated since it&#8217;s initial release on the [...]]]></description>
			<content:encoded><![CDATA[<p>To whom it may concern at Codegear,</p>
<p>A Recent posting over at The Doric Temple titled &#8220;<a href="http://thedorictemple.blogspot.com/2009/02/how-do-i-make-case-for-delphi.html">how do I make the case for delphi (as a target business development environment)</a>&#8221; has prompted me to wonder why Codegear has slightly neglected the <a href="http://www.turboexplorer.com/">Turbo family</a> which to my knowledge hasn&#8217;t been updated since it&#8217;s initial release on the 5th September 2006.</p>
<p>I&#8217;ll be as clear as I can about this from the outset: <strong>I firmly believe that Codegear would benefit greatly from keeping their Turbo line up to date and built as an appealing overall package in order to attract hobbyist or student developers</strong>.</p>
<p> </p>
<p><strong>Why would Codegear give all this away for free or for a token sum?</strong></p>
<p>I strongly suspect that the amount of users who pay for a full version of Delphi purely for Hobbyist or Student development is very slim. Who can honestly afford to pay £600 (<a href="http://store.digitalriver.com/DRHM/servlet/ControllerServlet?Action=DisplayCategoryProductListPage&amp;SiteID=borlande&amp;Locale=en_GB&amp;categoryID=656300"><em>Codegear Online Store</em></a><em> - Delphi Professional 2009 &#8211; New User</em>) for a tool which they don&#8217;t plan on recouping any of the cost of? With most Development in universities being done on Tools which are Free (such as eclipse), how can a University even justify spending on tools such as Delphi anymore? Therefore creating an appealing package for these users is getting your tool into the hands of Developers who wouldn&#8217;t otherwise have it (the current Turbos are arguably not appealing to new users compared to a tool like Visual Studio Express but more on that later). </p>
<p>If Codegear are able to get Delphi into the hands of more developers then this will have an overall &#8220;morale&#8221; boosting effect on the community. Set aside the debate for now over what the knock-on effect to business development managers more potential new employees skilled in Delphi has. Lets look at this purely based on the effect of the increase in the number of Delphi Developers:</p>
<ul>
<li>More Delphi Developers creating online and offline &#8220;noise&#8221;: articles, blog posts and posts on developer forums will have a positive branding and marketing effect for Codegear, something which they vitally need in order to remain relevant.</li>
<li>More Delphi Developers contributing community support, newsgroup posts and articles create a more appealing target development environment for potential business users.</li>
<li>More Delphi Developers create a bigger target market for component developers and will also create more components and code libraries themselves.</li>
</ul>
<p>Codegear could turn Students and Hobbyists, a pitiful target market in turns of revenue potential, into a great contributor of Marketing and Product Support for their tools which will then be reflected in their revenue further up the chain at a relatively small opportunity cost.</p>
<p><strong>There are Turbos available, why can&#8217;t everyone just use those?</strong></p>
<p>Many of you will probably be wondering why the currently available Turbo family are not enough. The current Turbos are several years old and have not kept up with language, compiler and IDE developments made available in the &#8220;full&#8221; versions of Delphi. Now a more stable IDE and shiny new compiler and language features such as UTF-8 and Generics are not a big deal by themselves and certainly many developers won&#8217;t even use these features in every project. But for any prospective student who is beginning Delphi and has been doing their research they&#8217;re likely to find Articles, Community forum postings and Resources which do take advantage of these features, leaving them frustrated. In addition to this I&#8217;ll be frank:  there is an inherent satisfaction factor for any geek in using the latest technology, we&#8217;ve all experienced the desire to try out <em><a href="http://www.apple.com/iphone">the</a></em><a href="http://www.apple.com/iphone"> new phone</a>, a new gadget or the latest and greatest piece of technology. It&#8217;s an inherent part of being a geek, this is something that Microsoft understand and demonstrate with their <a href="http://www.microsoft.com/Express/">Visual Studio Express</a> line.</p>
<p>Additionally the Delphi.NET Turbo has been withdrawn because of the release of Delphi Prism and I&#8217;m hoping that this is a temporary withdrawel and a sign of a Turbo Prism in preparation. I would certainly like to see a Turbo version of Delphi Prism because, in my mind, a .NET offering has the greatest chance of drawing budding new developers away from C# and VB.NET because it allows them to interact with the Framework and concepts that they already know and to utilise the significant existing developer resources available for .NET Developers.  </p>
<p>The Turbo site also no longer seems to list the paid-for version of the Turbos which allowed you to install 3rd Party Components. The VCL and range of 3rd Party VCL components available is what sets Delphi apart as a language, how would you expect to sell someone the benefits of developing in Delphi whilst limiting the product to no 3rd party components? </p>
<p><strong>What exactly would you like to see then?</strong></p>
<p>I would ideally like to see the following from Codegear:</p>
<ul>
<li><strong>Newer versions of the entire Turbo line</strong> - incorporating the fantastic IDE, compiler and language improvements released with RAD Studio 2009. Microsoft keep their <a href="http://www.microsoft.com/Express/">Express editions</a> rigidly up to date with the main Visual Studio lines.  </li>
<li><strong>A Turbo version of Delphi Prism</strong> &#8211; A .NET offering with the power, flexibility and pace of new releases that Delphi Prism has would be a very appealing tool to try to lure existing C# and VB.NET developers into the Delphi community. </li>
<li><strong>A Getting Started documentation bundle</strong> - intended to get new users, students and hobbyists up and running on a couple of fun sample projects immediately, this could possibly be best served through Community authorship. See below. Heck &#8211; I&#8217;d even be prepared to put together a first pass of this myself! </li>
<li><strong>Allow the installation of 3rd Party VCL components</strong> &#8211; Consider what reasons you give when stating the advantages of using Delphi, limiting 3rd Party VCL components limits the appeal of the tool.</li>
<li><strong>Allow the installation of more than one Turbo Product</strong> &#8211; In my mind it certainly makes sense to at least allow the installation of Delphi.NET (/Prism?) and Delphi for Win 32 on the same machine.</li>
<li>If it is necessary to cover costs: <strong>A low cost version of Delphi</strong> that would allow the ability to install more than Turbo product at a time and the ability to install 3rd Party components priced around the £50-£90 mark..</li>
</ul>
<p><strong><span style="font-weight: normal;">The Turbo Versions of Delphi were a very popular move by Codegear and I&#8217;m disappointed that they have let them fall behind but their intentions were in the correct place. I always felt that they could have made more of them if they had bundled more documentation with them. In my opinion they should include a &#8220;Getting Started&#8221; pack with a basic introduction to the language and a few fun tutorial projects to get started. This could even be a converted version of some pages from the Delphi Wiki, this way Codegear wouldn&#8217;t even have to author anything themselves. For the paid for version of the Turbos they could also look at rolling the cost of a PDF only version of one of the many excellent Delphi books currently available. </span></strong></p>
<p><strong><span style="font-weight: normal;">I would also happily see the license changed to non-commercial, educational and open source only development with the Turbo line if it meant that we could get a more powerful, more up to date version of Delphi for free or cheaply. </span></strong></p>
<p><strong>Codegear is a Development Tools Business, they can&#8217;t give away Developer tools.</strong></p>
<p>I know. The Codegear VPs and senior managers will probably have a long term strategic objective of increasing the viabilty of their tools as a development tool and as a development environment as a way of increasing demand for their product. I submit that this is simply another method of trying to acheive that aim. I don&#8217;t know how much the Turbos Line would cost to maintain but this could easily be offset as a form of marketing cost (which it would be), the returns of which could easily be tracked in the same way as other campaigns (# Google Mentions, # Newsgroup posts, New users, University teaching uptake).</p>
<p> </p>
<p>Thank-you for taking the time to read this and consider the fate of the Turbo Family. I would love to hear support, comments or even criticism from anyone who has an opinion on this.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamiei.com/blog/2009/02/turbo-delphi-an-open-letter/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>New Language Features in Delphi Prism</title>
		<link>http://jamiei.com/blog/2009/01/new-language-features-in-delphi-prism/</link>
		<comments>http://jamiei.com/blog/2009/01/new-language-features-in-delphi-prism/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 17:47:11 +0000</pubDate>
		<dc:creator>jamiei</dc:creator>
				<category><![CDATA[.NET General]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Delphi Prism]]></category>
		<category><![CDATA[codegear]]></category>
		<category><![CDATA[delphi prism]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[linq]]></category>

		<guid isPermaLink="false">http://jamiei.com/blog/?p=64</guid>
		<description><![CDATA[Continuing my look at Delphi Prism, in my previous post I took a (very short) look at some of the compatibility changes required to port my Delphi.NET  Twitter Library to Delphi Prism, I mentioned that I now needed to learn about some of the new language features provided by Prism. Ever since the release of [...]]]></description>
			<content:encoded><![CDATA[<p>Continuing my look at <a href="http://www.codegear.com/products/delphi/prism">Delphi Prism</a>, in my previous post I took a (very short) look at some of the compatibility changes required to <a href="http://jamiei.com/blog/2008/12/migrating-a-project-to-delphi-prism-from-delphinet/">port my Delphi.NET</a>  Twitter Library to Delphi Prism, I mentioned that I now needed to learn about some of the new language features provided by Prism.</p>
<p>Ever since the release of Delphi.NET there has been much confusion surrounding why you would choose the Delphi language for .NET Development. When Delphi.NET was released there was concern that it was not a first class member of the .NET framework and always seemed to lag 12-18 months behind the lightning fast pace of development of the .NET Framework. With Prism Delphi offerings for .NET are based upon the <a href="http://www.remobjects.com">RemObjects</a> Oxygene compiler which isn&#8217;t required to maintain a loose language compatibility with the Win 32 Delphi compiler and therefore is able to progress at a much faster pace.  </p>
<p>Still, despite this: A recent <a href="http://stackoverflow.com/questions/242584/will-you-use-delphi-prism">Delphi Prism related thread</a> at <a href="http://stackoverflow.com/questions/tagged/delphi">StackOverflow</a> showed that there still seems to be a general feeling that Delphi is a second class citizen in the .NET Development World. Some even seemed to suggest that the language features in Prism make it unrecognisable as Delphi. To try to dispense with this idea: I thought that I would show off some of <em>my own</em> favourite new language features in Delphi Prism and ones which for me make it a natural fit for .NET.  </p>
<p>Please note: This is <strong>not</strong> intended to be a comprehensive guide to the new language features. For that you&#8217;ll need to refer to the <a href="http://prismwiki.codegear.com/en/Main_Page">Delphi Prism Wiki</a> page on <a href="http://prismwiki.codegear.com/en/Delphi_Prism_Syntax_compared_with_Win32_Delphi">Compatibility with Win 32 Delphi</a>.</p>
<p>My favourite new language features which Prism brings to the table for Delphi Developers is <a href="http://msdn.microsoft.com/en-gb/library/bb308959.aspx">LINQ</a>. <a href="http://www.monien.net/blog/">Olaf Monien</a>, who I also follow on Twitter (<a href="http://twitter.com/omonien">@omonien</a>), posted a beautifully simple<a href="http://www.monien.net/blog/index.php/2008/12/delphi-can-do-linq/"> example of using LINQ with Delphi Prism</a> on his own blog and then showed how Delphi Prism can also do <a href="http://www.monien.net/blog/index.php/2008/12/delphi-can-even-linq-to-sql/">LINQ to SQL</a>. I have replicated his basic example below because it also demonstrates another great language feature.</p>
<pre class="brush: delphi;">// Type Declaration
  MusicAlbum = record
  public
    Name: string;
    Artist: string;
    AlbumYear: integer;
  end;</pre>
<pre class="brush: delphi;">var
  MyAlbum: MusicAlbum;
  MyAlbums : List&lt;MusicAlbum&gt;;
begin
// Create our Album List
MyAlbums := new List&lt;MusicAlbum&gt;; 

// Setup a our records
MyAlbum := new MusicAlbum;
MyAlbum.Artist := 'Kanye West';
MyAlbum.Name := '808s and Heartbreak';
MyAlbum.AlbumYear := 2008;
MyAlbums.Add(MyAlbum);  

// Execute our LINQ Query
var AlbumsLastYear := from Album in MyAlbums where Album.AlbumYear.Equals(2008); 

// Add the result to our listbox
for Album in AlbumsLastYear do
begin
  lbFoundAlbums.Items.Add(Album.Artist + ' - ' + Album.Name + ' (' + Album.AlbumYear + ')');
end;

end;</pre>
<p> <br />
This code clipping also demonstrates <a href="http://prismwiki.codegear.com/en/Type_Inference">Type Inference</a> which allows a variable type to be inferred from the context of it&#8217;s usage. For example, consider writing the following: <strong><em>var</em></strong><em> MyGreatList := </em><span class="hl kwa"><strong><em>new</em></strong></span><em> List&lt;</em><span class="hl kwb"><em>String</em></span><em>&gt;; </em>or even something as simple as <strong><em>var</em></strong><em> s := &#8216;string&#8217;;</em>. Type Inference is a useful addition which I can see myself making extensive use of. My only concern about Type Inference is how it affect&#8217;s the readability of the code as I am used to reviewing the var section of a method for a guide to what types are used within a method.</p>
<p>LINQ can also be used with XML. The below example takes our previous sample and reads the data from an XML file instead: </p>
<pre class="brush: delphi;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;albums&gt;
		&lt;album&gt;
			&lt;artist&gt;Kanye West&lt;/artist&gt;
			&lt;title&gt;808s and Heartbreak&lt;/title&gt;
			&lt;albumyear&gt;2008&lt;/albumyear&gt;
		&lt;/album&gt;
		&lt;album&gt;
			&lt;artist&gt;Kanye West&lt;/artist&gt;
			&lt;title&gt;Graduation&lt;/title&gt;
			&lt;albumyear&gt;2007&lt;/albumyear&gt;
		&lt;/album&gt;
		&lt;album&gt;
			&lt;artist&gt;Nas&lt;/artist&gt;
			&lt;title&gt;Unartistd&lt;/title&gt;
			&lt;albumyear&gt;2008&lt;/albumyear&gt;
		&lt;/album&gt;
		&lt;album&gt;
			&lt;artist&gt;Notorious OST&lt;/artist&gt;
			&lt;title&gt;The Notorious B.I.G.&lt;/title&gt;
			&lt;albumyear&gt;2009&lt;/albumyear&gt;
		&lt;/album&gt;
&lt;/albums&gt;
</pre>
<pre class="brush: delphi;">

var
  AlbumData: XDocument;
begin
  // Load our XML Document with a System.Xml.Linq.XDocument
  AlbumData := XDocument.Load('../../albums.xml');

  // Query for albums in the year 2008
  var AlbumsLastYear := from Album in AlbumData.Descendants('album') where Album.Element('albumyear').Value = '2008' select Album;

  for Album in AlbumsLastYear do
  begin
    var s := String.Format('{0} - {1} ({2})', Album.Element('artist').Value, Album.Element('title').Value , Album.Element('albumyear').Value);
    lbFoundAlbums.Items.Add(s);
  end;
</pre>
<p> </p>
<p>Another new language feature that I like in principle but will completely admit to not fully understanding yet is <a href="http://prismwiki.codegear.com/en/Anonymous_Methods_and_Delegates">Anonymous Methods and Delegates</a> which make executing code with different threads much easier. Sadly in my brief testing of Anonymous methods I discovered that they are only available in projects which link to the .NET Framework 3.0 and above (and, in my case, only WPF projects). In order to execute our ListBox adding code from the first code sample as an Anonymous Delegate you can do the following:</p>
<pre class="brush: delphi;">
// Add the result to our listbox
for Album in AlbumsLastYear do
begin
  Dispatcher.Invoke(DispatcherPriority.ApplicationIdle, method(MyAlbum : MusicAlbum);
      begin
      lbFoundAlbums.Items.Add(MyAlbum.Artist + ' - ' + MyAlbum.Name + ' (' + MyAlbum.AlbumYear + ')');
      end, Album);
end;
</pre>
<p>This means that the compiler declares a delegate with a signature matching our anonymous method and we have now easily executed this code within a seperate thread with a minimum of code.</p>
<p>There are several new language features which I personally have no use for but which facilitate the use of the Microsoft Parallels framework such as <a href="http://prismwiki.codegear.com/en/Futures">Futures</a> and <a href="http://prismwiki.codegear.com/en/Sequences">Parallel sequences</a>. Delphi Prism also supports Generics and as well as most of the standard Delphi Win32 syntax.<br />
 <br />
There are also lots of small additions that aren&#8217;t .NET features per-se but demonstrate the usefulness of freeing the Prism compiler and allowing more rapid progression such as <a href="http://prismwiki.codegear.com/en/Boolean_Double_Comparison">Double Boolean Expressions</a>. I&#8217;m sure we&#8217;ve all written a statement like this before:<strong> if</strong> (cost > 400) <strong>and</strong> (cost < 600) <strong>then</strong>. In Delphi Prism this can also be written as: <strong>if</strong> 400 < cost < 600 <strong>then</strong>. </p>
<p>As I quickly discovered whilst going through the Delphi Prism Wiki: the language changes to Delphi Prism were easier to adapt to and to learn than I had originally imagined. The New language features gained mostly did not affect my coding style too much <strong>so any developers who were concerned that Delphi Prism is nothing like Delphi have nothing</strong> to worry about. Many of the new features are useful for compatibility with the .NET Framework and will be a natural fit for existing Delphi or .NET Developers</p>
]]></content:encoded>
			<wfw:commentRss>http://jamiei.com/blog/2009/01/new-language-features-in-delphi-prism/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Migrating a Project to Delphi Prism from Delphi.NET</title>
		<link>http://jamiei.com/blog/2008/12/migrating-a-project-to-delphi-prism-from-delphinet/</link>
		<comments>http://jamiei.com/blog/2008/12/migrating-a-project-to-delphi-prism-from-delphinet/#comments</comments>
		<pubDate>Sun, 21 Dec 2008 16:25:04 +0000</pubDate>
		<dc:creator>jamiei</dc:creator>
				<category><![CDATA[.NET General]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Delphi Prism]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Windows Development]]></category>
		<category><![CDATA[codegear]]></category>
		<category><![CDATA[delphi prism]]></category>
		<category><![CDATA[project conversion]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://jamiei.com/blog/?p=59</guid>
		<description><![CDATA[As we know, now that the future of Delphi.NET is Delphi Prism (based on the RemObjects Oxygene compiler) we have to migrate our Delphi.NET projects to be compatible with the Prism compiler. The Easiest way to get started is to look at the free Oxidizer tool provided on the RemObjects Wiki. The tool helps with [...]]]></description>
			<content:encoded><![CDATA[<p>As we know, now that the future of Delphi.NET is <a href="http://www.codegear.com/products/delphi/prism">Delphi Prism</a> (based on the <a href="http://www.remobjects.com">RemObjects Oxygene</a> compiler) we have to migrate our Delphi.NET projects to be compatible with the Prism compiler.<a href="http://www.codegear.com/products/delphi/prism"><img class="alignright" title="Codegear Delphi Prism Logo " src="http://www.codegear.com/article/38820/images/38820/prism.png" alt="" width="112" height="75" /></a></p>
<p>The Easiest way to get started is to look at the free <a href="http://prismwiki.codegear.com/en/Oxidizer">Oxidizer tool</a> provided on the <a href="http://prismwiki.codegear.com/en/Main_Page">RemObjects Wiki</a>. The tool helps with the conversion of Delphi Win32 projects to Delphi Prism (but I&#8217;m uncertain about how it performs on Delphi.NET to Delphi Prism). The Wiki is also an excellent place to get started, particularly the pages on <a href="http://prismwiki.codegear.com/en/Win32_Delphi_vs._Delphi_Prism">Delphi Win32 vs Delphi Prism</a> which list the major incompatibilities between the two languages. </p>
<p> </p>
<p>Whilst converting my Delphi.NET Library for accessing Twitter, I encountered a few basic hints and tips which I felt I should share here:</p>
<ul>
<li>You need to specify the <strong>namespace</strong> keyword at the top of your unit file instead of the <strong>unit</strong> keyword. The first time I tried to compile after doing this Prism still complained about not having a namespace keyword present, this was fixed by closing the solution and re-opening.</li>
<li>Delphi Prism automatically makes classes that are not explicitly marked otherwise as <strong>strict private</strong>. This meant that I had to go through my library and mark all classes that I wanted to make public. eg. <em>TMyClass = <strong>public </strong>class(System.Object);</em></li>
<li>The <strong>overload</strong> keyword isn&#8217;t neccesary as overloading is now implicit. This isn&#8217;t a problem at all and isn&#8217;t dificult to fix as it simply meant doing a Search and Replace for the overload keyword and removing it.</li>
<li><strong>TObject </strong>no long exists and instead needs to be replaced with <strong>System.Object</strong> which has much the same properties. </li>
<li>I encountered a few problems with the use of <strong>for .. in</strong> loops. It would seem that Delphi Prism loop variables are local to the loop and therefore should be declared at the beginning of the loop (see the <a href="http://prismwiki.codegear.com/en/For_(keyword)">for</a> wiki page for more info). In reality this meant changing: <strong><em>for </em></strong><em>strItem </em><strong><em>in</em></strong><em> list </em><strong><em>do </em><span style="font-weight: normal;">to<em> </em><strong><em>for </em></strong><em>strItem: string </em></span><em>in</em><span style="font-weight: normal;"><em> list </em><strong><em>do</em></strong> and then removing the </span>strItem: string; <span style="font-weight: normal;">declaration in the method var section.</span></strong></li>
<li>The <strong>TObject.Create([...]);</strong> constructor still exists however it is now <a href="http://prismwiki.codegear.com/en/New_(keyword)">recommended</a> that you switch to the <strong>new Object([..]) </strong>keyword for new projects. This may come as a shock to traditional Delphi&#8217;ers who have been <strong>.Create()</strong>&#8216;ing since the dawn of Borland but this is the construction method that sems to fit in with the .NET framework better. There is also a compatibility flag in the Project properties which allows the compiler to work some magic to allow .Create to continue to function.</li>
</ul>
<p>These are not the only changes that you will probably need to make but I found them to be a good starting point. You should definitely consult the <a href="http://prismwiki.codegear.com/en/Main_Page">Prism Wiki</a> for help in which I was able to find answers very quickly (no wading boots required!).</p>
<p>Lastly: My project could do with a lot of refactoring in order to take advatages of the unique language features of Prism. This will take considerably more time as it means learning the new language features first!</p>
]]></content:encoded>
			<wfw:commentRss>http://jamiei.com/blog/2008/12/migrating-a-project-to-delphi-prism-from-delphinet/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>A New Beginning for Delphi</title>
		<link>http://jamiei.com/blog/2008/11/a-new-beginning-for-delphi/</link>
		<comments>http://jamiei.com/blog/2008/11/a-new-beginning-for-delphi/#comments</comments>
		<pubDate>Sat, 15 Nov 2008 19:46:08 +0000</pubDate>
		<dc:creator>jamiei</dc:creator>
				<category><![CDATA[.NET General]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[codegear]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[delphi prism]]></category>
		<category><![CDATA[marketing]]></category>

		<guid isPermaLink="false">http://jamiei.com/wordpress/?p=40</guid>
		<description><![CDATA[Delphi programming is currently being rejuvenated on so many different levels. I was pleased to see that in the November 2008 TIOBE Index of Programming Languages Delphi shot up to 8th place (only .020% behind c#). I believe that this is partially on the excellent efforts of my good friend Jim McKeeth whose community herding has helped [...]]]></description>
			<content:encoded><![CDATA[<p>Delphi programming is currently being rejuvenated on so many different levels. I was pleased to see that in the <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">November 2008</a> TIOBE Index of Programming Languages Delphi shot up to 8th place (only .020% behind c#). I believe that this is partially on the excellent efforts of my good friend <a href="http://www.delphi.org">Jim McKeeth</a> whose community <a href="http://www.delphi.org/2008/10/delphi-language-of-the-year-2008/">herding</a> has helped out Delphi community to become more visible (&#8220;Delphi Programming&#8221; is simply not a phrase we were used to using!) and partially because of the excellent reviews and community <em>noise</em> that Delphi 2009 is receiving!</p>
<p><a href="http://www.codegear.com/products/delphi/prism">Delphi Prism</a> was announced finally at the Microsoft PDC where we discovered (or some of us) that Delphi Prism is the new Delphi .NET Development solution which drops the slightly crippled compatibility approach that Delphi used to employ and instead fits within the Visual Studio IDE. Delphi Prism now supports all the latest and greatest .NET technologies including WPF, LINQ and Various Language methods. They&#8217;ve achieved this by making use of the extremely cool <a href="http://www.remobjects.com">RemObjects</a> <a href="http://wiki.remobjects.com/wiki/Oxygene">Oxygene</a> Compiler which I would highly recommend that you investigate right away if you&#8217;re interested at all in .NET Development! I will be doing a post soon to discuss some of my favourite new Delphi Prism language features!</p>
<p> </p>
<p>This rejuvenation of Delphi is causing a product marketing effect and is slowly gathering momentum and I fully intend on doing whatever I can to generate enthusiasm for the Delphi Programming Community. This concept of User-led marketing has been widespread for many years as Apple fans will testify. As part of this I have a new project in mind for the Delphi community and will be explaining this in due course. I will certainly require Delphi enthusiasts to help with this venture, if you&#8217;re interested then please contact me.</p>
]]></content:encoded>
			<wfw:commentRss>http://jamiei.com/blog/2008/11/a-new-beginning-for-delphi/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Delphi 2009 is a rising star!</title>
		<link>http://jamiei.com/blog/2008/10/delphi-2009-is-a-rising-star/</link>
		<comments>http://jamiei.com/blog/2008/10/delphi-2009-is-a-rising-star/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 16:17:19 +0000</pubDate>
		<dc:creator>jamiei</dc:creator>
				<category><![CDATA[codegear]]></category>
		<category><![CDATA[Delphi]]></category>

		<guid isPermaLink="false">http://jamiei.com/wordpress/?p=34</guid>
		<description><![CDATA[Many programmers keep a loose eye on the TIOBE Language Index table which gives an indication of the popularity of programming languages based on the results returned using the Google, MSN, Yahoo!, and YouTube search engines. This index is not without its controversy and the index and ratings are calculated on debatable terms however it is what [...]]]></description>
			<content:encoded><![CDATA[<p>Many programmers keep a loose eye on the <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">TIOBE Language Index</a> table which gives an indication of the popularity of programming languages based on the results returned using the Google, MSN, Yahoo!, and YouTube search engines. This index is not without its controversy and the index and ratings are calculated on debatable terms however it is what it is. After Borland began to <span style="text-decoration: line-through;">destroy</span> spin-off delphi and Codegear the ratings dipped to an all time low.</p>
<p>However as the seasons change so did Delphi&#8217;s fortunes. The Delphi programming index has been rising which may or may not be related to the much improved Delphi 2009 release. Whilst we can only draw very haphazard conclusions as to what this means but in my mind it can only be a good thing in so far as it will give Delphi a much needed PR Boost.  </p>
<p> </p>
<p>As a keen examiner of this raise Jim McKeeth of the excellent <a href="http://www.delphi.org">Podcast at Delphi.org</a> has been <a href="http://www.delphi.org/2008/10/delphi-keeps-climbing/">urging</a> the community to ensure that the search terms for which the TIOBE Index is measured on +&#8221;&lt;language&gt; programming&#8221; is reflected in the bulk of delphi sites. This is a very good cause and I would join <a href="http://www.mckeeth.org">Jim</a> in urging all Delphi Programmers to update their blogs and delphi related sites to include the phrase &#8220;Delphi Programming&#8221; where suitable. This is not an attempt to game the system, we&#8217;re merely encouraging people who have a delphi related blog/site to make sure that it is counted as part of the community.</p>
<p> </p>
<p>Jim has also discovered that Delphi has been <a href="http://www.delphi.org/2008/10/delphi-language-of-the-year-2008/">put on a shortlist</a> to be the TIOBE language of the year which would be a great coup for the community. I feel that since <a href="http://www.codegear.com">CodeGear</a> found a new home with <a href="http://www.embarcadero.com">Embarcadero</a> they have really taken on a new lease of life as we&#8217;re seeing: </p>
<ul>
<li>Increased Blog Activity</li>
<li>Increased Roadmap visisbility</li>
<li>Massive changes in <a href="http://blog.marcocantu.com/blog/nick_announces_delphi_prism.html">product strategy</a></li>
<li>Less &#8220;Red Tape&#8221; surrounding what CG staff can talk about</li>
</ul>
<p>I genuinely feel that we can start to make a fight back for Delphi and see if we can get some new life in the community!</p>
]]></content:encoded>
			<wfw:commentRss>http://jamiei.com/blog/2008/10/delphi-2009-is-a-rising-star/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.904 seconds -->
