Simple Windows Development Tools? 255
fwc asks: "Over the past few years, I've been fortunate to be able to avoid writing a Windows GUI application, however this good luck is coming to an end. In the next few weeks, I need to write a fairly simple application which will need to display data received from a serial port in a decoded (and graphical) form via a Windows GUI. Unfortunately, my skills in this area are out of date, since I haven't written any GUI apps for close to 10 years. Because this program needs to be fairly small and easy to install, the use of Perl/tk isn't a valid option. What options do I have to build a small application on Windows, without a large learning curve?"
VB (Score:5, Insightful)
Re:VB (Score:5, Informative)
but you've got a nice free choice (as long as it's not commercial code)
if you have more experiance (especially C++)
http://msdn.microsoft.com/vstudio/express/ [microsoft.com]
Re:VB (Score:4, Informative)
there's no licensing restriction on visual studio express.
taken from here [microsoft.com].
Re:VB (Score:3, 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 [microsoft.com]:
Re:VB (Score:4, Insightful)
Just because you can build a crappy app in VB by following the path of least resistance, doesn't mean you have to.
If it's a one off app with a simple UI that works the way your users would intuitively expect it to, this is precisely what VB is good for. If you think the UI required is "sophisticated", it might not look so for somebody who does a lot of UI work. Things get tricky when you have to coordinate a wide variety of user tasks.
You can also use Visual C#. It's really not any harder This would allow you to build your business logic around interfaces, allowing you to, for example, replace C# implementations with native C or with java or even php based web services later. You can also port to other platforms depending on how good Mono's Windows.Forms package is. Or you could build your app against GTK# and get portability right off the bat if that's important to you.
Re:VB (Score:2, Funny)
Of course, my far broader experience in all things software development related tell me that the probability that the OP will only ever build just that one app in this environment is much smaller than he thinks it is. Probably small enough for C# to become a better choice.
Re:VB (Score:3, Informative)
Re:VB (Score:3, Informative)
Re:VB (Score:2)
Re:VB (Score:2, Informative)
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 p
Re:VB (Score:2, Troll)
There is no reason whatsoever to use VB, unless you like a poor and dinosaur syntax. I encourage you to try Delphi, or even Borland's C++ Builder. You can get a personal edition of Delphi [borland.com]. You can then choose to target
If you feel like Java you can download Borland's JBuilder [borland.com] Foundation edition for free as well.
Explore your options. I find Delphi to be real easy for GUIs, mainly due to the power of Borland's VCL (Visual Control Library). And you won't be throwing away you
Re:VB (Score:2)
VB.NET has almost the same syntax as C#. I learned VB.NET as my first dev language on Windows and moved over to C# last year. It is almost nothing like VB = 6.
VB is actually a bit better for a quick, lightweight app because it's more forgiving of things like how you wrap chunks of code in try/catch blocks, and of multithreading issues.
On the other hand, C# is more efficient to code, and it gives you some abilities that VB.NE
Re:VB (Score:2)
Re:VB (Score:3, Informative)
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/ [realbasic.com]
Some options: (Score:5, Informative)
or...
2. You can hire someone (like me!! hmassa at gmail) to do it for you.
Re:Some options: (Score:2)
How about Web based (Ajax) GUIs?
Delphi (Score:4, Informative)
I used Delphi at a co-op job for six quarters, and it just plain made me feel powerful. I could throw together a nice GUI in minutes, and then "wire up" the events to real code after getting approval from the people who would be using the program. By the time I was done, i'd have a nice professional-looking app that was only about 700K, didn't need any funny DLL files, and was made out of nice strongly-typed OO code, and took advantage of the huge selection of freeware widgets on sites like http://www.torry.net/ [torry.net]
Delphi is the perfect language for writing fast windows apps. Its also perfect for database access, and with the right packages, can be perfect for lots of other tasks, like serial port access. (and what I mean by that is that you can go fumbling around with the Windows Serial port API, or you can get a nice I/O package for Delphi and just drag/drop some components that give you nice events to play with.)
To top it off, if you look at the assembly generated by the compiler, its really pretty good. You might say it's equivalent to -O1 on C code, and thanks to its single-pass compiler, it compiles 10x as fast, so there's basically no wait.
Visual studio... (Score:4, Insightful)
RealBasic! (Score:5, Informative)
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....?
Re:Visual studio... (Score:2)
In that case I recommend Visual C++ instead.
Re:Visual studio... or maybe Mono? (Score:2)
I believe it uses GTK# for its GUI. C# (and a few other languages) for coding. Mono exists because Microsoft submitted the C# language specs and the CLR (interpreter more or less like the Java JVM - not exactly, but I'm trying to be brief...) to the ECMA standards body. Basically anyone can implement a version of PARTS of .Net. Microsoft reserved certain libraries so they would still have the mos
Visual Basic (Score:5, Informative)
One thing to be aware of: (Score:3, Informative)
Re:One thing to be aware of: (Score:2)
No, VC++ Express 2005 target both native and
Re:One thing to be aware of: (Score:2)
Re:One thing to be aware of: (Score:2)
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
Re:One thing to be aware of: (Score:2)
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
C# Demo Program (Score:3, Informative)
Visual Basic Express Edition (Score:4, Informative)
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.
Re:Visual Basic Express Edition (Score:2)
TCL/TK (Score:5, 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.
Re:TCL/TK (Score:2)
Starpacks, Tcl/Tk (Score:5, Informative)
http://www.equi4.com/starkit.html [equi4.com]
I'll second the Tcl/Tk recommendation. It's super easy to get an application up and running in no time. What's even better is that you can do most of the development on Linux if it's not an app that requires a lot of windows specific services, and then switch to windows to put the final touches on. I've even had it happen that I didn't need to change any code at all (but it's usually recommended, just to give your app that extra polish).
Re:TCL/TK (Score:5, Informative)
Kudos to the well-informed parent. Tcl/Tk is indeed an excellent solution. More below.
But first ... Visual Basic is NOT the answer. The criteria were "fairly small" and "easy to install". For most Windows versions you'll have to distribute your VB application in an install package that includes the VB runtime DLLs or the .NET runtime (or get the end user to download them, which is a mission). If you're unlucky you'll have to distribute other MS DLLs like ComCtls as well. Find out more at http://msdn.microsoft.com/vbrun/ [microsoft.com] . Then there's accessing the serial port ...
For a simpler solution, grab TclKit [equi4.com], a single-file Tcl/Tk distribution. Tcl is ridiculously easy to learn, serial port access is as easy as file access, and it uses Tk to provide a powerful GUI.
You can put your scripts into the TclKit EXE as a resource, creating a single-file EXE distribution of your application. With UPX compression the resulting file will be around 1.2Mb (depending on what extensions you choose to use).
Re:TCL/TK (Score:2)
If you want a quick-n-dirty Windows GUI app that just works, VB is the way to go.
Re:TCL/TK (Score:3, Informative)
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
Re:VB not the answer (Score:2)
Re:VB not the answer (Score:4, 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:
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.
Re:TCL/TK (Score:2, Informative)
I've used Freewrap [sourceforge.net] for things like this, and at least the version I'm using, the resultant binaries typically weigh in at about 650K.
Re:TCL/TK (Score:2)
Re:TCL/TK (Score:2)
-matthew
Re:TCL/TK - serial ports? sure (Score:4, Informative)
http://www.tcl.tk/man/tcl8.4/TclCmd/open.htm [www.tcl.tk]
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.
Re:TCL/TK - serial ports? sure (Score:2)
http://tmml.sourceforge.net/doc/tcl/open.html [sourceforge.net]
Re:TCL/TK (Score:2)
Hmmm (Score:3, Informative)
If you want the power of RAD and the ease of C/C++ I'd suggest you look into MFC programming. Google for all you need to get started. [google.com] You can continue to use C/C++ and familiar code to create nice, simple Windows GUIs.
Also, yes. You have definitely been very fortunate.
You meant... (Score:3, Funny)
You meant the ease of RAD and the power of C/C++, didn't you?
Re:You meant... (Score:3, Funny)
Re:Hmmm (Score:2)
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++
Re:Hmmm (Score:2)
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.
Re:Hmmm (Score:2)
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.
Good C++ is wxWidgets (Score:2)
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
VisualBasic apps are a PITA to inst
RAD tools (Score:4, Informative)
wxWidgets (Score:3, Informative)
Re:wxWidgets (Score:2)
Re:wxWidgets (Score:3, Informative)
Re:wxWidgets (Score:3, Informative)
Right now I've started a new version of that app, this time using wxGlade and I'm loving it. Python + wxWidgets = love
Re:wxWidgets (Score:2)
Re:wxWidgets (Score:3, Informative)
Simple? (Score:2)
Seriously, it's not as difficult as you might imagine. Even your grandmother could whip something up in Visual Basic, though I don't recommend it.
The path of least resistence here is to grab a copy of Visual Studio, then get yourself a beginners book on Windows programming. Just go to your local book store and you'll find a whole shelf of them. (And not a single book on data structures or algorithms in sight. Grrrr...)
If you're a suck
Re:Simple? (Score:2)
Alternative.... (Score:5, Interesting)
Options (Score:3, Informative)
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.
Express Editions FTW! (Score:2)
Check out Express Editions [microsoft.com] - C#, J#, C++, VB; comes with an IDE. Not as nice as the full edition but works very well. Highly recommended. You can then use
Re:Express Editions FTW! (Score:2)
Re:Options (Score:2)
Try Realbasic (Score:5, Informative)
http://realbasic.com/ [realbasic.com]
Delphi beats pants of VB (Score:2, Informative)
The product is better but the biggest plus factor is the community of developers.
Re:Delphi beats pants of VB (Score:2)
Try an .hta (Score:2)
You'll need to script instead of code, and if you need help with scripting download "scriptomatic" (google).
You can also find a complete list of Windows scripting samples in a help file called the "Portable Script Center" which you'll find here: http://www.microsoft.com/technet/scriptcenter/crea teit.mspx [microsoft.com]
I wonder... (Score:2)
Re:I wonder... (Score:2)
Re:Try an .hta (Score:2)
Re:Try an .hta (Score:2)
Or NETCommOCX [compuserve.com]. It works quite well from within HTA scripts.
Delphi is decent (Score:5, Insightful)
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.
Re:Delphi is decent (Score:2, Informative)
Java is an option (Score:3, Informative)
If that's no good, then Visual Studio is probably your best bet.
WSH+JScript (Score:2)
If you don't like VBScript, then use Windows Scripting Host with JScript [microsoft.com]. It's just the same as writing Javascript for a website, except there are different objects available. I think it's been shipping with Windows by default for years, so no installation is necessary, but you'd better double-check.
Re:WSH+JScript (Score:2)
Or use WSH + PerlScript [activestate.com]. Although it does have the drawback of requiring ActivePerl to be installed on the target machine.
Remember, new systems frequently lack COM ports (Score:2)
For language, VB is the way to go; VB6 is easy if you have it, VB
Re:Remember, new systems frequently lack COM ports (Score:2)
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 [codeproject.com]
Here's the official documentation of the System.IO.Ports.SerialPort class:
http://msdn2.microsoft.com/library/system.io.ports
Visual Studio 2005 Express (Score:2)
Can be found at: http://msdn.microsoft.com/vstudio/express/ [microsoft.com].
Visual C++ Express? (Score:3, Informative)
It sounds like you don't want to have your application require large libraries?
For a low level serial port reader app with a slick GUI designer on strictly Windows, Visual C++ Express [microsoft.com] seems to be one way to go. It's free as in beer and supports native Windows application as well as
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
Try WinBatch (Score:2, Informative)
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
C# (Score:2)
Java or .NET (Score:5, Informative)
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:
Win32 dialog only class (Score:4, Insightful)
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,
Rebol? (Score:2)
AutoIT (Score:2)
http://www.autoitscript.com/autoit3/ [autoitscript.com]
Reconsider precompiled Perl/Tk (Score:2)
In the next few weeks... fairly simple application... program needs to be fairly small and easy to install... Perl/tk isn't a valid option. What options do I have to build a small application on Windows, without a large learning curve?"
Take another look at Perl/Tk, with the use of a compiler like perl2exe to produce a binary as the final product.
Since you have Perl experience, this will be a shallow learning curve. The conversion to exe removes Perl's only significant performance limitation. The instal
You expected Windows programming advice from /. ?? (Score:2, Insightful)
You aren't going to learn anything about Windows programming from slashdot. Too many people here are fighting the Linux Jihad.
Open Source .NET Tools (Score:3, 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 [icsharpcode.net] is as good as anything I've tried. You can use it to develop in either Visual Basic.NET or C#.Net, and it has a full and quite useful Windows.Forms layout system. For writing a basic Windows.Forms GUI, it's much less resource-intensive than Visual Studio, offers nearly the same features, and is GPL licensed.
For doing Windows development, the .NET framework and Windows.Forms is your best bet, and SharpDevelop gives you a nice open-source IDE with all the features you need.
QT or Delphi (Score:2, Informative)
Otherwise I would give Borland's Delphi a go. Delphi is turbo pascal with object-oriented extension's. It makes fast and very lightweight apps, and it's easy to le
Java Native Code Compilation (Score:2)
Qt (Score:2)
Also, version 4.x is available for Windows under the GPL as well as a commercial license.
Ain't No Such Puppy (Score:2)
Your two options are mutually exclusive.
First, the learning curve is going to be large, regardless of which route you take. Some, however, have a smaller learning curve than others.
Second, the smaller learning curves tend to use large runtime libraries that will have to be installed along with your application.
If you want the smallest application footprint possible, you're better off using Win32, but the learnin
python/wx/py2exe (Score:2)
If you know a little bit of perl/php/Java/C/C++ (and, yes, lisp helps), then you should pick up python quickly. If you know a bit of Java Swing, then wx should jump right out of the proverbial box.
You can make great Windows apps from the combo (with py2exe), including services. The apps can have status bar icons, etc. Plus, you
QT (Score:3, Informative)
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
VB. Don't be fooled: VC++ is not similar (Score:4, Interesting)
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.
Visual Basic 5, Learning Edition (Score:2)
Easy to code easy stuff.
You don't need much more that that... If you *did*, I would recommend Java.
Ratboy
Stay clear of .NET if not already there (Score:3, Informative)
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.