I'm currently programming in C++ at an intermediate level and now moving on to the Win32 API. I know basic Win32 API programming so far and I don't find it too difficult to learn, but my question is: is it worth it to continue learning it while Windows Vista will be released in a short while and the .NET technology becomes more and more popular ? Since C# is similar to C++, should I switch to C# and learn the .NET framework ? Is .NET the future ? Thanks in advance.

Recommended Answers

All 16 Replies

is it worth it to continue learning it while Windows Vista will be released in a short while and the .NET technology becomes more and more popular ?

Absolutely! .NET is great and all, but eventually you need to drop down to Win32 to get somethin' done. :) Remember that .NET is just an extremely sophisticated wrapper around the core API: Win32. If you know both then you'll be productive and godly at the same time, baby!

Since C# is similar to C++, should I switch to C# and learn the .NET framework ?

C# is nothing like C++, but C++/CLI is a dialect of C++ that supports .NET if you want to tackle the framework without switching languages. If you're learning C++ now, stick with it because you'd rather be a good C++ programmer going into C# than a good C# programmer struggling with C++.

Is .NET the future ?

MS sure thinks so.

Isn't .NET something similar with MFC, maybe it's succesor ? I rather make myself a simple Win32 wrapper to make apps faster, than using MFC or .NET. I know .NET has a lot of useful classes, but while I need only a few of them, why not develop them myself ?

Isn't .NET something similar with MFC, maybe it's succesor ?

.NET is somethin' like the nextgen of MFC. It's still supported, fortunately, but MFC is really showing its age.

I rather make myself a simple Win32 wrapper to make apps faster, than using MFC or .NET.

Here's how I see it. In most applications speed is seriously relative. A windows app is almost always I/O bound or network bound. Unless the speed difference is noticeable by clients, there's not really much point in doing it the hard way for the sake of speed. If it does affect clients, there's a good chance that you can optimize in .NET or MFC sufficiently to make them happy.

I know .NET has a lot of useful classes, but while I need only a few of them, why not develop them myself ?

'Cause it's better to stand on the shoulders of giants than to stretch yourself too thin to get to their height. :) Prewritten classes are already optimized, debugged, and tested by millions of programmers daily. You can't compete with that kind of stability.

vista will use WinFX (which is like .net)

vista will use WinFX (which is like .net)

(Disclaimer: Just my 2 cents)

Yeah thats the main problem with these MS guys, they just do whatever makes them $$$$.

Opensource is the future. I dont think anything can beat the C++ / Python combo.
(Python: Scripting, front end, rapid prototying)
(C++: If you feel like optimizing or writing the core modules)

But then again it depends on how you see things, many people regard MS as god and will follow whatever put in front of them, so they just go with the Drag-and-drop-and-live-happily-ever-after thing.

Many people like to take things in their own hands and like to develop and contribute to the community than working on some proprietory format and waiting for the MS guys to further optimize the amount of effort required in dragging and dropping the components. ( its much more challenging making VB than making softwares in VB, i hope you catch the drift )

But still take your own pick and enjoy programming.

(Disclaimer: Just my 2 cents)
Yeah thats the main problem with these MS guys, they just do whatever makes them $$$$.

But then again it depends on how you see things, many people regard MS as god and will follow whatever put in front of them, so they just go with the Drag-and-drop-and-live-happily-ever-after thing.

Many people like to take things in their own hands and like to develop and contribute to the community than working on some proprietory format and waiting for the MS guys to further optimize the amount of effort required in dragging and dropping the components. ( its much more challenging making VB than making softwares in VB, i hope you catch the drift )

But still take your own pick and enjoy programming.

Wow. Quite a few slams and assumptions there... I know, your 2 cents. Please tolerate mine as well.

1.

Whatever makes them $$$$.

Hmmm. So you're in this for the love of it? Money's not an issue in your life, at least at this time. Student? Independently wealthy? At 43, I'm doing what I decided I'd do at the age of 15. I started programming then (in Basic on a Wang 2000) and I've done it ever since. I found that I can do what I love for free, which I did for awhile, or I can get paid for it so my family can have a good life and make a contribution to society. You're in it for the money too. You just picked a different tool and path than 'the MS guys'.

2.

So they just go with the Drag-and-drop...

So, if we code for the .net framework, we aren't 'real' programmers. We just drag and drop. In this, you are just flame baiting. Certainly you don't believe that all .net programming is simple and trivial. As far as us thinking MS is 'god', you've missed it again. Many of us 'ended up' on .net projects - there are many more .net positions open than C++ positions, at least in my area (Southeast US). I didn't intend to become a .net programmer, but I like to eat. I took a gig, found that it was actually pretty solid, and kind of marveled at the simplicity with which I could do otherwise irritating, error-prone processes, such as managing threads, garbage collection, and managing DLL's. It's not better than your languages of choice, but to dismiss it as a child's toy is offensive to those of us who make our living coding in it.

3. I don't know quite how to quote this to make my point. Your last paragraph quoted above states the obvious - many people DO like to take things into their own hands and

contribute to the community

.

