Is C# good enough for system utility programming

Started by
5 comments, last by Enselic 17 years, 11 months ago
I have a large interest in systems programming, such as low-level utility programs. C++ seems like an obvious choice, but I've also enjoyed .NET for GUI development, etc. Is the new C++/CLI better than C# for this kind of work? I'm still doubting C# has wrapped the entire Win32 API because there seems to be a ton of pinvoking still. Some examples of utility programs would be spyware removal programs, windows washing, operating systems, etc. The more I write ths, the more C++ seems the #1 choice, but I thought I'd hear from you anyway on this topic. Thanks!
Advertisement
In my opinion if you are going to do low level programming then go with C++.

theTroll
C# on windows XP or 'less' will have a slight performance drop but on Vista it should run just as fast, I have heard, due to vista being managed-code-based.
Wasn't there a recent article saying that Vista moved back to C++? Regardless, I have a friend at MS who knows about that. I remember the TV news talking about MS's new .NET security, but that was before this. Anyhoo, thanks, I'll stay with C++ for this kind of work.
Vista and most built-in apps to it are written in C++, so I dont really see how managed languages would gain any speed on Vista...
What exactly do you mean by "low-level"? The examples you give (spyware removal and operating systems) are wildly different categories of applications.

When I think of "utility program" I thing of a relatively small app that does a relatively minor task that is hard to do with existing tools (I definitely don't think "operating system"). In this case language is almost irrelevant. The only consideration I would give is if the language required library support or special runtimes to be installed on the target computer.

If I was relatively sure that all the computers I cared about had the CLR installed I wouldn't hesitate to use C#. It's perf and resource usage are fine for everything except the most demanding applications and it's a lot easier to write in. If wanted a "run anywhere" app that I could have on my USB drive I would probably use C++ with statically linked libraries just to minimize the dependencies.
-Mike
Quote:Original post by nullsmind
but I've also enjoyed .NET for GUI development, etc. Is the new C++/CLI better than C# for this kind of work?

Apart from easy GUI programming, the .NET Framework have very nice threading support.

I have written a tool to anlyze the size of folders on drives, which makes use of multithreading. You can find it in my sig. When you look at the source, you'll notice how little code there is to provide the in my opinion a very powerful multi-threaded solution.
[s]--------------------------------------------------------[/s]chromecode.com - software with source code

This topic is closed to new replies.

Advertisement