Development platform decision
-
Hi all, I am in a dillema. We specialize in Desktop Apps and currently use VC++ with ATL and WTL for our products. Now our president wants to move to a faster development platform. He says MFC and .NET are not options (I dunno why). I had recommended .NET but he says look for other alternatives. I have considered RUBY, PYTHON and Java but dunno which is the best platform to go with. My requirements are: 1) Development time must come down to a minimum. 2) Must provide support to access the Win32 API because we use a lot of those for custom windows, Sidebar interfaces and stuff. 3) Must be able to connect to Web services easily and better if it contains XML pasring libraries by default. Can anyone help me choose between the above mentioned three options or are there some more? Or should we stick with VC++? HELP!!!
--- :beer: Hakuna-Matada :beer: It means no worries for the rest of your days... It's our problem free, Philosophy :jig: It’s rather simple to write an unmanaged C++ application that crashes when it performs a callback. It’s impossible to write a managed application that does the same, thanks to delegates. - Jeff Prosise
-
Check out the VCF: http://vcf-online.org/[^]. I recently ported an app from ATL/WTL over to it, and it's very .net like and easy use and customize.
- S 50 cups of coffee and you know it's on!
-
And if in addition you want to add the multi platform without so much additional effort, you may take a look at wxWidgets...and with such solution, why not stick with VC++?...
merckel wrote:
wxWidgets
You beat me to it. It also does have the added benefit of being easy to learn if you're used to MFC IMO.
Jeremy Falcon A multithreaded, OpenGL-enabled application.[^]
-
It looks very promising, how was your experience?
I don't believe in failure. It is not failure if you enjoyed the process.
Having experience with C#, J something, ATL/WTL, MFC and Win32 API, I found it very easy to port my app over. There's a lot of the best of other frameworks. There were a few bumps along the way, but nothing that couldn't be resolved with a little digging and asking questions on the forums. Having the source code is really helpful, because when something doesn't work as expected, you can figure out how it was designed to work and how you're supposed to use it, which is way different than blindly poking an API with a stick to figure out why it's not working. Quite refreshing really. Check out the GRip success story for more. :-O
- S 50 cups of coffee and you know it's on!
-
Hi all, I am in a dillema. We specialize in Desktop Apps and currently use VC++ with ATL and WTL for our products. Now our president wants to move to a faster development platform. He says MFC and .NET are not options (I dunno why). I had recommended .NET but he says look for other alternatives. I have considered RUBY, PYTHON and Java but dunno which is the best platform to go with. My requirements are: 1) Development time must come down to a minimum. 2) Must provide support to access the Win32 API because we use a lot of those for custom windows, Sidebar interfaces and stuff. 3) Must be able to connect to Web services easily and better if it contains XML pasring libraries by default. Can anyone help me choose between the above mentioned three options or are there some more? Or should we stick with VC++? HELP!!!
--- :beer: Hakuna-Matada :beer: It means no worries for the rest of your days... It's our problem free, Philosophy :jig: It’s rather simple to write an unmanaged C++ application that crashes when it performs a callback. It’s impossible to write a managed application that does the same, thanks to delegates. - Jeff Prosise
I hate to say it, because I don't like code generators: http://www.genwise.com[^] This application seems to cut down on the development time rather drastically and it allows you to customize templates, so you can add P/Invoke code for those Win32 things you need to do. It's an idea, but it's not pretty and I would advice you to setup a decent development process using XP or something like that. It streamlines the way you develop instead of buying expensive tools that just move the problem to another spot in the process.
WM. What about weapons of mass-construction?
-
Hi all, I am in a dillema. We specialize in Desktop Apps and currently use VC++ with ATL and WTL for our products. Now our president wants to move to a faster development platform. He says MFC and .NET are not options (I dunno why). I had recommended .NET but he says look for other alternatives. I have considered RUBY, PYTHON and Java but dunno which is the best platform to go with. My requirements are: 1) Development time must come down to a minimum. 2) Must provide support to access the Win32 API because we use a lot of those for custom windows, Sidebar interfaces and stuff. 3) Must be able to connect to Web services easily and better if it contains XML pasring libraries by default. Can anyone help me choose between the above mentioned three options or are there some more? Or should we stick with VC++? HELP!!!
--- :beer: Hakuna-Matada :beer: It means no worries for the rest of your days... It's our problem free, Philosophy :jig: It’s rather simple to write an unmanaged C++ application that crashes when it performs a callback. It’s impossible to write a managed application that does the same, thanks to delegates. - Jeff Prosise
HakunaMatada wrote:
Now our president wants to move to a faster development platform.
Is he even a programmer? Or, was he one of those guys that programmed 20 years ago and still wants to play developer even though they are still clueless now as was then when someone suggested a change of career? :rolleyes:
HakunaMatada wrote:
My requirements are: 1) Development time must come down to a minimum. 2) Must provide support to access the Win32 API because we use a lot of those for custom windows, Sidebar interfaces and stuff. 3) Must be able to connect to Web services easily and better if it contains XML pasring libraries by default.
I'll have to second wxWidgets[^]. It's cross platform and has a good-sized community, printed books, etc. for learning. If you're used to MFC, it's trivial to learn. It's drawback would be native support for web services, but you can code support for that relatively easy with its XML support.
Jeremy Falcon A multithreaded, OpenGL-enabled application.[^]
-
HakunaMatada wrote:
Any specific reasons that I shouldn't?
Python is a scripting language, can you even write desktop apps in it ?
HakunaMatada wrote:
nd my boss says he has specific reasons why he doesn't want to use .NET.
I'd love to hear them.
Christian Graus - C++ MVP 'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
Christian Graus wrote:
I'd love to hear them.
That's classified! ;P
--- :beer: Hakuna-Matada :beer: It means no worries for the rest of your days... It's our problem free, Philosophy :jig: It’s rather simple to write an unmanaged C++ application that crashes when it performs a callback. It’s impossible to write a managed application that does the same, thanks to delegates. - Jeff Prosise
-
HakunaMatada wrote:
Any specific reasons that I shouldn't?
Python is a scripting language, can you even write desktop apps in it ?
HakunaMatada wrote:
nd my boss says he has specific reasons why he doesn't want to use .NET.
I'd love to hear them.
Christian Graus - C++ MVP 'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
Christian Graus wrote:
I'd love to hear them.
Maybe he read an article titled "Why every developer should learn C#." I know. I'm evil. I admit it. :laugh:
Jeremy Falcon A multithreaded, OpenGL-enabled application.[^]
-
HakunaMatada wrote:
Now our president wants to move to a faster development platform.
Is he even a programmer? Or, was he one of those guys that programmed 20 years ago and still wants to play developer even though they are still clueless now as was then when someone suggested a change of career? :rolleyes:
HakunaMatada wrote:
My requirements are: 1) Development time must come down to a minimum. 2) Must provide support to access the Win32 API because we use a lot of those for custom windows, Sidebar interfaces and stuff. 3) Must be able to connect to Web services easily and better if it contains XML pasring libraries by default.
I'll have to second wxWidgets[^]. It's cross platform and has a good-sized community, printed books, etc. for learning. If you're used to MFC, it's trivial to learn. It's drawback would be native support for web services, but you can code support for that relatively easy with its XML support.
Jeremy Falcon A multithreaded, OpenGL-enabled application.[^]
Jeremy Falcon wrote:
I'll have to second wxWidgets[^].
Have you personally worked with wxWidgets? Any pitfalls / odd licensing agreements?
I'd love to help, but unfortunatley I have prior commitments monitoring the length of my grass. :Andrew Bleakley:
-
Jeremy Falcon wrote:
I'll have to second wxWidgets[^].
Have you personally worked with wxWidgets? Any pitfalls / odd licensing agreements?
I'd love to help, but unfortunatley I have prior commitments monitoring the length of my grass. :Andrew Bleakley:
S Douglas wrote:
Have you personally worked with wxWidgets? Any pitfalls / odd licensing agreements?
For home projects I have. It's not exactly the same as MFC, but if you know one you can learn the other because the concepts are right on par with one another. Only pitfall that I can really think of is some of the UI components do look a bit dated, but you can make custom ones if desired. About the licensing, I haven't noticed anything, but you know how it goes... IANAL. :-D
Jeremy Falcon A multithreaded, OpenGL-enabled application.[^]
-
S Douglas wrote:
Have you personally worked with wxWidgets? Any pitfalls / odd licensing agreements?
For home projects I have. It's not exactly the same as MFC, but if you know one you can learn the other because the concepts are right on par with one another. Only pitfall that I can really think of is some of the UI components do look a bit dated, but you can make custom ones if desired. About the licensing, I haven't noticed anything, but you know how it goes... IANAL. :-D
Jeremy Falcon A multithreaded, OpenGL-enabled application.[^]
Jeremy Falcon wrote:
UI components do look a bit dated,
You say dated, I say functional, I actually don’t like the Fisher price UIs that are popular now.
I'd love to help, but unfortunatley I have prior commitments monitoring the length of my grass. :Andrew Bleakley:
-
Jeremy Falcon wrote:
UI components do look a bit dated,
You say dated, I say functional, I actually don’t like the Fisher price UIs that are popular now.
I'd love to help, but unfortunatley I have prior commitments monitoring the length of my grass. :Andrew Bleakley:
S Douglas wrote:
You say dated, I say functional, I actually don’t like the Fisher price UIs that are popular now.
Well, to each his own. Although, you know as well as I do, XP themes, etc. doesn't automatically make something less functional. Let's at least play fair. ;P
Jeremy Falcon A multithreaded, OpenGL-enabled application.[^]
-
S Douglas wrote:
You say dated, I say functional, I actually don’t like the Fisher price UIs that are popular now.
Well, to each his own. Although, you know as well as I do, XP themes, etc. doesn't automatically make something less functional. Let's at least play fair. ;P
Jeremy Falcon A multithreaded, OpenGL-enabled application.[^]
-
Jeremy Falcon wrote:
Let's at least play fair.
WHY? :) It's more fun to complain :rolleyes:
I'd love to help, but unfortunatley I have prior commitments monitoring the length of my grass. :Andrew Bleakley:
S Douglas wrote:
It's more fun to complain
:-D
Jeremy Falcon A multithreaded, OpenGL-enabled application.[^]
-
Hi all, I am in a dillema. We specialize in Desktop Apps and currently use VC++ with ATL and WTL for our products. Now our president wants to move to a faster development platform. He says MFC and .NET are not options (I dunno why). I had recommended .NET but he says look for other alternatives. I have considered RUBY, PYTHON and Java but dunno which is the best platform to go with. My requirements are: 1) Development time must come down to a minimum. 2) Must provide support to access the Win32 API because we use a lot of those for custom windows, Sidebar interfaces and stuff. 3) Must be able to connect to Web services easily and better if it contains XML pasring libraries by default. Can anyone help me choose between the above mentioned three options or are there some more? Or should we stick with VC++? HELP!!!
--- :beer: Hakuna-Matada :beer: It means no worries for the rest of your days... It's our problem free, Philosophy :jig: It’s rather simple to write an unmanaged C++ application that crashes when it performs a callback. It’s impossible to write a managed application that does the same, thanks to delegates. - Jeff Prosise
Here's a wild and wacky idea - GNUstep[^] - this is a similar programming setup to the Cocoa libraries on OS X. Those are pretty nice to develop in (debuggging's not so great, as it uses GDB). Compliance to your requirements is:
- Hmmmm - you can never say you've met this one - what is 'the minimum'...
- It uses GNU Objective C. That can call out to any C API, including Windows ones. It's built on native windowing, so you'll probably be able to access HWNDs, messages etc?
- The base libraries contain an XML parser[^]. There are the GNUStepWeb[^] libraries for Web services, based on WebObjects[^].
-
Hi all, I am in a dillema. We specialize in Desktop Apps and currently use VC++ with ATL and WTL for our products. Now our president wants to move to a faster development platform. He says MFC and .NET are not options (I dunno why). I had recommended .NET but he says look for other alternatives. I have considered RUBY, PYTHON and Java but dunno which is the best platform to go with. My requirements are: 1) Development time must come down to a minimum. 2) Must provide support to access the Win32 API because we use a lot of those for custom windows, Sidebar interfaces and stuff. 3) Must be able to connect to Web services easily and better if it contains XML pasring libraries by default. Can anyone help me choose between the above mentioned three options or are there some more? Or should we stick with VC++? HELP!!!
--- :beer: Hakuna-Matada :beer: It means no worries for the rest of your days... It's our problem free, Philosophy :jig: It’s rather simple to write an unmanaged C++ application that crashes when it performs a callback. It’s impossible to write a managed application that does the same, thanks to delegates. - Jeff Prosise
Erm...it sounds like your "president" has lost time with reality. As Christian has rightly pointed out, Python, Java etc are not best suited to desktop app development. If you want speed of development, .NET is the way to go. If you want tight efficient code with the most responsive UI possible, choose one of the native frameworks with C++. It sounds like you're there already. If your compnay is pushing rapid development in this way they are almost certainly neglecting quality. If you can't turn it around, my advice would be to take your skills to a company that has a more balanced perspective. :rose:
Anna :rose: Linting the day away :cool: Anna's Place | Tears and Laughter "If mushy peas are the food of the devil, the stotty cake is the frisbee of God"
-
Ruby, and Python ? For desktop apps ? Java is even worse. Does he mean speed to run, or speed to develop ? If he means speed to run, he's an idiot. C++ is always going to be fastest, unless you recommend Win32 and C.
HakunaMatada wrote:
Development time must come down to a minimum.
VB.NET - you don't have to write ANY code to create pretty, badly put together applications
HakunaMatada wrote:
Must provide support to access the Win32 API because we use a lot of those for custom windows, Sidebar interfaces and stuff.
C#, VB.NET, or C++.
HakunaMatada wrote:
Must be able to connect to Web services easily and better if it contains XML pasring libraries by default
C# or VB.NET. Looks like your boss is a moron. He wants those things, but only if they're not on the most widely supported platform that provides them ?
Christian Graus - C++ MVP 'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
Well said. 5. :rose:
Anna :rose: Linting the day away :cool: Anna's Place | Tears and Laughter "If mushy peas are the food of the devil, the stotty cake is the frisbee of God"
-
Hi all, I am in a dillema. We specialize in Desktop Apps and currently use VC++ with ATL and WTL for our products. Now our president wants to move to a faster development platform. He says MFC and .NET are not options (I dunno why). I had recommended .NET but he says look for other alternatives. I have considered RUBY, PYTHON and Java but dunno which is the best platform to go with. My requirements are: 1) Development time must come down to a minimum. 2) Must provide support to access the Win32 API because we use a lot of those for custom windows, Sidebar interfaces and stuff. 3) Must be able to connect to Web services easily and better if it contains XML pasring libraries by default. Can anyone help me choose between the above mentioned three options or are there some more? Or should we stick with VC++? HELP!!!
--- :beer: Hakuna-Matada :beer: It means no worries for the rest of your days... It's our problem free, Philosophy :jig: It’s rather simple to write an unmanaged C++ application that crashes when it performs a callback. It’s impossible to write a managed application that does the same, thanks to delegates. - Jeff Prosise
Question: Is this a shrink wrapped standalone product ? If not, Ruby is an excellent choice. With FxRuby you can create powerful desktop apps, which wont be as responsive as C++/MFC but will compare very favorably with Java. .NET will fall somewhere in the middle. We have developed several in house desktop UI tools in Ruby and I can vouch for its ease of development and maintenance. We are a windows shop and we had mucked around with C# and Java, before standardizing on Ruby for all our inhouse and add-on tools. The thing is we have totally sidestepped CLR based languages at the moment. Our hardcore stuff is done in C++ and all side tools and in Ruby. If you are interested in the types of tools you can create using FxRuby, see one of our popular tools Asterisk VoIP Call analyzer[^]
-
Erm...it sounds like your "president" has lost time with reality. As Christian has rightly pointed out, Python, Java etc are not best suited to desktop app development. If you want speed of development, .NET is the way to go. If you want tight efficient code with the most responsive UI possible, choose one of the native frameworks with C++. It sounds like you're there already. If your compnay is pushing rapid development in this way they are almost certainly neglecting quality. If you can't turn it around, my advice would be to take your skills to a company that has a more balanced perspective. :rose:
Anna :rose: Linting the day away :cool: Anna's Place | Tears and Laughter "If mushy peas are the food of the devil, the stotty cake is the frisbee of God"
Anna-Jayne Metcalfe wrote:
my advice would be to take your skills to a company that has a more balanced perspective.
:rolleyes: Now that is an interesting thought...
--- :beer: Hakuna-Matada :beer: It means no worries for the rest of your days... It's our problem free, Philosophy :jig: It’s rather simple to write an unmanaged C++ application that crashes when it performs a callback. It’s impossible to write a managed application that does the same, thanks to delegates. - Jeff Prosise
-
Question: Is this a shrink wrapped standalone product ? If not, Ruby is an excellent choice. With FxRuby you can create powerful desktop apps, which wont be as responsive as C++/MFC but will compare very favorably with Java. .NET will fall somewhere in the middle. We have developed several in house desktop UI tools in Ruby and I can vouch for its ease of development and maintenance. We are a windows shop and we had mucked around with C# and Java, before standardizing on Ruby for all our inhouse and add-on tools. The thing is we have totally sidestepped CLR based languages at the moment. Our hardcore stuff is done in C++ and all side tools and in Ruby. If you are interested in the types of tools you can create using FxRuby, see one of our popular tools Asterisk VoIP Call analyzer[^]
Thanks for sharing your experience. :)
--- :beer: Hakuna-Matada :beer: It means no worries for the rest of your days... It's our problem free, Philosophy :jig: It’s rather simple to write an unmanaged C++ application that crashes when it performs a callback. It’s impossible to write a managed application that does the same, thanks to delegates. - Jeff Prosise