rjung, My interest in C# is based upon comments like these. Also, all of the developers involved have worked with OO languages in the past but not extensively.
This is an internal development project and we can install any runtimes needed over our network using Altiris. At any rate, most of our PC’s are running XP Pro so it doesn’t sound like they would need anything.
er… if you think C# is just C++ with the serial numbers filed off, you’re very much mistaken. C# is much closer to Java than C++. The types of projects that C# is appropriate for is much different than the types of projects C++ or C would be appropriate for.
For the record, I’ve done big projects in C, C++, C#, VB, and now am working in Java. Of all of them, I like C# and .NET the best (although sometimes I miss the raw power that C++ brings).
I’m not certain that I would be willing to believe Java code will still work in 10 to 20 years. I wouldn’t give any language managed by a corporation (be it Sun or MS) any vote of confidence that they will still be compileable and runnable on that time frame. Also, probably, any application that uses any sort of GUI (32-bit Windows apps running on computers 10 years from now? gTK?)
So if you’re going to have a GUI, you can either do C++ and write a whole bunch of abstraction between the main code and the windowing–and deal with all of the memory debugging and messed up pointers. …But at least you can cut off and replace the GUI stuff later.
Or you can just go with the most brand-spanking new thing that works well and hope it lasts long enough–but have an easier time of it and much cleaner code. …Of course, all GUI stuff should still be separated off into its own files as much as possible–but that’s just good coding.
Personally I would recommend going for brand spanking new for a front end. So C#.NET sounds like a nice easy environment for creating solid GUIed and capable apps.
If we were talking about something running on the central server (the backend)–well depending on the likely lifespan of the project I would either go with PHP webpages running over localhost for a shorter lifespan (1-3 years), Java GUIed for medium (3-5 years), and C++ with highly abstracted away GUIs (for 6+), and similarly swap out the front-end with C++ and the same interface to the GUI abstraction.
I guess I’ll throw my two cents in here. I programmed in pascal about 15 years ago(think DOS) and then life happened and I didn’t write a line of code until 6 months ago. I got the bug and found the time so I played with java and c# at the same time. knowing nothing about GUI codeing I was still able to figure out c# enough to hack stuff out within 2 weeks, but java just didn’t click as well. Long story short, 6 months later I can hack out a java program and make it work but with c# I can write better code than I ever wrote before. Its compact fast and generally very straightforward to implement. I’ll grant you java is more portable and certainly is much like c# in structure but IMHO c# compiles to faster code that reads and debugs easier. Also MS is about to release c# 2.0 which has several new features that will make the code even easier to work with faster and smaller all in one go. I really recomend it.
The empire definitely has a good thing going with C#. I’ve been playing with it for the last 3 weeks and I am already able to do everything I could do in c++. Its very smooth, makes a lot of sense and if you can afford the .NET c# IDE you’ll find that it increases productivity by a good bit. I’d definitely recommend you use it.