Thursday, May 10, 2012

Gambas

Click to visit the Gambas
documentation site.
This evening I've been playing around with Gambas, a BASIC IDE for Linux. I really expected this to either be a crappy clone of VB, or to simply suck like every other BASIC attempt I've seen in *nix. I'm happy to report that Gambas not only doesn't suck, but is pretty damned impressive for what it is... and that is a tool to build quick-n-dirty apps fast, fast, fast. 


Although it occupies the same sort of conceptual space as VB6, it's not a clone. The designers seem to have simply taken BASIC and implemented it as best they can, without being the slightest bit shy about their improvements, and without feeling the need for backward compatibility. GOOD CHOICE. This allowed them to borrow conceptually from Delphi, and Java, and anything else that makes sense.


For instance, a Gambas "project" is a directory on the filesystem, plain and simple. Each class, form, or module is a separate text file in that directory. If it's not a class, form, or module, it's "data", which can be literally anything. A Gambas program is interpreted, not compiled, but that shouldn't concern you, because that's true of any of the wildly popular scripting languages, as well as Java and DotNet programs. And Gambas is a sight easier to code in than most of those.


Programming in Gambas "feels" like programming in Delphi, or Visual FoxPro, with VB-like syntax. I'm not familiar enough with it yet to give a final verdict, but thus far I've seen little to dislike and a lot to like. Just one example: It's not necessary to see if a string is empty by using Len(). Instead, an empty string evaluates to FALSE, and a string with a value evaluates to TRUE. So you can simply say "If myString then...". Smart.


It's very PC to hate BASIC, but don't let blind prejudice get the better of you. There's  a place in the world for environments like this where you want something useful done fast.

Ubuntu Precise Pangolin, GNOME, and Extensions

Life just keeps getting better. Ubuntu 12.04 "Precise Pangolin" is a big step up from the mishegoss that preceded it. The Unity desktop was promoted to Ubuntu's default before its time, but has seen steady improvement since. There are folks who will love the Launcher and the Global "Mac-style" Menus... I just don't happen to be one of them. To give you a fair look at it, though, check out this on-line tour of the Unity interface. Try to ignore that the default wallpaper looks as though someone painted the screen with melted Skittles.

GNOME-shell

MUCH better for me is GNOME-shell, which is easily installed from the Ubuntu Software Center.

Like Unity, GNOME-shell has depreciated menus in favor of Search. You just bang your mouse cursor against the upper-left corner of the screen or tap the System key (Luddites know it as the "Windows" key). All of your running applications will be revealed in the overview, spread out so nothing's hidden, you'll see the following:
  • The application dock (the "dash") at the left. This contains the icons of favorites and running programs. Additional favorites are added to the dash by launching the program. Then just right-click on the icon on the dash and pin it there 
  • additional workspaces will be exposed on the right. As has long been the case, Linux provides multiple workspaces so you can compartmentalize your work. GNOME makes this easy... just drag one of the apps onto the empty workspace at the right. The app will be moved there, and a new empty workspace will be created automatically. There are no more static limits to the number of workspaces.
  • At the top of the overview there's an indicator that the screen is displaying either Windows or Applications.
  • your text cursor will be placed in a search box.

This is smoothly animated, and against my expectations it's very natural. It's become my default method of switching between full-screen apps.

If you start typing, then your search results will be displayed immediately. Here I've typed "scr" and GNOME's responded with a number of likely items. You'll notice that here it's categorized the results into "Applications", "Settings" and "Contacts".


Also note that the settings that are returned are things that have to do with screen settings, but don't necessarily have "scr" in the name. And what's "Caffeine" doing there?  Well, it's an app that prevents your screensaver from activating while you're watching a movie. As you can see, the search feature presents results based on your likely intentions. It also works around spelling mistakes.

The menus aren't displayed in drop-down lists as they used to be, but that doesn't mean they're exactly gone. Clicking on Applications at the top of the screen reveals the menus as a grid of oversized icons. By default all items are displayed, but you can click on one of the categories at the right to narrow your view. These exactly correspond to the old GNOME menu categories, so everything's familiar.


Also, when the Software Center installs a new program, you're told exactly where it went in the menu structure. That's kind of moot though, because it's faster to type a few letters of the program name or action you want to take and it's faster than looking through the menus. For instance, if I want to use a spreadsheet, I tap the System key and start typing "S-P-R" and by that time I'm presented with LibreOffice Calc and Calligra Sheets.

Unlike Windows 8, which gives you the finger instead of the mouse, GNOME can be navigated easily from keyboard, mouse, or touch. Here's a nice cheatsheet for common keystrokes. (Keyboard navigation doesn't work between Windows while the overview is displayed, but for now it's easy enough to tap the System key and use Alt-Tab to switch between them.)

Extensions

Now, GNOME-shell is very cool, but even better than that is GNOME-shell plus extensions, which can be had from https://extensions.gnome.org/; which, incidentally, has one of the finest designs I've ever seen for a website of its kind. You visit a page and click a toggle to install or deactivate an extension. It's just that easy.


You can even manage your installed extensions from here. Those toggles on the webpage are functional. That said, I'm going to leave you with a list of my installed extensions, and links to them. I won't describe them; instead I'll let the site do that. You'll either appreciate the utility or you won't.

In general, they either restore the drop-down menus I've become accustomed to or give me more granular control over the system.