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?"
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. 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
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
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.
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)
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.
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.
My blog
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.
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.
http://realbasic.com/
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).
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
If you don't want to learn Java, or you would prefer something more native to windows,
A few general suggestions if you're rusty with GUI programing that you might want to consider as well:
Famous Last Words: "hmm...wikipedia says it's edible"
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).
http://www.welton.it/davidw/
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.
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.
http://www.welton.it/davidw/
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.
"How to Do Nothing," kids activities, back in print!
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.
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.
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:
Bad things:
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.