<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/wordpress-mu-1.2.3-2.2.1" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: The Unicode Shift</title>
	<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041</link>
	<description>The Blog of the Delphi Product Manager</description>
	<pubDate>Fri, 16 May 2008 15:10:06 +0000</pubDate>
	<generator>http://wordpress.org/?v=wordpress-mu-1.2.3-2.2.1</generator>

	<item>
		<title>By: Steven T. Cramer</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19447</link>
		<author>Steven T. Cramer</author>
		<pubDate>Wed, 16 Apr 2008 21:38:01 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19447</guid>
		<description>Nice!  If I could request that while rewriting compiler for 64bit if you could make it a dual pass compiler so we could simplify classes into units of their own vs huge units with tons of .inc files that would be awesome.

Delphi 1 was single pass for speed reasons, and it has just stayed every since.  But now is a good time to fix that.  

Thanks!!!  I look forward to unicode support.</description>
		<content:encoded><![CDATA[<p>Nice!  If I could request that while rewriting compiler for 64bit if you could make it a dual pass compiler so we could simplify classes into units of their own vs huge units with tons of .inc files that would be awesome.</p>
<p>Delphi 1 was single pass for speed reasons, and it has just stayed every since.  But now is a good time to fix that.  </p>
<p>Thanks!!!  I look forward to unicode support.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike P</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19426</link>
		<author>Mike P</author>
		<pubDate>Wed, 09 Apr 2008 15:40:54 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19426</guid>
		<description>thanks Nick!</description>
		<content:encoded><![CDATA[<p>thanks Nick!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nick Hodges</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19425</link>
		<author>Nick Hodges</author>
		<pubDate>Wed, 09 Apr 2008 02:31:03 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19425</guid>
		<description>Mike --

In that case, you'll likely want to explicity declare the type you want for passing into the DLL.  

However, as shown above, your code will compile.  The constant will be fine for use as you are using it.

Nick</description>
		<content:encoded><![CDATA[<p>Mike &#8211;</p>
<p>In that case, you&#8217;ll likely want to explicity declare the type you want for passing into the DLL.  </p>
<p>However, as shown above, your code will compile.  The constant will be fine for use as you are using it.</p>
<p>Nick</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike P</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19424</link>
		<author>Mike P</author>
		<pubDate>Wed, 09 Apr 2008 00:20:31 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19424</guid>
		<description>thank you, Nick, for your response.

contrary to the way i put my example, it's someone else's dll (a VC++ DLL).  (i should've mentioned that.)

thank you!
mp</description>
		<content:encoded><![CDATA[<p>thank you, Nick, for your response.</p>
<p>contrary to the way i put my example, it&#8217;s someone else&#8217;s dll (a VC++ DLL).  (i should&#8217;ve mentioned that.)</p>
<p>thank you!<br />
mp</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nick Hodges</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19423</link>
		<author>Nick Hodges</author>
		<pubDate>Tue, 08 Apr 2008 21:40:26 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19423</guid>
		<description>Mike P --

That code will work just fine -- depending on what your DLL is expecting.  In that particular case, you'd likely have to recompile your DLL.

Nick</description>
		<content:encoded><![CDATA[<p>Mike P &#8211;</p>
<p>That code will work just fine &#8212; depending on what your DLL is expecting.  In that particular case, you&#8217;d likely have to recompile your DLL.</p>
<p>Nick</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charles Vinal</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19422</link>
		<author>Charles Vinal</author>
		<pubDate>Tue, 08 Apr 2008 21:05:52 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19422</guid>
		<description>Nice job Nick - you sure get a tough audience. On a side note, have you seen how REST and Web Oriented Architecture are taking off? Good old web broker is awesome for this stuff and we have created a complete WOA based on it - powering over 100 commercial websites today. Make sure you keep web broker in later versions - heck, you might want to even enhance it a bit. 

Keep up the good work.

Best Regards,

Charlie</description>
		<content:encoded><![CDATA[<p>Nice job Nick - you sure get a tough audience. On a side note, have you seen how REST and Web Oriented Architecture are taking off? Good old web broker is awesome for this stuff and we have created a complete WOA based on it - powering over 100 commercial websites today. Make sure you keep web broker in later versions - heck, you might want to even enhance it a bit. </p>
<p>Keep up the good work.</p>
<p>Best Regards,</p>
<p>Charlie</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike P</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19421</link>
		<author>Mike P</author>
		<pubDate>Tue, 08 Apr 2008 17:50:44 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19421</guid>
		<description>hopefully this isn't double-posted (the e-mail address was old).

what happens with string constants used in a construct like this:

const
  scDLLCallName_ModuleLED='ModuleLED';

function MyModuleLED():integer; stdcall; external 'MyDll.dll' name scDLLCallName_ModuleLED;

do i then need to use typed constants and type it as AnsiString?  or is this code broken in d2008?</description>
		<content:encoded><![CDATA[<p>hopefully this isn&#8217;t double-posted (the e-mail address was old).</p>
<p>what happens with string constants used in a construct like this:</p>
<p>const<br />
  scDLLCallName_ModuleLED=&#8217;ModuleLED&#8217;;</p>
<p>function MyModuleLED():integer; stdcall; external &#8216;MyDll.dll&#8217; name scDLLCallName_ModuleLED;</p>
<p>do i then need to use typed constants and type it as AnsiString?  or is this code broken in d2008?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike P</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19420</link>
		<author>Mike P</author>
		<pubDate>Tue, 08 Apr 2008 17:50:08 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19420</guid>
		<description>what happens with string constants used in a construct like this:

const
  scDLLCallName_ModuleLED='ModuleLED';

function MyModuleLED():integer; stdcall; external 'MyDll.dll' name scDLLCallName_ModuleLED;

do i then need to use typed constants and type it as AnsiString?  or is this code broken in d2008?</description>
		<content:encoded><![CDATA[<p>what happens with string constants used in a construct like this:</p>
<p>const<br />
  scDLLCallName_ModuleLED=&#8217;ModuleLED&#8217;;</p>
<p>function MyModuleLED():integer; stdcall; external &#8216;MyDll.dll&#8217; name scDLLCallName_ModuleLED;</p>
<p>do i then need to use typed constants and type it as AnsiString?  or is this code broken in d2008?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nick Hodges</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19404</link>
		<author>Nick Hodges</author>
		<pubDate>Thu, 03 Apr 2008 00:06:49 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19404</guid>
		<description>TK --

If you are using WideString properties on your components, then you can keep on doing that.  WideString isn't going to change.

But you can explore using UnicodeString as desired/needed.

Nick</description>
		<content:encoded><![CDATA[<p>TK &#8211;</p>
<p>If you are using WideString properties on your components, then you can keep on doing that.  WideString isn&#8217;t going to change.</p>
<p>But you can explore using UnicodeString as desired/needed.</p>
<p>Nick</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pcunite</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19400</link>
		<author>pcunite</author>
		<pubDate>Tue, 01 Apr 2008 15:46:34 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19400</guid>
		<description>I am a user since Delphi 6. I look forward to USC2 (windows Unicode) support. Anyone thinking that they won't need it is only writing software for backyard garages...

To help some people out with Unicode. An ANSI string is already in UTF8 Unicode format. Windows and now Tiburon will use USC2 (also called UTF-16) encoding. It will be easy for the Delphi compiler team to see your ANSI string and make it work correctly.</description>
		<content:encoded><![CDATA[<p>I am a user since Delphi 6. I look forward to USC2 (windows Unicode) support. Anyone thinking that they won&#8217;t need it is only writing software for backyard garages&#8230;</p>
<p>To help some people out with Unicode. An ANSI string is already in UTF8 Unicode format. Windows and now Tiburon will use USC2 (also called UTF-16) encoding. It will be easy for the Delphi compiler team to see your ANSI string and make it work correctly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: S@nne</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19395</link>
		<author>S@nne</author>
		<pubDate>Mon, 31 Mar 2008 21:48:36 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19395</guid>
		<description>Hi Nick, thanks a lot for this great news. Looking very forward for a beta release so we all can start rewriting code. I rather have to rewrite more and have a stable and transparant Delphi release/code than endless backward compability and huge unclear code.

Is there any estimation when a beta relase or final release will be shipped? Or does the roadmap still fits?

Awesome you write a blog and great idea of the component writers to test it. 

1. Unicode
2. Ease of use multi # core processing
3. 64 bit support

Regards</description>
		<content:encoded><![CDATA[<p>Hi Nick, thanks a lot for this great news. Looking very forward for a beta release so we all can start rewriting code. I rather have to rewrite more and have a stable and transparant Delphi release/code than endless backward compability and huge unclear code.</p>
<p>Is there any estimation when a beta relase or final release will be shipped? Or does the roadmap still fits?</p>
<p>Awesome you write a blog and great idea of the component writers to test it. </p>
<p>1. Unicode<br />
2. Ease of use multi # core processing<br />
3. 64 bit support</p>
<p>Regards</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: TK</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19394</link>
		<author>TK</author>
		<pubDate>Mon, 31 Mar 2008 20:20:11 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19394</guid>
		<description>What to do if I use WideString properties in my controls? How to update for Tiburon? Make a new conditional directive and use the old-new "string" in Tiburon only?</description>
		<content:encoded><![CDATA[<p>What to do if I use WideString properties in my controls? How to update for Tiburon? Make a new conditional directive and use the old-new "string" in Tiburon only?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Luigi D. Sandon</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19378</link>
		<author>Luigi D. Sandon</author>
		<pubDate>Fri, 28 Mar 2008 13:50:10 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19378</guid>
		<description>Yes, I wrote "switch" meaning Delphi going Unicode only, not a compiler switch.
I see and understand some of the issues it will bring, especially in some markets, but IMHO Delphi would be doomed if it becomes a rearguard development tool only.
It could be very difficult to attract new developers (and even keeping some of the current ones) saying "we support Windows 95!" but not Unicode fully, or the like.
I mantained some 16bit applications for years (up to the year D5 or D6 was released, IIRC) because of some customers requests, and I did it using D1 - never thought I should have asked Borland that Delphi 5 or 6 should have supported 16bit applications or it would have been the "last Delphi ever".
If RAD 2007 is the last version supporting the older OSes, keep using it if you need to develop for them. Codegear could even ship it with newer releases as they did with Delphi 1.
But if new releases are exactly like the old ones, what future for Codegear??

PS: I read Joel's article about IE8: IMHO he's plainly wrong. Other sectors went under huge standardizations efforts (what's ANSI or ISO for??), it's time IT follows the same path. Why should we be different?
Would people like appliances using each a different voltage and plug to work? Or cars needing custom gasoline and tyres to run? Or each country using a different metric system? EU changed its currency in 2002, can't people update their web pages? 
Sometimes standards needs to be enforced, and kudos to MS if they are going to do it the "right way" even if it would break pages working in previous IE releases.
And I won't complain if Delphi will break bad written applications.</description>
		<content:encoded><![CDATA[<p>Yes, I wrote "switch" meaning Delphi going Unicode only, not a compiler switch.<br />
I see and understand some of the issues it will bring, especially in some markets, but IMHO Delphi would be doomed if it becomes a rearguard development tool only.<br />
It could be very difficult to attract new developers (and even keeping some of the current ones) saying "we support Windows 95!" but not Unicode fully, or the like.<br />
I mantained some 16bit applications for years (up to the year D5 or D6 was released, IIRC) because of some customers requests, and I did it using D1 - never thought I should have asked Borland that Delphi 5 or 6 should have supported 16bit applications or it would have been the "last Delphi ever".<br />
If RAD 2007 is the last version supporting the older OSes, keep using it if you need to develop for them. Codegear could even ship it with newer releases as they did with Delphi 1.<br />
But if new releases are exactly like the old ones, what future for Codegear??</p>
<p>PS: I read Joel&#8217;s article about IE8: IMHO he&#8217;s plainly wrong. Other sectors went under huge standardizations efforts (what&#8217;s ANSI or ISO for??), it&#8217;s time IT follows the same path. Why should we be different?<br />
Would people like appliances using each a different voltage and plug to work? Or cars needing custom gasoline and tyres to run? Or each country using a different metric system? EU changed its currency in 2002, can&#8217;t people update their web pages?<br />
Sometimes standards needs to be enforced, and kudos to MS if they are going to do it the "right way" even if it would break pages working in previous IE releases.<br />
And I won&#8217;t complain if Delphi will break bad written applications.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DelphiUser</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19376</link>
		<author>DelphiUser</author>
		<pubDate>Fri, 28 Mar 2008 09:17:26 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19376</guid>
		<description>Talking of two different things? 

I understood Luigi to mean "Unicode switch" as in "changing to the Unicode world". Not "Switch" as in a compiler unicode on/off switch.

From Bauer's articles it's clearly an either/or thing, not something you add, like wide strings.

I also read Microsoft's UnicoWS.dll/MSLU description (see link in Giel's post.) Microsoft evidently faced the same issue.

I am hopeful that someone smarter than me looks into the UnicoWS dll and suggests some way of integrating it/wrapping it around Delphi Tiburon.</description>
		<content:encoded><![CDATA[<p>Talking of two different things? </p>
<p>I understood Luigi to mean "Unicode switch" as in "changing to the Unicode world". Not "Switch" as in a compiler unicode on/off switch.</p>
<p>From Bauer&#8217;s articles it&#8217;s clearly an either/or thing, not something you add, like wide strings.</p>
<p>I also read Microsoft&#8217;s UnicoWS.dll/MSLU description (see link in Giel&#8217;s post.) Microsoft evidently faced the same issue.</p>
<p>I am hopeful that someone smarter than me looks into the UnicoWS dll and suggests some way of integrating it/wrapping it around Delphi Tiburon.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vitaliy</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19373</link>
		<author>Vitaliy</author>
		<pubDate>Thu, 27 Mar 2008 20:33:25 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19373</guid>
		<description>@Luigi
"I wonder if you read Bauer’s articles about the Unicode switch"

I clearly read all about this. 
And as I see, most commenters agree about importance of such switch. According to other Codegear blog posts we won't see any such switch because of some difficulties they try to explain to us (this is bad side of blogs, instead it'll be better to try to solve this difficult problems rather then write here poems how you can't solve it).
I'll be Cassandra here, but if won't see this switch in next Delphi version it'll be last Delphi version ever.
Another issue is immediate revival of Turbo line as key products to gain new users (as I understand, Nick still strongly believes in students buying Delphi 2007 :-) )</description>
		<content:encoded><![CDATA[<p>@Luigi<br />
"I wonder if you read Bauer’s articles about the Unicode switch"</p>
<p>I clearly read all about this.<br />
And as I see, most commenters agree about importance of such switch. According to other Codegear blog posts we won&#8217;t see any such switch because of some difficulties they try to explain to us (this is bad side of blogs, instead it&#8217;ll be better to try to solve this difficult problems rather then write here poems how you can&#8217;t solve it).<br />
I&#8217;ll be Cassandra here, but if won&#8217;t see this switch in next Delphi version it&#8217;ll be last Delphi version ever.<br />
Another issue is immediate revival of Turbo line as key products to gain new users (as I understand, Nick still strongly believes in students buying Delphi 2007 <img src='http://blogs.codegear.com/nickhodges/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DelphiUser</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19370</link>
		<author>DelphiUser</author>
		<pubDate>Thu, 27 Mar 2008 09:29:03 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19370</guid>
		<description>@C Johnson: "The problem as I see it in supporting people who use OSs that are now coming up on 10 years old is that they probably aren’t spending much money on software or software development."

Not all software is sold as stand-alone solutions. Much of what I do supports other hardware. Supporting older OSs will sell more hardware boxes.

I also provide in-house solutions, small single-purpose utilities. (I venture to say that Delphi's main market IS small-to-mid applications). I bill hours of work. Supporting two code bases is going to be hard to explain to the client, esp. since it wasn't necessary so far.

I was looking forward to the time-saving aspects of generics (C# does them well), but not at this cost.

Giel's tip on UnicoWS.dll is a good one, but at first glance it looks like a Delphi interface will be needed first.

Isn't there an open project that covers this?</description>
		<content:encoded><![CDATA[<p>@C Johnson: "The problem as I see it in supporting people who use OSs that are now coming up on 10 years old is that they probably aren’t spending much money on software or software development."</p>
<p>Not all software is sold as stand-alone solutions. Much of what I do supports other hardware. Supporting older OSs will sell more hardware boxes.</p>
<p>I also provide in-house solutions, small single-purpose utilities. (I venture to say that Delphi&#8217;s main market IS small-to-mid applications). I bill hours of work. Supporting two code bases is going to be hard to explain to the client, esp. since it wasn&#8217;t necessary so far.</p>
<p>I was looking forward to the time-saving aspects of generics (C# does them well), but not at this cost.</p>
<p>Giel&#8217;s tip on UnicoWS.dll is a good one, but at first glance it looks like a Delphi interface will be needed first.</p>
<p>Isn&#8217;t there an open project that covers this?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Giel</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19369</link>
		<author>Giel</author>
		<pubDate>Thu, 27 Mar 2008 09:28:25 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19369</guid>
		<description>@Ron:    :-)</description>
		<content:encoded><![CDATA[<p>@Ron:    <img src='http://blogs.codegear.com/nickhodges/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Luigi D. Sandon</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19368</link>
		<author>Luigi D. Sandon</author>
		<pubDate>Thu, 27 Mar 2008 08:56:59 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19368</guid>
		<description>@Vitaliy: I wonder if you read Bauer's articles about the Unicode switch, especially this: http://blogs.codegear.com/abauer/2008/01/09/38845, read the paragraph "OMG!!  All my code is going to break!  I can’t handle this!!", please.</description>
		<content:encoded><![CDATA[<p>@Vitaliy: I wonder if you read Bauer&#8217;s articles about the Unicode switch, especially this: <a href="http://blogs.codegear.com/abauer/2008/01/09/38845," rel="nofollow">http://blogs.codegear.com/abauer/2008/01/09/38845,</a> read the paragraph "OMG!!  All my code is going to break!  I can’t handle this!!", please.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ron Grove</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19365</link>
		<author>Ron Grove</author>
		<pubDate>Thu, 27 Mar 2008 05:38:51 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19365</guid>
		<description>Glad I don't sell anything to programmers.  Good grief.</description>
		<content:encoded><![CDATA[<p>Glad I don&#8217;t sell anything to programmers.  Good grief.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vitaliy</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19364</link>
		<author>Vitaliy</author>
		<pubDate>Thu, 27 Mar 2008 05:14:01 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19364</guid>
		<description>@Fred - main problem is that you are forced to make them Unicode.
This'll kill many legacy apps written in Delphi.
And all this to "do it right". Joel is fully right here.
MS and Codegear guys went out of their minds. 
reality will stop them, of course.
But for CG it'll be too late and too hard.</description>
		<content:encoded><![CDATA[<p>@Fred - main problem is that you are forced to make them Unicode.<br />
This&#8217;ll kill many legacy apps written in Delphi.<br />
And all this to "do it right". Joel is fully right here.<br />
MS and Codegear guys went out of their minds.<br />
reality will stop them, of course.<br />
But for CG it&#8217;ll be too late and too hard.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fred</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19362</link>
		<author>Fred</author>
		<pubDate>Thu, 27 Mar 2008 04:12:04 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19362</guid>
		<description>you guys have it all wrong.... C++ ???  what's the market here??  people who can understand cryptic programming languages....OR....people who can understand READABLE programming languages??  with all due respect to C++ and the curly braces languages - to get the "masses" programming (mind you...it's STILL after all = A Business)....is something most people will be able to GRASP in alot less time.  good luck learning C++ or the like....or and "easy to read" language. yes..."if then else" is ALOT easier to understand than { } { }....after all - most of us DO speak English!  Pardon moi...I have yet to see a language written in spanish...french...or german....or any foreign language other than assembly. LOL!

anyway...back to topic - nobody's answered MY question!:

So here’s a big question, then: Will D2007 compatible components run fine on D2008 if we do NOT need "unicode enabled components"?? Of if I want to run my apps "as is" without worrying about Unicode or am I forced to make it Unicode??</description>
		<content:encoded><![CDATA[<p>you guys have it all wrong&#8230;. C++ ???  what&#8217;s the market here??  people who can understand cryptic programming languages&#8230;.OR&#8230;.people who can understand READABLE programming languages??  with all due respect to C++ and the curly braces languages - to get the "masses" programming (mind you&#8230;it&#8217;s STILL after all = A Business)&#8230;.is something most people will be able to GRASP in alot less time.  good luck learning C++ or the like&#8230;.or and "easy to read" language. yes&#8230;"if then else" is ALOT easier to understand than { } { }&#8230;.after all - most of us DO speak English!  Pardon moi&#8230;I have yet to see a language written in spanish&#8230;french&#8230;or german&#8230;.or any foreign language other than assembly. LOL!</p>
<p>anyway&#8230;back to topic - nobody&#8217;s answered MY question!:</p>
<p>So here’s a big question, then: Will D2007 compatible components run fine on D2008 if we do NOT need "unicode enabled components"?? Of if I want to run my apps "as is" without worrying about Unicode or am I forced to make it Unicode??</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Luigi Sandon</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19359</link>
		<author>Luigi Sandon</author>
		<pubDate>Wed, 26 Mar 2008 22:32:27 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19359</guid>
		<description>@Sean: define a Java/C# type language, please. Garbage collected? No headers? Single inheritance? What's actually the difference between templates and generics? IMHO a Java/C# type language is one designed around its VM - while C++ is designed to run on several different architectures. Probably what's really missing in C++ are properties.
What market could have a C++ -like language for Win32/64 that is not C++ (and can't use the tons of code available for C++)?
People are learning and using language like Python or Ruby that have very different syntaxes from Java/C#. What't the problem in learning ObjectPascal? Just because it's not fashionable?</description>
		<content:encoded><![CDATA[<p>@Sean: define a Java/C# type language, please. Garbage collected? No headers? Single inheritance? What&#8217;s actually the difference between templates and generics? IMHO a Java/C# type language is one designed around its VM - while C++ is designed to run on several different architectures. Probably what&#8217;s really missing in C++ are properties.<br />
What market could have a C++ -like language for Win32/64 that is not C++ (and can&#8217;t use the tons of code available for C++)?<br />
People are learning and using language like Python or Ruby that have very different syntaxes from Java/C#. What&#8217;t the problem in learning ObjectPascal? Just because it&#8217;s not fashionable?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sean</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19358</link>
		<author>Sean</author>
		<pubDate>Wed, 26 Mar 2008 19:55:31 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19358</guid>
		<description>@Luigi 
c++ is not a C#/Java type language.  While it has some broad similarities in syntax it is fundamentally different in several areas (header files, memory management, generics, namespaces...).</description>
		<content:encoded><![CDATA[<p>@Luigi<br />
c++ is not a C#/Java type language.  While it has some broad similarities in syntax it is fundamentally different in several areas (header files, memory management, generics, namespaces&#8230;).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Howes</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19357</link>
		<author>David Howes</author>
		<pubDate>Wed, 26 Mar 2008 18:47:33 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19357</guid>
		<description>Thanks for the info Nick. Couple of questions? You say that the string type is UTF16 by default, does that mean it can be set to UTF32 to avoid needing to use surrogate pairs? What else is supported, presumably utf8 is for compatibility reasons? Is the new string type reference counted? Is it always multi-byte? for example if a string of 8 bit Ascii chars is assigned to it, will it always still use a 16bit widechar for each char (assuming utf16)?</description>
		<content:encoded><![CDATA[<p>Thanks for the info Nick. Couple of questions? You say that the string type is UTF16 by default, does that mean it can be set to UTF32 to avoid needing to use surrogate pairs? What else is supported, presumably utf8 is for compatibility reasons? Is the new string type reference counted? Is it always multi-byte? for example if a string of 8 bit Ascii chars is assigned to it, will it always still use a 16bit widechar for each char (assuming utf16)?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: C Johnson</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19356</link>
		<author>C Johnson</author>
		<pubDate>Wed, 26 Mar 2008 15:47:15 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19356</guid>
		<description>@Vitality -&#62; Just because there are non unicode APIs doesn't mean they aren't just translating stubs for the unicode API leading to an inherent slowdown.  In fact, NT OSes are layers of translating layers all over the code native API most of us never see or touch (which is why there are win32 &#38; posix APIs for NT) - less of those layers has to be for the better.

Besides, chars on 32 bit processors are inheriently bad.  Anything that gets it closer to 4 byte entities would reduce the hardware latencies involved with data not quad byte aligned.  Strange but true.

@Giel -&#62; The problem as I see it in supporting people who use OSs that are now coming up on 10 years old is that they probably aren't spending much money on software or software development.

You could play the "stability" card, except that W2K and XP are both significantly more stable (even Vista), so I can only see someone staying with Win98 either to support a flawed legacy app they don't want to pay to bring forward, or is too cheap to pay for a few OS licenses.

(ok, maybe they have a machine with legacy hardware they can't or won't update either, but to hold back all the machines in the environment for that sake... again, back to wondering how much money they are actually going to spend on new software)

Either way, I'm not sure there is a ROI case to make it worth wasting much effort chasing that crowd.  

Besides, if you REALLY need to target old platforms, you can always use the tools for those platforms (thinking D3, D5)...</description>
		<content:encoded><![CDATA[<p>@Vitality -&gt; Just because there are non unicode APIs doesn&#8217;t mean they aren&#8217;t just translating stubs for the unicode API leading to an inherent slowdown.  In fact, NT OSes are layers of translating layers all over the code native API most of us never see or touch (which is why there are win32 &amp; posix APIs for NT) - less of those layers has to be for the better.</p>
<p>Besides, chars on 32 bit processors are inheriently bad.  Anything that gets it closer to 4 byte entities would reduce the hardware latencies involved with data not quad byte aligned.  Strange but true.</p>
<p>@Giel -&gt; The problem as I see it in supporting people who use OSs that are now coming up on 10 years old is that they probably aren&#8217;t spending much money on software or software development.</p>
<p>You could play the "stability" card, except that W2K and XP are both significantly more stable (even Vista), so I can only see someone staying with Win98 either to support a flawed legacy app they don&#8217;t want to pay to bring forward, or is too cheap to pay for a few OS licenses.</p>
<p>(ok, maybe they have a machine with legacy hardware they can&#8217;t or won&#8217;t update either, but to hold back all the machines in the environment for that sake&#8230; again, back to wondering how much money they are actually going to spend on new software)</p>
<p>Either way, I&#8217;m not sure there is a ROI case to make it worth wasting much effort chasing that crowd.  </p>
<p>Besides, if you REALLY need to target old platforms, you can always use the tools for those platforms (thinking D3, D5)&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DelphiUser</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19355</link>
		<author>DelphiUser</author>
		<pubDate>Wed, 26 Mar 2008 15:10:44 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19355</guid>
		<description>That looks interesting. Will look into it.</description>
		<content:encoded><![CDATA[<p>That looks interesting. Will look into it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Giel</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19353</link>
		<author>Giel</author>
		<pubDate>Wed, 26 Mar 2008 11:31:52 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19353</guid>
		<description>I don't see major problems with moving code to Unicode. The only drawback for me is that the code would no longer run on win95/98/me. In theory this could be solved using MSLU (http://www.microsoft.com.nsatc.net/globaldev/handson/dev/mslu_announce.mspx).

MSLU consists of the Unicows.dll which contains Unicode wrappers around many Ansi windows routines. With VC++ you have to compile your app with Unicows.lib included. This takes care of linking unicode routines to the Unicows.dll instead of user32.dll etc. Haven;t looked at this file, but I think this would require some work by CodeGear to get this to work with Delphi (but maybe anyone in the know can do it).</description>
		<content:encoded><![CDATA[<p>I don&#8217;t see major problems with moving code to Unicode. The only drawback for me is that the code would no longer run on win95/98/me. In theory this could be solved using MSLU (http://www.microsoft.com.nsatc.net/globaldev/handson/dev/mslu_announce.mspx).</p>
<p>MSLU consists of the Unicows.dll which contains Unicode wrappers around many Ansi windows routines. With VC++ you have to compile your app with Unicows.lib included. This takes care of linking unicode routines to the Unicows.dll instead of user32.dll etc. Haven;t looked at this file, but I think this would require some work by CodeGear to get this to work with Delphi (but maybe anyone in the know can do it).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Luigi D. Sandon</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19352</link>
		<author>Luigi D. Sandon</author>
		<pubDate>Wed, 26 Mar 2008 09:42:23 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19352</guid>
		<description>@Vitaly: I disagree with you too :) About the Windows API (from MSDN): "New Windows applications should use Unicode to avoid the inconsistencies of varied code pages and for ease of localization." "Some newer functions support only Unicode versions." 
Some unicode controls are available, but you are forced to use only them, and can't take advantage of other, more advanced ones (DevExpress, for example). And without a full Unicode RTL, you cannot be sure your string isn't passed to a function that will trash it. Translating the interface is not enough, you may need an interface in one language being able to display data in another outside its ANSI character set - easily.
Compatibility is important, but can't hinder any improvement. Unicode *is* the future (and most of the present, already). Or improvements should be just new UI controls? .
I am awaiting 64bit eagerly too, but do you think "compatibility" won't be an issue too?

@Brian A: there is already a C#/Java type language for Win32. It's called C++ . Both Java and its clone C# are based upon it, and use the same syntax, more or less. Any reason to create another one?</description>
		<content:encoded><![CDATA[<p>@Vitaly: I disagree with you too <img src='http://blogs.codegear.com/nickhodges/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> About the Windows API (from MSDN): "New Windows applications should use Unicode to avoid the inconsistencies of varied code pages and for ease of localization." "Some newer functions support only Unicode versions."<br />
Some unicode controls are available, but you are forced to use only them, and can&#8217;t take advantage of other, more advanced ones (DevExpress, for example). And without a full Unicode RTL, you cannot be sure your string isn&#8217;t passed to a function that will trash it. Translating the interface is not enough, you may need an interface in one language being able to display data in another outside its ANSI character set - easily.<br />
Compatibility is important, but can&#8217;t hinder any improvement. Unicode *is* the future (and most of the present, already). Or improvements should be just new UI controls? .<br />
I am awaiting 64bit eagerly too, but do you think "compatibility" won&#8217;t be an issue too?</p>
<p>@Brian A: there is already a C#/Java type language for Win32. It&#8217;s called C++ . Both Java and its clone C# are based upon it, and use the same syntax, more or less. Any reason to create another one?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian A</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19351</link>
		<author>Brian A</author>
		<pubDate>Wed, 26 Mar 2008 05:26:25 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19351</guid>
		<description>Thanks Nick for the update - that is great news! Unlike others here, Unicode support is by far the #1 priority feature request for Delphi (after all, 64 bit adoption rates are pretty meager, at least until Microsoft releases a 64-bit only OS like they should have done with Vista).

BTW, priority #2 for us would be reliability and stability in the IDE (CodeInsight, etc)! 

Last point - anyone at Codebase ever kick around a C#/Java type language Win32 product?  (modern syntax, best of breed Win32 support).   The Pascal language is by far the #1 thing that prevents widespread Delphi adoption amongst _new_ users.  New, young developers cringe at writing Pascal versus C# or Java code.  But those developers also cringe every time they compare their memory/cpu hogging .NET/JRE application to a native Win32 competitor.</description>
		<content:encoded><![CDATA[<p>Thanks Nick for the update - that is great news! Unlike others here, Unicode support is by far the #1 priority feature request for Delphi (after all, 64 bit adoption rates are pretty meager, at least until Microsoft releases a 64-bit only OS like they should have done with Vista).</p>
<p>BTW, priority #2 for us would be reliability and stability in the IDE (CodeInsight, etc)! </p>
<p>Last point - anyone at Codebase ever kick around a C#/Java type language Win32 product?  (modern syntax, best of breed Win32 support).   The Pascal language is by far the #1 thing that prevents widespread Delphi adoption amongst _new_ users.  New, young developers cringe at writing Pascal versus C# or Java code.  But those developers also cringe every time they compare their memory/cpu hogging .NET/JRE application to a native Win32 competitor.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DanB</title>
		<link>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19350</link>
		<author>DanB</author>
		<pubDate>Wed, 26 Mar 2008 03:27:05 +0000</pubDate>
		<guid>http://blogs.codegear.com/nickhodges/2008/03/24/39041#comment-19350</guid>
		<description>Nick, I'm glad to hear the 3rd party vendors are being involved.  I'm really keeping my fingers crossed that this transition goes as smoothly as you anticipate (though I still think it will cause great pain for many developers out there).

For those worried about paying again for 3rd party components:  I'll happily pay for unicode component upgrades.  It's the components that are no longer supported that I worry about.  So open those wallets; it's good to support the delphi ecosystem and besides, software really is just about the cheapest industry you could be in.  For the cost of a computer and all the software you need to be a profitable company, you couldn't even get started in most other industrys or even open a coffee shop for that matter.</description>
		<content:encoded><![CDATA[<p>Nick, I&#8217;m glad to hear the 3rd party vendors are being involved.  I&#8217;m really keeping my fingers crossed that this transition goes as smoothly as you anticipate (though I still think it will cause great pain for many developers out there).</p>
<p>For those worried about paying again for 3rd party components:  I&#8217;ll happily pay for unicode component upgrades.  It&#8217;s the components that are no longer supported that I worry about.  So open those wallets; it&#8217;s good to support the delphi ecosystem and besides, software really is just about the cheapest industry you could be in.  For the cost of a computer and all the software you need to be a profitable company, you couldn&#8217;t even get started in most other industrys or even open a coffee shop for that matter.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
