Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

The future of C#? 3

Status
Not open for further replies.

Mystic1112

Programmer
Jan 2, 2004
20
0
0
US
My boss has recently asked the question, "If we migrate to C# will it still be a viable language in five years?"

Can anyone point to resources, articles, or relatively unbiased opinions that address that question? He comes from a C++ background and wants to make sure that whatever we move to will have the same staying power.

I have done some research, but can't find what I'm looking for. Any thoughts or suggestions would be helpful.
Thanks,
Mystic1112
 
There are no guarantees, of course.

But, given that Office 2003 allows you to write .NET bits, BizTalk 2004 uses .NET exclusively, SQL Server 2005 will allow you to write .NET stored procedures, and VS.NET 2005 will make further improvements to the language and framework; indicate that C# has a long future ahead of it.

Chip H.


____________________________________________________________________
If you want to get the best response to a question, please read FAQ222-2244 first
 
Mystic1112
C# has been described as "the language of choice" for the .NET Framework. As it turns out, Microsoft is working towards making .NET apps platform independant. Add these two facts to what Chip H. outlined in his post and the result is that C# will be with us for quite a while.

JC

Friends are angels who lift us to our feet when our wings have trouble remembering how to fly...
 
I think that C# ( .NET Platform in generaly) will have a bright furure due to it's RAD and it's almost C++ powers.

________
George, M
Searches(faq333-4906),Carts(faq333-4911)
 
I sure hope it does have a bright future, as its the next language I'm learning, thankfully a good grounding in PHP makes the transition pretty painless.

I don't see C++ becoming redundant in the near future, but C# certainly looks like it will be about for a while. If it was a language used for developing for a less well-know O/S I may well have reconsidered.

______________________________________________________________________
There's no present like the time, they say. - Henry's Cat.
 
Another indication of C#'s impending success is that even the open source community is starting to take notice of it Here is a work in progress to create an open-source implementation of the .NET Development Framework. Since the open source world consists of developers from all OS's, people from the professional and academic worlds, I would say that C#'s popularity seems to be gaining momentum and not declining.
 
Adding to what nwdurcholz mentioned, SharpDevelop - a free, open source IDE - is in beta version and is completely developed in C#. It looks a lot like VS.NET and it's stable enough for my basic testing projects.

JC

Friends are angels who lift us to our feet when our wings have trouble remembering how to fly...
 
Thank you everyone who has responded. I've directed my boss to the open source projects and he was impressed by the fact that MS is using it in their applications. You've all helped me to bolster my case for moving to C#. I can't wait to get started on the new project and get away from VB6.

A star to ChipH for the information about MS, and stars to nwdurcholz and JCruz063 for links to the open source stuff.

Thanks,
Mystic1112
 
FYI, if you read that Mono website...it says it is sponsored by Novell. I don't think MS has anything to do with it....so its not as if MS is embracing open source in that way. Its others that are porting .Net to other operating systems.

I wouldn't look at it in terms of language, however. You say that you develop in VB 6 now. That tells me you are in the arena of RAD development for Microsoft operating systems. Well, C#/VB.Net/.Net in general is the next path/upgrade to that. Keep in mind that there will always be improvements to programming languages. These improvements will occur more readily than brand new languages are created. C# will probably not be discountinued anytime soon. This is because as Microsoft decides to advance the .Net platform in the future, C# will naturally be advanced as it is probably the best overall language in .Net, for .Net. You have to remember that VB and C++ already existed before .Net.....C# didn't. Therefore, unless the whole .Net platform is abandoned, I don't see C# abandoned or becoming irrelevent.

And lastly, you have to remember that as longs as Windows dominates, and applications such as SQL Server retain a large customer-base, then Microsoft's own development environments will be really well suited for working with their own products.

But again, no one can predict what will happen five years from now...But in five years...Longhorn should be in its prime...and .Net is going to be built to work with and take advantage of Longhorn....and I doubt Microsoft will opt to create a new programming language when they are still working on improvements to this one.
 
