Board index » delphi » Re: Ok .. if ?

Re: Ok .. if ?


2007-08-20 08:46:08 PM
delphi45
Kim Madsen schreef:
Quote
Would you care to elaborate on why you see the VCL as a whole having lower
quality than .Net?
Whole areas of the VCL have not been worked on for years, and lots of
bugs that are there since D5 never get fixed, and probably never will.
Other very important areas like security are totally absent, and whole
chunks of the WinAPI header files have never been translated.
TList and it derivatives are no longer a match for the container
libraries available in C++ and Java and .Net, and the same is also true
for TStream and its descendants (if you need a decent buffered stream
you have to write/borrow/buy one).
I think the VCL has been compared to a trusty, beloved old car before.
You love to drive it, it still serves you mostly well, but it is still an
old car and it is showing its age.
Danny
---
 
 

Re: Ok .. if ?

Hi,
You simply cant compare like that.
C# has some features/syntaxes not easily or readily available in Delphi, and
visa versa.
A couple of examples.
- virtual class methods. That doesnt exist in C#
( see discussion here... www.thescripts.com/forum/thread249910.html
actually I have used those quite a bit in kbmMW and they are truely useful.
They also dont exist in C++).
- obviously Intel 32 assembler.
- before construction/destruction etc. due to different
allocation/deallocation principles.
- interface sections. You can simulate those, but thats not the normal way
to do things in C#. Its a personal preference if one likes interfaces /
header files in C/C++, or not like in C# and Java. I personally like
interfaces due to the fact that it provides a better overlook of the content
of source files without having to resort to class browsers and source
collapsing.
and more.
--
best regards
Kim Madsen
XXXX@XXXXX.COM
www.components4developers.com
www.myc4d.com - Your access to cool code
blogs.myc4d.com - Your access to code tidbits and comments
The best components for the best developers
Application server enabling technology for developers
"Peter Morris" <XXXX@XXXXX.COM>skrev i en meddelelse
Quote
>>Object Pascal is just a subset of C# with a slightly different syntax.
>
>Huh?

They are very similar, except C# does more?


 

Re: Ok .. if ?

Hi Peter,
Quote
>>Object Pascal is just a subset of C# with a slightly different syntax.
>Huh?

They are very similar, except C# does more?
Like being able to be compiled to a native Win32 target as well as .NET?
(or a native Linux target).
And even as a language, there are features that Delphi does which is not
possible in C# and vice versa. So "more" may only be "more" in the eye
of the beholder...
Given the first fact, I would pick Delphi / ObjectPascal any day ;-)
Groetjes,
Bob Swart
--
Bob Swart Training & Consultancy (eBob42.com) Forever Loyal to Delphi
CodeGear Technology Partner -- CodeGear RAD Studio Reseller (BeNeLux)
Blog: www.drbob42.com/blog - RSS: eBob42.com/weblog.xml
 

Re: Ok .. if ?

Quote
Like being able to be compiled to a native Win32 target as well as .NET?
(or a native Linux target).
That's a compiler feature not a language feature.
Quote
And even as a language, there are features that Delphi does which is not
possible in C# and vice versa. So "more" may only be "more" in the eye of
the beholder...
See my other reply to Kim Madsen.
Quote
Given the first fact, I would pick Delphi / ObjectPascal any day ;-)
Surely it would depend on what exactly it was you had to deliver. If you
had to write a compact framework app then it would be a bad choice, if you
wanted to develop 3rd party libraries for the wider .NET community again I
think it would be a bad choice. If you want to develop applications
demonstrating features of Delphi for some training material then obviously
it would be a good choice :-)
 

Re: Ok .. if ?

Hi,
Quote
>- obviously Intel 32 assembler.

That's surely not considered part of the language but rather a feature of
the compiler. The compiler is able to compile two languages within one
source file.
Well.. the asm word is a keyword of the Delphi language on Win32 and Linux
platforms.
Quote



>- before construction/destruction etc. due to different