It's much more challenging making VB than writing software in VB.

. You are talking about two different disciplines - OS or Kernal developers, deep in the guts, system internals, raw register values... as opposed to Application Development (without which, by the way, there would be absolutely no need for your ability to write a VB compiler), which is about using the tools you create to solve the problems customers bring to us. I know that at your level you also provide direct solutions to customers, but your customers are typically much different from mine, and more technical. They tend to speak your language. Mine don't.

If you recognize the difference here, you'll understand that your remarks as to how lazy, untalented, and obsequious that we MS guys are (that's the impression I got, not what you said) are inflamatory and not likely to win friends and influence people. I am a quite accomplished application programmer. I've done kernal work, I've built compilers. I respect what you do. I just don't particulary care to do it. Oversimplifying application development (regardless of platform) to the point of trivializing it is offensive.

Thanks for letting me rant. I know you're just, well, a programmer. We're all proud of what we do. We love it, or we wouldn't do it. We just have to find some tolerance for other disciplines and realize that we're all needed, and that there are brilliant people at every level.

Ned

Please tolerate mine as well.

Yeah no problem, you seem to be a nice guy mister, and I am always in favour of a healthy debate.

Student?

Yes.

And btw even I need money, its so obvious, whenever we talk of something, money is always there. And btw I think you took my personal opinion and what I think as a personal insult. Believe it or not, I am not that kind of a guy who thinks his ego is more than anything else, if you still dont believe me ask the people at C++ forum.

2. So, if we code for the .net framework, we aren't 'real' programmers. We just drag and drop. In this, you are just flame baiting. It's not better than your languages of choice, but to dismiss it as a child's toy is offensive to those of us who make our living coding in it.

Again you took this as personal insult. The things I actually wrote were meant for a student who wanted to know where he should start off. I just wanted to make his start a bit challenging so in the near future he can easily make a transition to rapid prototying ones like .NET. I didnt know my comments would have such widespread impact.

3. I don't know quite how to quote this to make my point. Your last paragraph quoted above states the obvious - many people DO like to take things into their own hands and . . You are talking about two different disciplines - OS or Kernal developers, deep in the guts, system internals, raw register values... as opposed to Application Development (without which, by the way, there would be absolutely no need for your ability to write a VB compiler), which is about using the tools you create to solve the problems customers bring to us. I know that at your level you also provide direct solutions to customers, but your customers are typically much different from mine, and more technical. They tend to speak your language. Mine don't.

If you recognize the difference here, you'll understand that your remarks as to how lazy, untalented, and obsequious that we MS guys are (that's the impression I got, not what you said) are inflamatory and not likely to win friends and influence people.

I was just telling that core development is much more challenging than application development. I dont mean to offend anyone as such. You have done kernel development as well as quick application development, and even you know which is more challenging and thats exactly the point I was trying to prove.

Oversimplifying application development (regardless of platform) to the point of trivializing it is offensive.

Incorrect. I really high respect for programmers, so obviously I must be having great respect for Application developers. I learn from people and thats what gives me knowledge.

Thanks for letting me rant.

The pleasure is all mine.

We're all proud of what we do. We love it, or we wouldn't do it. We just have to find some tolerance for other disciplines and realize that we're all needed, and that there are brilliant people at every level.

Ned

Amen.

Regards,

~s.o.s~

Thanks for your response, SOS. Good debate, more common ground than appeared evident at first!

I guess the only thing that still bothers me is the concept that systems development is more challenging that application development. It's different parts of the same horse, but I can certainly trade stories of complexity and sheer technical prowess over an impossible problem with the best Sys Prog. Again, not better, just different. Complex system architecture, integration with unknown or legacy systems without clear definition or control over interfaces, data-mining poorly designed databases... All of this may seem to require less skill than you possess. I did not 'step down' from the challenges of low level programming. Indeed, I feel that my experiences at every tier allow me to bring formidable capability to my applications team. Sometimes even Sys Progs make our jobs difficult by not considering what the implications of technical decisions made at the OS or compiler level may have on our ability to effectively build applications on that framework.

I do want you to understand that telling new programmers that applications development is not challenging is a slanted view, based upon your hard won knowledge of systems programming. To those of us who prefer applications development, Systems programming is not much fun at all. Again, not better, not worse, just different. Good thing such diversity exists among programmers, right? I do a better job at my craft when you do a good job at yours, and hopefully my creative use of your tools and products challenge you to make even stronger and more capable tools and systems.

I do see that you're a responsible guy, I appreciate your recognizing that I'm just looking for healthy debate (arguments are fun, fights are not :) ), and I'm glad to be part of the community with you. Thanks again!

Ned

For a while there, I thought this was going to go the way of the bunsen burner when a statement is twisted to illogical extremes

Yeah thats the main problem with these MS guys, they just do whatever makes them $$$$.

1. Hmmm. So you're in this for the love of it? Money's not an issue in your life, at least at this time. Student? Independently wealthy?

I almost jumped into the fire. Glad I waited... :)

