PDA

View Full Version : Delphi 2009 ISO Available (Direct Link)



cronodragon
15-09-2008, 04:43 PM
Why did nobody mention it?!?! :shock:

http://www.delphi.org/2008/09/delphi-2009-iso-available/

downloading...

arthurprs
15-09-2008, 04:55 PM
downloading...

savage
15-09-2008, 05:15 PM
These are trial versions I gather?

Brainer
15-09-2008, 05:39 PM
Yip, they are.
BTW, is the full version out yet?

JSoftware
15-09-2008, 09:00 PM
I've used it for a few days. It's pretty stable snappy, and I like the generics. Haven't made anonymous procedures work yet

arthurprs
16-09-2008, 12:10 AM
I've used it for a few days. It's pretty stable snappy, and I like the generics. Haven't made anonymous procedures work yet

any troubles with unicode?

JSoftware
16-09-2008, 05:31 AM
I've used it for a few days. It's pretty stable snappy, and I like the generics. Haven't made anonymous procedures work yet

any troubles with unicode?
I don't know. My local charset is fine with ascii :)
From the looks of it alot of new string and char types has been introduced to make charset handling easier and more transparent.

It also looks like the default "charset" is unicode now. Atleast I get alot of notes saying I should handle WideChar properly in some old string handling code

masonwheeler
16-09-2008, 01:32 PM
The Unicode is a big problem with old code, because they changed the default string and char types to Unicode versions, which means any old code that assumes that sizeof(char) = 1 is now broken. This is not a setting that can be changed; there's no "compatibility mode" because the changes run too deep; the entire VCL and RTL are redone in Unicode.

Backwards compatibility is completely broken and everything with char-size handling in it has to be redone now. You essentially have to port all your code to its own language. (And doing that will either break your code on older versions of Delphi or require IFDEFs all over the place.) That means, among other things, that I can't upgrade my work to D2009 and enjoy the generics until RemObjects creates a Unicode-safe version of PascalScript. :evil:

I understand intellectually that they had to do it this way... but I don't like it.

On the other hand, CodeInsight runs a lot faster than it did in previous versions, which was always the source of a great deal of aggravation to me. (By the time the stupid thing's done blocking input and spinning my hard drive trying to build its memory tables or whatever it is it's doing for a good thirty seconds, I could have finished the line without its help and written the next two!) I haven't tested it exhaustively, but from what I've seen, that seems to be a thing of the past. And it also starts up (marginally) faster than D2007. So there's some progress being made. Now if only the Unicode thing wasn't such a beast...

arthurprs
16-09-2008, 03:51 PM
why they don't created compiler option for the new strings?... :(

DarkBow
16-09-2008, 04:48 PM
The Unicode is a big problem with old code, because they changed the default string and char types to Unicode versions, which means any old code that assumes that sizeof(char) = 1 is now broken. This is not a setting that can be changed; there's no "compatibility mode" because the changes run too deep; the entire VCL and RTL are redone in Unicode.


Yep, any String is now an Unicode string, and as you write sizeof(char) = 1 is false now. Strings in Delphi 2009 are UTF-16 based, since that is the native Windows Unicode encoding.

The old WideString remains as a COM type.

Anyway...



Backwards compatibility is completely broken and everything with char-size handling in it has to be redone now.

as far as I know (can't test because I don't have D2009) that's not entirely true. While you may need to change your code, some have suggested to try and simply change any String that you need to behave as before to AnsiString type.

Some information and references

http://delphi.wikia.com/wiki/Tibur%C3%B3n

These are 3 articles by Nick Hodges, CodeGear's Delphi Product Manager on "unicodifying" your code. I haven't read them yet, but they seem to cover a fair bit of cases. :)

http://dn.codegear.com/article/38437 - Part I
http://dn.codegear.com/article/38498 - Part II
http://dn.codegear.com/article/38693 - Part III

Hope this helps.

pstudio
16-09-2008, 05:47 PM
Not that it really matters, but will D09 allow you to use letters like '?Ü', '?ò' and '?Ö' in your class, methods and vars names then? Or is it only string and character data that are unicode?

masonwheeler
16-09-2008, 05:53 PM
why they don't created compiler option for the new strings?... :(
Because they couldn't do that without including two copies of the RTL and VCL, one Unicode-based and the other ANSI-string-based. String manipulation is used all over the place, even in the System unit that provides the most basic functionality and is included as a "hidden" USES include in every unit in your project.




Backwards compatibility is completely broken and everything with char-size handling in it has to be redone now.

as far as I know (can't test because I don't have D2009) that's not entirely true. While you may need to change your code, some have suggested to try and simply change any String that you need to behave as before to AnsiString type.