That's not a language feature surely?
Imo no. Some things are considered 'better' in C# due to the fact that .net
operates as it does with late compiling and linking.
Like the extremely flexible RTTI. Parts of that is simply not possible to
provide in an early compiled/linked language/environment. It is however
anyway considered a language feature for C# and other .net languages.
Quote
>- interface sections. You can simulate those, but thats not the normal
>way to do things in C#. Its a personal preference if one likes interfaces
>/

That's a structural difference rather than a feature. You could just as
easily argue that C# not having an interface/implementation layout is a
feature. Personally I do prefer the Pascal approach with this.
They made a conscious design choise to do as they did. They could have
chosen to provide header/interface type functionality, but they didnt.
Structure is part of a language description. In cases structure has direct
influence on the outcome of a compilation.
--
best regards
Kim Madsen
XXXX@XXXXX.COM
www.components4developers.com
www.myc4d.com - Your access to cool code
blogs.myc4d.com - Your access to code tidbits and comments
The best components for the best developers
Application server enabling technology for developers
 

Re: Ok .. if ?

Hi Peter,
Quote
Surely it would depend on what exactly it was you had to deliver.
IMHO, Delphi is the most flexible all purpose development tool around,
so it is safe to say we agree (for once) that it depends on what it was
you had to deliver. ;-)
Quote
think it would be a bad choice. If you want to develop applications
demonstrating features of Delphi for some training material then obviously
it would be a good choice :-)
I wasn't talking about small sample applications, but real projects...
Groetjes,
Bob Swart
--
Bob Swart Training & Consultancy (eBob42.com) Forever Loyal to Delphi
CodeGear Technology Partner -- CodeGear RAD Studio Reseller (BeNeLux)
Blog: www.drbob42.com/blog - RSS: eBob42.com/weblog.xml
 

Re: Ok .. if ?

Quote
IMHO, Delphi is the most flexible all purpose development tool around, so
it's safe to say we agree (for once) that it depends on what it was you
had to deliver. ;-)
I will always agree with anyone who choses the best tool for the job rather
than a tool they have some kind of blind faith in, no matter which tool that
is.
Quote
I wasn't talking about small sample applications, but real projects...
I wouldn't discount Delphi for real projects, I was just using two examples
that demonstrated your decision changes depending on the requirement.
 

Re: Ok .. if ?

Quote
Well.. the asm word is a keyword of the Delphi language on Win32 and Linux
platforms.
Well, whether it is strictly a feature or not I still wont consider it a
"language" feature but a compiler feature.
Quote
Imo no. Some things are considered 'better' in C# due to the fact that
.net operates as it does with late compiling and linking.
Like the extremely flexible RTTI. Parts of that is simply not possible to
provide in an early compiled/linked language/environment. It is however
anyway considered a language feature for C# and other .net languages.
Not by me it isn't :-) To me language features are things like
foreach, generics, virtual class methods, class constructors, and so on.
Quote
They made a conscious design choise to do as they did. They could have
chosen to provide header/interface type functionality, but they didnt.
Structure is part of a language description. In cases structure has direct
influence on the outcome of a compilation.
interface/implementation has no influence on the outcome of the compilation
that I can think of. I stand by my opinion that it is merely a "different
structure" rather than a "language feature". For example
Delphi
A := 1;
C#
A = 1;
The feature is to assign a value to a variable, but the structure is
different.
 

Re: Ok .. if ?

Hi,
Quote
interface/implementation has no influence on the outcome of the
compilation that I can think of. I stand by my opinion that it is merely
a "different structure" rather than a "language feature". For example

Delphi
A := 1;

C#
A = 1;

The feature is to assign a value to a variable, but the structure is
different.
Well.. the same could be said about just about anything.
Ie.. foreach can easily be done in other languages not supporting foreach..
ofcourse using different syntax.
The combination of all the bits (structure, semantics, syntax) is what
constitute a language.
--
best regards
Kim Madsen
XXXX@XXXXX.COM
www.components4developers.com
www.myc4d.com - Your access to cool code
blogs.myc4d.com - Your access to code tidbits and comments
The best components for the best developers
Application server enabling technology for developers
 

Re: Ok .. if ?