I guess the only thing that still bothers me is the concept that systems development is more challenging that application development. It's different parts of the same horse, but I can certainly trade stories of complexity and sheer technical prowess over an impossible problem with the best Sys Prog. Again, not better, just different.

Very true. One has to be careful when compareing something that's relatively unknown in their universe to something they know well. I'm a software engineer with a lot of applications background but not in what's commonly known as Application Programming. I've stayed away from AP for the most part because of my perceptions (right or wrong) of that particular sub-field.

I do want you to understand that telling new programmers that applications development is not challenging is a slanted view, based upon your hard won knowledge of systems programming.

Extremely good point. It's like choosing the West Coast or the Midwest. What do you like better, earthquakes or tornados? ;)

...and I'm glad to be part of the community with you.

As am I. But he still calls me MR. :mrgreen:

Heh didnt expect my trivial advice to a beginner to choose his language will have so many takers and will spark this healthy a debate.

Whatever I said previously was just based on my choice or what I like the most, so if any of my points make you unhappy or agitated please forgive me. Maybe I will just need to develop a broad perspective so that I can absorb the most from Professionals developers like Mr. WaltP and Mr. Ned. I know that being at 30+ of age has its advantage of being a man of this world so a student like me has to learn a lot.

Happy it didnt turn out the way of "hey you noob watchya mouth, will u? " .

I'm glad to be part of the community with you

Same here Sir. (didnt know this thread will be attracting someone at 43 :D )

For a while there, I thought this was going to go the way of the bunsen burner when a statement is twisted to illogical extremes

Just wanted to let you know that English is not my mother tongue so I would really appreciate if you keep it simple :D

As am I. But he still calls me MR.

Respect and help others and the same comes back to you eventually thats what I think :D

Anyways thanks a lot to everyone for this healthy discussion.
(the OP will be shocked at the way this thread is turning out to be :D)

Member Avatar for iamthwee

Heh didnt expect my trivial advice to a beginner to choose his language will have so many takers and will spark this healthy a debate.

Whatever I said previously was just based on my choice or what I like the most, so if any of my points make you unhappy or agitated please forgive me. Maybe I will just need to develop a broad perspective so that I can absorb the most from Professionals developers like Mr. WaltP and Mr. Ned. I know that being at 30+ of age has its advantage of being a man of this world so a student like me has to learn a lot.

Happy it didnt turn out the way of "hey you noob watchya mouth, will u? " .

Same here Sir. (didnt know this thread will be attracting someone at 43 :D )


Just wanted to let you know that English is not my mother tongue so I would really appreciate if you keep it simple :D


Respect and help others and the same comes back to you eventually thats what I think :D

Anyways thanks a lot to everyone for this healthy discussion.
(the OP will be shocked at the way this thread is turning out to be :D)

What you need to do SOS is learn everything you can, if you think just restricting yourself to c or c++ will be enough in the long run you are very much mistaken.

Learn as much as you can, in every language you can then you will have a better vision of how software integrates with each other on a grander scale.

Daniweb supports a lot of languages which is why I like it here, grab yourself a book and get stuck in!

What you need to do SOS is learn everything you can, if you think just restricting yourself to c or c++ will be enough in the long run you are very much mistaken.

Learn as much as you can, in every language you can then you will have a better vision of how software integrates with each other on a grander scale.

Daniweb supports a lot of languages which is why I like it here, grab yourself a book and get stuck in!

Heh Mr. Iamthwee thanks a lot for the advice, will keep that in mind.
Just wanted to let you know that hearing this thing from many people I have decided to jump into the the most mysterious langauge -- Common LISP. Heard that it improves the programmers perspective about programming. The same goes with Haskell.

Anyways thanks alot for the advice (didnt know you had a non - sarcastic side :mrgreen: )

Member Avatar for iamthwee

You can do. I don't really care it's all syntax at the end of the day. I'm happy to know that I've programmed some quite abstract programs in c and c++ such that I don't need to learn haskell to tell myself I'm gud.

In the end I guess I'm only interested in a language if it's popular enough to make money from programming in it.

And while you may knock the dotnet framework at the moment, eventually you'll realise it is worth while to learn, because a lot of businesses use it and pay people for support.

Similarily the same goes for java, php and mysql. They are all used extensively and all require some kind of support.

I'm not saying these languages will be used indefinitely. In the future they will eventually get phased out just like everything else.

Flexibility is the key, and an eagerness to learn summat knew.

Flexibility is the key, and an eagerness to learn summat knew.

Amen, my brethren. Younger programmers and folks who are new to posting in Tech forums, please take note of this thread.

This is how professionals agree to disagree, find common ground, and grow in our craft. This was and is a debate, a healthy exchange of ideas and concepts. No one got flamed, although you can tell that our passion for our work can easily lead to heated emotions. We managed to steer clear of that and in the end came out with a deeper respect for our various disciplines. That is what it's all about.

Thanks for having me!

Ned

Beware as to make native programs in C++.NET there is a bit of tinkering required sometimes , also not all of your VC6 projects will update correctly

Yeah you can have a bright future in .NET and why not go for some MCSD certification.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.