Which platform?
-
C++ probably has the best future of any alternative, though it may not be the best choice for your solution. Don't forget a thing called C++/CLI. Yeah, it's a little hard to get used to and the documentation on it is horrible, but I have taken a "normal" C++ application and recompiled it for C++/CLI without any changes and it worked. A bigger point is that you shouldn't be basing decisions on fringe rumors about what may or may not happen to software 10 or 20 years down the line. Despite all the hype over C#, .NET could choke and die by then. (Yes, I've been around long enough to see many "rock solid" technologies do just that many times.) Having said all that, for me the only real contenders for a serious software project are C# and C++. Not only will it give you the best tools and widest selection of SDKs, you'll have an easier time hiring people than if you went with something else, even VB. (Contrary to the hype, in my working experience C# is not a clear winner unless you're talking about ASP.NET, then the debate is over before it began. I personally still prefer C++ and am more productive in it, but will use C#.NET if it's appropriate.)
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
Joe Woodbury wrote:
A bigger point is that you shouldn't be basing decisions on fringe rumors about what may or may not happen to software 10 or 20 years down the line.
Yep, I know... In fact, I've been looking around Microsoft's news and blogs to find any information about that, yet I haven't been able to find any information. Part of the reason I posted this... er... post, was because I wanted to know if there were certain information from good sources. Yet as I suspected, they're only rumours (fortunately).
Joe Woodbury wrote:
I personally still prefer C++
So do I :). That's why I'm trying to refute the bosses' ideas. Thanks for your comments.
A polar bear is a bear whose coordinates has been changed in terms of sine and cosine. Personal Site
-
Nishant Sivakumar wrote:
Well pre-2003 would be 10 years and not 5.
like many people who aren't doing web stuff, i'm still writing native apps *. the world didn't switch to .Net when VS03 came out. * in fact, i'm still writing apps using a 16-bit IDE. (Clarion)
image processing toolkits | batch image processing | blogging
Chris Losinger wrote:
like many people who aren't doing web stuff, i'm still writing native apps *. the world didn't switch to .Net when VS03 came out.
Even if a post-Vista OS is released around 2012 that doesn't support user mode native C++ apps, it'd probably take another 2-3 years for people to adopt the new OS, so that'd give you a long time. And you can still use VC 2003/2005 to write apps for people who do not move to the new OS - just like how you still write 16 bit apps for people using a 16 bit compatible OS. There are folks making money writing Cobol and Fortran, so that'd give C++ devs hope for another 20 years at least. And if in 20 years time, I can't manage to get to a position where I don't need to write code to make a living, I would say that;d make me an unqualified failure in life. :)
Regards, Nish
Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
Currently working on C++/CLI in Action for Manning Publications. (*Sample chapter available online*) -
Fernando A. Gomez F. wrote:
They read somewhere that Microsoft's next OS won't be supporting anything but .NET Framework,
Ah yes, the mystical and wonderful "somewhere", where all is good, right and overflowing with an abundance of useful information :) You might politely suggest they upgrade their reading materials to something a bit factually correct. I would think that making corporate IT decisions based on cheese-whiz articles you read on the pot from places like "Super PC IT Weekly" would be a really bad idea. But who knows, I've been wrong before.
¡El diablo está en mis pantalones! ¡Mire, mire! Real Mentats use only 100% pure, unfooled around with Sapho Juice(tm)! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! Techno Silliness
Jim Crafton wrote:
the mystical and wonderful "somewhere"
Well, they gave me sources, yet none was from a Microsoft's site, so I didn't pay attention to them.
Jim Crafton wrote:
I would think that making corporate IT decisions based on cheese-whiz articles
I agree, that's why I'm looking for information on how to refute the bosses :).
A polar bear is a bear whose coordinates has been changed in terms of sine and cosine. Personal Site
-
Muammar© wrote:
I'd always use C# for my new projects cuz I believe, if I came to face any limitation, it must be because of me, not the language!
Limitations like lack of compile-time templates and inline assembly would be your fault then? :rolleyes:
Regards, Nish
Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
Currently working on C++/CLI in Action for Manning Publications. (*Sample chapter available online*)Nishant Sivakumar wrote:
Limitations like lack of compile-time templates and inline assembly would be your fault then?
:laugh::laugh:.. come on!! be fair to C#, unless you prefer to code in VB X| :laugh:
Smile: A curve that can set a lot of things straight! (\ /) (O.o) (><)
-
Fernando A. Gomez F. wrote:
They read somewhere that Microsoft's next OS won't be supporting anything but .NET Framework, so they are not convinced that C++ with Win32 should be the best option.
Sure Microsoft would "like" all applications in the world to be .Net. This would be grand, for them. Will it happen? tough to say for sure, Always in motion the Future is. Sometimes, let a Jedi know what may likely happen, the Force can. But show what definitely will happen, the Force cannot. err... uhmm... sorry about that.... Anyhow, you can read a lot from the past, and it supports the rumors, but not the likelihood. In Windows 95 Microsoft tried to kill OpenGL after the failed strong-arm at the Fahrenheit group and all members walked out on MS. OpenGL is still here. They tried again with XP, OpenGL is still here. They tried again with Vista, and were almost successful, but vendor pressure from numerous developer fronts, from Entertainment to Military. OpenGL is back. Microsoft provided the C++/CLI in hope to offer a bridge to .Net, but no one really wanted anyone to stay there, so more encouragement is put on C#. C++ survived. But if you want to talk to your boss about long range pipe dreams of MS and other companies, many would like you to have thin-clients, lease software off their servers for only the time of use, and pay everything as a service. So if they want to plan for rumors, pull out and throw away all their hard-drives and give them all internet appliences. :-D Rumors are handy to keep in mind, and perhaps plan for possibilities, but never base business plans on rumors. I do follow rumors, I do follow leaks of info, but our business plans change when things materialize. EVEN when I have inside information due to an NDA, I could easily press our company without even mentioning the actual information, in the right direction. But I won't, it's a very bad habit to start.
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
Jeffry J. Brickley wrote:
This would be grand, for them. Will it happen? tough to say for sure, Always in motion the Future is. Sometimes, let a Jedi know what may likely happen, the Force can. But show what definitely will happen, the Force cannot. err... uhmm... sorry about that....
:laugh::laugh::laugh::laugh::laugh: Ah! That reminded me of the SW thread posted a few days ago... Thanks for your comments.
A polar bear is a bear whose coordinates has been changed in terms of sine and cosine. Personal Site
-
C# or c++ either way you shouldn't have a problem in the next few years. It's a horrible way to select a tool though to do it by committee without any consideration of the time to market, technical requirements, intended target market etc etc. What you are describing is akin to a bunch of builders sitting around and discussing building a house and one guy says "use wood" another says "use stone" etc. It's more important to find out what the requirements are first, the rest should follow naturally. Personally I will never use c++ again, I think it's a dead language with many better options available now for software development (all .net based) but my primary requirement is always time to market and what I can do with limited resources. (I've written a *lot* of apps in c++ over the years). I would choose c# for just about anything I do, but if a gun was put to my head and I was told to choose between VB.NET or C++ I'd still choose VB.NET. To my point of view new development in c++ is for a) People writing device drivers or other ultra low level [edit: highly performance hungry like what Jeffrey is doing] stuff b) people in love with their own brilliance to the detriment of all else including the fact that they are writing software for a purpose and not for their own personal sake c) People stuck in their ways so badly they won't consider anything else. -- modified at 14:56 Wednesday 21st March, 2007
John Cardinal wrote:
To my point of view new development in c++ is for a) People writing device drivers or other ultra low level stuff b) people in love with their own brilliance to the detriment of all else including the fact that they are writing software for a purpose and not for their own personal sake c) People stuck in their ways so badly they won't consider anything else.
hmmmm.... So .Net competes equally well on real-time interactive, massively parallel, multi-platform 3D graphics environments on par with C++? So far, this I have not seen. I am fully aware of the C# accelerator that utilizes the GPU, though I have seen better performance with more control over the streams so CUDA and gigathread type technologies are more useful for providing multiple sharing points in GPU computation as well as rendering cooperatively -- straight GPU computation is better using the C# accelerator, but you drop the graphics to achieve it. C# is great, but for much of my applications, it doesn't compete. For some applications it does compete, and competes quite well, those applications are not ruled out by me, but by a few voices very anti-MS which I shrug and go on. I do not agree on those points, but their decisions only minorly affect mine. I know we could drop OpenGL and go Direct3D in which C# has some good performance applications, but that is not my choice to make even were I to choose to make it. There is a requirement for multi-platform support, specifically Linux, by the military. There is a requirement for high speed network and parallel computation in some projects. And actually some projects specifically mention, and require C++ directly from the DoD. So you are saying we should disobey the demands of our customer because you think we're all making bad choices? We may be wrong, but the customer is still right because they pay the $$. No $$, no choices at all.
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
-
C# or c++ either way you shouldn't have a problem in the next few years. It's a horrible way to select a tool though to do it by committee without any consideration of the time to market, technical requirements, intended target market etc etc. What you are describing is akin to a bunch of builders sitting around and discussing building a house and one guy says "use wood" another says "use stone" etc. It's more important to find out what the requirements are first, the rest should follow naturally. Personally I will never use c++ again, I think it's a dead language with many better options available now for software development (all .net based) but my primary requirement is always time to market and what I can do with limited resources. (I've written a *lot* of apps in c++ over the years). I would choose c# for just about anything I do, but if a gun was put to my head and I was told to choose between VB.NET or C++ I'd still choose VB.NET. To my point of view new development in c++ is for a) People writing device drivers or other ultra low level [edit: highly performance hungry like what Jeffrey is doing] stuff b) people in love with their own brilliance to the detriment of all else including the fact that they are writing software for a purpose and not for their own personal sake c) People stuck in their ways so badly they won't consider anything else. -- modified at 14:56 Wednesday 21st March, 2007
John Cardinal wrote:
To my point of view new development in c++ is for a) People writing device drivers or other ultra low level stuff b) people in love with their own brilliance to the detriment of all else including the fact that they are writing software for a purpose and not for their own personal sake c) People stuck in their ways so badly they won't consider anything else.
d) people who are 25+ and thus aren't as quick at grasping new technologies as they were in their teens and early 20s :-)
Regards, Nish
Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
Currently working on C++/CLI in Action for Manning Publications. (*Sample chapter available online*) -
John Cardinal wrote:
To my point of view new development in c++ is for a) People writing device drivers or other ultra low level stuff b) people in love with their own brilliance to the detriment of all else including the fact that they are writing software for a purpose and not for their own personal sake c) People stuck in their ways so badly they won't consider anything else.
hmmmm.... So .Net competes equally well on real-time interactive, massively parallel, multi-platform 3D graphics environments on par with C++? So far, this I have not seen. I am fully aware of the C# accelerator that utilizes the GPU, though I have seen better performance with more control over the streams so CUDA and gigathread type technologies are more useful for providing multiple sharing points in GPU computation as well as rendering cooperatively -- straight GPU computation is better using the C# accelerator, but you drop the graphics to achieve it. C# is great, but for much of my applications, it doesn't compete. For some applications it does compete, and competes quite well, those applications are not ruled out by me, but by a few voices very anti-MS which I shrug and go on. I do not agree on those points, but their decisions only minorly affect mine. I know we could drop OpenGL and go Direct3D in which C# has some good performance applications, but that is not my choice to make even were I to choose to make it. There is a requirement for multi-platform support, specifically Linux, by the military. There is a requirement for high speed network and parallel computation in some projects. And actually some projects specifically mention, and require C++ directly from the DoD. So you are saying we should disobey the demands of our customer because you think we're all making bad choices? We may be wrong, but the customer is still right because they pay the $$. No $$, no choices at all.
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
-
C# or c++ either way you shouldn't have a problem in the next few years. It's a horrible way to select a tool though to do it by committee without any consideration of the time to market, technical requirements, intended target market etc etc. What you are describing is akin to a bunch of builders sitting around and discussing building a house and one guy says "use wood" another says "use stone" etc. It's more important to find out what the requirements are first, the rest should follow naturally. Personally I will never use c++ again, I think it's a dead language with many better options available now for software development (all .net based) but my primary requirement is always time to market and what I can do with limited resources. (I've written a *lot* of apps in c++ over the years). I would choose c# for just about anything I do, but if a gun was put to my head and I was told to choose between VB.NET or C++ I'd still choose VB.NET. To my point of view new development in c++ is for a) People writing device drivers or other ultra low level [edit: highly performance hungry like what Jeffrey is doing] stuff b) people in love with their own brilliance to the detriment of all else including the fact that they are writing software for a purpose and not for their own personal sake c) People stuck in their ways so badly they won't consider anything else. -- modified at 14:56 Wednesday 21st March, 2007
John Cardinal wrote:
To my point of view new development in c++ is for ...
... d) people who can't force their customers to install the .Net framework.
image processing toolkits | batch image processing | blogging
-
John Cardinal wrote:
To my point of view new development in c++ is for a) People writing device drivers or other ultra low level stuff b) people in love with their own brilliance to the detriment of all else including the fact that they are writing software for a purpose and not for their own personal sake c) People stuck in their ways so badly they won't consider anything else.
d) people who are 25+ and thus aren't as quick at grasping new technologies as they were in their teens and early 20s :-)
Regards, Nish
Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
Currently working on C++/CLI in Action for Manning Publications. (*Sample chapter available online*)Well to be fair my 39th birthday passed (unnoticed here as usual, I guess I should stop being such a dick if I want people to wish me happy birthday :) ) a few days ago and I haven't lost any knack or desire for grasping new technologies unlike the bunch of luddites that hang out here. ;)
-
John Cardinal wrote:
To my point of view new development in c++ is for ...
... d) people who can't force their customers to install the .Net framework.
image processing toolkits | batch image processing | blogging
-
Well to be fair my 39th birthday passed (unnoticed here as usual, I guess I should stop being such a dick if I want people to wish me happy birthday :) ) a few days ago and I haven't lost any knack or desire for grasping new technologies unlike the bunch of luddites that hang out here. ;)
John Cardinal wrote:
Well to be fair my 39th birthday passed (unnoticed here as usual, I guess I should stop being such a dick if I want people to wish me happy birthday ) a few days ago and I haven't lost any knack or desire for grasping new technologies unlike the bunch of luddites that hang out here.
Well, you are in Canada and all that below-freezing weather slows down your ageing, so your brain age must be that of a 20 year old American :rolleyes:
Regards, Nish
Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
Currently working on C++/CLI in Action for Manning Publications. (*Sample chapter available online*) -
John Cardinal wrote:
To my point of view new development in c++ is for ...
... d) people who can't force their customers to install the .Net framework.
image processing toolkits | batch image processing | blogging
And this is one of the issues why I think the app needs to be written in C++, not .NET.
A polar bear is a bear whose coordinates has been changed in terms of sine and cosine. Personal Site
-
Sorry I should have been more clear, I meant what you are describing in point A) above, by ultra low level stuff I mean also ultra performant stuff.
John Cardinal wrote:
also ultra performant stuff.
thanks, this is a big issue with us. Though I do see folks controlling million dollar pieces of equipment at 1 to 4 fps update rate... they also have more crashes than we do. :)
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
-
Chris Losinger wrote:
like many people who aren't doing web stuff, i'm still writing native apps *. the world didn't switch to .Net when VS03 came out.
Even if a post-Vista OS is released around 2012 that doesn't support user mode native C++ apps, it'd probably take another 2-3 years for people to adopt the new OS, so that'd give you a long time. And you can still use VC 2003/2005 to write apps for people who do not move to the new OS - just like how you still write 16 bit apps for people using a 16 bit compatible OS. There are folks making money writing Cobol and Fortran, so that'd give C++ devs hope for another 20 years at least. And if in 20 years time, I can't manage to get to a position where I don't need to write code to make a living, I would say that;d make me an unqualified failure in life. :)
Regards, Nish
Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
Currently working on C++/CLI in Action for Manning Publications. (*Sample chapter available online*)Nishant Sivakumar wrote:
it'd probably take another 2-3 years for people to adopt the new OS
it'd take even longer if nobody wants to buy it if using it means buying new versions of all their apps (see Adobe + Vista - something that might've made me delay Vista for another year or so, if i'd known about it before i bought my latest PC with Vista pre-installed).
image processing toolkits | batch image processing | blogging
-
Nishant Sivakumar wrote:
it'd probably take another 2-3 years for people to adopt the new OS
it'd take even longer if nobody wants to buy it if using it means buying new versions of all their apps (see Adobe + Vista - something that might've made me delay Vista for another year or so, if i'd known about it before i bought my latest PC with Vista pre-installed).
image processing toolkits | batch image processing | blogging
Chris Losinger wrote:
it'd take even longer if nobody wants to buy it if using it means buying new versions of all their apps (see Adobe + Vista - something that might've made me delay Vista for another year or so, if i'd known about it before i bought my latest PC with Vista pre-installed).
Yeah, but here it's more a case of Adobe refusing to update their code so that people'd buy their new version. It's not really a case of a native-code incompatibility - I mean their new version that will run on Vista is still a native app (talking of Photoshop here).
Regards, Nish
Nish’s thoughts on MFC, C++/CLI and .NET (my blog)
Currently working on C++/CLI in Action for Manning Publications. (*Sample chapter available online*) -
C# or c++ either way you shouldn't have a problem in the next few years. It's a horrible way to select a tool though to do it by committee without any consideration of the time to market, technical requirements, intended target market etc etc. What you are describing is akin to a bunch of builders sitting around and discussing building a house and one guy says "use wood" another says "use stone" etc. It's more important to find out what the requirements are first, the rest should follow naturally. Personally I will never use c++ again, I think it's a dead language with many better options available now for software development (all .net based) but my primary requirement is always time to market and what I can do with limited resources. (I've written a *lot* of apps in c++ over the years). I would choose c# for just about anything I do, but if a gun was put to my head and I was told to choose between VB.NET or C++ I'd still choose VB.NET. To my point of view new development in c++ is for a) People writing device drivers or other ultra low level [edit: highly performance hungry like what Jeffrey is doing] stuff b) people in love with their own brilliance to the detriment of all else including the fact that they are writing software for a purpose and not for their own personal sake c) People stuck in their ways so badly they won't consider anything else. -- modified at 14:56 Wednesday 21st March, 2007
Looks like the b) & c) folks know who they are, and have tried to vote you into obscurity.
-
Looks like the b) & c) folks know who they are, and have tried to vote you into obscurity.
-
So, we are just about to begin a new project. We're now deciding which platform should be used. The bosses asked me about this, and I replied that my bet was on C++ and Win32, as usual. A colleague voted for Java ( X| ) and someone there even dared to suggest VB ( X| X| ). At any rate, the bosses are worried about the future of C++ and Win32. They read somewhere that Microsoft's next OS won't be supporting anything but .NET Framework, so they are not convinced that C++ with Win32 should be the best option. So I'd like to ask for your opinion about this... C++ still has a future? Should we choose C# and .NET over good old C++ and Win32? Thanks.
A polar bear is a bear whose coordinates has been changed in terms of sine and cosine. Personal Site
It depends on the app. C# w/ .NET has become a far better, far less dirty "Quick 'n' Dirty" RAD platform than VB ever was. And it's flexible enough that you can still use many non-managed components, if that's a necessity. That said, C++ still wins out if you're looking to go cross-platform. C++ still wins out if you're looking for maximum performance (provided you have the skills to actually take advantage of what it gives you). And straight Win32 wins out if... well, screw that. In the scenarios where straight Win32 wins out, the alternatives are too horrible to even contemplate, much less actively consider alternatives. So, yeah. If you're doing the standard "business app" where the bottlenecks are in front of the keyboard or across the network, C# on .NET. If you're doing a web app, C# on ASP.NET or Java are both good choices.
----
It appears that everybody is under the impression that I approve of the documentation. You probably also blame Ken Burns for supporting slavery.
--Raymond Chen on MSDN
-
So, we are just about to begin a new project. We're now deciding which platform should be used. The bosses asked me about this, and I replied that my bet was on C++ and Win32, as usual. A colleague voted for Java ( X| ) and someone there even dared to suggest VB ( X| X| ). At any rate, the bosses are worried about the future of C++ and Win32. They read somewhere that Microsoft's next OS won't be supporting anything but .NET Framework, so they are not convinced that C++ with Win32 should be the best option. So I'd like to ask for your opinion about this... C++ still has a future? Should we choose C# and .NET over good old C++ and Win32? Thanks.
A polar bear is a bear whose coordinates has been changed in terms of sine and cosine. Personal Site
Depending on the type of application, you might even consider Ruby. We have written several Ruby GUI apps (using FxRuby) that are well received. 1) For performance and heavy lifting (apps like Internet Explorer, Database servers, networking, high end graphics) - C++. 2) For quick, troublefree, functional desktop apps / batch processing - Ruby. 3) For web - C# / ASP