Slashdot Mirror


Rapid Open Source Development for the Unix Console?

Adam Weiss asks: "With Web Interfaces and GUIs being all the rage these days, it seems hard to find much about console application development. Web Interfaces and GUIs look pretty and impress people, but I've noticed that it's awfully hard to beat the speed of a well trained operator on a well designed console interface. Some of the HR folks at work use a console app to access employee records while others use a Windows GUI. The console folk can lookup and update three records in the time it takes the the GUI folk to clicky-clicky through one. So, are there any mature Open Source toolkits that would enable rapid development of console applications. Sure, there's curses, but that's low level pain in the arse. I'm talking like something that is specifically designed for building database applications- kinda like an extensible version of Microsoft Access Forms for the green screen. Something that's pretty easy for the simple stuff, but lets you break out and get complicated if you need to. (unlike Access) I know there's gotta be plenty of obsolete commercial stuff that makes these kinds of projects easy. I just want to know if there are any Open Source alternatives that are somewhat modern and well maintained."

13 of 51 comments (clear)

  1. I can't be the only one who by lightspawn · · Score: 4, Funny

    misread the title as "Rabid open source development"...

  2. PHP + Perl + Links by ptaff · · Score: 4, Interesting
    Perl and/or PHP can be pretty powerful to access databases and lotsa libraries; PHP can be compiled as a Command Line Interface which gives the console user a plus.

    Links is a text-based web browser - building a console interface can be very simple using HTML and Links - you don't have to play with ncurses' mess.

    The problem with GUI speed is not so much caused by design - it's the darn mouse that slows down everything... instead of doing a simple Ctrl-S to save, it's all these 6 steps (or more!):
    • Take your hand off the keyboard
    • Grab the mouse
    • While looking at the screen, go to the menu
    • Click on File
    • Click on Save
    • Get your hand back on the keyboard


    1. Re:PHP + Perl + Links by OwnerOfWhinyCat · · Score: 3, Insightful

      I, too, use the all the keyboard shortcuts I can, and find them surprisingly available.

      But the point he was making is cogent none the less. If you go into the office and tell your staff they have to start using the apps. they've been using for years "the way you think they should be using them," you'll probably note the conversation around the water cooler goes silent as you approach for several months. And not in a good way. People usually need a motivation to re-train that is a little more upbeat than "because you're inexcusably slow."

      If you have the tools to make the development cheap, a new app interface is a great approach to the problem. You get to have meetings, everyone gets their input, several features they've always wanted are added. They "buy in" to the new interface, and they all start at the same point when learning the new system.

      In the case where the Linux developer is not the only smart person in the organization (it happens :) ), the users may suggest features that genuinely enhance their productivity. I wouldn't be surprised if getting them to use the keyboard may be the least beneficial effect of the new interface.

  3. turbovision by divbyzero · · Score: 3, Informative

    Turbovision was an old Borland library for DOS, with C and Pascal bindings, which addressed the niche you're looking for. There's supposedly a free port to Unix. I can't vouch for it personally, but check out this Freshmeat project page.

    --
    But my grandest creation, as history will tell,
    Was Firefrorefiddle, the Fiend of the Fell.
  4. Big words... by clambake · · Score: 5, Funny

    I will never understand why people feel the need to use big words just to make themselves sound smarter. Case in point, saying "Rapid Open Source Development for the Unix Console" when what they really mean is "Perl".

  5. Gui doesn't suck, gui design does. by evilad · · Score: 4, Insightful

    If the same amount of time and effort was spent making the gui ergonomic and "keyboard accessible", I suspect that you would find that their speeds were about equivalent.

    1. Re:Gui doesn't suck, gui design does. by pmz · · Score: 4, Interesting

      If the same amount of time and effort was spent making the gui ergonomic and "keyboard accessible", I suspect that you would find that their speeds were about equivalent.

      I think GUIs take a lot more effort and time to do well than most people will admit. This is one reason the UNIX CLI is still around (it's quick, it's dirty, but it works reasonably well).

      Mainstream GUIs often have these problems: the fonts tend to be small making them hard on the eyes, grey and white backgrounds with black text are hard on the eyes, there tends to be more information packed into one screen often requiring scrolling (time consuming and hard on the eyes), GUI layout managers are mastered by few leaving some pretty darn ulgy forms (again, hard on the eyes), many GUIs imply the mouse for intuitive navigation, etc.

      It also doesn't help that GUIs are enormous programs, which are inherently unreliable and often not predictable. One reason Windows gets such a bad rap is that Microsoft produced a huge program in about 1% of the time it should have taken if they wanted to do it well.

  6. Interface by Samus · · Score: 4, Insightful

    A long time ago I read a book called "About Face." It was a book on user interface design by the guy who created Visual Basic (I think). Now don't discredit the book because its associated with a VB guy. From what I remember there weren't any code samples it was all theory. Basically it was talking about all the things your average GUI programmer was doing wrong back then. One idea that stuck in my head was that often people make the mistake of writing one screen to both view/edit and input data. The idea was that data input screens need to be designed for speed and efficiency but this layout is ugly and cumbersome when trying to view or edit a record. A manager of a data entry department at a local company in cincy said that everytime his people have to take their hands away from the keyboard and use the mouse he loses 3 seconds. So if you design a GUI screen that doesn't require the mouse, has lots of short cut keys and other conveniences like auto tabbing to the next field when the current field reaches the required amount of characters you should be able to achieve just as much throughput as a console app.

    --
    In Republican America phones tap you.
  7. Speed vs Training by FortKnox · · Score: 4, Interesting

    Web Interfaces and GUIs look pretty and impress people, but I've noticed that it's awfully hard to beat the speed of a well trained operator on a well designed console interface

    The key phrase here is a well trained operator. GUIs are pretty, and can be slow, but almost anyone can plop their butts down and start working on it immediately. Console apps, fast as they are, require sometimes days of training before working on it, then weeks (or months) of experience before getting truely fast at it.
    This tradeoff is what businesses look for, and if its a spot with a high turnover ratio, they don't want to throw money away on training. Sometimes its just better to make it more user friendly than speedy.

    I just wanted that point to come across for why companies go for web design. Right now I'm putting a J2EE front-end on a mainframe backend for a company to trade a 2 week training class to a 1 day relaxed training class to operate the software. It is something where speed is desirable, but web speed isn't that slow for the internal app.

    --
    Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
  8. Re:Not a UI issue, but design issue by DuckDuckBOOM! · · Score: 3, Insightful
    Do the gui users have to point and click? It should be a pretty trivial task to make the gui useable point and click and keyboard navigable.
    Seconded. This smells more like a poorly designed GUI than a super-efficient console interface.
    --
    Life is like surrealism: if you have to have it explained to you, you can't afford it.
  9. Re:take web add lynx by ichimunki · · Score: 3, Informative

    You're kidding. That's a horrible idea. How do you implement keyboard shortcuts in links/lynx? How do you do menus and stuff like that? Not to mention the additional security headaches involved in writing web interfaces...

    What this person wants to do is get over his leetness and learn to make a GUI application that behaves how he/she thinks a console app should work. There's no reason you can't bind keys the exact same way in a GUI that you would in a console app. And really, a console app created with something like curses is a GUI. Just not a very sophisticated one. A true command line application accepts lines in and spits lines out without mocking up a pathetic GUI using ASCII.

    --
    I do not have a signature
  10. GUI's rarely support type-ahead by bill_mcgonigle · · Score: 3, Interesting

    That is, a continuous input stream that fills into the screens as they return data.

    Go watch a few good travel agents sometime. They start their query, know what options are on successive screens, and are entering their choices before the screens even draw. Having seen those screens ten thousand times they have them memorized.

    So, there might be 5 navigation steps to get to a desired screen but they don't see those 5 screens, they enter the navigation keypresses all while the second screen is drawing, which immediately is cleared as the next is drawn, etc, even if that stream is some weird string like 'R,N,1,3,F9'.

    Now, one may argue that a good GUI would eliminate all those navigation steps by placing all the options on one, more dense, higher resolution, screen. Yet, in a complex system, not every element can be crammed on one screen, so there is still navigation that needs to be done, and the lack of type-ahead comes back to be a problem. Also, on an infinitely large screen the user takes an infinitely large amount of time to acquire his target, so every useful system of any complexity has to be multi-level.

    There's also the issue of the keyboard being a much faster means of data entry than a mouse for certain types of data.

    Plus, most terminals are of very low complexity and can be implemented to draw just as fast as their line speed allows. This compares favorably with, say, a web page full of DHTML, JS, CSS, and applets. Even a plain-old-html page often renders more slowly today because the browsers have to be capible of rendering so much more they're built on far more complex object models, which take time to process.

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  11. Re:take web add lynx by mbogosian · · Score: 3, Funny

    ... Examples are vim, emacs, word, mozilla.... The problem is that he has probably run across the GUIs for kde and gnome and many of the unix GUIs that are out there, where keybord shortcuts are an after thought.

    The problem with emacs is that everything but the keyboard shortcuts were an afterthought.... ;-)