R
Rich Grise
- Jan 1, 1970
- 0
The Real Andy wrote: ....
Sorry it's not.
but that doesn't mean it's any good either.
It was made by MICRO$~1, and therefore is crap by definition.
Cheers!
Rich
The Real Andy wrote: ....
Sorry it's not.
but that doesn't mean it's any good either.
[More of Andy telling more than he knows]
Genome said:Shows how much I know then...
Jim Thompson wroteComplete hogwash.
[More of Andy telling more than he knows]Genome said:Shows how much I know then...
Andy is no more right than you are. Unless he's trying to say
that dot-Net is similar to Java in that it is *a layer*,
he is just blowing smoke.
The (open source) equivalent of dot-Net, is Mono:
http://en.wikipedia.org/wiki/Mono_(software)
I agree with those who are saying that uninstalling it
(and reinstalling it later) has the propensity to do damage.
Before long, Jim will come across some other idiot
who wrote some tiny app that requires this monstrosity.
As Jasen said, by that time this version may be obsolete. 8-(
Mark Chun (qrk) really hit the nail in the head
when he mentioned *version hell*.
Sorry it's not.
but that doesn't mean it's any good either.
Bad comment to make, Borland apps have nothing to do with security
issues, it's the people writing the code and that's where the problem
is. .NET Robust? i don't think so. Cripple and slow ? yes/.
Microsoft loves people like you, easy brain washing.
Sorry, you don't know what you're talking about. Now you may be
talking about the VCL. That is Borlands class library and it has no
MFC what's so ever.
Before going off on a tangent, I suggest you get the
facts straight.
The said:.net is robust in the same sense as java. Sure you can write unsafe
code (in fact MS even use the term unsafe in the languages) but then
you are being plain mad.
Cripple and Slow? You quite clearly have never used it in a commercial
environment. I do, in an enterprise environment, and I can assure you
it not cripple and slow.
Microsoft love people like me because we spend money on their
products. I don't buy the MS marketing, I buy the products because I
can develop in a shorter timeframe and my code is a lot more robust.
In a commercial environment that means a lot, the business gets what
they want on time, I get paid and they then give me more work because
I can deliver. Its pretty simple.
Crap , crap and double crap.The said:The code behind maybe different, but the model is essentially the
same. Both are managed languages, both compile to an intermediate
language, both are JIT compiled at runtime.
Typical young coder.. I've been around the barn far longer than.net is robust in the same sense as java. Sure you can write unsafe
code (in fact MS even use the term unsafe in the languages) but then
you are being plain mad.
Cripple and Slow? You quite clearly have never used it in a commercial
environment. I do, in an enterprise environment, and I can assure you
it not cripple and slow.
Microsoft love people like me because we spend money on their
products. I don't buy the MS marketing, I buy the products because I
can develop in a shorter timeframe and my code is a lot more robust.
In a commercial environment that means a lot, the business gets what
they want on time, I get paid and they then give me more work because
I can deliver. Its pretty simple.
Borland has never implemented any of MFC in any of the produces to theSorry, I meant Win32. However in saying that, when Borland dropped OWL
they began paying MS a licence fee to use MFC. I have not touched
Borland for some time now, so I don't really know what the deal is
these days.
I did just knock back a job that involved Borland C++ however. Also
knocked back a Delphi job too, both in preference for a job doing
enterprise .net systems.
Yes i am , i'm also a MS VC++, VS , user.You must be Borland user.
Well, finally some one that knows something!Chuck said:Java runs in a safe and secure "sandbox" it cannot gain access to anything
you don't give it access to. It is safe by design... that said, I don't
write Java, or C#... I prefer the embedded world.
I never found that to be true. I have found that Microsoft's applications
tend to confound my efforts to write good software. I would much rather
work
with opensource.
The problem as I see it, is MiracleSlop has such a monopoly on seats in
the computer world that finding opensource work is difficult. It is worth
the effort, though, as it is so much easier and more reliable.
-Chuck
Crap , crap and double crap.
.NET is not the same in the background.
Typical young coder.. I've been around the barn far longer than
you think.
I feel sorry for people like you getting lead down that dark
path.
Yeah i know, it's pretty simple. MS loves simple users.
glad you finally admitted it.
Borland has never implemented any of MFC in any of the produces to the
end user. I don't know where you got this information from but it's
clearly incorrect. Borland has there own set of class libraries that
simply sprang from the early days of OWL. they call it the VCL now.
VCL = Visual Control Library.
Don't feel bad, you did them a favor by not letting them hire you.
Yes i am , i'm also a MS VC++, VS , user.
write code for Windows Mobile etc..
I've been in the field sense the day's of
punch card computers and have fallow the
product line's of Borland, MS, Symantic, Watcom
to say a few.
Now that we're done with our pissing contest, go back
to your slow .NET MS controlled applications. and hope
you have fun writing slow bloated code.
Just think, since you're suck a good MS customer, maybe they
won't make you wait for months to fix a crash/serious bug that
arises in your code due to a frame work error that only MS can
fix.
The said:Jamie wrote: [...]Borland has never implemented any of MFC in any of the produces to
the end user. I don't know where you got this information from but
it's clearly incorrect. Borland has there own set of class libraries
that simply sprang from the early days of OWL. they call it the VCL
now. VCL = Visual Control Library.
Ahh, remember when Borland dropped OWL, they licenced MFC? Remeber
that there was some condition regarding the approval that prevented
Borland from continuing with MFC? It was about this time that everyone
stopped using broland products. VCL is completely different.
I still cant see where you get slow and bloated from. You really
should spend some time using .net, you will be surprised.
Hasn't happened to me yet, and I have been using .net for 4 years now.
Ahh, remember when Borland dropped OWL, they licenced MFC? Remeber
that there was some condition regarding the approval that prevented
Borland from continuing with MFC? It was about this time that everyone
stopped using broland products. VCL is completely different.
/how Borland "lost" the C++ market
The said:Jamie wrote: [...]Borland has never implemented any of MFC in any of the produces to
the end user. I don't know where you got this information from but
it's clearly incorrect. Borland has there own set of class libraries
that simply sprang from the early days of OWL. they call it the VCL
now. VCL = Visual Control Library.
Ahh, remember when Borland dropped OWL, they licenced MFC? Remeber
that there was some condition regarding the approval that prevented
Borland from continuing with MFC? It was about this time that everyone
stopped using broland products. VCL is completely different.
IIRC, Borland licenced MFC around the time of C++ 5. It was only included
for compatibility reasons so that you could compile your MFC apps with BC++,
and it didn't always work 100% (due to the dependence of MFC on MSVC
undocumented extensions). OWL was still very much the focus of BC++ 5.
BCB was the next product in line, and this used VCL instead of OWL. OWL
wasn't dropped until BCB5, though it was (like MFC) included only for
compiling older projects with the newer compiler. MFC compatibility is
included all the way through the BCB line AFAIK, though it's for compiling
only. You can't use the designer to make MFC GUIs.
There was a big debate a couple of years ago in one of the borland NG's
about when/why/how Borland "lost" the C++ market. Their marketshare had
dropped substantially long before BCB was released, or OWL was ditched for
that matter. The basic problem was versions 4 and 5 of BC++ were pretty bad
(especially the IDE), and OWL was simply not being updated and fixed very
quickly. While they picked up some new people with the VCL (though more with
Delphi than BCB) they'd lost their momentum in the C++ market, and with MS's
aggressive pushing of MSVC (and later poaching of a significant number of
key Borland developers) it was pretty much impossible to come back again.
[...]I still cant see where you get slow and bloated from. You really
should spend some time using .net, you will be surprised.
You've never tried running a .NET application on a machine with 512MB of
RAM, I guess?
Cold start times for .NET applications are terrible. Even a simple winforms
"Hello World" takes somewhere between 15-25 seconds (depending on the phase
of the moon) to start where the CLR isn't already loaded (for example, after
a reboot, or if you have 512 MB of RAM as the CLR files fall out of the
cache pretty quickly). Warm start times are better, though still in the
order of 3-4 seconds. Compared to, say, firefox, which cold-starts in a bit
under 10 seconds and warm-starts basically instantly. While this isn't a
problem for applications that run all the time, it prevents .NET from being
used for small utility applications - I don't want to wait for 3 or so
seconds while calc or notepad starts, for example. Similarly, meory usage is
terrible for .NET apps - a "Hello World" takes up around 7MB of RAM.
As MS forces more and more .NET stuff on people, these problems wil become
less significant since the framework will always be loaded - it's not really
a nice solution, though, as all that means is that you've got bloat loaded
all the time (taking up space that could be used for better purposes), not
just when you run an app that needs it.
Performance-wise, it's a bit hard to compare. For complex FP stuff , .NET is
slower (at least on K7 Athlons and P4's), no questions there. It depends on
the exact algorithm, but I've typically seen anything from a 20% to a 100%
increase in computation time required. CPU-intensive stuff in general is
slower, but most of the tests I've done are FP-based things so I can't give
a decent range for other types. For I/O intensive stuff such as throwing
files through sockets, most of the time is spent outside the application, so
although the application may only be operating at half the speed of a native
app it doesn't really matter. I could go on and on ... basically, CLR is
significantly slower than C++ code compiled to native code, but unless your
application is CPU-bound in your code, it doesn't matter a whole lot.
The biggest problem I've found is that, although you can code a .NET to be
fast, it's not encouraged. A lot of the things that make .NET development
easy also make the resulting application slow. The end result of this is
things like ATI's CCC - massive memory use, slow startup times, laggy
interface, etc etc. While I know that CCC is not representitive of a "good"
.NET app, it is representitive of a vast majority of .NET apps.
While I can't say I've run into a problem that *can't* be worked around,
some bugs (mainly in the 1.0 and 1.1 era) have required significant and/or
ugly workarounds (which had to be developed using trial and error). One of
the things I love about Borland's VCL is that you get the source code, which
means you can easily trace into the VCL and see where something is going
wrong. This makes it much easier to develop workarounds compared to
developing them for .NET where if you tell MS "{x} doesn't work correctly"
you just get the response "don't do {x}, and it may be fixed in a future
service pack". At which point, if doing {x} is important to your code, you
have to start the tedious process of black-box debugging the framework.
Reflector can help a bit if you've narrowed it down, but it's still nowhere
as nice as being able to trace into the code.
They were unable to compete in the "visual" based development realm.
The said:Michael Brown wrote: [...]
Sorry, I screwed up once again I meant to write that MFC licence
condition was valid only if Borland dropped OWL. That was some time
ago now, I cant really remember what happened.
Ok, so the lowest CPU speed I have app's running on is around 2GHz.
These are AU$400 PC's shipped with 512mb RAM, running XPSP2. I have
never seen one take more than a few seconds to load the framework,
even after a reboot.
BTW, there is tonnes of information out there on
how to reduce cold start times of app's. In fact MSDN mag did an
article on such not so long ago.
Hardware is cheap, development time is quick, results are relatively
robust (you can still write bad code). The whole idea with .net and
java is that you sacrifice some resources for the huge benefits gained
from safe, secure and reliable code.
Fair point. I don't do FP stuff. Things such as casting classes to
binary buffers can be slow, but by marshalling to unmanaged and back
it is real fast. What's great about that is the marshaller will not
let you exceed the bounds of the array. You cant overrun a buffer. Big
plus. Does not matter how bad you code, you cant do it. It won't let
you. This is just one of the benefits. I challenge anyone to tell me
that they have not had a buffer overrun, even if it was found before
production.
I wonder what agent uses.
Currently in my process list (Sysinternals)
I have Agent at 10MB, followed by explorer(Win GUI shell) at 13MB, and
Visual Studio 2005 at 40Mb.
Maybe that's where I differ. I don't want the source code. I don't
care about it. The last thing I want to do is spend time learning my
way through some library. I just don't have time.
Homer J Simpson said:Removing and reinstalling software may lead to corruption.
The Real Andy said:Every app I write now uses the .net framework. The other day I wrote
an app for one of the tech support guys in half a day that would have
taken me a week in MFC. The app is going to less susceptable to bugs
than an MFC equivelent, and the code is far more secure. Thats why
people use it.
The idea behind .net is that you can install multiple versions of the
framework, and they will all work alongside each other. You could not
do that with DLL's.
Say Andy,
What do you think of Python (with, say, wxPython for the GUI) vs, say, C#?
The said:Michael Brown wrote: [...]
%<[...]
Cold start times for .NET applications are terrible. Even a simple
winforms "Hello World" takes somewhere between 15-25 seconds
(depending on the phase of the moon) to start where the CLR isn't
already loaded (for example, after a reboot, or if you have 512 MB
of RAM as the CLR files fall out of the cache pretty quickly). Warm
start times are better, though still in the order of 3-4 seconds.
Compared to, say, firefox, which cold-starts in a bit under 10
seconds and warm-starts basically instantly. While this isn't a
problem for applications that run all the time, it prevents .NET
from being used for small utility applications - I don't want to
wait for 3 or so seconds while calc or notepad starts, for example.
Similarly, meory usage is terrible for .NET apps - a "Hello World"
takes up around 7MB of RAM.
Ok, so the lowest CPU speed I have app's running on is around 2GHz.
These are AU$400 PC's shipped with 512mb RAM, running XPSP2. I have
never seen one take more than a few seconds to load the framework,
even after a reboot.
Are you sure that you're actually testing a "cold boot" scenario? For
example, if you use ATI graphics drivers, the framework gets loaded during
boot. The warm and cold start times are about the same on my main computer
because of this (and somewhere around 1-1.5 seconds due to better hardware).
The times I mentioned above are on my "clean test" machine, an XP1700 with
512 MB RAM. This is a cleaner machine than most when it comes to stuff in
RAM, since I'm only testing a single app at a time (more or less just XP +
.NET frameworks). On another machine that I use (P4 ~2GHz, 512 MB RAM, but
with lots of junk loaded like a virus scanner, firewall, web/email clients,
etc ) I observe similar or worse times - worse because when I exit a .NET
application the framework tends to fall out of the cache pretty quickly as
memory is tight. Resulting in times closer to cold starts than warm starts.
Yes, there are things you can do to improve cold (and warm) start times ...
but these times are for a "Hello World" app, which doesn't leave many
options for improvement.
[...]Hardware is cheap, development time is quick, results are relatively
robust (you can still write bad code). The whole idea with .net and
java is that you sacrifice some resources for the huge benefits gained
from safe, secure and reliable code.
Safe and secure, maybe, but reliable? Allowing people to be sloppy when
coding is just asking for reliability issues further down the line. The
"ideal" language (IMO) should be strictly typed (no magic float-to-int
conversions for you!), require explicit memory allocation and deallocation
(with a garbage collector there solely to slap you if you forget) and allow
you to get your hands dirty and bit-bash if you want to. Ideally it should
also treat fundamental types as fundamental types - an integer is an
integer, not an object. Basically, make the programmer think about what
(s)he is writing, not just spew out a whole lot of code and make random
changes until it works. Unfortunately, the trend seems to be away from every
one of these aspects and towards allowing - even encouraging - poor
programming practices. While in the short term this may seem like a good
solution, 5 years down the line you'll end up with millions of lines of
poorly written code just held together by comments such as "I don't know why
the following line is needed but things break if it's removed".
/me gets off his soapbox
[...]Fair point. I don't do FP stuff. Things such as casting classes to
binary buffers can be slow, but by marshalling to unmanaged and back
it is real fast. What's great about that is the marshaller will not
let you exceed the bounds of the array. You cant overrun a buffer. Big
plus. Does not matter how bad you code, you cant do it. It won't let
you. This is just one of the benefits. I challenge anyone to tell me
that they have not had a buffer overrun, even if it was found before
production.
I can't recall the last time I had a buffer overrun in any of my Delphi
code. I have had the odd one when mixing Delphi and inline assembler (the
overflow in the assembler part), but assembler is assembler and those things
happen In my C++ code, I've had the odd one in parts which I've been
aggressively optimizing (as in "we need to squeeze more performance out of
this procedure, new is slowing us down, so lets coalesce all the unrelated
new calls into a single malloc and bitbash some things around" aggressive)
but not AFAICR in "normal" code. In these cases, a managed language would
have prevented the buffer overflows simply by not allowing me to optimize so
aggressively. Not exactly a plus in that case.
The reason for this IMO is that I've always been quite conscious of buffer
overruns and the like, coming from an assembly and software security
background. Of course, I can't say I've never had one - my memory doesn't go
back far enough, and I'm pretty certain that when I was starting programming
I overflowed a few buffers (either accidentally or on purpose ...).
Defensive programming beats a safety net any day of the week - a (prevented)
buffer overflow in a .NET application usually results in the application
crashing or being terminated. While this is better than a buffer overflow,
it's better still that the app figures out beforehand that the buffer is too
small and handles it gracefully. Additionally, most C/C++ compilers now
support buffer overflow detection with guard words. While this results in
guaranteed termination of the program (rather than possible recovery with an
exception), the result is not all that different to an exception firing
where you did not anticipate it happening.
I wonder what agent uses.
As far as I can tell, it uses MSVC (and wxWindows for the gui). It's a
combination of C and C++. Though this is just from a quick glance through
the executable using notepad - it may be being crafty
Currently in my process list (Sysinternals)
I have Agent at 10MB, followed by explorer(Win GUI shell) at 13MB, and
Visual Studio 2005 at 40Mb.
Heh, Explorer on this computer is at 17 MB - tis what you get when you don't
log off for 9 days ... Biggest memory users at the moment are Opera (103
MB), Delphi 7 (35 MB), OE (31 MB). However, I wouldn't consider Opera
bloated - I've got about 25 tabs open across 2 windows, and then the cached
renderings for the previous page, plus cached files ... Delphi and OE are
also quite "busy", and the memory is being put to good use. The award for
bloat (being defined as memory used for no good purpose) on my computer goes
to the annoying ATI tray icon that just won't go away. It's currently using
up 7 MB to display an icon in the tray that if I double-click on it starts
up CCC.
[...]Maybe that's where I differ. I don't want the source code. I don't
care about it. The last thing I want to do is spend time learning my
way through some library. I just don't have time.
I'm coming somewhat from the same direction but with different experiences
... I don't have time to be trying to second-guess what's happening inside a
library. If an application isn't behaving as it should, there's either a bug
in my code or a bug in the library (or very occasionally a bug in the
compiler). Maybe I've just been unlucky with hitting lots of .NET framework
bugs, but I'm pretty sure I've spent more time in the last couple of years
trying to isolate and work around .NET bugs than I've spent tracing through
the VCL source code (and it's not due to spending a lack of time with VCL).
Since I've written quite a few Delphi components I already knew (or had to
know) what a typical VCL component looks and acts like. Since the VCL
follows the same rules as the components I write, tracing through it is
pretty easy.
[...]
[...]The said:Michael Brown wrote:
Joel Kolstad said:True enough, although when that happens it's an easy way to know that the
piece of software is crap and you shouldn't bother using it if at all
possible!