What language to learn for creating Windows apps?



  • I'm a scripter turned application programmer by taking on the maintenance of some of our internal applications for controlling machinery. They're written using a niche language that is good for quick development of basic applications but has some real shortcomings. I think I've wasted enough time with this language and am looking to learn something more standard and portable that I can use to rewrite these applications. If you had to write an application from scratch that would be run primarily on Windows computers to communicate with USB/Serial devices, what would you use? What if it needed to run on other processors (like ARM) or operating systems like MacOS?



  • If it needed to run on Windows machines only, C#, no question.  If it needs to run on Linux/Mac, and WINE is an option, then it's still good.  If not, maybe Java or if that's not viable C++?



  • Just to clarify, when Sutherlands said WINE, I'm pretty sure he was talking about Mono... WINE is for running native Windows apps on Linux/Mac, while Mono is a port of .NET to Linux/Mac.



  • Yes, whoops!



  • Then there's always PERL..


  • ♿ (Parody)

    It's hard to find anything more portable than good old C (especially if the ARM portability is important). However, if you're doing any sort of GUI work, that's probably more pain than it's worth. The first thing I'd look into is what's available to you as far as USB/Serial libraries that you can use. The C# route seems like the most painless way these days if portability isn't terribly important. You might have luck with Mono as mentioned, and it seems to run on at least some ARM processors, but it seems like it would almost certainly be more pain that getting vanilla C to operate there.



  • Excellent, I was already leaning towards C++/C#+.Net and Mono looks pretty tasty with its cross-platform support. I'm trying to avoid investing a lot of time learning the buzzword language of the year only to have nobody care about it when I finally become proficient in it. Can anyone recommend a decent quickstart book for C#+.Net/Mono?



  • C# is such a huge time saver over C or C++ that, if it turns out you do need to port it, you could consider just rewrite the port from scratch and count it against the "time saved" bank. And if you never need to port, congratulations you just banked a bunch of time.

    The other thing you could do is look into a cross-platform tool like RealBasic or Runtime Revolution or Filemaker. I haven't used any of those tools in a long time, but last time I touched it, RealBasic was damned good for things like this.



  • @error_NoError said:

    Excellent, I was already leaning towards C++/C#+.Net and Mono looks pretty tasty with its cross-platform support. I'm trying to avoid investing a lot of time learning the buzzword language of the year only to have nobody care about it when I finally become proficient in it. Can anyone recommend a decent quickstart book for C#+.Net/Mono?
    I like Effective C# and More Effective C#, but they're not exactly quickstart books.  What are you already proficient in?



  • @Sutherlands said:

    I like Effective C# and More Effective C#, but they're not exactly quickstart books.
     

    That's ironic on multiple levels.



  • @blakeyrat said:

    C# is such a huge time saver over C or C++ that, if it turns out you do need to port it, you could consider just rewrite the port from scratch and count it against the "time saved" bank. And if you never need to port, congratulations you just banked a bunch of time.

    The other thing you could do is look into a cross-platform tool like RealBasic or Runtime Revolution or Filemaker. I haven't used any of those tools in a long time, but last time I touched it, RealBasic was damned good for things like this.

    Unfortunately, RealBasic is what I'm trying to move away from. It was a great way for me to move from scripting to the GUI world, but as I try to make applications more robust I'm running into all the quirks and bugs that won't ever get fixed. The current applications I have in mind are Windows only but it would be useful to have the option to port them to MacOS/Linux. From the research I've done it sounds like C# is the way to go, I can target .Net initially for Windows and then do some porting to Mono for the MacOS/Linux ports.

    @Sutherlands said:

    I like Effective C# and More Effective C#, but they're not exactly quickstart books. What are you already proficient in?

    I guess quickstart is the opposite of what I need, I've dabbled in a lot of things but mostly webdev stuff with PHP and Perl, and more recently RealBasic for maintaining the machinery applications. I can quickly learn to hack together a program in anything, but I'd like to know how to do it the right way. Moving from a console to a GUI world introduces a whole other level of complexity so a book that shows how to efficiently manage that complexity using good practices and patterns is probably what I need.



  • RealBASIC, huh? Perhaps you'd find VB.NET more your style?



  • @ekolis said:

    RealBASIC, huh? Perhaps you'd find VB.NET more your style?

    RealBasic is a lot closer to C# than it is to Visual Basic, both syntax-wide and library-wise.

    But I guess you don't care about that, you just wanted to make a snark based on its name. Bravo.



  • @error_NoError said:

    I'm a scripter turned application programmer by taking on the maintenance of some of our internal applications for controlling machinery. They're written using a niche language that is good for quick development of basic applications but has some real shortcomings. I think I've wasted enough time with this language and am looking to learn something more standard and portable that I can use to rewrite these applications. If you had to write an application from scratch that would be run primarily on Windows computers to communicate with USB/Serial devices, what would you use? What if it needed to run on other processors (like ARM) or operating systems like MacOS?

    if you learn java, there are severe advantages I can list.

    1. You can send your app on any platform (windows included)

    2. You can jump quickly on mobile app development

    3. Other developer will take you more seriously.


  • @Nagesh said:

    @error_NoError said:
    I'm a scripter turned application programmer by taking on the maintenance of some of our internal applications for controlling machinery. They're written using a niche language that is good for quick development of basic applications but has some real shortcomings. I think I've wasted enough time with this language and am looking to learn something more standard and portable that I can use to rewrite these applications. If you had to write an application from scratch that would be run primarily on Windows computers to communicate with USB/Serial devices, what would you use? What if it needed to run on other processors (like ARM) or operating systems like MacOS?
    if you learn java, there are severe advantages I can list.
    1) You can send your app on any platform (windows included)
    2) You can jump quickly on mobile app development
    3) Other developer [b]in Hyderabad[/b] will take you more seriously.
    FTFY



  • @Sutherlands said:

    @Nagesh said:

    @error_NoError said:
    I'm a scripter turned application programmer by taking on the maintenance of some of our internal applications for controlling machinery. They're written using a niche language that is good for quick development of basic applications but has some real shortcomings. I think I've wasted enough time with this language and am looking to learn something more standard and portable that I can use to rewrite these applications. If you had to write an application from scratch that would be run primarily on Windows computers to communicate with USB/Serial devices, what would you use? What if it needed to run on other processors (like ARM) or operating systems like MacOS?
    if you learn java, there are severe advantages I can list.
    1) You can send your app on any platform (windows included)
    2) You can jump quickly on mobile app development
    3) Other developer in Hyderabad will take you more seriously.
    FTFY

    Is sad that you are looking at Blakeyrat for approval.

    Don't jump on bandwagon unless you know band beforehand.



  • @Nagesh said:

    @Sutherlands said:

    @Nagesh said:

    @error_NoError said:
    I'm a scripter turned application programmer by taking on the maintenance of some of our internal applications for controlling machinery. They're written using a niche language that is good for quick development of basic applications but has some real shortcomings. I think I've wasted enough time with this language and am looking to learn something more standard and portable that I can use to rewrite these applications. If you had to write an application from scratch that would be run primarily on Windows computers to communicate with USB/Serial devices, what would you use? What if it needed to run on other processors (like ARM) or operating systems like MacOS?
    if you learn java, there are severe advantages I can list.
    1) You can send your app on any platform (windows included)
    2) You can jump quickly on mobile app development
    3) Other developer in Hyderabad will take you more seriously.
    FTFY

    Is sad that you are looking at Blakeyrat for approval.

    Don't jump on bandwagon unless you know band beforehand.

    My first job out of college was writing in Java.  At my current job we have a system that we maintain in Java.  I'll take C# over it any day.

    Also, I wasn't looking to Blakeyrat for approval.  I was jabbing at him because he hates the FTFY meme.



  • @blakeyrat said:

    RealBasic is a lot closer to C# than it is to Visual Basic, both syntax-wide and library-wise.

    But I guess you don't care about that, you just wanted to make a snark based on its name. Bravo.

    No, I was not making a snark; I was merely making an assumption which proved to be false. I've never used RealBASIC before, but I thought it would be reasonable that it would have a BASIC-like syntax...



  • Right now we are using Python+PyUSB+PySide and it works like a charm with our mac and linux customers and the couple that still use windows.
    But, if your target audience is mainly windows I'll pick C#.



  • HTML5, Javascript, Jquery -- Windows 8 will supposedly be more amenable to these types of "apps", and it will allow you to create applications for the web and other platforms.



  • another option is Adobe AIR or FLEX I think.



  • @Sutherlands said:

    @Nagesh said:

    @error_NoError said:
    I'm a scripter turned application programmer by taking on the maintenance of some of our internal applications for controlling machinery. They're written using a niche language that is good for quick development of basic applications but has some real shortcomings. I think I've wasted enough time with this language and am looking to learn something more standard and portable that I can use to rewrite these applications. If you had to write an application from scratch that would be run primarily on Windows computers to communicate with USB/Serial devices, what would you use? What if it needed to run on other processors (like ARM) or operating systems like MacOS?
    if you learn java, there are severe advantages I can list.
    1) You can send your app on any platform (windows included)
    2) You can jump quickly on mobile app development
    3) Other developer in Hyderabad will take you more seriously.
    FTFY


    I'm not in Hyderabad, and I can tell you that I have a more respect for Java programmers than I do for C# programmers. In general, neither group really knows what they're doing, but the Java people at least try. The C# people are just corporate tools. They heard they could make a living wage programming, and they've heard of Microsoft. The result: insta-programmer, often with zero passion or mathematical aptitude, sometimes with a very expensive piece of paper printed by Microsoft.



  • @bridget99 said:

    @Sutherlands said:

    @Nagesh said:

    @error_NoError said:
    I'm a scripter turned application programmer by taking on the maintenance of some of our internal applications for controlling machinery. They're written using a niche language that is good for quick development of basic applications but has some real shortcomings. I think I've wasted enough time with this language and am looking to learn something more standard and portable that I can use to rewrite these applications. If you had to write an application from scratch that would be run primarily on Windows computers to communicate with USB/Serial devices, what would you use? What if it needed to run on other processors (like ARM) or operating systems like MacOS?
    if you learn java, there are severe advantages I can list.
    1) You can send your app on any platform (windows included)
    2) You can jump quickly on mobile app development
    3) Other developer in Hyderabad will take you more seriously.
    FTFY


    I'm not in Hyderabad, and I can tell you that I have a more respect for Java programmers than I do for C# programmers. In general, neither group really knows what they're doing, but the Java people at least try. The C# people are just corporate tools. They heard they could make a living wage programming, and they've heard of Microsoft. The result: insta-programmer, often with zero passion or mathematical aptitude, sometimes with a very expensive piece of paper printed by Microsoft.

    rate 2/10 for troll attempt to start flame wars.



  • @Nagesh said:

    @bridget99 said:
    @Sutherlands said:

    @Nagesh said:

    @error_NoError said:
    I'm a scripter turned application programmer by taking on the maintenance of some of our internal applications for controlling machinery. They're written using a niche language that is good for quick development of basic applications but has some real shortcomings. I think I've wasted enough time with this language and am looking to learn something more standard and portable that I can use to rewrite these applications. If you had to write an application from scratch that would be run primarily on Windows computers to communicate with USB/Serial devices, what would you use? What if it needed to run on other processors (like ARM) or operating systems like MacOS?
    if you learn java, there are severe advantages I can list.
    1) You can send your app on any platform (windows included)
    2) You can jump quickly on mobile app development
    3) Other developer in Hyderabad will take you more seriously.
    FTFY


    I'm not in Hyderabad, and I can tell you that I have a more respect for Java programmers than I do for C# programmers. In general, neither group really knows what they're doing, but the Java people at least try. The C# people are just corporate tools. They heard they could make a living wage programming, and they've heard of Microsoft. The result: insta-programmer, often with zero passion or mathematical aptitude, sometimes with a very expensive piece of paper printed by Microsoft.

    rate 2/10 for troll attempt to start flame wars.

    I thought you were saying basically the same thing. Java developers are better-respected overall than C# programmers. It's not just a Hyderabad thing, as somebody tried to claim in response to your post. There are tons of .NET developers in Hyderabad. The places where there are NOT many .NET developers are at elite companies and universities (Google, Amazon, MIT, etc.). There's no C# class at MIT, and Google will never hire anyone who tries to answer their interview questions in C#.



  • I want to recommond you to use C# programming language for  creating Windows apps. C# is the wellknow language to use and its also support .net framework. C# is also good and useful language to develop web applications. I think you have to leanr C# programming language. 



  • Or just learn Visual Basic (vb.net).  Most of the derision flung at VB programers is from people who think VB.NET is the same as old fashioned line-numbered BASIC.



  • @error_NoError said:

    Excellent, I was already leaning towards C++/C#+.Net and Mono looks pretty tasty with its cross-platform support. I'm trying to avoid investing a lot of time learning the buzzword language of the year only to have nobody care about it when I finally become proficient in it. Can anyone recommend a decent quickstart book for C#+.Net/Mono?
    I wouldn't bother with a book the documentation provided by MSDN is very good.


Log in to reply