Gambas


Pleng

Well-Known Member
Joined
Dec 28, 2006
Messages
3,030
After locking myself out of my house yesterday, I had 8 hours to wait before I could get a replacement key (boy did I wish I had a Pandora at THAT time?!) so I decided to see if there were any Linux mags around which might feature something that could help me develop on the Pandora.

I found a copy of Linux Magazine which had an article about Gambas on it. From what I can tell, Gambas is a fully open source language which allows you to develop several different types of application ('Graphical Application', QT graphical application, GTK+ graphical application, command line application, SDL application, and CGI Web Application)

Now I'm pretty sure GTK and QT need X, so those would not allow me to development for a base Pandora, but I'm guessing SDL (and possibly standard 'graphical application') modes may allow Pandora development.

Applications require a runtime to be distributed along with them. Would it be possible to compile this for ARM along with your application and run them on Pandora?

Is there anything I need to check to establish if this tool would work? I don't really want to invest time learning the language syntax if it won't be able to make apps for Pandora.
 
Qt can work in framebuffer without X, but there wouldn't be much use because the pandora will have X (kdrive). If Gambas has an ARM port, it would be possible to compile it's runtime and distribute it.

However, if you don't already know Gambas, it is better to learn Python.
 
sindbad said:
Qt can work in framebuffer without X, but there wouldn't be much use because the pandora will have X (kdrive).

If Gambas has an ARM port, it would be possible to compile it's runtime and distribute it.

However, if you don't already know it, I (and others) recommend learning Python.
Would any modifications need to be made to compile Gambas for ARM? It's open source so the code should be freely available.

My experience pretty much stops with VBA & Hollywood Designer (Amiga) I wouldn't mind learning python if there was some kind of visual development environment for it. I gather there aren't many visual development tools around for Linux.
 
Last edited by a moderator:
Visual development would mean drawing GUIs for you, right? There is such a thing and it's called the Qt Designer. You can draw your application and then it generates code for your programming language of choice (even python). GTK also has something similar called Glade, but not as good.

As far as IDEs go, good python ones are PyDev, SPE, Komodo Edit, Eric 4 and Editra(this one's still alpha). Being a dynamic language, an IDE is not as necessary as it is for static languages, so a simple editor might suffice (gvim, kate, notepad++, jedit, scite, etc.).
 
sindbad said:
Visual development would mean drawing GUIs for you, right?
No it's a bit more than that. A gui designer will generate code for you, but then you need to understand that code and build upon it.

With VBA, the application is designed from the GUI. Code is attached to the objects on the form. There is no main program loop to worry about, for instance. I can simply attach a piece of code to an 'OK' or a 'Continue' button and it is run whenever that button is pressed.
 
Last edited by a moderator:
Qt has slots. After it generates code, you can attach your own functions to slots for the buttons you have drawn. It's quite easy, try some PyQt4 tutorials.
 
the Mono runtime already has ARM binaries, it should be easy to port.
There is a VB.NET compiler for mono (google vbnc) but it's writen in VB.NET so you would need to compile it on a windows box and copy the binaries to your linux environment.
if you are a VB6/VBA developer, this is what you want to look at.
 
Pleng said:
There is no main program loop to worry about, for instance.
hmmmm. well that highly depends on the kind of app you want to develop. for many, the "main program loop" is quite essetial.

but why don't get into C++ and SDL?
you can do basically everything with it.

higher level languages are not neccessarily easier, depending on what you want to do.

I am a Java programmer by trade (enterprise type) and today I decided to read up on the former. Doesn't look too complicated to me. setting up a toolchain and configuring a cross compilation environment seems to be the most complicated part :)
 
Last edited by a moderator:
C++ doesn't seem too complicated because Java is. Try something high-level.
 
kanzlr said:
Pleng said:
There is no main program loop to worry about, for instance.
hmmmm. well that highly depends on the kind of app you want to develop. for many, the "main program loop" is quite essetial.



Well I want to develop an app that sits around waiting for user input (specifically, I want to build this application. So the event-driven approach would be much better than having to worry about the program loop - as it's the method I know and am comfortable with, and the amount of coding actually required would be pretty minimal.

QUOTE

but why don't get into C++ and SDL?
you can do basically everything with it.



Well I am going to uni to sudy computing so no doubt I will eventually get into coding in a low level language. Having said that, it most likely won't be until year two, and between uni and working my free time will be limited and I wouldn't really want to dedicate it to something I'll be ending up learning at uni anyway. Making apps in a VB-style suite would be something I could get into, and get results, pretty instantly. And the app I particularly want to build should be pretty easy.

Yannick said:
the Mono runtime already has ARM binaries, it should be easy to port.
There is a VB.NET compiler for mono (google vbnc) but it's writen in VB.NET so you would need to compile it on a windows box and copy the binaries to your linux environment.
if you are a VB6/VBA developer, this is what you want to look at.
This sounds interesting. So essentially what happens? I code an app in VB, compile it with mono, and as a result I get an ARM binary?
 
Last edited by a moderator:
I think Mono takes more than 128 megs of RAM so it won't work well on a Pandora.

The problem with compilers is that it seems that most people assume that Intel is king and don't make their software portable to other platforms.

I'm in the process of developing a flexibly modifyable compiler for the Low-Level Virtual Machine. (LLVM is an open-source compiler framework that supports many different processors.) Since you come from an Amiga background you may have heard about Mattathias Basic and our attempts at replacing AmosPro with something more portable.

If Airsoft Softwair would replace their LUA-based engine with something based on LLVM, Andreas would be able to port Hollywood Deisigner to many more types of processors as well. LUA is open-source though so maybe a port of that to the Pandora would aid in bringing more software to the Pandora as well.
 
There are a lot of open source IDE which have visual development tools. I've used KDevelop and Eclipse, but there are plenty of others.
 
Samurai_Crow said:
If Airsoft Softwair would replace their LUA-based engine with something based on LLVM, Andreas would be able to port Hollywood Deisigner to many more types of processors as well. LUA is open-source though so maybe a port of that to the Pandora would aid in bringing more software to the Pandora as well.

Hey Samurai Thanks for the feedback.

I did actually think of Hollwood designer for the task and went back to check the homepage to see if there was a Linux compiler, as I recon I'd be able to knock up something pretty quickly with that system (I own both Hollywood and Designer, though don't really use them at all these days. the LUA based Syntax is very simple though). Alas for now I guess Hollywood will stay in the cupboard. I suppose if Amiga emulation gets advanced enough, I could always code my app for the Amiga and run it under emulation! :)
 