I wrote that based on my experience with trying to get my game engine up and running in D2009. The compiler choked when it hit PascalScript. (For those that don't know, PascalScript (http://www.remobjects.com/?ps) is a system that allows your program to run scripts written in Object Pascal, making customization and scripting very simple.) It uses chars and strings all over the place. I tried redefining all strings as AnsiStrings, which solved some of the problems, but there are places where it calls RTL string-related functions, all of which are defined in Unicode. That was about where things started to get more complicated than I could understand without an in-depth study of the inner workings of PascalScript, so I wrote up a report of what was going on, sent it to Carlo Kok (the guy who wrote PS and maintains it,) and basically dumped the problem in his lap.

Other non-trivial projects are going to have similar problems. The Object Pascal pngimage library is now broken because it uses chars and Pchars for single-byte manipulations. (There's a new PByte type to replace the old PChars, but some of the things Pngimage uses PChars for won't work with PBytes, and you have to go through and correct those ones individually or it won't compile.) D2009 supposedly has PNG support built in somewhere, but I couldn't find it.

In short, the Unicode thing is a backwards-compatibility nightmare. But aside from that, D2009 looks like a wonderful system, and it'll be great for creating brand new projects on. It just can't handle your old ones until you've ported them to Unicode.

JSoftware
16-09-2008, 06:19 PM
Not that it really matters, but will D09 allow you to use letters like '?Ü', '?ò' and '?Ö' in your class, methods and vars names then? Or is it only string and character data that are unicode?

The following compiles and works:

procedure ?¶???•?§?™;
begin
writeln('wat');
end;

begin
?¶???•?§?™;
end.

masonwheeler
16-09-2008, 08:45 PM
Nice! So basically, we've now got a "black list" of characters that you can't use in names (such as spaces and a few symbols that mean something in Pascal) and not a "white list" of characters that you can use?

NecroDOME
17-09-2008, 09:58 AM
o boy, gonna download straight away when I get home today :)

KidPaddle
19-09-2008, 06:48 AM
procedure ?¶???•?§?™;


This must be a nightmare. I see all the script kiddies writing code with function names like that, it must be a nightmare. Needing more time for writing the name as implementing function logic. Yea, this will be the future.

It is often very hard to read code with Russian characters, but this will top it.

Regards
Thomas[/code]

cronodragon
19-09-2008, 06:55 PM
Nice way to obfuscate code :D ...and there might be invisible or almost-invisible characters to use, like:

procedure ¬?;

¬?;

czar
19-09-2008, 09:17 PM
seems totally pointless to me to use those weird looking chars.

Use those weird characters and in a week you won't know what is what yourself. Super.

I am now considering purchasing Delphi 2009 - mainly because PNG is part of the system, and I continually have issues with png at the moment. e.g., I can add pngs at design time, restart Delphi and the pngs are missing.

pstudio
19-09-2008, 10:11 PM
procedure ?¶???•?§?™;


This must be a nightmare. I see all the script kiddies writing code with function names like that, it must be a nightmare. Needing more time for writing the name as implementing function logic. Yea, this will be the future.

It is often very hard to read code with Russian characters, but this will top it.

Regards
Thomas[/code]

I can't see the problem in using those characters. For instance the first 3 characters are a part of the Danish alphabet. Normally I'm just using English in my code (not only because I didn't have a choice before) but for some projects it may be relevant to use local characters.

KidPaddle
19-09-2008, 11:11 PM
I'm sorry, in Germany we have non standard characters too, but i never use them. I have no idea, how i can write on my keyboard those characters.

Writing code for your own, without sharing code to other, maybe it is ok, but what will non danish people doing with this names? Do a nice game, what it means?


Thomas

pstudio
20-09-2008, 01:15 AM
As I wrote before I use English myself when I'm coding, but for some special projects it may be appropriate to name your methods etc. in your local language (Speaking about non native English speaking people).

For instance if you're teaching teens about programming, it may help to use your own language in stead of English when showing them some code.

But if you're writing some code which should be public available then stick to English. I'm just saying that it have it's purposes.

marmin
24-09-2008, 08:36 AM
$4300- no cross platform- it's just no option for me. (i use Lazarus anytime :D)

masonwheeler
25-09-2008, 07:31 PM
Unfortunately, for a lot of things, Lazarus just isn't an option yet. I'd absolutely love to convert my work over to Lazarus, but until they get both Frames and Packages both working, it's just not gonna happen. (And a debugger that doesn't utterly SUCK would be nice too.)

masonwheeler
25-09-2008, 07:31 PM
Unfortunately, for a lot of things, Lazarus just isn't an option yet. I'd absolutely love to convert my work over to Lazarus, but until they get both Frames and Packages both working, it's just not gonna happen. (And a debugger that doesn't utterly SUCK would be nice too.)

marcov
29-10-2008, 09:53 AM
Unfortunately, for a lot of things, Lazarus just isn't an option yet. I'd absolutely love to convert my work over to Lazarus, but until they get both Frames and Packages both working, it's just not gonna happen. (And a debugger that doesn't utterly SUCK would be nice too.)

Frames are in the process. I don't use plugin architectures in my programs currently, so packages are a "weird category" feature for me.

Frames are pretty important to me though

masonwheeler
31-10-2008, 04:44 AM
I don't use plugin architectures in my programs currently, so packages are a "weird category" feature for me.
That's the problem. I do. Extensively.