Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming Operating Systems Software Windows Technology

Simple Windows Development Tools? 255

fwc asks: "Over the past few years, I've been fortunate to be able to avoid writing a Windows GUI application, however this good luck is coming to an end. In the next few weeks, I need to write a fairly simple application which will need to display data received from a serial port in a decoded (and graphical) form via a Windows GUI. Unfortunately, my skills in this area are out of date, since I haven't written any GUI apps for close to 10 years. Because this program needs to be fairly small and easy to install, the use of Perl/tk isn't a valid option. What options do I have to build a small application on Windows, without a large learning curve?"
This discussion has been archived. No new comments can be posted.

Simple Windows Development Tools?

Comments Filter:
  • VB (Score:5, Insightful)

    by ecklesweb ( 713901 ) on Tuesday January 31, 2006 @10:39AM (#14606579)
    Unless things have changed in the past few years since I played around with Windows GUI programming, Visual Basic is by far the easiest way to get a Windows GUI app off the ground.

    • Re:VB (Score:5, Informative)

      by Fallus Shempus ( 793462 ) on Tuesday January 31, 2006 @10:45AM (#14606621) Homepage
      I'd agree from a complete programming novice
      but you've got a nice free choice (as long as it's not commercial code)
      if you have more experiance (especially C++)
      http://msdn.microsoft.com/vstudio/express/ [microsoft.com]
      • Re:VB (Score:4, Informative)

        by #undefined ( 150241 ) on Tuesday January 31, 2006 @01:56PM (#14608464)
        what do you mean "as long as it's not commercial code"?

        there's no licensing restriction on visual studio express.


        4. Can I use Express Editions for commercial use?
        Yes, there are no licensing restrictions for applications built using the Express Editions.


        taken from here [microsoft.com].
    • Re:VB (Score:4, Insightful)

      by hey! ( 33014 ) on Tuesday January 31, 2006 @10:53AM (#14606696) Homepage Journal
      I wouldn't dismiss this out of hand either.

      Just because you can build a crappy app in VB by following the path of least resistance, doesn't mean you have to.

      If it's a one off app with a simple UI that works the way your users would intuitively expect it to, this is precisely what VB is good for. If you think the UI required is "sophisticated", it might not look so for somebody who does a lot of UI work. Things get tricky when you have to coordinate a wide variety of user tasks.

      You can also use Visual C#. It's really not any harder This would allow you to build your business logic around interfaces, allowing you to, for example, replace C# implementations with native C or with java or even php based web services later. You can also port to other platforms depending on how good Mono's Windows.Forms package is. Or you could build your app against GTK# and get portability right off the bat if that's important to you.

      • Re:VB (Score:2, Funny)

        by Imsdal ( 930595 )
        My, admittedly very limited, experience is that the learning curve for C# is sharper (hehe) than for VB, enough so to not make it worthwile if you are only ever going to build one small app.

        Of course, my far broader experience in all things software development related tell me that the probability that the OP will only ever build just that one app in this environment is much smaller than he thinks it is. Probably small enough for C# to become a better choice.

      • Re:VB (Score:3, Informative)

        by Pentavirate ( 867026 )
        Something to watch out for with C# and .NET is that there isn't any native .NET access to the serial port. You'd end up having to wrap Win32 dlls. It isn't too hard, but it may be much for a novice and it all comes free in VB6. You'd have to weigh your options. If this is a one-time thing, VB6 would be great. If there will be a lot more GUI programs in the future, it'd be useful to jump into .NET and C#.
    • I'd go for anything in the .Net family. VB, or C# especially. The GUI tools for both are pretty much the same. However, the development tools can cost quite a bit. If cost is a major issue, you may want to try out Java and NetBeans, which has a greate GUI designer. At least the best I've seen from the free tools available.
      • Re:VB (Score:2, Informative)

        by Haeleth ( 414428 )
        I'd go for anything in the .Net family. VB, or C# especially. The GUI tools for both are pretty much the same. However, the development tools can cost quite a bit.

        Indeed. I don't know how anyone can justify downloading Visual Studio Express Edition for free when they could get a Java IDE for half the price. :P

        (Yeah, the Express Editions are cut down somewhat. But they don't have any particularly nasty license terms - you can use them for commercial purposes - and they should do everything needed in this p
    • Re:VB (Score:2, Troll)

      by Kell_pt ( 789485 )
      Hi,

      There is no reason whatsoever to use VB, unless you like a poor and dinosaur syntax. I encourage you to try Delphi, or even Borland's C++ Builder. You can get a personal edition of Delphi [borland.com]. You can then choose to target .NET or Win32 as you prefer.
      If you feel like Java you can download Borland's JBuilder [borland.com] Foundation edition for free as well.

      Explore your options. I find Delphi to be real easy for GUIs, mainly due to the power of Borland's VCL (Visual Control Library). And you won't be throwing away you
      • There is no reason whatsoever to use VB, unless you like a poor and dinosaur syntax.

        VB.NET has almost the same syntax as C#. I learned VB.NET as my first dev language on Windows and moved over to C# last year. It is almost nothing like VB = 6.

        VB is actually a bit better for a quick, lightweight app because it's more forgiving of things like how you wrap chunks of code in try/catch blocks, and of multithreading issues.

        On the other hand, C# is more efficient to code, and it gives you some abilities that VB.NE
    • I agree... Actually, what I'd do is code the entire GUI in VB and write the "real" stuff in my preferred language. It's not hard to plug C++ code into a VB app.
    • Re:VB (Score:3, Informative)

      by Blakey Rat ( 99501 )
      I'd actually recommend RealBasic instead of VB for a few different reasons:

      1) RB is cross-platform. (It can compile for Windows, OS X and Linux all from a single project.)

      2) RB applications are all bundled together with their libraries. That means you don't need a runtime like VB's, you can just copy the .exe file and you're installed.

      3) I find RB a little bit easier to use.

      http://www.realbasic.com/ [realbasic.com]
  • Some options: (Score:5, Informative)

    by hummassa ( 157160 ) on Tuesday January 31, 2006 @10:41AM (#14606596) Homepage Journal
    1. Graphical IDE: (in order of my recommendation) Delphi (C++Builder if you are too much into C++), KDevelop, Eclipse or VB.

    or...

    2. You can hire someone (like me!! hmassa at gmail) to do it for you. :-)
    • I'm just curious. How much do programmers usually charge to write good GUIs?

      How about Web based (Ajax) GUIs?
    • Delphi (Score:4, Informative)

      by silverdirk ( 853406 ) on Tuesday January 31, 2006 @03:05PM (#14609254)
      I'll second Delphi. It uses an OO form of the Pascal language, which might be a problem for some, but I'd take pascal any day compared to basic. Also, Delphi is every bit as easy to use as VB.

      I used Delphi at a co-op job for six quarters, and it just plain made me feel powerful. I could throw together a nice GUI in minutes, and then "wire up" the events to real code after getting approval from the people who would be using the program. By the time I was done, i'd have a nice professional-looking app that was only about 700K, didn't need any funny DLL files, and was made out of nice strongly-typed OO code, and took advantage of the huge selection of freeware widgets on sites like http://www.torry.net/ [torry.net]

      Delphi is the perfect language for writing fast windows apps. Its also perfect for database access, and with the right packages, can be perfect for lots of other tasks, like serial port access. (and what I mean by that is that you can go fumbling around with the Windows Serial port API, or you can get a nice I/O package for Delphi and just drag/drop some components that give you nice events to play with.)

      To top it off, if you look at the assembly generated by the compiler, its really pretty good. You might say it's equivalent to -O1 on C code, and thanks to its single-pass compiler, it compiles 10x as fast, so there's basically no wait.
  • Visual studio... (Score:4, Insightful)

    by lscoughlin ( 71054 ) on Tuesday January 31, 2006 @10:41AM (#14606597) Homepage
    It's sad. Very sad. But if your tied to windows, then Visual Basic is the way to go. If you've got access to vs.net, c#'s gui builder is also pretty slick and the language is far less braindead to use.

    • RealBasic! (Score:5, Informative)

      by numbski ( 515011 ) <[numbski] [at] [hksilver.net]> on Tuesday January 31, 2006 @10:54AM (#14606708) Homepage Journal
      http://www.realbasic.com/ [realbasic.com]

      Extra credit is that it can compile binaries for Windows, MacOS X, and Linux. I believe there's a demo version to try before you buy.

      If you're looking for completely free, unfortunately you may well be sol. KDevelop may be your only option as posted above, but I wasn't aware that KDevelop can give you win32 apps....?
    • VB is a poor way to go if he doesn't want to distribute large runtimes. Think a big .NET Framework as for VB.NET.

      In that case I recommend Visual C++ instead.
    • Mono [mono-project.com] is an option. It is a more open alternative to Microsoft's C# and .Net. Can run on Windows, Linux and Mac.

      I believe it uses GTK# for its GUI. C# (and a few other languages) for coding. Mono exists because Microsoft submitted the C# language specs and the CLR (interpreter more or less like the Java JVM - not exactly, but I'm trying to be brief...) to the ECMA standards body. Basically anyone can implement a version of PARTS of .Net. Microsoft reserved certain libraries so they would still have the mos

  • Visual Basic (Score:5, Informative)

    by Sarlok ( 144969 ) on Tuesday January 31, 2006 @10:43AM (#14606606)
    It's easy to learn and the GUI designer is also easy to use. What's more, with the new (2005) version, there is a free "Express" edition that you can download from Microsoft [microsoft.com].
    • by uradu ( 10768 )
      All the Express editions only target .NET. At this point I still wouldn't consider the .NET framework ubiquitous quite yet, so this approach may seriously affect his deployment. Other than that, it's certainly a viable option. Another good one would be SharpDevelop [icsharpcode.net], which might in fact be preferable to the Express editions purely for licensing reasons. I'm not sure if you're supposed to use Express builds for commercial purposes.
      • All the Express editions only target .NET.

        No, VC++ Express 2005 target both native and .NET. You can make pure Win32 apps with it.
        • You're right about native C++, I was primarily thinking of the managed .NET languages, since the OP talked about VB. Still, what exactly is the license of the Express editions? I never bothered checking.
          • The licence is pretty close to the regular packages in the important details. (In particular, the idea that you can't do commercial development with them is a myth.)

            The point is more what's missing. For example, Visual C++ 2005 Express Edition comes with the basic CRT/STL stuff, and with the ability to use .Net in all its glory, but doesn't ship with MFC and requires a separate download+installation if you want to use the Win32 SDK. It also doesn't feature some of the most advanced new features (IIRC it's

          • I was primarily thinking of the managed .NET languages, since the OP talked about VB.

            Even with Visual Studio Supreme Devourer of Worlds Edition, you can't tell it to build a C# or VB.NET app as a native Windows executable that will run without the .NET framework, can you? I've never seen it as an option, although I haven't looked that hard either.
    • C# Demo Program (Score:3, Informative)

      by rjstanford ( 69735 )
      You can grab a free copy of the Visual C# [codeproject.com] IDE from Microsoft. Start with something simple, like this sample program [codeproject.com] that reads serial output and dumps it into a window. Then add the gui parts - and there's obscene amounts of sample code for writing Windows GUIs. The advantage to using C# is that there's a strong likelyhood that if you need something special, you can buy a widget that handles it for you for $200 (under most Open environments it would be free, but it wouldn't work - at least once you get i
  • by PoiBoy ( 525770 ) <brian.poiholdings@com> on Tuesday January 31, 2006 @10:45AM (#14606620) Homepage
    I'd recommend trying Microsoft Visual Basic 2005 Express edition, in part because it is free but more importantly because it comes with a very easy-to-use GUI designer and a wealth of online help. My understanding is that it's basically a stripped-down version of Visual Studio.

    I just started using Windows XP (out of curiosity) after having used Linux for the last six years, and I honestly have to say I've been very impressed with the development tools Microsoft makes available for free.

  • TCL/TK (Score:5, Informative)

    by jmac880n ( 659699 ) on Tuesday January 31, 2006 @10:47AM (#14606634)

    TCL/TK is small, easy-to-use, and portable over many systems.

    In addition, your entire program tree plus interpreter can be encapsulated using a starpack.

    • Will users of a TCL/TK-based application ever, in whatever situation, be aware of the existence of TCL/TK when installing the application?
      • Starpacks, Tcl/Tk (Score:5, Informative)

        by DavidNWelton ( 142216 ) on Tuesday January 31, 2006 @11:15AM (#14606862) Homepage
        If it's a starpack, they won't know what it is. They download one executable file that is smaller than 2 megs, and run it.

        http://www.equi4.com/starkit.html [equi4.com]

        I'll second the Tcl/Tk recommendation. It's super easy to get an application up and running in no time. What's even better is that you can do most of the development on Linux if it's not an app that requires a lot of windows specific services, and then switch to windows to put the final touches on. I've even had it happen that I didn't need to change any code at all (but it's usually recommended, just to give your app that extra polish).
    • Re:TCL/TK (Score:5, Informative)

      by Twylite ( 234238 ) <twylite AT crypt DOT co DOT za> on Tuesday January 31, 2006 @11:18AM (#14606883) Homepage

      Kudos to the well-informed parent. Tcl/Tk is indeed an excellent solution. More below.

      But first ... Visual Basic is NOT the answer. The criteria were "fairly small" and "easy to install". For most Windows versions you'll have to distribute your VB application in an install package that includes the VB runtime DLLs or the .NET runtime (or get the end user to download them, which is a mission). If you're unlucky you'll have to distribute other MS DLLs like ComCtls as well. Find out more at http://msdn.microsoft.com/vbrun/ [microsoft.com] . Then there's accessing the serial port ...

      For a simpler solution, grab TclKit [equi4.com], a single-file Tcl/Tk distribution. Tcl is ridiculously easy to learn, serial port access is as easy as file access, and it uses Tk to provide a powerful GUI.

      You can put your scripts into the TclKit EXE as a resource, creating a single-file EXE distribution of your application. With UPX compression the resulting file will be around 1.2Mb (depending on what extensions you choose to use).

      • And you end up with a product that has that wonderful "Almost as good as real Windows software" feel to it. For many applications, this doesn't matter. For some, it does.

        If you want a quick-n-dirty Windows GUI app that just works, VB is the way to go.
      • Re:TCL/TK (Score:3, Informative)

        by Anonymous Coward
        Visual Basic is NOT the answer. The criteria were "fairly small" and "easy to install". For most Windows versions you'll have to distribute your VB application in an install package that includes the VB runtime DLLs or the .NET runtime (or get the end user to download them, which is a mission).

        Uh, what year is this? Since Windows 2000, maybe even further back, the VB6 runtime has been bundled with the OS. Even if you do distribute it yourself it's smaller than that TCL/TK distro you point at. And VB6 comes
      • I'd have to go with the VB crowd. First off, any reasonably recent (since WinME) version of Windows will already have the VB runtime installed. Plus, VB (at least as of version 5, which is the last version I used) has a built-in installer builder/packager. Once the app is done, you just identify the files it uses (in his case, probably one .frx and maybe a third-party control to read the serial port), then push a button and it spits out a ready-to-distribute installer. It's no InstallSheild, but it's pe
        • Re:VB not the answer (Score:4, Interesting)

          by cgreuter ( 82182 ) on Tuesday January 31, 2006 @07:19PM (#14611810)

          I have a bit of experience with both Tck/Tk and Visual Basic 5. Here's what I think:

          Tcl/Tk is great for dashing off little graphical apps that do stuff. I once wrote a fully-functional GUI front end for "cdplayer" in 8 lines and ten minutes. It's the easiest tool I've ever used for hand-coding GUIs but you can also get GUI builders for it.

          Good things:

          • Cross platform, free and open-source
          • Well documented in ways that don't assume you're an idiot.
          • It's really, really easy to get a GUI up and running.
          • It's extremely flexible. You can override nearly every aspect of a widget, add new behaviour and even write your own widgets in Tcl. I've seen WinAmp-style user interfaces in Tcl/Tk applications.
          • It's simple. Most Windows-based development tools I've used have zillions of functions, classes and datatypes, far more than you could ever grok. Tcl/Tk is small enough that I could still get a sense of knowing how everything worked.
          • Tcl, for all its wierdness, is an incredibly flexible language. You can write your own control structures in it and you can create multiple interpreters so that your Tcl/Tk application can provide Tcl as a scripting language while protecting the app's internals from scripts.
          • It's got a really simple C API. C code can call Tcl code which calls C code which calls Tcl code and so on.
          • It's interactive. You type in and evaluate expressions on the command line and even build GUI controls that way.

          Bad things:

          • It's ugly, at least out of the box. It's possible to make your app look nice (and maybe even Windows-native) but it requires a lot of tinkering to do.
          • Tcl isn't really designed for developing large programs. (I haven't tried [incr Tcl] though--that might be better). It'll do in a pinch (and my app grew to some 13000 lines of Tcl without getting unmanageable) but lack of types and the error/catch exception mechanism became a hassle after a while.
          • There were a few Windows things that I couldn't do without writing a C routine to do it and linking it in.
          • No debugger. You're stuck using printf^Wputs statements.

          If I were going to write a large or complex Windows app today, I'd probably write the interface in Tcl/Tk and the actual complex stuff in C.

          As for Visual Basic, I didn't really use it enough to have an informed opinion. When I used it, I found that it was really easy to create a GUI but the IDE became irritating to use once I needed to write larger amounts of actual code. I also found the help reader annoying (but this was version 5--they may have improved since) and the documentation condescending.

          It worked well as long as I didn't try anything too unusual. I don't think I could do Tcl/Tk trick of creating a new kind of widget by adding event handlers to a label widget in Visual Basic. But, I didn't need try it and it worked okay for what I needed to do.

          Of course, given how MS radically changed the language with VB7.net and stopped supporting VB6, I don't think I'd ever use VB for any code I thought might be valuable.

      • Re:TCL/TK (Score:2, Informative)

        by Soruk ( 225361 )
        You can put your scripts into the TclKit EXE as a resource, creating a single-file EXE distribution of your application. With UPX compression the resulting file will be around 1.2Mb (depending on what extensions you choose to use).

        I've used Freewrap [sourceforge.net] for things like this, and at least the version I'm using, the resultant binaries typically weigh in at about 650K.
      • The submitter didn't say exactly what sort of graphical display he would be doing, just that it was serial data capture and visualization. Depending on exactly what KIND of visualization it is, I wonder if Tcl/Tk is going to be fast enough to do it. I think we need more information.
    • Sure,but I believe the OP mentioned the need to access serial ports. Can you do stuff like that from TCL/Tk?

      -matthew
  • Hmmm (Score:3, Informative)

    by Tethys_was_taken ( 813654 ) on Tuesday January 31, 2006 @10:48AM (#14606644) Homepage
    Visual Basic is definitely what you want to go for if you want a very simple way to get a half-decent GUI running. The only problem with VB is that, if you're coming from a C/C++ history, you're going to find it very messy. And you're going to feel "dirty" unless you spend a lot of time understanding the intricacies and see exactly how good/bad your app is.

    If you want the power of RAD and the ease of C/C++ I'd suggest you look into MFC programming. Google for all you need to get started. [google.com] You can continue to use C/C++ and familiar code to create nice, simple Windows GUIs.

    Also, yes. You have definitely been very fortunate.
    • by hummassa ( 157160 )
      If you want the power of RAD and the ease of C/C++ I'd suggest you...
      You meant the ease of RAD and the power of C/C++, didn't you?
    • If you want the power of RAD and the ease of C/C++ I'd suggest you look into MFC programming. Google for all you need to get started. You can continue to use C/C++ and familiar code to create nice, simple Windows GUIs.

      Using the MFC has two problems. One is the MFC which is a pretty terrible class structure to get to grips with and two is Visual C++, which despite being a good IDE is not very visual.

      Borland Builder is a far better RAD environment if you want to use C++
      • I should also add there a nice serial comms component(library to you!) for buider and delphi which you can use. See http://sf.net/projects/tpapro [sf.net] which would make the serial part easier.

        Just a note I teach a course that uses borland builder. It is designed at people with little or no programming experience and most are producing great GUI's after 3 months. A programmer of any experience should have no issues.
    • MFC has a huge learning curve, and its not exactly easy to use. It's about as far away from RAD as you can get.

      Unless you have a really strong objection to VB, it'll suit you far far better than MFC. Also keep in mind you have the option of compiling C code into a DLL and calling it from VB.

      If you really want to use C++, try Qt if the GPL is an option. Qt is leaps and bounds easier to work with than MFC. Another option is to get a copy of Borland C++ Builder. It's very similar to VB in functionality.
    • If you like C++ then try wxWidgets.

      It's ages ahead of MFC. As in easier to do complex stuff, and as much more powerful too.

      There is a class to draw X/Y graphics, called wxPlot, so half of what you need is already written.

      C++ with wxWidgets is so much easier and powerful compared to Java for anything GUI related. And it makes standard GUIs.

      And in the end you have a nice .exe file wich requires no installer. It can't be easier to install than that. No runtimes, dlls or pain.

      VisualBasic apps are a PITA to inst
  • RAD tools (Score:4, Informative)

    by morgan_greywolf ( 835522 ) on Tuesday January 31, 2006 @10:49AM (#14606649) Homepage Journal
    RAD tools are a great and easy way to write GUI apps without getting knee deep in the API (in this case, Win32). Borland's Delphi [borland.com], C++ Builder [borland.com], and C# Builder [borland.com] are great tools, and all work similarly, but support different languages and tools... C++ Builder is my personal favorite, but I C# Builder is nice for developing .NET applications. Borland also has a similar tool for Java. And there's always Visual Basic.
  • wxWidgets (Score:3, Informative)

    by TheGreatOrangePeel ( 618581 ) on Tuesday January 31, 2006 @10:49AM (#14606652) Homepage
    I'm guessing that you're going to hear a lot of people saying VisualBasic. Personally, hate VB. You might take a look at wxWidgets [wxwidgets.org]. I've only toyed with it myself, like what I've seen. There is also wxDevCPP [sourceforge.net] which gives you a VB style GUI.
    • wxWidgets totally rocks. I recommend trying it with Python. Together they make a fantastic client-side development platform.
    • Re:wxWidgets (Score:3, Informative)

      by uradu ( 10768 )
      Of course, it's only a GUI framework, you still need a language and compiler to use it. As has been mentioned, it's particularly smooth with Python. You can also try py2exe, which combines all your Python scripts into one single Windows executable that looks and smells just like any other Windows app, and doesn't require any Python runtime support DLLs. Pretty much spot-on for the OP's requirements, except possibly for language choice.
      • Re:wxWidgets (Score:3, Informative)

        by afd8856 ( 700296 )
        I can attest to that. Several years ago I've gone from complete clueless about python to having created, in a month, an app created with PythonCard, distributed with py2exe and innotools installer, COM communication with Word and Excel, temp storage with cPickle. It seems a more "hands on" approach, but it's actually very flexible and easy.

        Right now I've started a new version of that app, this time using wxGlade and I'm loving it. Python + wxWidgets = love
    • Re:wxWidgets (Score:3, Informative)

      by ClayDowling ( 629804 )
      I've gone down this route myself and been very happy. I use Delphi daily, I've written some large VB apps, but wxWidgets was by far the best tool for rapid development for me. Dev-cpp from http://www.bloodshed.net/ [bloodshed.net] was for me the fastest way to get a working C++ compiler up and running, and they have wxWidgets available as an installable module. You can find the latest version on their Community DevPack server.
  • Simple Windows Tools? Well, there's always a hex editor... (I kid, I kid!)

    Seriously, it's not as difficult as you might imagine. Even your grandmother could whip something up in Visual Basic, though I don't recommend it.

    The path of least resistence here is to grab a copy of Visual Studio, then get yourself a beginners book on Windows programming. Just go to your local book store and you'll find a whole shelf of them. (And not a single book on data structures or algorithms in sight. Grrrr...)

    If you're a suck
  • Alternative.... (Score:5, Interesting)

    by ceeam ( 39911 ) on Tuesday January 31, 2006 @10:50AM (#14606657)
    Ask yourself - how would you've done it on Unix? Well - Perl/tk may be not an option, but definitely you can write a no-GUI program to receive data from your serial port and store it somewhere. Then make a small web-server (plenty of options - no need to install apache or stuff) and serve your data in graphical form to a web-browser.
  • Options (Score:3, Informative)

    by truthsearch ( 249536 ) on Tuesday January 31, 2006 @10:50AM (#14606664) Homepage Journal
    It depends partly on your finances...

    Non-free (beer and speech):
    - VB - if you have a copy already it's the easiest choice for quick development; very small learning curve; few libraries required
    - .NET (C# or whatever) - free if you don't want MS development tools; very expensive tools to build one small app; much bigger learning curve; 20 MB runtime required
    - RealBasic - I hear great things but know nothing about it

    Free:
    - Python - use built-in UI libraries or better wxWidgets library; my preference for client/server development; moderate learning curve; python and libraries must be installed
    - Java - UI has a moderate to high learning curve; runtime requires installation or you may have browser applet as an option; free tools

    I'm sure there are others. These are the ones I'm most familiar with.
    • - .NET (C# or whatever) - free if you don't want MS development tools; very expensive tools to build one small app; much bigger learning curve; 20 MB runtime required

      Check out Express Editions [microsoft.com] - C#, J#, C++, VB; comes with an IDE. Not as nice as the full edition but works very well. Highly recommended. You can then use .NET (Windows Forms is the graphics class ... do some googling, its not that hard) for your interface. Or Qt with C++. Qt (opensource) will *not* work with C++ by default, you need this pa [sourceforge.net]
      • One of the biggest problems with .NET and UI is that Windows Forms is already being deprecated. It was only out for about 2 years when they said they were going to drop it. Of course if you only need to write one small app it's no big deal. But I hate writing things with a library I know will be dropped soon.
    • The only Python app I have on my system is BitTorrent, and it looks like something left over from a 1994 X/Motif system. By far the worst looking GUI toolkit I have seen in some time.
  • Try Realbasic (Score:5, Informative)

    by Quiet_Desperation ( 858215 ) on Tuesday January 31, 2006 @10:51AM (#14606666)
    I do mountains of Windows GUI crap to control my hardware designs via serial port and Ethernet. Realbasic makes it all easy and it's not as annoying as Visual Basic. Nicely object oriented. Even file i/o is OO.

    http://realbasic.com/ [realbasic.com]

  • 'Nuff said. And you can get a free version for personal use just like VB.NET express.

    The product is better but the biggest plus factor is the community of developers.
    • No, it's not 'nuff said. Why is Delphi better? Based on my last experience with it I wouldn't agree. And I get the feeling Borland is dropping it. If you're trying to convince someone to choose one platform over another you need to give some reasons.
  • If the GUI is really simple and does fairly simple things, try writing an HTML application (.hta). You can find the "hta helpomatic" with google.

    You'll need to script instead of code, and if you need help with scripting download "scriptomatic" (google).

    You can also find a complete list of Windows scripting samples in a help file called the "Portable Script Center" which you'll find here: http://www.microsoft.com/technet/scriptcenter/crea teit.mspx [microsoft.com]
  • Delphi is decent (Score:5, Insightful)

    by teeheehee ( 12647 ) * on Tuesday January 31, 2006 @10:57AM (#14606727) Homepage
    I can't vouch for VB since I try to avoid it as much as possible, but I worked with Delphi at my last job and recommend it as an excellent rapid GUI development IDE and language.

    There are lots of extensions to the component palette which are free (as in beer) and some that are free (gratis) which can be very helpful. I didn't do sockets programming but there are components for that, as well as for graphs. You might be surprised at how quickly you can pick it all up, it's quite intuitive.
  • Java is an option (Score:3, Informative)

    by dslauson ( 914147 ) on Tuesday January 31, 2006 @10:57AM (#14606730) Journal
    If Java is an option, both Jbuilder and Netbeans have good drag-and-drop GUI tools available. Your app would also be easy to intall and cross-platform, and you don't have to give MS any money.

    If that's no good, then Visual Studio is probably your best bet.
  • If you don't like VBScript, then use Windows Scripting Host with JScript [microsoft.com]. It's just the same as writing Javascript for a website, except there are different objects available. I think it's been shipping with Windows by default for years, so no installation is necessary, but you'd better double-check.

  • If you have to get that working on more than a small population of PCs remember that most PCs now lack serial I/O and you will need to use a Serial/USB converter to get serial input. Those converters look like COM ports but generally land as COM5 and above.

    For language, VB is the way to go; VB6 is easy if you have it, VB .NET 2005 is classy but probably a learning curve. Not sure whether VB .Net 2005 has a serial component; probably not ... and writing your own is next to impossible when the hardware is v
  • Why not look into Microsoft Visual Studio 2005 Express? Freely usable VB, C++ and C# IDEs with compilers and debugers. I'm not sure about support for building graphical applications though. Also note that the C++ compiler defaults to compile for .net 2.0, but there are instructions to integrate the platform SDK.

    Can be found at: http://msdn.microsoft.com/vstudio/express/ [microsoft.com].

  • Visual C++ Express? (Score:3, Informative)

    by Jugalator ( 259273 ) on Tuesday January 31, 2006 @10:59AM (#14606747) Journal
    It would've helped knowing what language choices you have.

    It sounds like you don't want to have your application require large libraries?

    For a low level serial port reader app with a slick GUI designer on strictly Windows, Visual C++ Express [microsoft.com] seems to be one way to go. It's free as in beer and supports native Windows application as well as .NET application development (in that case via Managed C++, but then you need the ~20 MB or so .NET Framework runtime included with your apps, and I guess you don't want that).

    One thing I can unfortunately not check now is whether it comes with the C++ GUI designer (which you'd probably be most interested in), as the screenshot only happened to show the .NET designer, and native C++ use a different one. I'm not sure if that one is included in the Express edition or not.
  • Try WinBatch (Score:2, Informative)

    by Butterspoon ( 892614 )
    WinBatch [winbatch.com], is a straightforward shareware Windows scripting language that has a very simple learning curve (it's easier than VB to pick up IMHO), and is incredibly powerful.

    You can compile to .EXE, do all manner of network, database, and desktop automation. And yes, you can play with the serial ports and much more.

    Best of all, there is an extensive tech support database and a lively user community, with active and remarkably prompt involvement from the principal architects of the language.

    I speak only

  • by matts.nu ( 94472 )
    C# [microsoft.com] is free (for a year), and you don't have to learn Basic.
  • Java or .NET (Score:5, Informative)

    by miyako ( 632510 ) <miyako@g[ ]l.com ['mai' in gap]> on Tuesday January 31, 2006 @11:05AM (#14606798) Homepage Journal
    Java with Swing is a pretty quick way to write a GUI. Swing is well documented on sun's website- both with APIs and tutorials available. It also has the benefit of being largely crossplatform (though given your specific task there will probably be some native code that would have to be rewritten).
    If you don't want to learn Java, or you would prefer something more native to windows, .NET is a huge step up from the old way of creating windows GUIs. I haven't used it extensively, but it seems to be largely well thought out and well documented (though I still vastly prefer Sun's javadoc to Microsofts .NET documentation). .NET has the benefit of being able to work with most languages you would want to program in.
    A few general suggestions if you're rusty with GUI programing that you might want to consider as well:
    • Don't use form builder code for actual code. While GUI builders can be a good way to get an idea of the way you want the GUI to look, in my opinion they end up producing really ugly code. It's generally faster and easier to just write it from scratch.
    • Sketch out the GUI. Even for a simple GUI it's difficult to design a GUI while looking at code unless you're really comfortable with both the API and with the type of GUI your designing.
    • Seperate Logic from Display. It's tempting to put little bits of logic in the GUI code, but if you're going to be supporting the code you're life will be much easier if they are seperate. Essentially you are writing two programs. The program that does the task (in this case, reading the data from the serial port and processing the data) and the program that displays the task. It's fairly reasonable to say that if your program is properly designed, you should be able to create a text based interface for the application in a few hours. (Yes, there are programs you can't reasonable run without a GUI, but the point is, seperate logic from display).
    • Seperate Logic from GUI code. It' bears repeating. I've seen a lot of programs where the author/previous maintainer put a small but crusial bit of logic in the GUI code. Later when re-working the GUI code stuff breaks and it's very difficult to find out where/why.
    • Use Threads. In a lot of cases you can make the application feel much more responsive by keeping the display code in a seperate thread from the processing code.
    • Consider your Users. When you design a GUI, remember that small things can make big differences. Consider a couple of things. First off, what is the technical level of your target audience. Second, what are you're users going to do most often. For users with little technical proficency remember that it's often preferable to use terminology that they are familiar with, even if it's not the most precise way of displaying the information. (For example, many users are confused by "export" options for programs, so you should put those options under "save as".) What your users are doing is going to effect where things go. You don't want the most common task to be 3 menus deep and at the bottom of the last tab in an obscure options window, you want it to be a big button in the main window. Likewise you don't want the most commonly clicked button to be the third down in a list of 6 or something.
    • Last, spend a bit of time reading up on the psychology of colors and shapes. Certain shapes and colors tend to draw the eye and this can be useful to give users subtle visual cues and will make your application much more intuitive.
  • by NullProg ( 70833 ) on Tuesday January 31, 2006 @11:16AM (#14606873) Homepage Journal
    I need to write a fairly simple application which will need to display data received from a serial port in a decoded (and graphical) form via a Windows GUI.

    Write a simple Win32 program that uses a dialog class has its main window. Depending on how many elements your dialog needs to display, you could probably wirte this in less than two hundred lines of code. There are plenty examples on the internet to get you started. The result will be a small, tight and fast program that uses very little memory. As a bonus, your program will run on all 9x/NT versions of windows without extra dependencies, unlike the MFC/VB/C#/Wx/java frameworks other people are advising you to use.

    Enjoy,
  • One easy language to try is Rebol [rebol.com]. From one of their pages:

    Unlike other languages, REBOL was designed from the start for network communications, not just for writing programs.

    REBOL is pronounced "reb-ol" (as in "rebel with a cause") and stands for "relative expression based object language". It was first released in 1997 and has been downloaded more than four million times since. REBOL runs on a wide variety of system platforms, including both servers and clients. REBOL was created by Carl Sassenrath, who

  • Have you looked at AutoIt v3? It offers a very simple scripted interface, and the ability to package it all up into a stand alone EXE. I am not sure about serial port access using it, I would imagine you would need to include a COM object to do it. Regardless, it is worth a look - and can be used for a great many things as well. The even distribute it as an installer or zip package for those that detest installers.

    http://www.autoitscript.com/autoit3/ [autoitscript.com]
  • In the next few weeks... fairly simple application... program needs to be fairly small and easy to install... Perl/tk isn't a valid option. What options do I have to build a small application on Windows, without a large learning curve?"

    Take another look at Perl/Tk, with the use of a compiler like perl2exe to produce a binary as the final product.

    Since you have Perl experience, this will be a shallow learning curve. The conversion to exe removes Perl's only significant performance limitation. The instal

  • So far I have seen two spectacularly misinformed comments modded +5.

    You aren't going to learn anything about Windows programming from slashdot. Too many people here are fighting the Linux Jihad.
  • by WombatControl ( 74685 ) on Tuesday January 31, 2006 @11:48AM (#14607094)

    I've been able to put together a few simple apps using the .NET Framework, which despite being a Microsoft product, is actually pretty decent.

    You can use the Visual Studio Express products, but if you'd rather deal with a free (as in speech) alternative, SharpDevelop [icsharpcode.net] is as good as anything I've tried. You can use it to develop in either Visual Basic.NET or C#.Net, and it has a full and quite useful Windows.Forms layout system. For writing a basic Windows.Forms GUI, it's much less resource-intensive than Visual Studio, offers nearly the same features, and is GPL licensed.

    For doing Windows development, the .NET framework and Windows.Forms is your best bet, and SharpDevelop gives you a nice open-source IDE with all the features you need.

  • QT or Delphi (Score:2, Informative)

    by nbritton ( 823086 )
    What about a QT app, the toolkit is free if you GPL the code. All it means is that you have to make avilable the source code (if requested) to the people (and only those people) you distribute the program to. Or you can buy the QT toolkit and then not be forced to release the code as GPL. You can use just about any backend language with QT too.

    Otherwise I would give Borland's Delphi a go. Delphi is turbo pascal with object-oriented extension's. It makes fast and very lightweight apps, and it's easy to le
  • By far the easiest way to build a windows GUI application is to use GCJ + SWT to produce a native executable with a native look and feel, and to package it using NSIS, the nullsoft installer. Another advantage of using this technology is that your application will run unmodified on X11/GTK and OSX systems.
  • by yamla ( 136560 )
    I like Qt from TrollTech for my Windows development. It has a far easier learning curve than, say, WinForms, .Net, MFC, or the like. And top-notch documentation.

    Also, version 4.x is available for Windows under the GPL as well as a commercial license.
  • "What options do I have to build a small application on Windows, without a large learning curve?"

    Your two options are mutually exclusive.

    First, the learning curve is going to be large, regardless of which route you take. Some, however, have a smaller learning curve than others.

    Second, the smaller learning curves tend to use large runtime libraries that will have to be installed along with your application.

    If you want the smallest application footprint possible, you're better off using Win32, but the learnin
  • I used to swear by Java. I finally got over my "ugh - requires indentation!" bias and am absolutely amazed at how quickly one can build quality, multi-platform apps with decent GUIs.

    If you know a little bit of perl/php/Java/C/C++ (and, yes, lisp helps), then you should pick up python quickly. If you know a bit of Java Swing, then wx should jump right out of the proverbial box.

    You can make great Windows apps from the combo (with py2exe), including services. The apps can have status bar icons, etc. Plus, you
  • QT (Score:3, Informative)

    by Bluesman ( 104513 ) on Tuesday January 31, 2006 @01:02PM (#14607866) Homepage
    You've got a bunch of good recommendations, but nobody's mentioned QT so far.

    I'm a big fan of QT on windows, and if you don't mind a bit of setup, the free GPL'd version works well with MinGW. The documentation is excellent, which probably would be helpful for someone learning to program GUI stuff.

    And it can be compiled statically so that distribution is as easy as copying an .exe file.

  • by dpbsmith ( 263124 ) on Tuesday January 31, 2006 @01:30PM (#14608162) Homepage
    If what you're interested in is just getting the job done, you can't beat VB... or RealBasic, which I'm partial to, since I do more of this kind of thing on the Mac, but it's not mainstream.

    There are a lot of knocks on VB, but most of them are snobbery, pure and simple.

    If you're interested in earning status with your developer peers, boosting your career, making your resume marketable... stay away from VB.

    But if what you're interested in is just getting the job done, it's a good choice.

    Postscript: do not let Microsoft's marketers fool you into thinking there's any similarity between Visual Basic and Visual C++. Visual C++ is not just Visual Basic with a different programming language component. I wish it were, or I wish they had a product like that.

    VC++'s "visual" features are shallow, fragile, and paper-thin.
  • You can probably pick up Visual Basic 5, Learning Edition for around $20 (I paid $20 CDN for it, which is around $17 US). Comes with lots of samples.

    Easy to code easy stuff.

    You don't need much more that that... If you *did*, I would recommend Java.

    Ratboy
  • by Curmudgeonlyoldbloke ( 850482 ) on Tuesday January 31, 2006 @04:21PM (#14610138)
    Not because there's inherently anything wrong with it, but the framework download is 23Mb and therefore isn't exactly "fairly small".

    Of course, if you can guarantee that the framework will already be there everywhere you're going to install, then it's not an issue.

Make sure your code does nothing gracefully.

Working...