RiverGuy -
Novell just recently bought Ximian (the company behind Mono). The Mono project actually existed long before that, and was a major reason why Novell bought them.

Chip H.


____________________________________________________________________
If you want to get the best response to a question, please read FAQ222-2244 first
 
That is interesting to know. I knew that that sponsored by Novell text seemed to be a new addition. I was simply illustrating how Microsoft is neither behind the project, nor even really supporting it.
 
From what I hear from the grapevine, Novell is treating the people at Ximian very well -- they're rotating some of their own people in to learn the technology, and not doing a brain drain by forcing them all to move to Utah. There's no attitude of "we're big and you're not", which is a good thing to see. I'm not sure what Novell's ultimate goal is for Mono -- but I'm sure it involves doing something that Microsoft would disapprove of.

Chip H.


____________________________________________________________________
If you want to get the best response to a question, please read FAQ222-2244 first
 
But, given that Office 2003 allows you to write .NET bits, ...
I'm curious about that statement chiph. Is there something I've missed?

I know about VSTO 1.0 (and soon 2.0?) but I had the idea that VSTO was a set of COM-interop wrappers and project templates for externally automating Office 2003 programs, Word and Excel if I recall correctly. About the same as using VB6 or VBScript to do the same thing, no?

Then again, a quick look at the literature shows that these two programs have a "hook" in them to scan for a pair of custom document properties and then load an unmanaged DLL on document-load. This DLL then loads your .Net assembly and...

Well my point is it looks like an interim kluge.

.Net is pretty deeply embedded into the new SharePoint facility that was released with Office System 2003 (even though that is really more of a Windows 2003 Server feature than an Office feature despite the name).


Hmmm... maybe you make a good point. ;-)


I'd be more curious about the stability early adopters have seen so far as things have progressed from .Net 2002 to 2003 to (soon) Whidbey (2005?). This seems like fairly rapid technology-churn, especially considering how much new stuff there is to learn from those coming from Win32 development. Any words of wisdom about the effort required to upgrade a Framework 1.0 application to 1.1? Source-level changes from 2002 to 2003?

Even language syntax and semantics changed some, but I'm sure changes in the base libraries were more serious changes. The IDE has changed too of course, but that's more or less cosmetic. Whidbey sounds like a bigger set of changes yet.

I just wonder if things are still .Not for the time being (regarding serious projects) though perhaps .Now for getting up to speed as a developer.

Whidbey may be strongly tied to the future Longhorn platform, which is far over my horizon yet. I imagine we'll be seeing a few more VS.Net/.Net Framework releases before Longhorn is released, certainly prior to wide adoption. This means the Longhorn tie is weaker than it might appear. This could be doubly so if an interim, limited Avalon release/upgrade is distributed as a Win XP update, as rumored. Indeed, I am starting to wonder about Avalon, and whether or not XAML will be the DHTML-killer technology. There has to be a reason why IE is being left to stagnate.

It may be valid to say "get onboard now or be left behind" from a developer perspective. In the past I have found that when an MS technology is still shiny and new there is more information lying around for the taking to learn how it all works. Later on everyone seems to just assume all of that background, and the important small nuggets of knowledge get harder to track down when you come to the game late. As changes are introduced discussions about them are often expressed in terms of the "delta" from previous incarnations rather than as entities unto themselves. Lacking the assumed "common wisdom" acquired through previous-version experience can make such discussions difficult to appreciate.

That's one reason I wade in from time to time myself even though I have not made a .Net commitment yet. Of course since I've barely waded in up to my ankles my viewpoint is limited and I probably have a lot of misconceptions.


I'm not trying to spread FUD against .Net - if anything perhaps just the opposite. The genie is escaping the bottle and so it could be time to get moving with the changes.

So... C# vs. 5 years out? I'd stop worrying about the dumb language itself. The panic ought to be about .Net ecosystem and keeping up with it all.
 