Peter Morris writes:
Quote
They are very similar, except C# does more?
More? Maybe some different stuff, but there is stuff that Delphi does
that C# doesn't do. The most powerful difference in that regard, I
think is class references and sets.
C# has a lot of nice features, but it is not fair to call Delphi a
"subset" of C#.
--
Nick Hodges
Delphi Product Manager - CodeGear
blogs.codegear.com/nickhodges
 

Re: Ok .. if ?

danny heijl writes:
Quote
Whole areas of the VCL have not been worked on for years,
Such as...?0
and lots of
Quote
bugs that are there since D5 never get fixed, and probably never will.
Can you point out some of these bugs that haven't been fixed since D5?
Quote
I think the VCL has been compared to a trusty, beloved old car
before. You love to drive it, it still serves you mostly well, but
it's still an old car and it is showing its age.
I might not dispute that notiong in its entirety, but that is a
different argument than the quality argument you've asserted.
--
Nick Hodges
Delphi Product Manager - CodeGear
blogs.codegear.com/nickhodges
 

Re: Ok .. if ?

danny heijl writes:
Quote
The container classes, the streams classes, the windows api wrappers,
The container classes and streaming classes haven't been touched, I
agree. The reason? They work, and don't need touching. What quality
problems do you have with them? That was your complaint -- about VCL
quality.
Quote
and Unicode.
Not part of the VCL -- so where is the quality problem here.
Are you shifting arguments? Your original point was, and I quote: "The
.Net 2.0 class library is generally of much higher quality than the
Delphi VCL." "Quality" has a certain connotation in software
development.
Quote
Add the fact that you do not support basic stuff like the Crypto API
and XmlDsig and X509 certificates at all.
And this has to do with quality.....?
You can use the Win32 Crypto API in Delphi.
Quote
Since I don't have Delphi 2007 I have to admit that I can't really know,
so I will retract that statement.
Ahh, okay, thanks.
Quote
Besides, having the source of the VCL makes this less important. The
VCL source has probably been one of the key selling points of Delphi
in the past.
Yep, that is a big advantage.
--
Nick Hodges
Delphi Product Manager - CodeGear
blogs.codegear.com/nickhodges
 

Re: Ok .. if ?

Quote
>They are very similar, except C# does more?

More? Maybe some different stuff, but there is stuff that Delphi does
that C# doesn't do. The most powerful difference in that regard, I
think is class references and sets.
I still think that they are very similar, but C# does more. I agree that I
like sets. I do also like class references, the strongest use for this
feature is probably the combination of class references + virtual class
methods, in C# you have to use a factory pattern or something instead.
With C# working in .NET 3 you obviously have the huge difference of being
able to use LINQ, not an insignificant feature to dismiss. Then there are a
few smaller things such as class constructors, using(), lock() (which is the
kind of category class references and sets fit into).
Quote
C# has a lot of nice features, but it is not fair to call Delphi a
"subset" of C#.
I didn't say that :-) I merely reworded it to something I considered to be
more accurate.
 

Re: Ok .. if ?

Quote
Ie.. foreach can easily be done in other languages not supporting
foreach.. ofcourse using different syntax.
I achieve the same goal as using() and lock() in Delphi but it isn't a
standard part of the language. The example I gave was explicit, assigning a
value to a variable is a feature (it does something) of both languages.
Implementation/Interface sections are the structure of a language, they
aren't a feature though because it doesn't have a function.
lock() has a function. You can achieve it in Delphi but you would be using
supporting classes to achieve it rather than a language feature.
Quote
The combination of all the bits (structure, semantics, syntax) is what
constitute a language.
Correct, but I wouldn't say that they all contribute to the "features" of
the language. For me a feature of a language is something that does
something for me. foreach is a feature because it saves me from having to
do something the long way. Same as Generics, this is a feature because it
saves me from having to write the class.
 

Re: Ok .. if ?

Tony Bryer writes:
Quote
Enhancing TPrinter for one (QC33800).
Wow, that is a good one.
Yep, TPrinter definitely hasn't been touched in years. I will put that on
the list for a look.
--
Nick Hodges
Delphi Product Manager - CodeGear
blogs.codegear.com/nickhodges