Re: VS2005 and VS 6.0



..NET programs might not compromise the machine environment, but I believe that as more systems are developed in it, there will be a lot of flaky programs out there crashing all over the place.

eg, if you program C# in the manner suggested by the examples, you see a lot of code like :
row.Columns [ "productID" ].Value
Of course, the compiler can't pick this up, so if someone has written code like
row,Columns [ "oroductID" ].Value by mistake, it will wait until it is executed before crashing.

The Designers actually let you put the name of a variable as a DataSource in the property *** of eg a grid column, and there is no way this can be verified unntil the code executes.

Although from a pure programming perspective C# is nice, it is not all that it is cracked up to be. I have also found that it is possible to crash programs by using up GUI resources and not disposing of them. In C++ we are aware of this, but with garbage collect in .NET, you sort of go on with gay abandon not caring too much about such matters.

Joseph M. Newcomer wrote:
"Trustworthy" means that the programmer can't compromise the integrity of the runtime
environment by stupid errors (such as memcpy, uninitialized pointers, etc.). Key ideas
here date back to the programming environments developed at Xerox PARC back in the late
1970s, where the basic principles that we see in Java and C# were implemented (Jim
Mitchell, who essentially signed the check that made Java possible, was one of these
pioneers, and it was based in part on his PhD dissertation from about 1970).

I'm not sure why you think targeting managed code with a GUI designer is any different
from targeting unmanaged code with the same GUI designer. I've done C# design, and the
environment is, if anything, HARDER to use for C#, because there are no resources, and
everything is embedded in hard-code (just try to change the name of a variable for a
control!)

What is there about .NET to like? The IDE sucks. As long as it has its bizarre
modalities, it will continue to suck.

I have no disagreement about the notion that a .NET environment (or a Java environment)
for controlled execution is a Good Thing, and in fact I find C# a very pleasant language
to program in. I'd even like to do a lot of programming in it. But that is an orthogonal
question to the issue about IDE design.
joe
On Wed, 14 Jun 2006 14:29:44 +0100, Daniel James <wastebasket@xxxxxxxxxxxxxxxx> wrote:


In article news:<ekBXhq0jGHA.4044@xxxxxxxxxxxxxxxxxxxx>, Tom Serface wrote:

Microsoft is very interesting in "Trustworthy computing" so they are, of course, pushing .NET as their paradigm towards this end,

NET isn't really much of a solution to untrustworthiness. The fact that executables run in a sandbox and can check for some error conditions (and possible engineered exploits) at runtime does help, but it isn't enough. Other technologies -- correctness proofs and code signing, for example -- could offer far more, and can be applied to native code.

What could make .NET really useful is the ability to deploy a single application binary across multiple disparate platforms -- how ironic it is, then, that the only platform on which .NET is fully supported in Windows intel/AMD platforms (even Pocket MP .NET on ARM is an eunuch). If Windows for PPC, MIPS, and Alpha were still supported .NET would be far more useful.

None of this has anything to do with IDE design, though, except insofar as MS has chosen to target managed code rather than unmanaged with its GUI designer.


... for what it's worth, I think there are far more people who like
.NET than don't ...

There were always more VB programmers than VC++ programmers, that doesn't mean that VB is or was in any way as good as VC++ -- just that it was (or was perceived to be) an easier (or cheaper) way for average programmers to achieve relatively simple tasks ... and that as much the result of hype and marketing from Redmond than of any property of either VB or VC++.

There is a class of tasks for which the controlled execution environment of Java or .NET brings useful benefits ... it's not a very large class of tasks, and I doubt that most people who code for those environments are coding tasks in those classes. People like .NET because MS have built an easy-to-use etch-a-sketch designer that makes it look as though you don't need to do any coding to use it ... so people who aren't interested in doing any coding like it.

This sort of tool support could be provided for native C++ development -- it doesn't depend on .NET in any way -- it's just that MS have chosen to create tools that target the .NET runtime and not to create tools that target native Win32. This gives people the mistaken impression that ".NET is easy", when the reality is that ".NET has better tool support".

Personally I find .NET to be a distraction I could well do without. Most of the code I write would not benefit from running in a software VM -- it doesn't need a sandbox -- and much of it needs to be portable to non-Windows platforms. I normally write backends in portable standard C++ and Windows frontends in MFC (though I'm looking at using wxWidgets or Qt, or maybe something non-C++ like Python for the front-end code in future projects). Although I regard C# as a better thought-out language than Java it doesn't have the cross-platform support that Java has, so if/when I need something that runs in a sandboxed environment I'll use Java rather than C#.

NET is still very CV-friendly. It's a new technology, and people are still keen to learn it and evaluate it for themselves, and to be able to claim experience with it when job-hunting. Java went through this a few years ago when it was still buoyed up with hype. I don't expect it to last.

Cheers,
Daniel.


Joseph M. Newcomer [MVP]
email: newcomer@xxxxxxxxxxxx
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
.