For a few years, I’ve been working in the real world, I mean the enterprise world, sorry. In every company I’ve worked for, they offered me the opportunity to learn a lot of new things, or at least that’s what they always said in the first meeting before sending me to be just another company programmer. But in fact I’ve learned some very important things, just not about programming. I had to learn about these things on my own, about the needs of a real company in the real world.
Software schedules are usually tight. Big custumers think like that old Queen song: “I want it all, and I want it NOW”. Modifications must be done quickly, sometime multiple times, as customers change their mind often. And there’s not just one big custumer, but a hundred important customers for our company, and our program must be adapted to work in different environments.
However, not all programming tasks need a real programmer. There are few programmers, and all the employees need your services. You can’t do all, and you don’t have the time to learn all about marketing, administration, statistics, sales, and all the rest of things existing in a modern company. It would be a tremendous advantage if experts in these fields had the ability to write simple programs to meet their own needs.
Programming in C or C++ is effective, and the basis for much of the world’s most important software. Think about Linux; more than a million lines of code written in C, and it works like a charm thanks to C’s inherent strengths. However, coding in C or even in C++ is slow and cumbersome if you want to program an interface for a database in a day. But there are many cases where someone in a company, or just a computer user in their house would want to do some simple programming to automate a task.
Programming languages like Perl or Python are nice too, especially for web tasks, but they’re designed for programmers, and they have important shortcomings for the beginner, for example, lacking a really easy and comfortable IDE.
On the other side, a lot of old computer users, whether they are currently working as programmers or not, began using computers with well known names like MSX, Spectrum, Commodore, or Amstrad. All of them had their own BASIC interpreter, and almost everyone who used computers back then remembers something about BASIC. Due to the success of a small software company back in the 80s, I can’t remember the name, sorry, BASIC was also extended to manage databases, spreadsheets, and there’s even a good IDE for a BASIC dialect thanks to that company, and a lot of programmers have learned that this BASIC dialect is poor, and has bugs, but they can easily write and debug programs using it, so they have become productive for their companies.
New things like C# are also good for big projects, but for a beginner it’s just confusing when they read things like “System Runtime Interop Services”, and they realize that they have to learn about name spaces, inheritance, interfaces and provider objects before writing anything useful.
So it seems there’s a good place for an easy and powerful language, so both beginners and programmers that need to concentrate in the problems instead of the syntax, can work without problems. That’s where Gambas can help the free software community. Gambas offers an easy IDE and a BASIC interpreter that allow the user to create both graphical and console programs, database applications, and communications programs. Even CGI’s can be written with few effort. And it is ready; the 1.0 version will be out soon.
Getting started
Let’s program using Gambas. You can download and compile the sources from the download section of Gambas , or if you’re using Mandrake, you can download the latest version from Kudla.org, or install it from the “contrib” section of Mandrake distribution. Debian Sid/Sarge/Linex users can do it just typing “deb http://www.linex.org/sources/linex/debian/ sarge linex”. There are packages for other distributions like Slackware, too. Just look the download page, in the “Binary packages” section.
Once you’ve installed it, run Gambas. The first screen shows a wizard that allows you to open some example programs, open recent projects and to create a new project.
Let’s create a new project, so press the “New Project” option. Then press “next”.
Select “Create a graphical project”, then press “Next”.
In the “project” name type “MyProgram”, for example, and in the application title place any description, for example “This is my first program” or leave it blank, if you want.
In the next screen select a folder into your home directory where you want to save the project. The IDE will create a folder, with the same name as your project, into selected folder. Finally, a little resume of the options you’ve selected, and after pressing “Finish”, you will have access to the RAD environment to start developing your project.
Go to “Forms” the press the right button and select “New Form”. A dialog appears asking for the project properties.
Call it “FrmMain” the press OK.
Now in the “ToolBox” window, click on the button widget, go to your created form, and place it there resizing it as you want.
Now modify the button text, write “Hello” in the “Text” property of that button.
Let’s code a little. Double-click your button. The code editor will appear. Just write the code for the button:
Message.Info ("Hello, World!")
Now, execute your program. To do that, press “F5” or the “run” button. To test the program click your button. A dialog appears with the welcome message. Easy, isn’t it?
Gambas can do more!
This was just a very little example. However, Gambas allows you to write complex programs. The RAD environment is written in Gambas itself. You can write multi language programs. To help you doing that, the RAD offers a wizard to translate your programs to a lot of languages. All translations are compiled with the main executable, and according with the user language, the program will automatically show the texts in a language or another. All form texts are automatically added to the translation wizard, and you can select if any of the texts written in the code must be translated or not. A usual string (between the ” symbols), is not translated, but if you round it with the “(” and “)” symbols, it will be available for translating:
Text1.Text="This string will be not translated"<p>
Text2.Text=("This string will be translated")
Gambas offers database access. Cvurrently you can manage MySQL, PostgreSQL and Sqlite. You can write code to read and alter table contents, and even to create and delete databases and tables. Gambas RAD also provides a database manager, that allows you to graphically connect with a database server, create and destroy databases, tables and records in a table. It also offers interesting features, like translating table structure to Gambas code, so you can create the table in any new installation without having to write the “CREATE TABLE” statements by hand, or database users management.
A complete documentation system can help you when you are in trouble. That documentation is being updated all the time, as it is placed in a wiki at Binara. There’s a Spanish translation in progress at Linex.
There are wizards to distribute your program as source code (tar.gz format) and to create binary packages for the main GNU/Linux distributions. You can create a rpm or deb package without knowing the build tools for these package systems.
You can write network applications using Gambas; there’s a low level network component that allows to write TCP, Unix and UDP socket clients and servers, and to work with serial port devices. A beta component, based on the curl library, allows to directly perform querys to HTTP servers and work as an FTP client.
XML is work in progress, soon you’ll be able to read and write XML files, perform XML-RPC calls and make conversions to XHTML using XSLT.
The components model
Gambas is designed to be extensible. There’s a base language, and all the rest of the features are provided by components. Currently, components are written in C or C++, and in the future you’ll be able to write your own components in Gambas! Even the graphical toolkit is just a component. By default, Gambas can just be use for console programs, but adding the qt component, the program becomes a graphical application. This qt component is as agnostic as possible, so in the future there will be a GTK+ component, that will work absolutely the same as the qt component, allowing you to decide what low-level toolkit to use.
The future…
Gambas is just 1.0. In the next year there will be a lot of advances: finishing the network and XML component, writing components in Gambas, serialization, persistence, sound and graphics with SDL, a GTK+ toolkit, a report designer, data widgets (grids, combo-boxes…)…
So, if you plan to write the applications for your home financials, or have to write programs for big customers, think of Gambas, it can make you productive, fast, smart, and all the kind of things that big companies marketing campaigns say, with the freedom of GNU/Linux or FreeBSD, and the support of a big team of volunteers!
About the author:
Daniel Campos Fernández
Working for Gambas since 2003, writing the network, XML/XSLT, and compression components.
If you would like to see your thoughts or experiences with technology published, please consider writing an article for OSNews.
“With Gambas, you can quickly design your program GUI, access MySQL or PostgreSQL databases, pilot KDE applications with DCOP, translate your program into many languages, create network applications easily, and so on…”
Wow, that’s really cool. I’m sure there are alot of people out there looking for something like this.
Tried it Half a year ago. It was really easy to do simple tasks as shown in this article. The only problem was the documentation, that was very poor. As the language is a “variation” of Basic, you really need good documentation.
I will give it another try, hoping that has changed.
That somebody implements a very nice IDE that support a parallel gui and language.. there are already multiplatform libraries like gtk and qt, and languages like Ruby, C#,.. Why did u rediscover the wheel?
Gambas is really Linux’s best chance to make it in the real world where Visual Basic is very common. It is also the easiest language I’ve seen so far.
My only real complaint is that the documentation was still not detailed for me to catch on to everything. Also, the mascot is always opened, it’s almost as annoying as the clipboard in MS Word
Hey, this looks awesome. Personally, I really don’t like the syntax of BASIC like languages, but this really looks like a fullblown start to an equivalent of Visual Basic, which could really be huge for Desktop Linux in general. Now if Monodevelop can only implement an IDE like this…
Holy Code! Check out that installer wizard. Now that’s a feature.
gambas.el?
the open source world should welcome this development. it will facilitate RAD and make Linux an attractive platform for companies. the installer thing is cool too! i looked at gambas a year ago and when i saw that it had no solution for deployment i stopped looking at it. now things have changed
now what it needs is a reporting engine ala crystal reports
“That somebody implements a very nice IDE that support a parallel gui and language.. there are already multiplatform libraries like gtk and qt, and languages like Ruby, C#,.. Why did u rediscover the wheel?”
I suggest that you actually read about Gambas. It doesn’t have a “parallel GUI”. It has sort of a toolkit-abstraction layer which allows different backends. Currently only Qt backend is available, but GTK+ backend can be written and is planned.
This reminds me of the time I first started programming with Delphi 3 or 4. It feels just as simple and powerful as Delphi did. Kylix seems to have gotten a competitor.
I know that gambas is not VB, but if we have a tool like that than can port code from too many business app’s over there, made in VB to linux, my mom cry (in happiness sense)
Kylix will have a competitor: Lazarus (still in 0.9) but soon: “The power of C++ with the easyness of VB”… in Linux!
That’s where Gambas can help the free software community. Gambas offers…
i just stopped reading, because I have adjusted my reading habits to my world that is filled with ‘advertorials’, perhaps this isn’t one, but it’s a long way from what the intro led me to expect from this article.
This project could hit it big if they port it to Windows, add an ODBC control, and possibly create a “Convert your VB snippets to Gambas smippets” feature. Don’t take me wrong … I’m not a huge fan of Windows, but that’s where the VB developers are, and if they can’t develop with this new language on Windows at first, they’ll have no desire to switch to anything else… just my 0.02.
I know that gambas is not VB, but if we have a tool like that than can port code from too many business app’s over there, made in VB to linux, my mom cry (in happiness sense)
This already exists. Check out RealBasic: http://www.realsoftware.com .
I second Mike’s opinion. This is just an advertorial. Get over it. They are trying to sell a product. It’s very easy to make something that looks smart for trivial tasks. How well it does when you really have to do something useful is another matter. But maybe it’s good.
I just wish that the Linux community and supporters would start inventing something instead of just copying everybody else including Microsoft.
The intro certainly lead me to expect something else than an advertisement. Too bad.
When are people going to understand? Lay people are never going to be able to program their own solutions. It doesn’t matter if it’s object oriented. The concept of variables and classes are abstract constructs that make little sense to those untrained in programming fundamentals.
It’s the same way with mathematics. Most people don’t understand that either. Programming languages are born of the same abstract thinking that mathematics require. Do you really think a business man, that can’t even get his head around elementary algebra and functions, is going to to ever understand to the point that he can write an even slightly complex program? I know most of the people in the companies I worked for couldn’t.
The only people I’ve ever seen able to be productive in simple languages/environments like VB are beginning programmers and not lay people.
Disagree as you please.
You know I don’t think this type of program wouldn’t be written if people didn’t want them. Don’t just look at Gambas, look at Freepascal and Lazarus and even JEDI. There are more and more programmers that don’t like to be dictated by some company how they are to program. Free Software/Open Source is inspiring in the way that it shows the way that programmers gain independence of those companies by producing their own tools. If you want >>innovation<< (I don’t like that word, I think its being overused) wait till those programmers are done reproducing their favorite programming environments.
AS a hobbyist programmer and Linux enthusiast, Gambas is absolutely fantastic. Documentation is great but what (I think) is really needed is a guided tutorial or book on this development tool. Folks like me (without a lot of programming experience) can become frustrated by reading documentation.
Sams “Teach Yourself Gambas in 24 Hours” would really be a plus…I think.
I meant to add that Gambas ported to Windows offers enormous opportunities vis-a-vis Novell’s Mono effort. I am teaching myself C# and take exception to the assertion that complex concepts must be learned before you can do anything useful with C#. The truth is, Gambas and C# are bother very powerful and can be as simple or complex as you want/need.
Mono brings tremendous value to Linux development. I am not sure if Gambas going to Windows provides the same benefit but if Linux continues to grow, it will help fortifying a ready army of Gambas-enabled developers.
Lay people do need to ‘program’ and simple languages for VB are great for custom jobs. ‘
I used to work for a company that did a lot of custom jobs. We exposed our controller via DDE and other means.
All we had to do was write some examples of how to control our devices from VB and MSExcel using DDE. From there, they were able to write their own Excel tables with marcros. They made special VB applications, which they really could do with just dragging a button…copying and pasting our example code, and changing it accordingly.
Not to mention the countless times I’ve used VB to write a simple test application (testing the communication to new serial port or network device).
Lay people are capable of producing custom software using the appropriate tools you give them. Such software is not just good to have, its essential. You don’t need to call it ‘programming’ if you don’t want to, but things like VB, or in this Gamba are great.
an equivalent of the Macintosh Hypercard program, able to create out highly competent software without letting the person doing the programming, that they were indeed programming.
That’s because it does have restrictions, and “guide rails” for beginners. But as long as the person doing the programming isn’t aiming for anything humungous or ginormous, and is going for a small program to do one thing and do it well, then Gambas, like Hypercard, should fit the need very adequately.
And qt is cross-platform – there’s no need to worry aobut that. All that would be necessary, would be to nut out its compilation process in various MS Windows compilers, and then advertise it to MS developers as a way of transferring the VB skillset to Yet Another Platform.
I can’t be the only person who sees Microsoft nearing the end of its market dominance.
No you are not alone in your thinking that Microsoft is going to hurt in the very near future, just like IBM did.
I think a solid A-Z RAD tool on Linux, is just super, a lot of them excist but don’t finish the job, and never become finished products, this one looks real enough.
I am lovin’it. Downloading soon…rest is history
“I second Mike’s opinion. This is just an advertorial. Get over it. They are trying to sell a product. ”
Hello! Dude, are you there? Gambas is GPL!
VB (not VB.net) is like Perl for windows: it allows you to use other COMponents easily and to create GUIs for them.
Friends of mine working in Engineering all end up using VB for doing all the not major apps, and I can understand why.
With VB.net MS has pissed off quite a lot of developers (before, no Object Orientation was required, you wouldn’t believe how many people don’t understand that concept), so the time is right for Gambas or any other VB clone.
Of course that’s just my opinion
I love Gambas! They taste goooooood!
I think one of the things that makes Linux so powerful (and the clue is that Microsoft don’t say anything about it) is the correctness of the tools creation: Command line program do the thing, GUI program configs the command line program. That’s how you can interface programs with anything else and make perl, python, php, java, etc. able to work with almost everything.
When you have a GUI that becomes at the same time the program, you break the chain. You’ll always will have to have someone clicking buttons and copy-pasting so info from one side of the chain jumps to the rest of the chain.
THAT’S THE MAJOR WEAKNESS OF WINDOWS!!!
All this TCO is bullshit if you have the ability to automagically connect different parts of the chain so you can liberate your workers of those monkey-tasks and focus on their jobs.
I think Gambas does precisely this. Forces programs to interact with a user so the chain gets broken.
Sure you’ll save few bugs hiring a programer. But then you’ll have to pay 40% of the salary of 4 people during 10 years filling the hole of you company’s chain again. That’s bad bussiness practice, even when CEO’s cannot understand it.
OK, this article was an advert but one a lot of people seem interested in. Me included.
There’s thousands of VB programs out there, written by newbie programmers who never went on to “real programming”. Even if you have your CS degree, you still sometimes want to be able to knock together something simple, with a focus on the UI. Something like Glade can be good, but it only does half of what it could do. Gambas may not be the solution but at least they’re trying.
Gambas looks like a neat little package. I’ve looked in to it briefly around the 0.93 stages, but it was prone to crashing back then. Due to the lack of comprehensive offline documentation and relatively little time I didn’t get to look at it further.
Back then I allready thought this had potential to get big. It can fill a void that has been glaring in GNU/Linux for ages. “Normal” people don’t have tools to make little programs that do the job on GNU/Linux. Ofcourse their is the KDE Kommander project, but it is heavily bounded to the KDE environment. Gambas is a separate environment with good interfacing to the outside world.
Before I hear our fellow GNU/Linux hackers scream, no, this won’t be a tool for performing the black arts of high programming. It doesn’t need to be.
Most people have a rough understanding of what they would like a computer to do and a large percentage of that group is willing to whip something up if it was easy enough. What that group is not willing to do is learning how to program in C, C++, C#, Java and muck about with toolchains.
Gambas allows for writing powerful little tools with minimal efforts. When it can interface with more toolkits, we could see a significant rise in enduser applications. It would be what GNU/Linux is desperately needing. The basic plumbing of GNU/Linux is ready, but now the top layer needs to be finished. An easy environment like Gambas could provide for the means to make the Desktop space broadly usable.
When they can get around to get Sams or O’Reilly to publish the “Programming with Gambas 1.0” I can see this tool become a mainstay on every average GNU/Linux desktop.
“When you have a GUI that becomes at the same time the program, you break the chain. You’ll always will have to have someone clicking buttons and copy-pasting so info from one side of the chain jumps to the rest of the chain. ”
Again, read carefully about Gambas. When creating a project, it asks you what kind of a project you want to create — GUI or CLI.
So yes, you can write CLI programs using Gambas.
You can also write interfaces to CLI programs of course. Gamabas has nothing much to do with the issue you raise.
To those of you that complain… stop, and investigate more about gambas. Go to the gambas webpage and see the effort that is put tours this project. And any other of its kind.
This is needed… if you don’t like something because it is not there then go a tell him about it, or better yet get involve, help out… if you can’t I am sure you know someone that migh have the time an willinness to help this software become more usefull, more accesible… thats what linux is all about after all… don’t complain like if it shouln’t be made…
Gambas is needed… (It is like VB but not a clone, and that is good. it won’t make those horroble thing VB is known to do.) I need it, I wana learn better programing and already know basic. Am not yet able to program by myself, and since I wana make GAMES, doing so is harder than it seems since there’s more to it than just data… you got graphics, sound, AI, gaaa… it makes dabase software seem easy at times… and for newbees GAMBAS is a good START…
Games for linux, thats what many want… Gambas will help us see more of them.
I’m happy to risk standing between VB and GAMBAS. I’m sure I’ll get nothing more than a bored expression waiting for the eagerly anticipated GAMBAS stampede.
This project looks really cool. The binary package wizard is amazing; I wish some other IDEs had tools like that. The database integration also sounds useful.
Overall, this seems much more mature and useful than I had expected from something I’d never heard of before. Good job.
I’m another person that stopped reading when it became and advert. Shame the first section before that had looked like it could have been a good article had it not been trying to push their product.
For a few years, I’ve been working in the real world, I mean the enterprise world, sorry.
This opening sentence was enough. Arrogant much?
The question I have is why they developed a new language and why they based it on BASIC. They would have a much more successful and useful product if they targeted an existing language. A scripting language like Ruby would be a good choice. C# or another .NET/Mono language would also work well.
<p>
The problem with simple languages is that eventually you want to do something complex with them. Can Gambas interface with external libraries and other programming languages? This is one of the big advantages of VB; it makes calling COM components easy. How easy is to develop a large application outside of the GUI? If it can only be used for RAD, then it is really only useful for rapid prototyping.
<p>
Finally, how easy is it to distribute the application produced. How big is the runtime? Is it open source or closed binaries? For example, I just tried to install a Kylix application which didn’t work on FC2 because the binary Kylix libraries were incompatible. Probably because FC2 uses xorg libs and 2.6 kernel. But there is no easy way to recompile the application. If their tool was based on an existing environment, they could just say “you need Ruby runtime” and the distributions packagers worry about it.
<p>
A proprietary language also has a smaller usage base. This means a smaller community developing useful code. This means less people to ask for support.
Because then it wouldn’t be Gambas, it would be Ruby, or C#, or python. A better thing to have state would have been, “Why didn’t they use an existing runtime to host the language like .NET, Mono, Portable.NET, Parrot, your mother,” but what you said makes no sense. ;(
The point was to create something easy to use for people interested in the logic, not the technicalities.
Let people chose their programming language freely. The guy that made Gambase likes BASIC and so do many other people. They just want their favorite tools on Linux.
Lay people are never going to be able to program their own solutions.
That statement is right up there with “640KB of memory should be enough for anyone”. Thousands of amateur programmers have been hacking together useful (to themselves and others) programs with BASICA, GWBASIC and QuickBASIC since the PC was introduced 22 years ago. Read the comments here and you will find that a lot of people are responding enthusiastically to this announcement. “Find a need and fill it” as the saying goes. IMO there is a need for entry-level programming tools for Linux and BASIC fills the bill quite nicely. There is also great irony in the fact that this is starting out as a Linux program and people are saying they want to see it ported to Windows. It’s usually the other way around.
There is a commercial Windows program called Liberty BASIC and supposedly a Linux version is on the horizon. Gambas could put a crimp in the Linux version of Liberty BASIC.
To those who complain that Gambas doesn’t have every bell and whistle that VB has, consider that VB is made by a huge multi-billion-dollar corporation with a team of paid programmers working on it. Gambas looks to be the undertaking of one guy working in his spare time while holding down a regular, paying job the rest of the time so you can’t expect it to have all the bells and whistles of VB on the first release.
It appears that some people came to the conclusion that Gambas is a commercial product. It is not, it is open source. Yes the article sounds a bit like it’s a sales pitch but judging from the name of the author he isn’t a native English speaker and might not have been aware of the way his words appear to mot OSNews readers.
And qt is cross-platform – there’s no need to worry aobut that. All that would be necessary, would be to nut out its compilation process in various MS Windows compilers, and then advertise it to MS developers as a way of transferring the VB skillset to Yet Another Platform.
Qt for MS-Windows is not available under a GPL licence, which complicates things. AFAIK It should be possible to release an MS-Windows version of Gambas under the GPL, just only people with a Qt licence could build binaries.
I’ve reading all comments and I’m very happy. About 80% of comments are positive for Gambas, more than I could expect for a new program.
Thanks to all, those who like it and those who dislike it, but sent new ideas to make it better.
I just would like to explain some point: Advert.
As one of the comments says, I’m not an english native speaker, and I have doubts about if anything can be misunderstood.
However, in that case, I used the “advert style” knowing what I was doing. Big software sellers uses to say: “I have the answer to all your ploblems, I will make you productive”.
My “fake advert” was just ironic. Gambas in fact is GPL, so you can have it for free, and use it even for non GPL projects: may be you have to contact with TrollTech if you plan to use the qt component for a commercial program, or you can wait until the GTK component will be released, just think how many money will you earn with your project, and how many money do you want to use in programmers, and other costs, but understand that this is not my matter, I’m just writting free software.
But if you stop reading in the first line, you can not read the Gambas link, so you can not read all information placed there about the licence ( http://gambas.sourceforge.net/licence.html ), and if you stop reading there, you won’t be able to read the end of the article, in which I speak about that stuff.
It’s a pity: sometimes, all of us stopped doing things because we seemed to see something wrong at start of the road… and we lost something, important or not, just for our “predictions”.
Ok, it’s enough about philosophy 🙂 I hope you enjoy this project!!
Thanks to all
Gambas today is where Visual Basic has been already 7 years ago.
What a breakthrough.
“Gambas today is where Visual Basic has been already 7 years ago.
What a breakthrough.”
WOW, where can I buy a 7 year old version of VB for Linux?
-1 Troll
Native Win32 Port of Qt3 GPL Started
Posted by binner on Friday 11/Jul/2003, @12:26
http://dot.kde.org/1057919193/
It won’t bite into Trolltech’s sales of the non-GPLed QT libraries, because the market’s different for the two sectors.
What it will do is enable Gambas to compete with MS VB on MS Windows – besides allowing a lot of other Linux stuff to run on MS Windows.
Qt3 on Cygwin exists now, and someone on the gambas-user mailing list is doing a lot of work to port Gambas to Cygwin before attempting to port it to native Windows (which I think will be pretty tough indeed.)