Re: New Delphi roadmap is coming: NO UNICODE PLEASE!



Jolyon Smith wrote:

i.e. do you see concrete _dis_advantages of choosing .NET for the
desktop, or merely not perceive any real _ad_vantage?

Here's some.
1) If your application generates lots of small objects, the GC becomes
inefficient. Also the desktop GC is single threaded, even if your
computer is multicore. (IIRC, the current Delphi memory manager tries
to handle multithreaded applications fairly efficiently.) Also, the
..net memory manager likes to allocate twice the memory currently in
use, iirc. This can be bad if you're using large amounts of data. (So,
on a machine with 4 GB of memory, a 64 bit .net application could run
out of memory before a 32 bit native code application.) This really
depends on what's being allocated, and when, of course.

2) Distribution problems:
2a) You can't run a desktop binary off a network drive without
tweaking the local computer's security settings.
2b) While ClickOnce is a really cool and easy way to distribute
applications, it's horribly broken. Applications require a certificate
to be deployed, and once your certificate expires, the users have to
uninstall/reinstall the application. (The people who designed ClickOnce
didn't understand how renewing certificates work, so that's not an
option.) The only work around is a utility from MS to edit test
certificates to set their expiration dates way in the future. They're
not expecting a fix until next year at the earliest, last I heard.

3) It's bad for plug-ins: MS strongly discourages writing plug-ins
using managed code. The reason is that if you have two different
plug-ins written in different versions of the framework, the first one
loaded wins. So, if you load a .net 1.1 plug-in before a .net 2.0
plug-in, the 2.0 one will probably crash. (If everything's written in
the same version of .net, this doesn't apply, of course.)


--
Mike Swaim swaim@xxxxxxxxxx at home | Quote: "Boingie"^4 Y,W & D
MD Anderson Division of Quantitative Sciences
mpswaim@xxxxxxxxxxxxxx or mswaim@xxxxxxxxxxxxxxxxxx at work
ICBM: 29.763N 95.363W|Disclaimer: Yeah, like I speak for MD Anderson.
.



Relevant Pages

  • Re: xmalloc string functions
    ... require memory allocations depending on the way the system works. ... If the toolkit being used is not one of those, then it is irrelevant that some provide a means to do so, particularly if the "some" are not available for the platform being targeted. ... Not enough context for most real-world applications to recover at this point. ... At this point g_malloccalling abortbecomes a moot point, particularly if your auto-save code is robust against memory allocation errors. ...
    (comp.lang.c)
  • Re: ProDOS Plus
    ... operating system was not considered worth the problems when it was just as easy to make the applications support 128k or more ram. ... your suggested P-code system could do something similar by running in the aux 64k memory range $D000...FFFF or perhaps the aux ram used by the P8 /ram driver code space. ... the OS could fit in *only* the space that ProDOS now occupies. ... if practicality were a concern we probably wouldn't be using old hardware. ...
    (comp.sys.apple2)
  • Re: xmalloc string functions
    ... If these were the only choices (crashing applications or a frozen ... trying to malloc some rediculously large amount of memory - e.g. in the ... because their malloc wrapper decided to exit. ... Exiting on malloc failure makes sense for a utility like sort. ...
    (comp.lang.c)
  • Re: xmalloc string functions
    ... require memory allocations depending on the way the system works. ... Not enough context for most real-world applications to ... It is /more/ reliable to routinely auto-save the user's work (as you ... particularly if your auto-save code is robust against memory allocation ...
    (comp.lang.c)
  • RE: DLLHOST.EXE and Secure Server Crash
    ... This is a very common problem with COM+ components and IIS. ... | Applications view switch to Status View) ... |>with 2-3 dedicated SSL servers. ... A symptom of the problem centers around memory ...
    (microsoft.public.inetserver.iis.security)