Last edited by a moderator:
Pleng said:
Hey Samurai Thanks for the feedback.

I did actually think of Hollwood designer for the task and went back to check the homepage to see if there was a Linux compiler, as I recon I'd be able to knock up something pretty quickly with that system (I own both Hollywood and Designer, though don't really use them at all these days. the LUA based Syntax is very simple though). Alas for now I guess Hollywood will stay in the cupboard. I suppose if Amiga emulation gets advanced enough, I could always code my app for the Amiga and run it under emulation! :)
Hollywood Designer can be made to run on Intel Linux by installing hosted AROS on top of it. That will give you native speed without as much emulation overhead as EUAE.

Edit: That will only help the Intel version of Linux though.
 
Last edited by a moderator:
Samurai_Crow said:
Pleng said:
Hey Samurai Thanks for the feedback.

I did actually think of Hollwood designer for the task and went back to check the homepage to see if there was a Linux compiler, as I recon I'd be able to knock up something pretty quickly with that system (I own both Hollywood and Designer, though don't really use them at all these days. the LUA based Syntax is very simple though). Alas for now I guess Hollywood will stay in the cupboard. I suppose if Amiga emulation gets advanced enough, I could always code my app for the Amiga and run it under emulation! :)
Hollywood Designer can be made to run on Intel Linux by installing hosted AROS on top of it. That will give you native speed without as much emulation overhead as EUAE.

Edit: That will only help the Intel version of Linux though.


Actually, according to the author, Designer does will not run on AROS, due the heavy reliance of MUI classes which are unavailable on AROS.

Apps created in designer will run from AROS as will any other Hollywood app.

Anyhow AROS doesn't really help in this instance as I really want this app developed for the Pandora (a portable note-taking app isn't much use on a desktop!)
 
Last edited by a moderator:
Pleng said:
So essentially what happens? I code an app in VB, compile it with mono, and as a result I get an ARM binary?
VB is not VB.NET. Take it to mind. AFAIK VB.NET is object oriented and IIRC it is quite difficulty accept this by some VB programmers. Just look at Microsoft pages about VB.NET. Think about VB.NET as it is new language not VB related. I'll think that C# is better for .NET (or MONO if you wish), as it is native language of .NET. Even better may be try Python, as it is similiar to C# at some concepts and programming ideas. As I'm not native English speaker I can't exactly imply my thoughts. But as Object Pascal programmer and forthcoming C# programmer I will choose C# and MONO, and if not C# + MONO available than just Python + some window toolkit.

edit: Oh, I forget: You donť get ARM binary, but MONO bytecode, that can run on any computer with MONO platform installed. This is similar to Python (or Java).
 
Last edited by a moderator:
Back
Top