what language / API should i use for a windows application?

Started by
22 comments, last by GameDev.net 19 years, 1 month ago
My vote goes for C# (with winforms).
Failing that, C++ with MFC/wxWindows/[insert-your-favourite-wrapper-here]

I do recommend reconsidering Python (with wxWindows or similar), but if you really can't stand it, then I guess that's that.

C++ with winforms is a possibility; I don't have experience with it, so I won't say much, but given that it will be using managed C++, I believe it would be easier to use C# from the beginning (you should be able to pick it up quite quickly if you're experienced with C++ and you get to grips with the whole managed thing)

Not pure GDI for something like this, since the interface will be too complex and you'll end up with a hacked up MFC clone anyway.

Not SDL; you don't need the advantages it provides, and you do need things that it doesn't provide. Sure, you could use it, plus some freely available GUI system, but I don't believe it would give you any advantage over MFC/wxWindows/whatever, and you'll end up with an ugly, half broken and non-standard interface.

John B
The best thing about the internet is the way people with no experience or qualifications can pretend to be completely superior to other people who have no experience or qualifications.
Advertisement
Quote:Original post by graveyard filla
also, you think that learning C# and using winforms would be faster then just using C++ and winforms?


I believe so, for managed c++ you need to change your mindset from value semantic based language to reference semantics (not to be confused with C++ reference types). C# is reference semantic biased language, standard C++ is value semantic biased.

Managed C++ adds languages extensions for C++ to gel well in a managed enviroment and you'll need to know about some of them, understand how the garabage collector effects how you work with memory/resources, that you have finalizers aswell as destructors for objects, pretty much some of the stuff your going learn from C# but more simplified less issues to deal with and i bet much more pleasant to work with, to me managed c++ looks more like a big hack compared to C++/CLI [wink].

Quote:Original post by graveyard filla
last, what about the Win32 API? is that just way out of the question in times of how long it would take to learn / use?


Its not diffcult its just nasty not worth the time in fact you'll probably waste time for a complex interface (i wish it would just go away to be honest), its a C API besides, this is the problem domain that OO languages excel, GUIs.

[Edited by - snk_kid on March 14, 2005 5:12:00 PM]
Another vote for C#.

I recently rewrote a program for my wife's business, from C++ to C#, both created using WinForms in VS2003.Net. Had never used C# before, and used Win32 (not MFC) for the original program.

The difference in production time was shocking. For your typical windows style front-end (essentially a front-end for SQL for my program), C# just makes handling all the clicking et al so much easier.

Plus - have you seen the C++ syntax for a treeview? Not for me, thanks!

And finally - don't forget it's another language on your resume!

Jim.
I also vote for C# or python with wxwindows.

STAY AWAY FROM MANAGED C++! The first implementation was so bad that, as many previous posters have stated, MS is totally redoing it. The new managed C++ syntax, thankfully, looks as if it will be much better.

------------------------------------------------------- A headache, ancillary; an hourglass auxiliary."something witty, blah, blah, blah" --That One Witty Guy (remember? that one dude?)(author of DustBot)
Quote:Original post by JimPrice
Another vote for C#.

I recently rewrote a program for my wife's business, from C++ to C#, both created using WinForms in VS2003.Net. Had never used C# before, and used Win32 (not MFC) for the original program.

The difference in production time was shocking. For your typical windows style front-end (essentially a front-end for SQL for my program), C# just makes handling all the clicking et al so much easier.

Plus - have you seen the C++ syntax for a treeview? Not for me, thanks!

And finally - don't forget it's another language on your resume!

Jim.


Tree views are pretty easy in MFC, if you wrote it using the C Win32 API, then you have my extreme sympathy.

To the OP, either C# or MFC will fit the bill nicely. I would say to go with C# if you're at all comfortable with it, as it will benefit you in the long run. MFC is actually almost as easy to use and has some features that C# still doesn't (or didn't last time I checked) like support for Wizards, but as I said C# will benefit you more in terms of the job market.
if you think programming is like sex, you probably haven't done much of either.-------------- - capn_midnight
Throwing in my vote with the lot for C# or Python.

I was in the same position (sounds very similar only a bit larger scale on my end) and ended up using C# for the first time. Absolutely great experience.
Some further ideas:

You might try doing it in GTK or Qt. Both are easy to work with. Commercial apps in Qt will require a license, but you can use GTK for free i believe. I know one of Nikon's photography applications is done in Qt and looks great. I have used GTK with perl for a small little project i did and it was fine. The only hitch there is that you have to distribute the GTK libs with your project since they are certainly not standard on Windows.

PS: how did you come across this job? I wish i had someone offer me a programming job :-(

PPS: hey, our ratings match again! It's like a race!
I'd do it in C#, and I'd buy a third-party control for the graph.
- The trade-off between price and quality does not exist in Japan. Rather, the idea that high quality brings on cost reduction is widely accepted.-- Tajima & Matsubara
thanks everyone for your replies. i still havent gotten the spec yet, but ive already picked up a few C# books (can anyone recommend any?) from my school library. i most likely will use C#, unless i cant wrap my head around the winforms thing, in which case ill use C++ w/ wxWidgets or something.

leiavoia, lucky me, turns out a friend of the family owns a software company on Wall street. he had a few projects laying around and hooked me up with this one. im a little nervous, but i think i can handle it [grin].
FTA, my 2D futuristic action MMORPG
well shoot, get me one too! After all i've done for you!

*grovels*

:-)

This topic is closed to new replies.

Advertisement