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?"
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 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)
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/
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.
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.
StrayByte.Net
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.
It depends partly on your finances...
.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
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
-
- 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.
Developers: We can use your help.
http://realbasic.com/
'Nuff said. And you can get a free version for personal use just like VB.NET express.
The product is better but the biggest plus factor is the community of developers.
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).
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.
It would've helped knowing what language choices you have.
.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).
.NET designer, and native C++ use a different one. I'm not sure if that one is included in the Express edition or not.
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
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
Beware: In C++, your friends can see your privates!
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.
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)|
"Teach Yourself VB in 24 Hours"
.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.
"Teach Yourself Visual C++ in 24 Hours"
I'd keep away from
Scott
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'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.
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.
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/
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.
:P
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.
(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.)
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!
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.
You've got a bunch of good recommendations, but nobody's mentioned QT so far.
.exe file.
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
If moderation could change anything, it would be illegal.
there's no licensing restriction on visual studio express.
taken from here.
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.
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
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.
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#.
www.joshferguson.org
I'd actually recommend RealBasic instead of VB for a few different reasons:
.exe file and you're installed.
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
3) I find RB a little bit easier to use.
http://www.realbasic.com/
Comment of the year
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:
(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>.
How is C# any better than VB.NET, thats crazy. They compile to the same code, they are two routes to the same thing.
.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.
Also anybody who develops