The biggest change I saw between v1.0 and v1.1 was in the Xml namespace, where you do XSL transforms (there may be other areas that had significant change, but this is the only one that jogs my memory). The deprecated functions are still there, but you get a compiler warning if you try and use them (which means you don't compile, if you have the "treat warnings as errors" option set like you should).

It may be valid to say "get onboard now or be left behind" from a developer perspective. In the past I have found that when an MS technology is still shiny and new there is more information lying around for the taking to learn how it all works. Later on everyone seems to just assume all of that background, and the important small nuggets of knowledge get harder to track down when you come to the game late.

I've seen that happen before with COM. I went to the PDC when it was introduced, and came away thoroughly unimpressed (Embed a spreadsheet in a word doc? Who cares?). So I missed out on all the early info. Which hurt me when COM became big-time and was integrated into everything MS made.

What I've found to be extremely useful is a subscription to the dead-tree edition of MSDN. If something new comes out, and I fail to recognize it's importance (XAML is looking that way right now for me), I'll still have the old copies to go look stuff up.

So... C# vs. 5 years out? I'd stop worrying about the dumb language itself. The panic ought to be about .Net ecosystem and keeping up with it all.

Like I've been saying here for 18 months now -- the language is just another C, but with objects and easy memory managment added. It's the framework that will be the hardest thing to learn. It's also the part that will see the most change from version to version.

Chip H.


____________________________________________________________________
If you want to get the best response to a question, please read FAQ222-2244 first
 
What features would you like in the next version of Visual C#?

I had a look at people's requests in that blog post -- most of what people want are improvements to the IDE, not the language itself. The only thing that a lot of people wanted was variant return types, so you could write code like this:
Code:
public XmlDocument MyMethod()
{}
public String MyMethod()
{}
At first I wasn't too keen on this idea -- why call the method if you're not sure what it'll return to you? But then I realize that often I need to return the same data, just in different formats. Imagine being able to serialize an object, returning either an XmlNode or a String, depending if you were going to send the object across a layer or not. You could still argue that you should have planned your layers better, but even so, it would be very useful.

Oh, and I repeat everyone's request for Edit & Continue.
;-)

Chip H.


____________________________________________________________________
If you want to get the best response to a question, please read FAQ222-2244 first
 
I think one of the biggest indicators that C# will be around for a while is that I have noticed a definite increase in jobs available in C#. That means the language is gaining greater acceptance and is being used for new projects.

I have come from a VB6/Access VBA background and I realize that stuff is going to be like dinosaur technology or like COBOL in a few years. The learning curve from VB to C# has not been painful. I've already made C# my language of choice...and I think it's going to be Microsoft's too.

I think it's only a matter of time before .NET goes open platform and open source to a limited extent.

C# is not quite as low a level language as C/C++ but for most developers it's not going to matter.

I'm curious as to what the association between Microsoft and Sun will mean since Java and C# are so similar.
 
A convergence between Java and C# is no longer as farfetched as it once seemed. Perhaps we'll see something entirely new come out of such a collaboration, especially if Sun is still allowed to "own" the spec.

Sound unlikely? Crazy even?

Well then maybe it can work if a neutral 3rd party "owns" the language spec. I'm just not sure what this leaves for Sun. ECMA already holds a good chunk of the C# and CLI specs. I admit I'm not sure how this is tracking with the changes from MS since the first version of those specs though.

I'm not saying it'll happen. Just saying it could.
 
From a language standpoint, C# and Java are cousins already.

The difference will be in the runtime libraries that each offer. Java, being the more mature technology, has better/more stable libraries currently. But I wouldn't count C# out. One advantage of Microsoft's is that they are incredibly focused -- when Bill says to write C# code, they *all* start writing code.

Chip H.


____________________________________________________________________
If you want to get the best response to a question, please read FAQ222-2244 first
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top