M Harris wrote:
I am noticing that a significant amount of open source software is emerging from the C# development platform. Is the runtime 'open' (free 'as in freedom' software)? I am genuinely curious, is your current C# career in commercial programming for client side, server side? What percentage is FOSS? The
Microsoft has released the specs of its .NET runtime so that others can develop languages that address it. That's not my focus, though, so I've never looked into all the details. It's certainly been "open" enough to allow mono to be created. My own work is strictly commercial, none of it open source. (Around these parts FOSS is a tugboat company, so I had to look up what you meant.) Our company is the leading provider of insurance agency management software in our market, and we use .NET runtime support on both client and server sides. Our data center relies on ASP.NET and ADO.NET, and our user presentation is a combination of local winforms and webforms served from the data center. I personally have done mostly winform and webservice development, besides creating a lot of development tools. Others in our office concentrate on DBA work and webform development.
The other thing I would like to know (all fud symantics and bias aside) from someone devoted to using C# for the last five years, do you think that the perceived performance problems of C#.NET programming is due to the experience/quality of the products themselves, or is it inherent in the (CLR) runtime? I remember when I was doing Java some time back I loved the language but I hated the runtime... and I didn't like JIT that much better. What's your take?
Seems to me that every development/runtime environment has advantages and disadvantages, and they need to be weighed. We don't run up against unacceptable performance penalties in the work that we do, and the many advantages of the CLR mean a lot to us. Just having a decent GC makes a lot of code more robust than it otherwise might be, and reduces the cost of development significantly. I remember intense debugging sessions trying to track down COM handles that hadn't been released, or memory allocations that were never freed, and they're not fond memories. Smart pointers can only help so much. The CLR has matured a lot, now with v2.0, and C# v2.0 has added a lot of welcome features, like partial classes, generics, and improved functionality in a lot of the namespaces. Just having a decent string class makes a lot of work easier. Developing sophisticated applications with .NET is simply less work than it would be otherwise, less frustrating and more fun. And it's gratifying to get things up and working quickly, especially if they work well. The C in CLR stands for "common," of course, and C# isn't the only language available. It's the one that makes the most sense to me, though, as someone who has come up through the assembler to C to C++ path throughout my career. It's all the good stuff from C++ without any of the bad parts, plus a huge runtime library that supports just about anything you might need to do. Now that I've finally gotten more involved with Linux, I'm looking forward to finding out what state mono is in. I subscribed to some mono mailing lists around the time it first got started, but after quite a while it seemed not to be going anywhere very fast. From comments I've read recently, that seems to have changed for the better. -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org