Slashdot Mirror


Simple Windows Development Tools?

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?"

255 comments

  1. VB by ecklesweb · · Score: 5, Insightful

    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.

    1. Re:VB by Fallus+Shempus · · Score: 5, Informative

      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/

    2. Re:VB by hey! · · Score: 3, Insightful

      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.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    3. Re:VB by CastrTroy · · Score: 1

      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.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    4. Re:VB by Kell_pt · · Score: 1, Troll

      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. You can then choose to target .NET or Win32 as you prefer.
      If you feel like Java you can download Borland's JBuilder 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 your time if you later want to move to any other language (I use BC++ now, I prefer C++ syntax), because the IDE, the tools, the graphical elements (controls) and the libraries are the same (C++Builder, C#Builder, etc).

      Good luck! :)

      --
      "I don't mind God, it's his fan club I can't stand!" E8
    5. Re:VB by Haeleth · · Score: 2, Informative

      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 particular case.)

    6. Re:VB by Imsdal · · Score: 2, Funny
      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.

    7. Re:VB by Anonymous Coward · · Score: 0

      You can also use Visual C#

      You'll need .NET or Mono framework on client machines to use this app. Original poster clearly wanted to avoid that sort of installation problems.

      If you're ready to install some runtime environment then there lots of options. I'd go for Java+SWT but that's just me.

    8. Re:VB by pclminion · · Score: 1

      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.

    9. Re:VB by bheilig · · Score: 1

      I agree. VB has great serial port support through the Comm control (last I checked which was version 6.0) and creating a dialog application is a snap. The help files included with VB 6.0 will probably be enough to get the app running.

      You'll probably need the following routines. Just look them up in the help file:
      Len
      Mid
      LenB
      ascB
      MidB

    10. Re:VB by blincoln · · Score: 1

      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.NET doesn't, like being able to properly work with unsigned integers (although I heard VS2005 fixed this in VB). It is also more intuitive to people who've been developing for a long time.

      Either way, there's tons of example code available online. For someone who hasn't done ANY development work on Windows, I'd recommend picking up the Deitel "How to Program" book on whichever language they're starting with.

      --
      "...always new atoms but always doing the same dance, remembering what the dance was yesterday." -Richard Feynman
    11. Re:VB by #undefined · · Score: 4, Informative
      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.
    12. Re:VB by imess · · Score: 1

      I don't think having to download the .net runtime/include in installer is considered "small" and "easy" to install.
      And IIRC, win2000 and up come with vb6 runtime

    13. Re:VB by mnmn · · Score: 1

      VB or QT are the easiest ways. Visual C++ aint too difficult either. Other methods require fancy DLLs. Excutse me I'm drunk...

      --
      "Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
    14. Re:VB by el_gordo101 · · Score: 2, Informative

      The .NET Framework Version 1.1 Redistributable Package is available here. You can use the Visual Studio .NET Bootstrapper plugin to distribute it with your application.

      --
      TODO: Insert witty sig
    15. Re:VB by Pentavirate · · Score: 1

      .NET runtime is included in Windows XP. It all depends on the target machines.

    16. Re:VB by Pentavirate · · Score: 1

      If you have a C++ or Java background, picking up C# is really pretty easy.

    17. Re:VB by Pentavirate · · Score: 2, Informative

      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#.

    18. Re:VB by Blakey+Rat · · Score: 2, Informative

      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/

    19. Re:VB by slapout · · Score: 1

      Just remember that .Net runtime version 1 is included with Windows XP. The VS Express Editions come with .Net runtime version 2.

      --
      Coder's Stone: The programming language quick ref for iPad
    20. Re:VB by Scherf · · Score: 1

      Yeah, but Visual C++ 2005 still comes with a normal C++ Compiler that creates Win32 executables. So, no problem there.

      They even managed to make the thing almost standarts compilant as well by now and wxWindows is a pretty good free GUI Toolkit (don't use MFC. Just don't, it's horrible).

    21. Re:VB by briancbecker · · Score: 1

      I would agree VB is very good, but if you don't want the overhead of VB/.NET, I'd suggest RapidQ Basic. It is an extremely easy-to-learn home-brewn GUI language. The whole package is very lean (only about a meg), yet it has a decent GUI layout designer and a powerful language. Programs are about 300 KB or so and don't require any other library or runtime. I enjoy it because installation is quick and simple, you don't need to learn how to use a complicated IDE, and you don't need to accompany your program with any runtime.

      The only downside is that it isn't supported anymore. However, if all you need to do is quickly program a simple GUI, it's a great little language to play around with.

      More info at: http://en.wikipedia.org/wiki/RapidQ

    22. Re:VB by jerdenn · · Score: 1

      Something to watch out for with C# and .NET is that there isn't any native .NET access to the serial port

      There is serial port access in C#/.NET 2.0.

    23. Re:VB by aled · · Score: 1

      While you have a valid point and a fair warning -it is useful to me- perhaps most programmers don't talk to serial ports.

      --

      "I think this line is mostly filler"
    24. Re:VB by cdrudge · · Score: 1

      For that matter, VB.Net isn't hard either coming from a Java or C++ programming. The biggest learning curve is probably from a VB6 (or earlier) programmer trying to learn that there is more to learning VB.Net then changing the extension on the file.

    25. Re:VB by aled · · Score: 1

      I didn't read the OP about serial ports, sorry.

      --

      "I think this line is mostly filler"
    26. Re:VB by DrKludge · · Score: 1

      I had to dig around Microsoft's website for this, but the download version/liecense is a one year liecense. Then you have to buy it if you want to continue to use it.

      It is $59.99CAD in Canada on the shelves.

    27. Re:VB by NickFitz · · Score: 2, Informative

      Not so. It's available for free download for a year, after which they'll start charging; however, copies downloaded free remain free and fully licensed. Not sure where you dug, as 4 clicks from the www.microsoft.com homepage will lead you to the pricing section of the FAQ:

      12. Do customers who acquire the Visual Studio Express products during the free promotional pricing period have to pay after the first year if they want to continue to use them? No, as long as you download Visual Studio Express on or before November 7th 2006, you will not have to pay for it.

      (For the navigationally challenged, the route is: MS homepage, "Developer Tools", "Visual Studio", "Visual Studio Express", and in the right hand column headed "Express Quick Facts" follow the link "Free for 1 year".)

      --
      Using HTML in email is like putting sound effects on your phone calls. Just say <strong>no</strong>.
    28. Re:VB by jbplou · · Score: 2, Informative

      How is C# any better than VB.NET, thats crazy. They compile to the same code, they are two routes to the same thing.

      Also anybody who develops .NET classes and then converts that code to PHP for Windows is crazy. I can't believe that people on this site hate Microsoft so much that they think using GTK# or PHP or Java will make a better Windows only app than .NET. .Net is currently the top development tool on the market for business apps PHP is a toy.

    29. Re:VB by Anonymous Coward · · Score: 0

      You _CAN_ build commercial applications with Visual Studio Express.

    30. Re:VB by Dark_MadMax666 · · Score: 1

      Vb.net in 2005 is practically identical to C# 2005 .Unsigned ints and some other stuff were true for original and 2003 .net , but it got fixed in 2005.

        As about more intuitive... I personaly find more explicit syntax of vb.net superior to C# . I always thought that ";" and curly bracers are only good for code obscurity. -Even when I coded in C/assembler.

    31. Re:VB by tuomoks · · Score: 1

      How is this troll ?? Sorry - have used both VB and Delphi from day one and Delphi is way ahead. And the benefit - see who made Delphi and who is now creating C# in MS. Now - if Kylix would be there - I need something for Linux ( and other Unix type enviroment especially AIX ) that would be perfect. Also - in Delphi you can write very fast low level code, try that in VB. The funny thing - the Delphi version 4 using most of the windows tricks ( win32 API ) runs very nicely under Wine. It uses 64bit file access by the way, it uses memory mapped files, it has n+1 threading based on dynamic configuration. Wine has gone a long way. And of course in Delphi any screen ( native and HTTP ) is just drawing - take a look amount of the code you need for that in other systems ( almost brings to my mind the days of Motif / X coding.. )

    32. Re:VB by Kell_pt · · Score: 1

      Hi,

      Thanks for echoing my thoughts on the "Troll" issue - I'll never understand how this whole moderation thing works in ./ :) It's a stain in my profile though! ;)

      I didn't quite understand your comment "it uses 64bit file access". Were you talking about Wine or about Delphi's capabilities?

      --
      "I don't mind God, it's his fan club I can't stand!" E8
    33. Re:VB by tuomoks · · Score: 1

      I should have been more clear - actually Delphi ( I'm using version 4 for reasons.. ) natively doesn't support 64bit but because Windows has 64bit API available for I/O I can use it with no changes to the language - this is the part I like in Delphi a lot. Some memory mapped files I was using did need to grow from 0.5GB to some 9-12GB ( number of users did go from 1500 to 10K+ and so on ), no problem, replace the mapping with real 64bit I/O. Fast, clean and easy change even in very old version of Delphi. And it still works under Wine. I didn't know that Wine has support for some of those APIs or am I just lucky ?

  2. Some options: by hummassa · · Score: 4, Informative

    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. :-)

    --
    It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
    1. Re:Some options: by Salis · · Score: 1

      I'm just curious. How much do programmers usually charge to write good GUIs?

      How about Web based (Ajax) GUIs?

      --
      Favorite /. tagline: "On the eighth day, God created FORTRAN." And it was good.
    2. Re:Some options: by ckaminski · · Score: 1

      Depends on the scope. A huge 4000 form application will be a lot different than a 2 forms application that spits out Excel spreadsheets or Word documents.

      In general, anywhere from $30+ per hour, although for most anything less than $40 is below market rate (depending on your market).

      -Chris
      http://www.ckaminski.com

  3. Visual studio... by lscoughlin · · Score: 3, Insightful

    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.

    --
    Old truckers never die, they just get a new peterbilt
    1. Re:Visual studio... by Jugalator · · Score: 1

      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.

      --
      Beware: In C++, your friends can see your privates!
    2. Re:Visual studio... by jmccay · · Score: 1

      Code::Blocks is making progress in becoming as good as Visual Studio. If you check it out, start with a nightly build because RC2 doesn't show all the cool content improvements that is coming with 1.0.

      --
      At the next eco-hypocrisy-meeting, count the private jets used to get to the meeting. Should be interesting to see that
  4. Visual Basic by Sarlok · · Score: 5, Informative

    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.

  5. Visual Basic Express Edition by PoiBoy · · Score: 4, Informative
    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.

    --
    Sig (appended to the end of comments you post, 120 chars)
    1. Re:Visual Basic Express Edition by erroneus · · Score: 1

      I wonder if it will work under WINE? That'd be pretty cool doncha think?

  6. TCL/TK by jmac880n · · Score: 4, Informative

    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.

    1. Re:TCL/TK by mwvdlee · · Score: 1

      Will users of a TCL/TK-based application ever, in whatever situation, be aware of the existence of TCL/TK when installing the application?

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    2. Re:TCL/TK by Twylite · · Score: 4, Informative

      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/ . Then there's accessing the serial port ...

      For a simpler solution, grab TclKit, 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).

      --
      i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
    3. Re:TCL/TK by tulmad · · Score: 1

      Did you miss the part in the summary that says:

      [i]Because this program needs to be fairly small and easy to install, the use of Perl/tk isn't a valid option.[/i]

      Yes, tcl isn't the same thing as perl, but at the same time I think he was saying he didn't want to use a scripting-style language.

      --
      "In case of emergency, break glass. Scream. Bleed to death."
    4. Re:TCL/TK by misleb · · Score: 1

      Sure,but I believe the OP mentioned the need to access serial ports. Can you do stuff like that from TCL/Tk?

      -matthew

      --
      "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
    5. Re:TCL/TK by rjstanford · · Score: 1

      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.

      --
      You're special forces then? That's great! I just love your olympics!
    6. Re:TCL/TK by Anonymous Coward · · Score: 3, Informative

      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 bundled with InstallShield lite to cover 'easy to install'. And upgrading comctl32 was like back in the IE3 days, Jesus.

      Now I hate VB6 with a passion but if you're going to bash it get it right.

    7. Re:TCL/TK by Soruk · · Score: 2, Informative

      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 for things like this, and at least the version I'm using, the resultant binaries typically weigh in at about 650K.

      --
      -- Soruk
    8. Re:TCL/TK by Intron · · Score: 1

      Both perl/tk and tcl/tk can be converted to a loadable binary. It all comes down to what you consider to be "small and easy to install", and how much work you are willing to put into packaging your app. Its no harder than including DLLs with a C program, and much easier than a Java app where the user needs to install the (correct) JRE.

      --
      Intron: the portion of DNA which expresses nothing useful.
    9. Re:TCL/TK by pclminion · · Score: 1

      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.

    10. Re:TCL/TK by Mawbid · · Score: 1

      The Tk apps I've run on Linux look and feel very different from native apps. Is the situstion different on Windows? Or is this controllable by the programmer? I imagine a random Windows user isn't any happier than I am with one program's menus workin differently than all their other programs' menus. The 'file' menus stays open while you mouse over to 'tools', for instance -- better or worse, it is different.

      --
      Fuck the system? Nah, you might catch something.
    11. Re:TCL/TK by anomalous+cohort · · Score: 1

      Right. Also, the original poster expressed a desire for ease of installation. I detected that perhaps a simpler development model might also be desireable. Perhaps that is why so many posters here claim that VB is the way to go. If programmatic image generation is required, then VB is no simpler than Tcl/Tk. There is about the same amount of cognitive overhead to the Tk Canvas widget than there is to the System.Drawing.Graphics object.

      Of course, if the original poster needs an editable grid, then that's a different story.

    12. Re:TCL/TK by Anonymous Coward · · Score: 1, Informative

      This is no longer the case!

      Current revisions of Tk, especially with the Tile window kit look exactly like
      a windows application!

      There is no reason why a simple Tk/Tcl application can not look 100% windows
      native!

    13. Re:TCL/TK by Anonymous Coward · · Score: 1, Informative

      the behavior you describe is a limitation of the programmer, not of Tcl/Tk.

      Tcl/tk makes it stunningly easy to create single-file-deployment cross-platform GUIs that can do what probably 95% of all GUIs need to do with more than enough speed and eye candy. The difference between it and VB is that VB lets you create something that looks great and works horribly, and Tk lets you make something that looks OK but works great.

      And while it's true that in the past the GUIs looked only about 90% native, the upcoming version (8.5) will include a new theme engine that goes the extra 10% (well, maybe 9% since "native" is a moving target, at least on windows).

    14. Re:TCL/TK by Anonymous Coward · · Score: 1, Informative

      That depends. If the single file is named "tk-whatever.exe", yeah, maybe. With starkits and starpacks, you have either two files (tclkit.exe and application.kit) or one file (application.exe). Period. Likewise with freewrap you end up with a single .exe.

      And with that starpack or starkit, FWIW, you have an embeded database at your disposal, too, in addition to tcl and tk. Yes, all runtime libraries, data files (including images), executable bits, and a database all rolled into a single file. Pretty darn nifty.

    15. Re:TCL/TK by Tablizer · · Score: 1

      I gotta disagree. For one, TCL/TK is not visual. You have to use "liguistical placement". Whether that is a better result or not is a long debate, but I would not call that the easiest solution for a beginner. Visual placement and visual attribute browsing is the most natural way for most newbies.

      Second, TCL/TK lacks things like automatic scroll bars. You have to glue the scroll-bars to text and widget windows yourself. That is so 80's.

    16. Re:TCL/TK by dkf · · Score: 1
      There's a theme engine about for Tk that provides a bunch of native widgets (it's distributed with ActiveTcl for example). I've been using it for a good while now, and with it Tk apps on WinXP look exactly native (better than firefox or MS office for example!) I am also informed that it works really well on OSX too, though for true native-ness there, you need to change the selection of widgets that you use (e.g. menubuttons are preferred over comboboxes).

      I also believe that there's a theme that bridges to Qt so things can look great if you use Linux too, but I've not used that theme so I can't answer from personal experience. I'm not sure that the quality of that theme's implementation is all that good either - I've heard things, but don't remember the details - but as always more developer eyeballs are welcome to help make it better so that vendors like SuSE can ship a version of the theming engine that uses a look by default that fits with their desktop.

      I have no idea at all about the possibility of themes to interoperate with GTK.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    17. Re:TCL/TK by rjstanford · · Score: 1

      They may look native to a screenshot, but they still don't feel native, at least not the last time I checked them out. Its nothing major, its the little things, like the way that text boxes work in call cases - I'd have to go back and reexamine an app to come up with a list, and I'm not that bored, but they're just not generally polished, operationally.

      I will agree that the huge array of custom- or skinnable-widget VB apps are both awful and a horrible step back in functionality. Any apps, really. Even things like Hamachi, which is a fantastic technical service, get real old real fast when you can't tell if you're minimizing or closing a window.

      --
      You're special forces then? That's great! I just love your olympics!
    18. Re:TCL/TK by sigzero · · Score: 0

      You obviously have never done it. I picked it up in about 20 seconds. text .t -yscrollcommand {.sbar set} scrollbar .sbar -orient vertical -command {.t yview} Wow that was hard! Whew, I need to take a rest. Tcl and Tk is the easiest way to crank out quick little applications. Coule that with a super easy way to make an exe ala Starkits and you are off an running. Tcl is not slow Tk can look native w/Tile

    19. Re:TCL/TK by Tablizer · · Score: 1

      It is "hard" compared to one where scroll-bars are *automatic*. Plus, your code is a bit cryptic. Maybe Tk clicked with you fast, but I found it round-about.

    20. Re:TCL/TK by idlake · · Score: 1

      For one, TCL/TK is not visual. You have to use "liguistical placement".

      You have a choice; there are several visual designers for Tcl.

      Second, TCL/TK lacks things like automatic scroll bars. You have to glue the scroll-bars to text and widget windows yourself. That is so 80's.

      Megawidgets and iTcl give you scrollable components without any extra work.

  7. Hmmm by Tethys_was_taken · · Score: 2, Informative

    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. You can continue to use C/C++ and familiar code to create nice, simple Windows GUIs.

    Also, yes. You have definitely been very fortunate.

    1. Re:Hmmm by IAAP · · Score: 1
      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

      That explains why I had to take a shower everytime I wrote VB.Net Apps! fWhew! i thought I was going crazy!!!

    2. Re:Hmmm by gnalre · · Score: 1

      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++

      --
      Choose your allies carefully, it is highly unlikely you will be held accountable for the actions of your enemies
    3. Re:Hmmm by edwdig · · Score: 1

      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.

    4. Re:Hmmm by gnalre · · Score: 1

      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 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.

      --
      Choose your allies carefully, it is highly unlikely you will be held accountable for the actions of your enemies
    5. Re:Hmmm by JohnnyLocust · · Score: 1

      Visual C++, which despite being a good IDE is not very visual.

      Yup, Visual C++, one of the greatest misnomers of the 20th century.

  8. RAD tools by morgan_greywolf · · Score: 3, Informative

    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, C++ Builder, and C# Builder 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.

    1. Re:RAD tools by AndroidCat · · Score: 1

      The latest, Delphi 2006 gives you Delphi, C++, C#, .NET and Win32 all in one.

      --
      One line blog. I hear that they're called Twitters now.
    2. Re:RAD tools by Anonymous Coward · · Score: 0

      I agree, C++ Builder for example is great for this kind of task. Although I've had no Windows programming experience before (a little experience with OS/2, though), I managed to put together a Windows app with a nice GUI in (almost :) no time. Thanks to C++ Builder's GUI tools I could avoid all the details of Windows GUI programming and concentrate on the actual logic of my program instead.

  9. wxWidgets by TheGreatOrangePeel · · Score: 3, Informative

    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. I've only toyed with it myself, like what I've seen. There is also wxDevCPP which gives you a VB style GUI.

    1. Re:wxWidgets by truthsearch · · Score: 1

      wxWidgets totally rocks. I recommend trying it with Python. Together they make a fantastic client-side development platform.

    2. Re:wxWidgets by uradu · · Score: 2, Informative

      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.

    3. Re:wxWidgets by ClayDowling · · Score: 3, Informative

      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/ 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.

    4. Re:wxWidgets by maxume · · Score: 1

      It also depends on what you call small. Python+wx is gonna weigh in at, at least, 3 or 4 megs, compressed. For some people, that isn't small.

      --
      Nerd rage is the funniest rage.
    5. Re:wxWidgets by uradu · · Score: 1

      True, but compared to the .NET runtime it is. Even a decently-sized Delphi app with a bunch of forms and controls can easily weigh in at well over 1MB, similarly to a statically-linked MFC app.

    6. Re:wxWidgets by afd8856 · · Score: 2, Informative

      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

      --
      I'll do the stupid thing first and then you shy people follow...
    7. Re:wxWidgets by Anonymous Coward · · Score: 0

      Even a decently-sized Delphi app with a bunch of forms and controls can easily weigh in at well over 1MB

      Please hand in your geek card and badge, do not pass go and do not collect £200.

    8. Re:wxWidgets by 4pins · · Score: 1

      I agree! I find VB very sloppy. I love wxWidgets. I sometimes "use the source" to save me. The biggest bonus for me is that the wxWidgets documentation is superb.

      If you use C++ and wxWidgets you shouldn't have any trouble fitting your application on a 1.44MB floppy disk. Anymore, I call that "small."

      --
      I will not mourn that which I never had to lose. - Unknown
    9. Re:wxWidgets by uradu · · Score: 1

      Wow, I quite obviously haven't kept up with the Delphi scene. I haven't used Delphi professionally for over five years, and I guess it shows.

  10. Simple? by AKAImBatman · · Score: 1

    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 sucker for a bit of punishment, (but believe you can follow the documentation well enough) just use web tutorials and the online docs to guide you through the process. The Resource Editor will do most of the work for you, so you only need to worry about interfacing your code with the GUI components. (Easy, peasy. :-))

    Your last option is for the case that you're familiar with GTK+, and don't have Visual Studio available. (A real masochist you are, aren't you?) Grab a copy of cygwin and install all the dev time tools. (Compiler, BinTools, GTK-devel, etc.) Keep a copy of the GTK Reference up, and you should be good to go. Just remember that you'll need to distribute the cygwin.dll file with your application. Otherwise your users shouldn't notice.

    1. Re:Simple? by jifl · · Score: 1
      Just remember that you'll need to distribute the cygwin.dll file with your application.

      Not just that, you also need to provide the source for your application, unless you want to buy a licence from Red Hat. Cygwin is Free software.
    2. Re:Simple? by AKAImBatman · · Score: 1

      Since I assume that this is an internal application, the source requirement is a non-issue.

  11. Alternative.... by ceeam · · Score: 4, Interesting

    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.

    1. Re:Alternative.... by holy+zarquon's+singi · · Score: 1

      Or rig something up with Catalyst that uses one of the platform independent IO:: modules to read off the serial port. Encapsulate it in your applications model classes, whack up a few templates, [optional create executable application] and serve it all up locally using Catalyst's built in HTTP server.

      OK, so Catalyst might not be quite there yet, but it's close.

      --
      "...we should just trust our president in every decision that he makes and we should just support that." B.Spears 2003
    2. Re:Alternative.... by bergeron76 · · Score: 1

      I haven't done Windows in a while (thank you OS X), but when I did I used Perl2Exe for quick apps. You can do TK/TCL with perl, and compile it into a monolithic executable - albeit a big one.

      When I used it, it created 1 .exe file; so it's pretty easy to deploy into production.

      It's been a while since I used it, so I have no idea what the current state/status of that "app" is. I think it was Public Domain when I used it, with the option to purchase it. Anyway, I have more important _other_ slashdot posts to make, so I'll leave the homework up to you. It was a great little proggy.

      --
      Don't think that a small group of dedicated individuals can't change the world. It's the only thing that ever has.
  12. c# by szembek · · Score: 1

    c# using visual studio .net will be your best choice. It offers you the ease of VB when creating windows programs, at the same time the language is a lot easier and cleaner to use. I am actually surprised that VB is continuing to be released in the newest versions of .net. Why you would choose vb.net over c#.net is beyond me (other than vb6 legacy support of course). I haven't done a lot of Java programming but the syntax seems to be quite similar to c#.

    --
    nothing
    1. Re:c# by JohnnyLocust · · Score: 1

      other than vb6 legacy support of course

      I'm not even sure VB.net provides that much legacy support for vb6. VB.net and c# are essentially the same language. (You can actually design half a program in vb.net and the other half in c# if you were so inclined) VB.net is just a little easier on the eyes if you come from a Visual Basic background.

  13. Options by truthsearch · · Score: 2, Informative

    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.

    1. Re:Options by Anonymous Coward · · Score: 0

      Python can be shipped using the "McMillian" installer, and Ruby has rb2exe. Both decent choices for wxWidget development. For Perl, use PAR (par.perl.org) for similiar results. No reason to have the runtime installed seperately. Oh, and wx rocks.

    2. Re:Options by drewbradford · · Score: 1

      I highly recommend Python with wxWidgets for Windows GUI development. Because Python is scripted (though yuo can create an exe from a Python script) there are always plenty of examples to refer. I managed to create my first (fairly advanced) database-driven Windows GUI application in under an hour with Python, having never used the language before.

    3. Re:Options by NutscrapeSucks · · Score: 1

      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.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    4. Re:Options by ls+-la · · Score: 1

      could you post a link to a python exe compiler?

  14. Try Realbasic by Quiet_Desperation · · Score: 5, Informative
    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/

  15. You meant... by hummassa · · Score: 2, Funny

    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?

    --
    It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
    1. Re:You meant... by heinousjay · · Score: 3, Funny

      It may have been a Freudian slip, but I'd have to say the parent described MFC programming in an accurate fashion.

      --
      Slashdot - where whining about luck is the new way to make the world you want.
  16. Delphi beats pants of VB by heffrey · · Score: 2, Informative

    '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.

    1. Re:Delphi beats pants of VB by truthsearch · · Score: 1

      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.

    2. Re:Delphi beats pants of VB by heffrey · · Score: 1

      Well, use VB then if that's what you'd prefer. No skin off my nose.

    3. Re:Delphi beats pants of VB by shutdown+-p+now · · Score: 1
      Not true anymore as of VB.NET 2005. When there are things like generics in Delphi, wake me up.

      Though of course it's much easier to go straight for C#, with none of that brain-dead "byval x as y" (or "if z then begin ... end else begin ... end") syntax.

    4. Re:Delphi beats pants of VB by heffrey · · Score: 1

      No, you're right, if (z=x+++++y) { ... } is definintely much clearer....

    5. Re:Delphi beats pants of VB by shutdown+-p+now · · Score: 1

      You do realise the expression inside parentheses isn't even valid C#, do you? Or have you just learned that particular piece back in C++ days and didn't bother to upgrade your repertoire, or at least check if it is still meaningful?

    6. Re:Delphi beats pants of VB by heffrey · · Score: 1

      What about "if (x=y)"? Is that valid in C#?

  17. RealBasic! by numbski · · Score: 4, Informative

    http://www.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....?

    --

    Karma: Chameleon (mostly due to the fact that you come and go).

    1. Re:RealBasic! by coj · · Score: 1

      I'll second the RB recommendation. It's a very nice IDE, strong OOP abilities in the language, etc. Very good for doing smaller GUI tools. I wrote a few apps in it, including LameBrain for OS X.

    2. Re:RealBasic! by blueapples · · Score: 2, Informative
      I commented farther down but I'd like your response too. I recommended to the poster that he check out PureBasic (http://purebasic.com/) or BlitzMax (http://blitzbasic.com/Products/_index_.php).

      These are both much cheaper than RealBasic (PureBasic is only USD 69, BlitzMax with it's gui is $105) and they both provide Windows, Linux, and Max OS. In addition, they expose the entire application code to you--you see exactly how everything is created which as I understand it is quite unlike RealBasic.

      My biggest problem with RealBasic though is by far it's price tag. Pro edition is $399.95 for each operating system. That's just...well that doesn't make sense given two alternatives that do the same thing (though I will admit RealBasic has a very nice IDE for the most part, other than only showing you one function at a time--at least in default mode).

      PureBasic may not be able to compete with Real, but I believe that BlitzMax can really give Real a run for it's money. It's a good OO language with a low price point, pleasant syntax, and great interaction between other language sources (C, C++ and ObjectiveC source files can be imported directly into an application).

      --
      www.blueapples.org
  18. Try an .hta by Ropati · · Score: 1

    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

    --
    machinator omnis sine licentia
    1. Re:Try an .hta by Ropati · · Score: 1

      Install devcon.exe

      --
      machinator omnis sine licentia
    2. Re:Try an .hta by Chelloveck · · Score: 1

      Or NETCommOCX. It works quite well from within HTA scripts.

      --
      Chelloveck
      I give up on debugging. From now on, SIGSEGV is a feature.
  19. .NET doesn't imply visual studio by big+ben+bullet · · Score: 1

    there an open source alternative: #Develop

    and you can still choose between c# and vb.net

    but c# would be the way to go offcourse ;-)

  20. Delphi is decent by teeheehee · · Score: 5, Insightful

    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.

    --
    "We are not always what we seem, and hardly ever what we dream."
    Schmendrick the Magician
    1. Re:Delphi is decent by AndroidCat · · Score: 2, Informative

      There are also a lot of sites with information like about.com. Tutorials for the beginner, tips and hints for the more advanced.

      --
      One line blog. I hear that they're called Twitters now.
    2. Re:Delphi is decent by jonwil · · Score: 1

      I too LOVE delphi although I havent used it for as many things lately (I have been using C/C++ because I want to gain experience in writing win32 GUI apps with C/C++, plus my Object Pascal is a little rusty) but there are definatly things Delphi is good for.

    3. Re:Delphi is decent by Loquis · · Score: 1

      You can do lots of things with delphi. I've written services, front end to large accouting systems, user part of firewalls, anti virus and content filtering, communicating with hardware drivers and loads of other things.

  21. Java is an option by dslauson · · Score: 2, Informative

    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.

  22. WSH+JScript by Bogtha · · Score: 1

    If you don't like VBScript, then use Windows Scripting Host with JScript. 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.

    --
    Bogtha Bogtha Bogtha
    1. Re:WSH+JScript by Chelloveck · · Score: 1

      Or use WSH + PerlScript. Although it does have the drawback of requiring ActivePerl to be installed on the target machine.

      --
      Chelloveck
      I give up on debugging. From now on, SIGSEGV is a feature.
  23. Remember, new systems frequently lack COM ports by Aging_Newbie · · Score: 1

    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 virtualized via USB. If you have VB6 I would go with it.

    Just my .02 worth ... and may the force be with you.

    1. Re:Remember, new systems frequently lack COM ports by Jugalator · · Score: 1

      Not sure whether VB .Net 2005 has a serial component; probably not ...

      It actually has. :-)

      Here's some instructions on usage; unsure of how outdated since it's for beta 2:
      http://www.codeproject.com/csharp/SerialCommunicat ion.asp

      Here's the official documentation of the System.IO.Ports.SerialPort class:
      http://msdn2.microsoft.com/library/system.io.ports .serialport.aspx

      --
      Beware: In C++, your friends can see your privates!
  24. WxPython or Delphi by smeschini · · Score: 1

    I'm a Delphi programmer so I'd suggest you to use DELPHI, but you could give WxPyhon (http://www.wxpython.org/) a try! :-)

    --
    http://smeschini.altervista.org
  25. Swing or Swt... by $1uck · · Score: 1

    I guess this depends on what small is... and what your programming background is and whats already on the machine. I personally find writing swing apps to be extremely quick and easy at least compared to the last time I took a look at using the MFC to do windows gui stuff and everything you need to do it is free (as in beer). I guess MS has released some free development tools for .NET that aren't complete crap but I'm not sure what all you're allowed to do with what you develop with it. Unfortunately (or maybe fortunately) you'll probably only be able to use java for the gui and you'll need to do the rest of it in something else. But I think writing gui stuff in java is fairly easy. And once you've done it for this if you ever felt the need to write a gui for anything else (on most other os's/systems) you could use java.

  26. Visual Studio 2005 Express by the_arrow · · Score: 2

    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/.

    --
    / The Arrow
    "How lovely you are. So lovely in my straightjacket..." - Nny
  27. Visual C++ Express? by Jugalator · · Score: 2, Informative

    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 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.

    --
    Beware: In C++, your friends can see your privates!
  28. Express Editions FTW! by everphilski · · Score: 1

    - .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 - 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 patch.

    1. Re:Express Editions FTW! by truthsearch · · Score: 1

      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.

  29. One thing to be aware of: by uradu · · Score: 2, Informative

    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, 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.

    1. Re:One thing to be aware of: by Jugalator · · Score: 1

      All the Express editions only target .NET.

      No, VC++ Express 2005 target both native and .NET. You can make pure Win32 apps with it.

      --
      Beware: In C++, your friends can see your privates!
    2. Re:One thing to be aware of: by uradu · · Score: 1

      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.

    3. Re:One thing to be aware of: by Anonymous+Brave+Guy · · Score: 1

      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 missing profile-guided optimisation, for example) or the high-end team system stuff.

      I'll leave others to comment on the limitations of VB/C# 2005; I don't use those regularly.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    4. Re:One thing to be aware of: by blincoln · · Score: 1

      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.

      --
      "...always new atoms but always doing the same dance, remembering what the dance was yesterday." -Richard Feynman
    5. Re:One thing to be aware of: by uradu · · Score: 1

      I'm not sure what your point is.

    6. Re:One thing to be aware of: by YrWrstNtmr · · Score: 1
      I'm not sure if you're supposed to use Express builds for commercial purposes.

      As posted in another thread, yes, you can. There are no licensing restrictions on Express builds.

    7. Re:One thing to be aware of: by blincoln · · Score: 1

      That "it can't run without the .NET Framework" is always going to be a concern re: any modern versions of Visual Studio, not just the Express editions.

      Maybe I misunderstood what you were saying.

      --
      "...always new atoms but always doing the same dance, remembering what the dance was yesterday." -Richard Feynman
    8. Re:One thing to be aware of: by uradu · · Score: 1

      > Maybe I misunderstood what you were saying.

      Yeah, I was referring to the fact that the OP simply said "Visual Basic" in the context of the Express editions. Many people will understand that to be VB6 and prior, which do create native CLR-less executables, and some people might get the impression that the Express editions will also let you compile VB6 code, which is not the case.

    9. Re:One thing to be aware of: by blincoln · · Score: 1

      Ah, I see. I guess my mind must have recoiled in horror at the thought of anyone using VB6.

      --
      "...always new atoms but always doing the same dance, remembering what the dance was yesterday." -Richard Feynman
  30. Try WinBatch by Butterspoon · · Score: 2, Informative
    WinBatch, 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 as a satisfied customer, but this is really the type of shareware that makes you want to register it. I've done some remarkable things with it.

    --
    pi = 2*|arg(God)|
  31. Teach Yourself by Anonymous Coward · · Score: 1, Informative

    "Teach Yourself VB in 24 Hours"
    "Teach Yourself Visual C++ in 24 Hours"

    I'd keep away from .net stuff if a small footprint is required. it makes small executables but you'll have to ship the framework cuz not everyone has it. furthermore, most people with serial ports on their computers will be using older versions of windows. I like C++/MFC myself but VB 6 will do the trick.

    Scott

  32. C# by matts.nu · · Score: 1

    C# is free (for a year), and you don't have to learn Basic.

  33. Java or .NET by miyako · · Score: 4, Informative
    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.
    --
    Famous Last Words: "hmm...wikipedia says it's edible"
    1. Re:Java or .NET by 13rian · · Score: 1

      You don't need to sketch out your GUI if you've got the right layout manager. Check out ZoneLayout at http://www.zonelayout.com/. It's simple, powerful, easy to learn, and through the use of a 2D reg-ex-like language, you can "see" your layout. Very cool stuff.

  34. VB. by lattyware · · Score: 1

    I'd reccommend Visual Basic EE. It's free at the moment, and easy to use. I've been using it quite a bit recently.

    --
    -- Lattyware (www.lattyware.co.uk)
  35. VB is Ok, IMHO. by IAAP · · Score: 1
    But, I think C++ would be a better choice. Not that it's superior, but because so many other languages are insprired by it, like Java. I tell you, by knowing C++, picking up the current generation of languages was pretty easy.

    The other thing about getting to really know C,C++ is that you can follow system code whenever you have to look at it.

    Of course, all the above is just my opinion and based on the current available languages.

  36. Re:C# is the best by Marbleless · · Score: 1

    A much nicer language than VB, very powerful, and easy to use and there is a good growth path into the full Visual Studio products if you ever need too. After 6 Nov 06, new downloads & purchases will be US$49, but until then you can download it for free and use it for as long as you want. http://msdn.microsoft.com/vstudio/express/support/ faq/default.aspx#pricing

    --
    --I thought I was wrong once, but I was mistaken.
  37. Starpacks, Tcl/Tk by DavidNWelton · · Score: 4, Informative

    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

    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).

  38. Nobody said Mozilla??? by Anonymous Coward · · Score: 1, Interesting

    XUL (pronounced "zool") is Mozilla's XML-based User interface Language that lets you build feature-rich cross platform applications that can run connected or disconnected from the Internet.

    How powerful is it? Well, Mozilla Firefox and Thunderbird are two examples.

    http://www.mozilla.org/xpfe/
    http://www.mozilla.org/projects/xul/
    http://www.xulplanet.com/

    1. Re:Nobody said Mozilla??? by sinserve · · Score: 1

      First, the man wants serial interface.

      Second, he wants small foot print.

      Third, SHUT THE FUCK UP, not everything needs to be done with mozilla.

    2. Re:Nobody said Mozilla??? by Zarf · · Score: 1

      Third, SHUT THE FUCK UP, not everything needs to be done with mozilla.

      I disagree, I even floss with Mozilla.

      Also, I'd pay real money to see the code for a program that used a serial device as datasource and XUL for display. If someone could do that reguardless of if they should or not... it'd be a hoot to see. Maybe we could write an FDISK interface in XUL. Now that would be too XUL for SKUL... err.. school.

      --
      [signature]
  39. I wonder... by hummassa · · Score: 1

    How will he access the serial port under .hta?

    --
    It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
    1. Re:I wonder... by baadger · · Score: 1

      ActiveX.

  40. Win32 dialog only class by NullProg · · Score: 3, Insightful

    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,

    --
    It's just the normal noises in here.
  41. Liberty Basic is one _Simple_ way to go by EmbeddedMan · · Score: 1

    I'm a very satisfied customer of Liberty Basic. Their free version is all you'll need. I do serial port GUIs with LB all day every day. http://www.libertybasic.com/ MUCH simpler than VB, .NET, C# or almost any of the others, but still gives you a complete GUI experience. The helpfile and exapmle code make it trivial to cook up code quickly. Try it out -

    1. Re:Liberty Basic is one _Simple_ way to go by Anonymous Coward · · Score: 0

      And don't forget there is a completely free version of it too called Just Basic. http://www.justbasic.com/

  42. I am surprised ... by dominic.laporte · · Score: 1

    No one mentioned wxWidgets they also have plenty of IDEs available in the tools section.I have used wxglade in the past and was able to do all my work on it.

  43. LabView by Anonymous Coward · · Score: 0
    Check into LabView. Geared nicely towards graphical representation of data. Makes serial IO simple and you need very little windows programming experience. From their site http://www.ni.com/labview/:
    For 20 years, NI LabVIEW graphical development has revolutionized the way engineers and scientists create flexible and scalable test, measurement, and control applications rapidly and at minimal cost. With LabVIEW, developers interface with real-world signals, analyze data for meaningful information, and share results and applications. Regardless of experience, LabVIEW makes development fast and easy for all.

  44. Is Perl/TK really out of the question? by Jon+Luckey · · Score: 1
    You speak about perl/tk as a rejected option, because you need it small and easy to use.

    Since you are probably using ActivePerl, have you considered using the perlcc command to make a single EXE file of your application? Its easy to install as any other stand alone EXE file.

    'Small' might be another story. Its certainly smaller than a full perl install on your target system. The EXE will be bigger than a meg certainly. Large compared to true compiled application, larger, and a bit slower to start up, as it unpacks its required modules from its internal package.

    But a few meg isn't really that big of a deal these days.

    YMMV

    --
    -- 3 events that reshaped the world in the 20th century: WW1, WW2, and WWW
  45. why not perl? by Anonymous Coward · · Score: 0

    Why discount perl/tk? ActiveState has a perl developers kit, PDK I think they call it. It has a perl compiler to create an "exe" from your perl code. It supports gui apps, and can create wxperl backed interfaces... I see no reason why tk wouldn't work. For $150, your home free.

    Grab up a CPAN module for serial connection and your done. Use the tools you know.

  46. Rebol? by DamienMcKenna · · Score: 1
    One easy language to try is Rebol. 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 is best known for bringing multitasking to personal computers with the Commodore Amiga operating system.

    The power of REBOL comes from its unique integration of programming language concepts and metadata language concepts. REBOL expresses and symbolizes both algorithms and data equally well, and the flow between those domains is totally fluid.

    As a result, REBOL is optimal for X Internet distributed applications. It provides more effective solutions to modern network distributed applications. When compared to traditional languages, REBOL offers greater expressive power with less code. Most applications are typically measured in 10's of KB, not 10's of MB. And, when it comes to software development and support costs, smaller is better.

    You can learn more about How REBOL is Different or for a quick introduction to the REBOL Language, read REBOL in a Nutshell.

    You should take a look at their examples page which lists lots of simple apps that were written in a fairly small amount of code.

    Most of the facilities of the language are free-as-in-beer and there are some paid options if you want some advanced features.

    Give it a try.

    Damien
  47. AutoIT by Goyuix · · Score: 1

    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/

  48. Reconsider precompiled Perl/Tk by mysticgoat · · Score: 1

    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 installation can be as simple as setting a desktop shortcut to the executable (Perl does not need to be resident on the target machine). The executable will be comparable in size to any executable a C programmer is likely to produce for the 1.xx series of revisions. Figure roughly a megabyte for the compiled Perl and Tk libraries and a couple of kilobytes for your own code.

    I have had good success with precompiled Perl/Tk where the goal was to get efficient executables onto a machine that we did not want to have Perl itself on (for security reasons). We needed a tool for clerical staff to convert Word 97 documents to clean HTML4.0 that would work with our style sheets. Perl's pattern recognition made this easy to do; perl2exe gave us a sane way of implementing the solution.

  49. You expected Windows programming advice from /. ?? by ednopantz · · Score: 2, Insightful

    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.

  50. If DotNet is an option, try SharpDevelop by Wokan · · Score: 1

    I've installed the GPL licensed SharpDevelop at home and work. It's similar to a stripped down Visual Studio. It doesn't do ASPX with code-behind very well yet, but they're working on it. It should be just fine though for making a Windows GUI app as long as the DotNet libraries provide access to the ports you're using or you can get a hold of some that do.

  51. Your First Job? Congratulations. by LifesABeach · · Score: 1

    The answer to your question is relatively simple. Do what your client/boss said to do within the Client/Bosses guide lines of your task. Create an outline of the various subtasks. If the subtasks are still to complex, then break those into smaller subtasks. Then one by one, complete the project, "As Tasked". The moment you break out of the client/bosses guide lines of your task, and then communicate this to your client/boss in a non emotional manner. Your boss/client will make a Go/No-Go decision. Don't Get Married To Your Project. You'll learn the hard way, later. With respect to choosing a language, its only syntax. Once your task is done, turn it in, demo it. Ya, you'll get extra requests added on to it. Do Not Do Extra Stuff For Free; It's what pays your rent. When the task is done, and the extras are completed; Ask for your money; Then get your money, in your hand. Then you can go to step 2.

    Step 2: Consider what is was like working for this client/boss. Check the job market. Make your best guess. Then do it all over again.

    Does this work? For me it does. But I've learned, "Pride Comith, Before the Fall". The ancient Greeks would say, "Before the Gods make you fall; They first give to you the gift of Pride."

  52. Open Source .NET Tools by WombatControl · · Score: 2, Informative

    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 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.

  53. QT or Delphi by nbritton · · Score: 2, Informative

    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 learn. It also has a Linux counterpart called Kylix.

  54. BlitzMax by JohnnyLocust · · Score: 1

    A very underrated development environment is BlitzMax http://www.blitzbasic.com/

    It was created by Mark Sibley, (who also created the venerable blitzbasic for the Amiga over 15 years ago). It's very simple to learn, is available for Windows, Linux, and OsX, and has something of a cult following.

  55. Re:TCL/TK - serial ports? sure by DavidNWelton · · Score: 3, Informative

    If you work around the less than ideal formatting, you can find information about dealing with serial ports here:

    http://www.tcl.tk/man/tcl8.4/TclCmd/open.htm

    It's part of the core system. I recently created a coin operated internet system driven entirely with Tcl/Tk. I thought I'd have to do the serial port portion in C for speed reasons, but Tcl proved plenty fast - even a scripting language operates much, much faster than someone can shove coins into a slot.

  56. Java Native Code Compilation by aminorex · · Score: 1

    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.

    --
    -I like my women like I like my tea: green-
  57. C# Demo Program by rjstanford · · Score: 2, Informative

    You can grab a free copy of the Visual C# IDE from Microsoft. Start with something simple, like this sample program 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 into the more obscure ones).

    Problem solved with a small amount of money and a small amount of time - and you have a standards-based application that any other Windows programmer will understand and be able to maintain. Unless you really want to spend all of your time working on stuff like this because you're the only person in the company who knows how to use your TCL/whatever/hybrid built-into-an-exe mess of a program? Cool as it may be, if it can't be trivially handed off to someone, its your problem for as long as you stay at the company.

    --
    You're special forces then? That's great! I just love your olympics!
  58. Re:VB not the answer by Doctor+Memory · · Score: 1

    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 perfect for this project.

    Nothing against Tcl (actually, I hate it, but this would be a good application for it), but apps built against Tk don't look quite like Windows apps. Not sure if that would be a factor, but the principle of least astonishment would seem to apply here.

    --
    Just junk food for thought...
  59. Perl2Exe by Persnickity · · Score: 1

    If you are comfortable with Perl/Tk, then I would suggest Perl2Exe. It can create a stand alone executable that contains everything you need to run the script. You can then ship just that one binary from machine to machine and have it run without problem... Well, no more problems that the Windows platform presents you with that is.

    We use Perl2Exe at work for a few Perl based large applications and have been extremely pleased with the flexibility it provides in terms of distribution of our end product.

    http://www.indigostar.com/perl2exe.htm

    --
    - Persnickity
  60. Delphi is clearly the best choice by ngdbsdmn · · Score: 1

    I worked a lot with Delphi and C# in Visual Studio 2003/2005. Also flirted with Visual C++ and hated everything about Visual Basic. Delphi is very very very easy to learn and use and, if it should be required, it can provide control down to assembler code.

    There are two key elements you need to look at. One is the IDE (Integrated Development Environment) you will be using, and the other one is the framework of classes that will give you the abstractisation level needed so that GUI technical details can be ignored. The actual programming language is not of critical importance, basically if you know one you will adapt very fast to another.

    The Delphi IDE is very visual and intuitive. Any other one I used pales compared to it and Visual Studio 2005 only now is capable to provide features Delphi had since 10 years ago. You just have to use it a little and you'll see.

    Most Windows applications are built with helper frameworks. The Delphi framework is named VCL and is very easy to use. The visual components (buttons, checkboxes, windows, etc.) are all programmed so that they expose events that will be fired for you. It goes like this: you see a button in the designer and you choose an event this button exposes like the OnClick event. Double click on the event name and the IDE takes you to the place where you'll write the code behind that button. This model is very easy to understand and will work well for small applications. It is used with limited succes even in large applications where it should normally have no place. For small applications you have no need to understand how Windows manages GUI details.

    People around here may tempt you towards new and hip things, old dogs like C++ or the traditionally easy VB. Don't listen! VB6 was a piece of crap and VB.NET is cool if you like typing a lot of crap. C++ is a monster that will bite you the first chance it gets and it's visual editor is about as good as the one in VB if not worse.

    Try Delphi, it's exceptional despite the fact it has some dust on it. :)

  61. Re:TCL/TK - serial ports? sure by Rev+Snow · · Score: 1

    Same contents, better formatting at

        http://tmml.sourceforge.net/doc/tcl/open.html

  62. Python + GTK by _intrepidhero · · Score: 1

    I was pleasantly suprised at how easy it is to develop with Python and GTK on both Linux and Windows. Right now I am doing a little hobby project and I can copy my source tree from my Windows box to my Linux laptop and it runs exactly the same. It took an hour or two with google to find all the packages I needed on windows, while my linux distro (Suse) installed them automagically.

    These are the files I installed:

    • python-2.4.2.msi
    • gtk+-2.8.9-setup-1.zip
    • pycairo-1.0.2-1.win32-py2.4.exe
    • pygtk-2.8.4-1.win32-py2.4.exe
    • pysqlite-2.1.2.win32-py2.4.exe

    Then a futzing with the PATH and LIB variables and everything works nicely. I can use Glade to build the gui, pygtk to load it, and sqlite to store data.

    --
    Some time I shall sleep out, the rest I'll whistle.
  63. Qt by yamla · · Score: 1

    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.

    --

    Oceania has always been at war with Eastasia.
    1. Re:QT by Arandir · · Score: 1

      I would second that. For what he wants to do, he could snap it together with a few lines of code. But he did mention he wanted something quick and easy to learn. No GUI toolkit is going to offer that, but if he knows C++, Qt has great documentation and is easy to learn.

      --
      A Government Is a Body of People, Usually Notably Ungoverned
  64. The only thing you need to know about Windows dev. by Anonymous Coward · · Score: 0

    If you actually want to write a clean win32 program, you only need do this:

    1.) Read "Programming the Windows API 2nd Edition" by Charles Petzold.

    2.) Get MINGW/MSYS

    Your skills in windows programming may be 10 years old, but that is okay because most of the useful and good parts of the windows api havn't changed in 15 years.

    If you want to write a program that is easy for the user to install DO NOT use any 3rd party libs (dll hell), DO NOT use .net (large pointless downloads), DO NOT use Java (slow and ugly), and NEVER NEVER use Visual Basic (all of the above).

  65. Ain't No Such Puppy by Randolpho · · Score: 1

    "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 learning curve is large. MFC is also an option, but the learning curve is actually a little higher, even if you can do much more with MFC than with Win32.

    If you happen to be using the latest windows operating system (i.e. XP SP2), odds are that you have the .NET Framework pre-installed. If that's the case, you're best off using Visual Studio's GUI designers and whichever language flavor you prefer (I recommend C# over VB). As has already been pointed out, there are free/beer and free/freedom alternatives to buying Visual Studio.

    If .NET is unavailable and small installation size is a key factor, use Win32. Odds are you're a system programmer, so Win32 will probably be a fairly smooth transition for you. Unless you happen to hate Hungarian notation like I do -- then you'll want to pick up your monitor and throw it across the room whenever you use Win32 (or MFC). :)

    --
    "Times have not become more violent. They have just become more televised."
    -Marilyn Manson
    1. Re:Ain't No Such Puppy by blueapples · · Score: 1
      I'd say PureBasic is a rare example of a language that goes against your theory. http://purebasic.com/

      Easy to learn -- it's just Basic -- and a really straightforward GUI lib built in. Piece of cake.

      --
      www.blueapples.org
  66. python/wx/py2exe by hrbrmstr · · Score: 1

    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 can use the full Win32 API if you need to. Python makes it pretty straightforward to wrap external libraries if you need to access specific functions in DLLs.

    If you really need it compiled down, the wxWidgets libs work great under C++ and python makes a great RAD testbed which can easily be translated back down to C++.

    I never expected to become a python fanboy, but there it is.

    --
    Mind the gap...
  67. QT by Bluesman · · Score: 2, Informative

    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.

    --
    If moderation could change anything, it would be illegal.
  68. Re:Visual studio... or maybe Mono? by digitalgiblet · · Score: 1
    Mono 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 most attractive version of .Net.

    I'm trying to be factual without inserting opinions about the motives of any of the parties involved or their relative worths, and I am not currently using Mono, nor am I specifically recommending it, .Net or C#. I'm just trying to point out one of very many options to the orignal poster.

    If anyone wants to debate the value of .Net, Mono, Microsoft, ECMA, emacs, vi, Linux, Mac, Apples, Oranges, or whatever, feel free. I, however, am not interested in a debate.

  69. Qt? by Meadlin · · Score: 1

    If your environment allows for it, i.e. OpenSource or you have the money for the license, why not Qt. It adds a degree of portability to the application and is a fairly easy api to code to. Just another idea at any rate.

  70. Re:The only thing you need to know about Windows d by Anonymous Coward · · Score: 0

    This is the first insiteful comment in this entire article.

    The scary thing is, many of the other posters advocating their bloat/crapware systems in here are also involved in crapping up Linux.

  71. Don't use VB.NET by code+addict · · Score: 1

    I can't believe the number of people still recommend VB for simple development. What's even more suprising is the number of people recommending VB.NET. There is just no reason to use those languages anymore. VB.NET exists solely to prevent the scores of VB programmers from feeling left out in the .NET world and shouldn't be considered unless the only language you are familiar with is VB.

    With Visual Studio .NET, it is now as easy to make GUI apps in C# or C++ as it is in VB. They use the same Forms tools, and generate similar code (except in their native language of course). VB's greatest strength was it's drag n' drop forms tool for GUI development, and with the other tools now incorporating something equivalent, IMHO VB should no longer be considered.

    If you don't want to use the .NET tools there are still a variety of frameworks out there: MFC, ATL, raw Win32 API, wxWindows, Qt, GTK, etc. I've listed mostly C/C++ ones, but I'm sure a quick good search would turn up others.

    1. Re:Don't use VB.NET by ratboy666 · · Score: 1

      "I can't believe"

      Why? I don't want to learn "alphabet soup". If I need to write a simple GUI application, I need it to STAY SIMPLE. I don't have the time to argue with C++. Face it, even with Unix most of my stuff is written in sh, awk, perl. NOT IN C or C++.

      I don't even want to here about VB.NET! Give me old fashioned VB (5 or 6 - I use 5). Kind of like Perl for Windows.

      Yes, I know about the "Windows Scripting Host". I *could* write in JScript (I don't know if VBScript is installed on my Windows). Again, VB is easier. And I push a button, an INSTALLER is born, and I can distribute my script.

      So why the negativeness? Because its BASIC? Because it works? Because it targets WinNT, 95, 98..XP? Because its quick? Because people actually LIKE it?

      Ratboy

      --
      Just another "Cubible(sic) Joe" 2 17 3061
  72. TCL/TK-Installshield by Anonymous Coward · · Score: 0

    I agree. Plus the later Installshield's allow automatic downloading off the Internet what's needed. All the person has to do is make certain their Internet connection is up.

  73. VB. Don't be fooled: VC++ is not similar by dpbsmith · · Score: 3, Interesting

    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.

    1. Re:VB. Don't be fooled: VC++ is not similar by jyx · · Score: 1

      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.

      That would be C#

  74. pythoncard by Anonymous Coward · · Score: 0

    if you dont wanna spend any money, and dont care about stuff that has beta style bugs, look over pythoncard for an hour or three... copy the examples and see how they work.

  75. Good C++ is wxWidgets by Nicolay77 · · Score: 1

    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 install using the provided installer, you just know it works in your computer but it can be a really complex task to make it run in different setups.

    If you like Ruby, Python, perl, or several more languages; you can use wxWidgets with them too.

    --
    We are Turing O-Machines. The Oracle is out there.
    1. Re:Good C++ is wxWidgets by Grab · · Score: 1

      I'll second wxWidgets - it's a great choice and much better than MFC. And if you use py2exe to get yourself an executable, you don't need everyone to install Python to use your program - just run as usual.

      Grab.

  76. Python by Anonymous Coward · · Score: 0

    Python might be a good way to put a graphical front end on just about anything else.

    It has a rather nice set of libraries for opening/managing windows, and is pretty comprehensive in other ways. The learning curve is almost nonexistent, and the library documentation is good stuff. I'm just not sure if it will talk directly to the serial port; IPC might be your friend there.

    Only gotcha which springs to mind: Python does pass-by-reference.

  77. Visual Basic 5, Learning Edition by ratboy666 · · Score: 1

    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

    --
    Just another "Cubible(sic) Joe" 2 17 3061
  78. Re:You expected Windows programming advice from /. by moria · · Score: 1

    IMO, it's not a bad idea, considering a major portion of slashdotters have similar background and many feel fortunate for not having to develop in Win32 environment. The author of post does not want to "learn anything about Windows programming". He just need a temporary, quick and probably dirty solution, from the point of view of a UNIXer.

  79. Not Real, not Visual. Try Pure or Blitz. by blueapples · · Score: 1
    RealBasic is much too expensive, same goes for Visual Basic (maybe the express edition would work) is too overweight for what you want to do.

    I strongly recommend looking at BlitzMax and their GUI toolkit MaxGUI. Price here is USD $80 + $25, but it is a solid environment that can interface C libraries directly, even compile libraries like SQLite from source directly into the application. No runtime required. http://blitzbasic.com/Products/_index_.php

    Another option which I advocate, and which may be even better for your situation, is PureBasic. This is only USD $69 and comes with it's GUI toolkit, no added cost. Includes a GUI designer to give you some basic GUI code to get things started. No runtime required. http://www.purebasic.com/

    Both of these languages do not require a runtime, compile to native code on Linux, Windows and Max OS (probably not something you need to worry about but it's there for free if you need it--in RealBasic you have to pay another $400 or so for each platform).

    --
    www.blueapples.org
  80. wxWidgets by reed · · Score: 1

    I am a fan of wxWidgets. http://www.wxwidgets.org./ Write in C++, or in Python and compile.

    I also work on a Windows app that use GTK and it works pretty well (and it's plain C), though GTK apps look very slightly different (since it implements all the controls itself) and you need to include all the GTK and GLIB DLLs with your program.

  81. yahoo widgets by aberson · · Score: 1

    yahoo widgets, aka konfabulator... XML for windowing and JavaScript for the code. Can you get to serial ports from javascript? maybe.

    or the google whatever plug-in-bar thingy might work too.

  82. Delphi by Pig+Hogger · · Score: 1
    Borland Delphi.

    It is a very user-friendly RAID system which can produce a polished product very rapidly. Since it uses Pascal, it does not have C's assininely stupid pointer-based string that are so loved by crackers thanks to their buffer overflows. And the Borland Pascal has zillions of extensions that makes it just as capable as any C++ compiler, but without the obfuscateness.

    One could think of Delphi as "visual pascal on steroïds"; Delphi produces an executable file, which does not needs 36,000 DLLs to be arcanely installed.

    And if you need to use a database, Delphi offers either standalone "Paradox" databases, or ODBC interface to connect to your favourite SQL database.

    1. Re:Delphi by RealityMogul · · Score: 1

      FWIW, TurboPower open-sourced their communication package Async Pro which includes serial i/o capabilties.

  83. VB 6 by Austin+Milbarge · · Score: 1

    It's not that expensive to buy. You can construct a GUI in minutes and access to the Windows API is simple through the API Viewer. VB 6 is still a very viable solution to writing quick apps because the language is simple, you don't have to learn a big API (other than WinAPI of course), you don't need a big runtime to distribute or download and there are tons and tons of web sites, articles and code snippets available.

  84. LabVIEW by Anonymous Coward · · Score: 0

    Give LabVIEW a shot. It'll set you back some $$$, but probably one of the best languages for developing an application where you get data from somewhere and need to present that graphically to the user.

  85. Delphi by silverdirk · · Score: 4, Informative

    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/

    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.

    --
    Mark of the Coder fades from you. You perform Opening on World of Warcraft. Warcraft crits GPA for 4. GPA dies.
  86. Another vote for Delphi by mobby_6kl · · Score: 1

    Since I just ran out of mod points, I'll post instead.

    Delphi's based on Turbo Pascal so should be easy enough to learn quickly, GUI design also extremley simple point-and-drool. IIRC, it also comes with sources for the default component library. I'm not sure if you realy need that, but in any case that's a plus. There are also tons of additional componens which might be just right for your job, often free as in beer or speech. Have a look at Torry's Delphi pages, lots of stuff there, including components and tools.

  87. In house tool or for distribution? by Anonymous Coward · · Score: 0

    One nice thing about Visuo Studio and Borland products is that they have installers that simplifies the task of installing the application on your customer's machine. So, if your product has to have the "remove the shrink wrap and click one icon to install" experience, that's probably the route you want to go.

    I don't know about other development platforms, but others have already commented on a few "install one package" runtimes...

  88. Agreed: Delphi rocks by ArghBlarg · · Score: 1

    Parent's points seconded.

    Best win32 GUI dev environment. Tons of components to make obscure corners of the Win32 API easy to use (systray apps, bubble-help, transparent or non-square windows, ...); most come with source too, if you want to customize them.

    Delphi bindings for nearly every common API/toolkit you'll ever want (openGL, SDL, fmod, ...)

    Great debugger, support for embedded asm if you really really need it.

    Remember that the designer of C# was also the head dev for Object Pascal for years... a lot of C#'s nicer language features (like properties) are direct descendents of Delphi.

    --
    ERROR 144 - REBOOT ?
    1. Re:Agreed: Delphi rocks by marcovje · · Score: 1


      Problem is though that Delphi is getting more and more expensive (Eur 1000 for the minimal versions, and 500 per upgrade that often doesn't add that much for win32).

      Also see Lazarus as crossplatform OSS equivalent http://lazarus.freepascal.org/

  89. Don't use anything by koro666 · · Score: 1

    I'm quite surprised nobody has yet suggested to just code the application using nothing special (no runtime at all), only directly the Windows API.

    It's the way to go to create small & fast executables that need nothing to run.

  90. my option is Delphi for a similar problem by mlevils · · Score: 1

    I was in the same situation a month ago. I had to develop a graphical interface for a application with no MFC background. My project needs to read a GPS from serial to collect geographical info and join aditional info for plotting. I choose to develop it in Delphi using a very easy-to-use component for serial communications (CDD4). The result is easy to distribute because is is only a .exe file. The learning curve for Object Pascal is easy for anyone with background in any language. The code generated is easy to understand (not like VB).
    I believe I made the rigth choice.

  91. LabVIEW by MasterLock · · Score: 1

    What kind of data are you going to receive and display? Is it for home use or business? It's expensive but LabVIEW from National Instruments is made for this kind of stuff.

  92. Stay clear of .NET if not already there by Curmudgeonlyoldbloke · · Score: 2, Informative

    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.

  93. Maybe Ruby? (and rubyscript2exe) by obi · · Score: 1

    If you don't mind Ruby (and why would you, Ruby's great), check these out:

    - http://www.erikveen.dds.nl/rubyscript2exe/
    - http://www.erikveen.dds.nl/allinoneruby/

    It "collects" all of your ruby source and libs in one compact executable. It works on Windows, MacOSX and Linux. And it has the possibility to not include the Ruby/TK bindings, but the TK libs as well!

    I guess you could also use Ruby bindings for native win32, or bindings for GTK+.

  94. Dev-Cpp by slapout · · Score: 1

    If you don't need a GUI editor, Dev-Cpp is a free package that includes an IDE and C/C++ compiler for Windows.

    http://www.bloodshed.net/devcpp.html

    --
    Coder's Stone: The programming language quick ref for iPad
  95. Re:You expected Windows programming advice from /. by CETS · · Score: 1

    Sharing some of your wisdom re: misinformed comments might actually make your post useful.

  96. Skip VB, go directly to Delphi by Anonymous Coward · · Score: 0

    I've used both VB and Delphi extensively. Hands down, I'd use Delphi to do the job. If you need your environment to be free, and it is for commercial applications, I'd look at Tcl/Tk -- otherwise, spend your money on the Borland product. You'll be a *lot* happier.

  97. Re:VB not the answer by cgreuter · · Score: 3, Interesting

    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.

  98. If you're a C++ nut... by Pseudonym · · Score: 1

    ...then you should check out John Torjo's most excellent win32gui library. Not only do GUIs and generics mix, C++ can be a RAD language.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  99. Visual DialogScript by jrmarquart · · Score: 1

    You might want to take a look at Visual DialogScript (www.dialogscript.com). It compiles into one executable and uses only one dll. The syntax is very friendly and is somewhat like Delphi. It's a procedural/non-OO language. Message forums are very helpful at www.vdsworld.com.

    BTW: I've designed an example application called G-Hotkey (www.g-hotkey.com) which is a macro program for computer games if you'd like to see how small the application footprint is.

  100. Or if you do need a GUI editor... by sha_grin · · Score: 1
    wx-Devcpp (Devcpp but with a WxWidgets GUI editor)

    http://wxdsgn.sourceforge.net/

  101. Careful with usb-serial converters by Anonymous Coward · · Score: 0

    Just a warning : many of the usb-serial converters do not work well with serial controls. They drop a packet of bytes here and there. Try to do your work with a real serial port (I consider a pcmcia serial port to be real, a usb serial port is not.). Specifically, MicroSoft says that the serial port control that comes with VB 6 should not be used with usb serial converters.

    http://support.microsoft.com/default.aspx?scid=kb; en-us;832678

    Note You cannot use the MSComm control to access a USB serial adapter that is connected to a USB port. If you try to use the MSComm control to access a USB port, you may receive the following error message:

    Run-time error '8015': Could not set comm state, there may be one or more invalid communications parameters

  102. Visual Studio 200x makes writing GUI apps in C# and .NET dirt-simple. Literally, click-and-drag your forms (windows) and their controls into place. The form/window design is as easy as VB, and the C# language is as sane and well-structured as Java.

    (Whether Java is better/worse than C# is a different argument I'll avoid altogether, because I have no strongly-held opinion yet (except that I prefer C#/.NET GUIs to Java GUIs on the basis of runtime speed alone), although, I do worry sometimes about the viral effect of C# + Mono...)

  103. Go use the Visual Studio 2005 Express Editions! by AaronBrethorst · · Score: 1

    Yeah, a number of people have already mentioned them, but I have a few extra things to add. First off, the Express Editions are free (as in beer) right now to download and use. You can build commercial apps with the Express Editions.

    I'd recommend downloading both VC# and VB Express and using both of them for a little while to see which language you're most comfortable with. In both, you'll be able to use the Windows Forms designer to create your UI, and the process is pretty-much painless with the 2005 products with their new UI design features.

    Next, we added a serial port control to the .NET FX v2.0, which is what VS 2005 and the Express Editions all use. This makes it pretty easy to write code that'll grab the data you need. There's a great article on it over at Code Project that walks you through the basics.

    Also, if you ever run into trouble you can get help on our Forums at http://forums.microsoft.com.

    Good luck!

    --
    No, but I used to work for Microsoft.
  104. Python + wxPython by NNland · · Score: 1

    Give yourself a couple days to get into Python, knowing how Python classes work will help.

    Then spend a few days digging into wxPython.

    There are various Python serial interface modules available, and reading from them via a thread, and posting data updates via events will finish everything you need.

    Alternatively, pay someone who knows what the heck they are doing to write it up in a couple hours.

  105. Delphi or C# by shutdown+-p+now · · Score: 1

    Both advices given already make sense. If you really want no extra dependencies and a slim executable, go for Delphi. You could make it even smaller in C++ and WTL (or even C and direct API calls), but it would hardly be worth it considering the increase in complexity. C# is probably the best choice if .NET Framework is deployed already, or if its deployment is not a problem - the IDE is good, documentation is superb, and overall the language and the libraries are somewhat better designed than Delphi/VCL.

  106. Tk look and feel by DavidNWelton · · Score: 1

    If you don't like Tk's default look and feel, it's time to look at Tile:

    http://tktable.sourceforge.net/tile/

    "The Tile Widget Set is a next-generation re-implementation of many of the core Tk widgets, along with the addition of several new widgets. With Tile, Tk applications can achieve an appearance much closer to native platform widgets, as well as take advantage of a modern, highly dynamic theme engine to produce a wide variety of alternative user interface styles. Tile widgets complement the existing Tk widgets, and Tile is currently being incorporated directly into Tk."

  107. If you know C++, try QT by munro · · Score: 1

    I would recommend QT because:
    1. You might as well write cross platform code if you can.
    2. You might as well use open source tools whenever possible.
    3. If you write it in C++ your application will be fast and responsive.

    You can either use the commercial or the GPL versions, and you can develop on your favourite platform (Solaris/BSD/Linux/various other *nix/Win32/Mac), and the resulting application will actually look nice and friendly, unlike many other GUI toolkits which produce slightly alien-looking results.

    http://www.trolltech.com/products/qt/

    If you prefer C, you could use GTK+ instead: http://www.gtk.org/

    It is extremely satisfying to develop a GUI application on your GNU/Linux box and later see it running on a Mac and a Windows box, looking just like a native application on each platform, and performing well. Happy customers.

  108. Re:VB not the answer by the_womble · · Score: 1
    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.


    Tile


    No debugger. You're stuck using printf^Wputs statements.


    RamDebugger

  109. PerlApp by TheRealDamion · · Score: 1

    Try using PerlApp http://www.activestate.com/Products/Perl_Dev_Kit/ which should build you a single .exe (you can get it for unix too) which embeds all modules needed, but only the modules used, so shouldn't be too big.

  110. Delphi/ lazarus by marcovje · · Score: 1

    The best win32 tool: Delphi

    Good OSS alternative: http://lazarus.freepascal.org/

  111. Tcl/tk or python/tk by Michael+Snoswell · · Score: 1

    Tcl/tk is very small and fast to develop with. Comments elsewhere mention how it can be made into a single EXE. I've used ActiveState Tcl to make standalone exes. In a few hundred lines I wrote a realtime industrial monitoring system with graphs and popups and all sorts - accessing data via sockets but serial ports is easy too.

    For slightly easier to read code (and maintain later on) I've used python with tk to monitor a network in realtime linked to perl/awk socket servers that gather data in a dozen lines. It takes a bit more code but may be easier for others to pick up on after you. Python is big to distrib though there's probably some product to make standalone exes like with tcl.

    --
    pithy comment
  112. Delphi good, but what about NetBeans? by Latent+Heat · · Score: 1
    For Win32 stuff, Delphi is great, but I second the concern of the poster below that it costs too much -- no more Philipe Kahn selling it for 49.95 USD.

    What about Java? What about NetBeans 5? There may be some hangup on getting serial port access, but for the GUI stuff, NetBeans 5 may be the new VB/Delphi.

    The age old problem with visual GUI development is that you can do absolute placement and then what happens when you resize the form? Or you can use layout managers (Java Swing) and then you have to wrestle with the layout manager to get the placement you want. NetBeans 5 has the Matisse layout manager -- I played with it and it seems to be the best of both worlds. You can drop and drag widgets in the form designer, but it gives hints regarding good alignments and regarding anchoring to boundaries for resize. Oh, and NetBeans is a free-as-in-beer download.

    Java Swing, you say, not the native look for Windows. A lot of native Windows software is a hodge-podge of look-and-feel anyway -- Swing is no big deal. Besides, if you go with Java, you are not tied down to Windows.

    1. Re:Delphi good, but what about NetBeans? by silverdirk · · Score: 1

      I do miss the days of $49.99 though. The new prices (and lack of a cheap 'standard' version) really is a shame. For a while, they offered a completely free 'personal' version which could only be used for non-commercial purposes, but they don't offer it for free download anymore.

      --
      Mark of the Coder fades from you. You perform Opening on World of Warcraft. Warcraft crits GPA for 4. GPA dies.
  113. VB -- make me LAF by Latent+Heat · · Score: 1

    For criticism of look-and-feel of TCL/TK, Java Swing, what have you relative to VB, a person needs to look at the hodge-podge of a lot of VB apps -- I can't see how a TCL/TK or Swing app would be much worse.

  114. wyoGuide/wxWidgets by test99! · · Score: 1

    For this kind of work wyoGuide (http://wyoguide.sf.net/) is probably one of the best approaches. It has fully functional sample appliaction, which can easily be extended with your code. Just look once at the tor manager sample (http://wyoguide.sf.net/index.php?page=tormgr.html ) which was built in about one week.

  115. LabWindows/CVI by hatrisc · · Score: 1

    LabWindows/CVI, was hated by me while i was taking a real time systems class. However, that doesn't mean it wasn't easy to use, or even easier to make all sorts of guages, switches, displays of all sorts. It should fit right in!

    --
    I write code.
  116. BloodShed Dev-C++ and wxWidgets by Anonymous Coward · · Score: 0

    A few years ago I was in a similar situation, but I didn't want to buy or license anything for monetary and free software reasons.

    Having used BloodShed's Dev-C++ for compiling/developing unix targeted school projects at home, I wanted to use it.

    And for the GUI stuff I discovered wxWidgets (wxWindows back then), but I kind of hate creating objects at certain XY coordinates instead of drag'n'dropping objects to screen like in C++ Builder.

    Now all I need is a RAD GUI for making wxWidgets GUI programs, and there seems to be none available that's stable.

  117. Assembly Language: The Truth by psykocrime · · Score: 1
    --
    // TODO: Insert Cool Sig
  118. Re:Maybe Ruby? (and rubyscript2exe) + wxRuby by kbob88 · · Score: 1

    I like using Ruby for this kind of work too. The language is *so* much nicer and easier to work with than Tcl, VB, C#, etc...

    I tend to use wxRuby (a subset of wxWidgets / wxWindows) for the GUI toolkit. It works nicely and looks good. However, since it does auto-layout using spacers and such, it might take some time to get used its new paradigm. But once you learn it, it rocks. No more specifying exactly where things go; the toolkit ensures everything lines up right and spaces out right. There are some GUI design tools for it...umm, maybe wxGlade I think?

    The downside to this is that (as of summer '05) the tools to wrap up Ruby programs into an .exe package were not totally flawless. I always seemed to have to manually edit the packaging configuration file to ensure that it included all the correct files. But that only took a few seconds. Maybe those programs have been fixed since then (hopefully). RubyForge is a good place to check for them.

    I use Eclipse on Windows with the Ruby plugin (RDT). It's great. But you can use any old text editor if you prefer, especially for a small project.

    The upside is that you'll be learning Ruby, which is not only a great language, but is also on the upswing! And those skills will be applicable to Web app development too (using Rails). Might be a great skill for you to pick up. Might as well learn a language of the future instead of one of the previous century.

  119. Delphi by darnok · · Score: 1

    There's free versions of it that you can download; it produces small EXE files;you can link in everything so all you've got to distribute is a single EXE file.

    I've been writing command line stuff in Delphi for years for these 3 reasons. For at least the past several years, for me GUI == Web, so I haven't done any Win32 GUI programming for a long time now.

  120. Resizing forms by silverdirk · · Score: 1

    Resizing is a very good thing, IMHO, and I always try to support it when I can. In Delphi, I would just play with the anchors properties (since about D5, I think) which control which edge each side of the component is 'anchroed' to. On the whole, this gives me exactly what I want. I can also set a minimum size for the application, to prevent controls from becoming unusable. (resizing only makes sense to a certian extent, after all, beyond which you'd need to re-think the UI)

    Swing, on the other hand, was so painful to get things right that I never really did get the hang of it. It always seems like components are jumping around or getting bizarre positioning, and never stretch in the places where I want. Trying to ensure artistic 8-pixel gaps in the places where I want them is also irritating. Dynamically modifying the components at runtime is nightmarish compared to Delphi, where I would just show/hide things. I haven't tried NetBeans yet... and I suppose they could have fixed it up nicely, but I've still got a bad taste in my mouth from Swing. Resizing wasn't Swing's only problem, though...

    Just to randomly rant a bit, <rant>Java also does horrid repaint optimizing. The usual suggestion to get rid of "flicker" in Java progs (which is a symptom of heavy overpainting) is to use double-buffering. This essentially just lets the inefficiency get drawn to the back-buffer, hiding it from the user. It also requires a back-buffer, which is an extra couple meg of wasted memory, if you fullscreen the app on a large true-color desktop. In all, it leaves your program running slowly, because of the overpainting and extra blit operation required (if you're actually lucky enough to get it accelerated- otherwise its an extra copy of a few meg done by the processor) and uses a ton of memory that isn't needed. The end performance has VB written all over it.

    If you'd like to test this on your own, try to write a Java program that doesn't paint *anything* onto a rectangle of your window- a dead zone that gets whatever was on that region of the screen before it. If you can, it means that the painting you do on this area is not overpainting any work done by swing/awt, and you've reached some nice efficiency. I've only ever managed to accomplish this on Frame itself, not any of the Component derivatives. Everything else will fill with the background color, even if you'd like to just erase the background with some image of your own.
    </rant>

    and, yes, Delphi did do efficient repainting, simply because it uses Windows' paint-callback system, and uses system-level windows to represent some of its widgets. Windows is smart enough to prevent overpainting of windowed components. You can even avoid having the background cleared for you if you create the window with the right flags, or just alter the message handling for that window, which can be done in Delphi by overriding a protected method of TWinComponent.

    --
    Mark of the Coder fades from you. You perform Opening on World of Warcraft. Warcraft crits GPA for 4. GPA dies.
  121. Fast Light Toolkit (FLTK) by Anonymous Coward · · Score: 0

    You can try FLTK (pronounced "fulltick") is a cross-platform C++ GUI toolkit for UNIX®/Linux® (X11), Microsoft® Windows®, and MacOS® X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL® and its built-in GLUT emulation.

    FLTK is designed to be small and modular enough to be statically linked, but works fine as a shared library. FLTK also includes an excellent UI builder called FLUID that can be used to create applications in minutes.

  122. WxPerl by mattr · · Score: 1

    WxPerl makes me happy and seems at this point to provide maximum power for minimum effort, and being sufficiently mature at this point in time. VisualBasic has made me very unhappy whenever I have used it in the past.

    WxPerl is Perl bindings to wxwindows which itself is a cross-platform C++ based library that can be used from C, or from Python and Perl (and maybe some others). Depending on what you want to do maybe a lightweight language like Perl could make you very happy too.

    If you use VisualBasic you may find it possible to get a simple job done relatively quickly but if it ever turns around, bites your butt and grinds your bones between its molars, don't say I didn't warn you. That said, it is certainly possible that it has gotten better than last time I used it some years ago, but to me it reeks. I am biased though, towards Perl and linux. You can look at the successful projects made with wxwindows at wxwindows.org.

  123. HTML GUI and C/C++ code by tdbp · · Score: 1
    You can keep coding in C/C++ and use HTML (plus Javascript, AJAX or whatever) to easily create the GUI.

    Then use KLone (http://www.koanlogic.com/kl/cont/gb/html/klone.ht ml) to create a single EXE that embeds your application code and GUI into a simple webserver that you'll run on target PCs, giving you for free an application that you can use from anywhere via HTTP.

  124. VB, Delphi, or Builder (which is kinda antequated) by danpsmith · · Score: 1

    VB is by far the easiest, and simplest way to get into windows GUI programming. However, if you want to go with a non-Microsoft solution, both Borland Delphi and the extremely outdated Borland C++ Builder should work. If you already know C++, this is an added bonus towards using the Builder, however it should be known that the Builder is basically a wrapper around Delphi's PASCAL ide, most of the components are duplicated in source even.

    If the interface doesn't have to be really complicated, Borland C++ Builder should work. If you know C++, it shouldn't be hard at all to pick up on Builder. Delphi is more up-to-date, but Microsoft VB would have the most native looking and easily producable solution.

    --
    Judges and senates have been bought for gold; Esteem and love were never to be sold.
  125. Use Visual C# / Basic 2005 by LeftOfCentre · · Score: 1

    If you have experience with C++ or Java, go with Visual C# 2005 (download the free Express edition). It has everything you need, is super-easy to use, and includes a serial port component which works well (and imposes no additional dependencies). If you prefer, you can go with Visual Basic 2005 which is a first class object oriented language these days (although personally, I still can't stand BASIC syntax).

    None of this requires any additional third party or Microsoft libraries with the exception for the .NET framework. If you use ClickOnce deployment (which may or may not be supported in Express, I don't recall) you'll get a neat little folder with the .NET framework, your app and a Setup to double click on which will install .NET seamlessly if not already present. Alternatively you can deploy to a website, which creates an install link.

    It works really well.

  126. its very simple, dont use windows by convolvatron · · Score: 1

    really. really.

    if you're going to do something, why do so under the conditions that one
    hand is tied to your forehead and the other around your ankle?

    given a task, i could write an operating system to boot from processor
    reset, and the application to do that task, in considerably less than the
    time taken to deal with that. get some balls.

  127. What About A Scripting Language? by r0wan · · Score: 1

    I'm not sure how complex the graphical display needs to be, but VBScript or JScript are both relatively easy to learn and can be written to interface with a lot of Windows components.

    Bonus: There is a storehouse of sample scripts and examples on Microsoft's website that you can easily modify with only a little background information. See the links below.

    HTML Application Development
      Here's where you get code for your graphical interface...HTAs use Internet Explorer so they are ridiculously easy to create. The page also provides plenty of samples that you can tinker with.

    Microsoft Scripting Repository
    Microsoft VBScript Repository
    Here's where you get your scripts...they have VBScript, JScript and others, plus a bunch of samples to tinker with and easy to read tutorials.

    Windows 2000 Scripting Guide
    Here's the online version of the Windows 2000 Scripting Guide.

    Windows Management Instrumentation (WMI) Documentation
    WMI Tasks for Scripts And Applications
    Here's Microsoft's implementation of WBEM...this interface will probably expose the COM ports to get you the information you need for your program. The second link is to sample VBScripts utilizing WMI.

    --
    If you're not outraged, you're not paying attention.
  128. Win 32 development by shadders · · Score: 1

    A fairly small installation is a bit open ended. Small enough to fit on a CD? A USB memory stick? A floppy disk? If by small, the poster meant one of the first two options, I'd go for using the .Net framework. The Express editions are free. Even in it's cut down mode, the IDE is really powerful. Languages available are C#, C++ & VB (though a lot has changed between VB5/6 & VB .Net). The .Net route also offers some advantages: 1. It may matter to your boss or client that you're using a MS development tool. A mindset thing rather than anything practical. 2. There is a serial port component that you can use without having to dip into the API. Which is nice. 3. Because .Net code is managed code, it's far harder to introduce hard to find bugs such as creating memory leaks because of failing to release handles to the API (unmanaged code) or things like buffer overruns. That's not to say it's not possible, just that the garbage collector & the framework design helps a lot. 4. If the target machine(s) already have the framework on them, it's possible to just copy your app to them without having to create an install program. 5. DLL hell is greatly reduced. DLL's created in .Net can either live in the same folder as your app or be installed in the 'Global Assembly Cache (GAC). It's possible for the GAC to hold multiple versions of the same assembly. That may whet the posters appetite. However, if the install needs to fit on a floppy, I'd say that Delphi would be the way to go: 1. Creates pretty small exe files with no need for any other files. 2. HUGE amount of components available, I'm sure there are loads of versions of serial port wrappers available. 3. Speed. Delphi is on a par with most C++ compilers. That said, .Net is no slouch either, I saw a version of Quake V1 written in .Net C++ that was only 10 FPS slower than the original. 4. The only downside I see with Delphi is (last time I looked) the free version was for personal use only. Both solutions have good documentation. Personally, I'd say that .Net has a better set of documentation, but both have a wealth of recourses available on the interweb. The best language in the world will not make up for a bad UI design. Check out http://www.rha.com/ui_hall_of_shame.htm/ for examples of how it's not done. Sadders

  129. Qt rocks by kupci · · Score: 1

    I've worked with or evaluated many of the GUI tools, and definitely agree that Qt is very impressive. There is even a GPL'd version 3 for Windows, Q..3. Documentation, examples, library quality, ease of use, power, cross-platform are all advantages of Qt. The original poster doesn't give many details on the requirements, but I would consider Qt a strong contender. Certainly consider if you are considering VB, and especially if you are considering the other cross-platform libraries. If you are just hacking out a simple application or prototype, perhaps VB will be suitable, but for anything more substantial I would go with Qt given it's great OO design (and I suppose Delphi would also make a good choice, but I haven't used it).

  130. Sharpdevelop by penguin-collective · · Score: 1

    I second the recommendation for Tcl/Tk/Starkits; it's a great little system for putting together small GUIs quickly. Nothing else even comes close.

    If you need more of a real programming language, consider wxLua. It's also small and easy to distribute, but it's a bit better as a language than Tcl.

    Finally, consider Sharpdevelop (sharpdevelop.com). It's a free, high-quality IDE for C#, and you can use it with Microsoft's free .NET tools. The main problem with it is that .NET is the usual moving target that all Microsoft APIs are, and that Microsoft may stop making available the free .NET tools at a moment's notice.