tags:

views:

143

answers:

6

Is there someone that can suggest me a programming language that allows you to write quickly GUI programs (on windows platform)? P.S. I am interested on only languages that do not rely on virtual machines and then have a compiler that produces executable code directly on the machine

+3  A: 

Any .NET will probably be what you're after.

Start with VB.NET which is now called Visual Basic CCYY eg (Visual Basic 2005, Visual Basic 2008, Visual Basic 2010).

If you want something not using .NET framework, you might as well go back to older version of VB and if you want something compilable that'd be like C++ with their MFC (Microsoft Foundation Class).

You need to give more info on the type of gui and what you're using it for. This could be accomplished with Microsoft Access forms and VBA, or you could make an HTML Application (.hta).

vol7ron
no, I said that the language should not depend on virtual machines or framework
BlackShadow
even still, it has a gui, but you never said does not depend on a framework. even still, you don't need to use the .net framework
vol7ron
how do you propose to write an application on WINDOWS without utilizing the .NET framework that is quick and simple to setup?
Woot4Moo
@vol7ron: It's impossible to write a .NET program that doesn't use the framework.
Ben Voigt
any modern language relies on some framework or libraries...
Geoff
if you're writing a .NET, yes, but the core language (what's in vba and just regular vb files) is not. +1 Geoff
vol7ron
@Geoff: It's perfectly possible for those libraries to be compiled into the result as executable code, per the OP request. But .NET does not do this.
Ben Voigt
@vol7ron: Do you even know the difference between VB classic, VB.NET, and VBA? "writing a .NET" makes no sense.
Ben Voigt
@Woot4Moo.... Delphi creates native Windows applications, no runtime to distribute. Same with C++. .NET is **not** needed to make Windows apps at all.
GrandmasterB
@Ben: I do, *do you*? It depends on what he's trying to do. If it's windows and a large application .NET makes perfect sense.
vol7ron
@GrandmasterB you consider Delphi and C++ both simple and quick to write GUI apps?
Woot4Moo
@vol7ron: I agree with your most recent statement. But then you should explain why you think the OP asked for the wrong thing, not mislead the OP into thinking that .NET is what he asked for (compiles to native code). From the question, I think it's also safe to say that it is not a "large application".
Ben Voigt
@Woo4Moo, no...I was responding to you saying 'quick and simple to setup'. Nothing is easier to install than a single exe Delphi or C++ app. If you meant 'to develeop', Delphi can be used to create basic apps pretty quickly... though the language is also quite capable of handling very complex apps and true beginners may get overwhelmed by the IDE, which is why I didnt suggest it in my answer. But overall, the language itself is not more or less complex than C#, for example (the same person designed both, after all)
GrandmasterB
+4  A: 

I would go with AutoIT, it's a very easy to learn windows scripting language with tons of functionalities: http://www.autoitscript.com/autoit3/index.shtml

I'm using it to automate some tasks, but it can do way more than that.

EDIT

Just to make things a little bit clearer for everybody:

You can create new applications using AutoIT and the Aut2Exe compiler provided. The .exe files created are stand-alone, thus require no other files but the files that you might need in your app. Everything is free and the AutoIT scripting language has a BASIC-like syntax.

The GUI that you'll use are standard Windows controls. Among the functionalities you have the possibility to automate keystrokes/mouse movements, call the Windows API and external .dlls, manipulate windows and processes and through user created libraries (called UDFs) you can even acces local databases, manage networking tasks, encryption, archiving and many more.

All I can say is that it's worth take a look and the first app I built with AutoIT was done in roughly 8 hours since I started learning. It took a folder as the source and copied everything in a chosen directory, copying files in folders named as the date when the files were created. So the destination directory would have a series of subfolders like:

  • 11.11.2010
    • whatever.txt
    • whatever.png
  • 12.11.2010
    • archive.zip

and so on. Just 8 hours and got me rid of a lot of effort ordering the files myself.

Claudiu
I took a quick look at the link, but it doesn't say anything about allowing to _write_ GUI applications, only to _script_ already existing applications.
Larry Lustig
@Larry Lustig You must've read wrong: AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting. Meaning, you can use Windows-specific GUI, but not script existing apps. You can built anything from games, chatting programs to file utilities, you name it. It won't be as powerfull as .NET or C++, but the fact that's easy to learn, produces native .exe and doesn't rely on external .dlls is a big plus in my opinion. Read more about it and you'll see.
Claudiu
Your description mentions nothing about _creating_ new applications, only scripting against existing applications — and the website discusses scripting against existing windows and controls, but not creating an application. Are there any commercial applications written in AutoIT? Is there an AutoIT compiler?
Larry Lustig
Wouldn't it be easier if you just read the homepage of the website? Yes, you can create new apps. The GUI that you can use are the existing Windows components as you said. You create an app from scratch and then compile it with Aut2Exe. On the homepage it says: "AutoIt has been designed to be as small as possible and stand-alone with no external .dll files or registry entries required making it safe to use on Servers. Scripts can be compiled into stand-alone executables with Aut2Exe."
Claudiu
You're right, reading further down the page it does say that scripts can be encoded into stand alone executables (which usually means adding the script file as a resource onto the script interpreter and then renaming), which is probably fine for what the OP was asking.
Larry Lustig
No worries, sorry for being so rough on you mate, I was under the impression you've been ignoring the whole thing and expected everything beeing told without even looking on the site
Claudiu
+2  A: 

Is an executable bundler, that combines the script with the framework/interpreter, good enough?

If so, you might look at Tcl/Tk or Lua.

Ben Voigt
+1 TCL/Tk is about the easiest way to code up a gui program I have yet encountered.
TokenMacGuy
A: 

A 'quick and simple' language will only allow you to do 'quick and simple' things - and for those, having a VM or not wont make much of a difference to you.

For quick and simple & native code, about all I can think of is RealBasic. Its cross platform Windows/Mac/Linux. I find their IDE to be difficult to work with due to its inflexibility and the help system last I looked wasnt that great, but the underlying language isnt bad and does compile to native code. So it might do the trick for you.

GrandmasterB
Throughput-wise, the VM probably won't matter much. But many of these VMs require a >100 MB download and multiple minutes to install (and consume a big chunk of the available disk space on netbook computers), and that definitely might matter.
Ben Voigt
I agree with this.
vol7ron
Ben, no disagreement here. I work in commercial software, and wont touch any tool that requires a big runtime because thats just asking for support headaches. But there are development tools that embed the runtime in the executable - or at least in just a handful of DLLs. For ex, making an exe from a python program. The original poster just isnt going to notice the difference between that and a C++ program if his app is truly something simple.
GrandmasterB
Also, the OP is asking about Windows, and there hasn't been a Windows that ships without .NET in a really long time.
Jörg W Mittag
@Jörg, that doesnt help if the user is running XP, for example, and the app needs a newer version of .NET.
GrandmasterB
+4  A: 

I'll put in a vote for Delphi. You can easily write applications by dragging and dropping components on to a form and doing minimal coding in Pascal, which isn't hard to learn. Later, if you decide to go deeper, you can do pretty much whatever you want. And it compiles to native executable code.

Larry Lustig
A: 

http://www.powerbasic.com/aboutpb.asp

Seems like it has a RAD GUI and of course it's BASIC, plus it compiles down to .exe (as I understand it.) Might be worth checking out.

MC Hammer