views:

1558

answers:

9

Does anyone know of free tools (languages, environments) that would support development of GUI applications on the Windows platform?

I am looking to be able to create a single executable file that has no dependencies on any external runtime or library.

I would like to be able to then run this EXE in a very similar manner to Process Explorer or Autoruns from SysInternals. In other words; a no installer, portable application.

This application must also provide a reasonably rich windowing (controls, widgets etc) user interface and should run on Windows 2000, XP, Vista and later.

I'm aware of C/C++ but I'm looking for an environment/language that provides more specific and faster support for GUI development. Also, Delphi costs money.

+1  A: 

Check out Microsoft's Express editions of their developer tools.

jro
VC++ Express in particular, since, after all, C# et al require the .NET runtime. Which is something he already discounted. This answer doesn't provide anything new as far as I can tell.
Devin Jeanpierre
Yes, .NET is not an option and I explained why C++ is not ideal.
Ash
My bad, missed the reference to external runtime or libs. Devin, thanks for the great subjective assessment. ;-)
jro
+3  A: 
VonC
Does it compile the runtime into the output .exe?
Simon Buchan
@VonC, I've actually used Autohotkey for key macros, shortcuts etc and know it can do basic GUI. It's just the actual language is rather "fiddly" and I find it a bit hard to debug. I'll check out Scite to see if it supports Autohotkey too, thanks.
Ash
Thanks for the extra info. I'm going to compare AutoIt and AutoHotkey. If I can interactively debug AutoIt script, that might be exactly what I'm looking for.
Ash
@VonC, You deserve a few extra votes for the updates you've made to this answer!
Ash
A: 

If you're doing very simple applications, AutoIt might be an option as it requires no runtime files and its executables will even run on WinPE. It's a bit primitive though and not exactly object-oriented. It works a bit like the old VB. It is, however, free and easy to learn and apart from something like NSIS (NullSoft Install System) there aren't many free, standalone GUI creators.

Damien
@VonC beat you to it, thanks anyway. I voted up VonC, he deserves at least another vote.
Ash
+3  A: 

Delphi is definitely a good way to go. There is a free version called Turbo Delphi. The version available is a couple of years old, so it's a shame they haven't release Turbo versions of the new stuff.

There are also trials available of the full fledged RAD Studio, but I don't think that's what you're looking for.

Ray
Looks promising, thanks. Have you used it yourself? Also, how does it compare to Turbo C++ and Turbo Ruby, which is best for rapid GUI development?
Ash
I haven't used the Turbo version so couldn't comment on it. Delphi itself is a quick and easy way to develop although it has some quirks. I prefer C# personally. Haven't tried Turbo C++ or Ruby.
Ray
@Ash, Delphi is best in GUI Development also it's the most readable code you can write in any language, which is easier than other in maintenance if you leave it for long time. aslo Turbo C++ has the same Rad way as Delphi, because it's uses the same VCL framework. but I prefer to code in Delphi.
Mohammed Nasman
A: 

Maybe D is an option? A friend of mine blogged about a GUI Designer for D here and I believe that the resulting executable has no dependencies.

Patrick Klug
Thanks, I'll have a look.
Ash
+1  A: 

You can Get Turbo Delphi and Turbo C++ Builder explorer editions for free, and you can develop with them native application that you can have only .exe file without any dependencies on any windows version from (win98 to win7), both of them include more than 200 components, and you can use more (without installing to IDE that the only restriction), and you develop with them free and commercial software.

Delphi is the most RAD(Rapid Application Development) IDE that you can use to produce windows application in very easy and efficient way, you get fast developing application with fast execution time compared to speed of C++.

Another option to use Lazarus IDE, which based on FreePascal compiler, so you can have your application running on windows/linux/MacOS/Unix and more.

Mohammed Nasman
Thanks, Ray also mentions this. I'm a .NET developer primarily but I worked for a while on a migration at a Delphi company. I agree that the Dektop RAD tools Delphi provides are very powerful and probably quicker then WindowsForms etc.
Ash
+4  A: 

Visual C++ Express + WTL. Both are free. WTL is a relatively good(1) windowing library. No wizards, though, and you have to have good understanding of the Win32 windowing system.

You can also use Visual C# Express along with Mono to build WinForms app. While the end result is not technically a standalone executable and requires a framework, Mono dlls can be distributed along your exe (2), so you can just have a single folder for xcopy deployment. (And I think on Windows with .Net installed, your exe will be run on .Net automatically)

  • (1) I am spoiled by WPF. :-)
  • (2) Read on the intertubes. I have not personally tried it, though.
Franci Penov
I appreciate the WTL link, I hadn't heard of it. I already have full VS2008 so I would use that instead of the Express version. The mono suggestion is interesting, I wonder if it would work on a Windows machine without any .NET Framework (ie just using the XCopied mono dlls).
Ash
That's what various people claimed on the internet - that you can just copy the Mon dlls side-by-side with your app and it'll run just fine on machines with no .Net. I have no such machine :-), and I have no tried this scenario, though.
Franci Penov
+2  A: 

Perhaps not an option given your statement regarding C++, but if you are developing an open source / free application then Qt is a very nice GUI toolkit with designer.

Also, wxWidgets is a very functional toolkit that will allow you to deploy a single exe, although the best GUI designers are not free.

Gian Paolo
Qt 4.5 will be LGPL, so it will be able to be used for closed-source development at no cost.
Andrew Medico
You can also use Qt and wx from a whole bunch of other languages
Martin Beckett
A: 

Just use VS.NET with C and Win32 api.

No runtime needed of course, as the CRT is native.