Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
GUI Programming

Best Language For Experimental GUI Demo Projects? 278

New submitter GrantRobertson writes with a question about quickly developing prototypes for new interface design concepts "My research/tinkering will be along two main lines: (1) Devising entirely new graphical user interface elements, mostly in 2D, though often in a true or simulated 3-D space. I am working on ways to visualize, navigate, and manipulate very, VERY large data-sets of academic research information. (2) Computer based education software, though of a type never seen before. This will combine some of the GUI elements invented in (1) as well as displaying standard HTML or HTML5 content via a browser engine My requirements are: (A) A decent IDE ecosystem; (B) A decent set of libraries, but ones that don't lock me in to a particular mind-set like Swing does in Java. (Boxes in boxes in boxes, Oh My!); (C) An ability to easily draw what I want, where I want and make any surface of that 3D object become a source for capturing events; (D) Ease of cross-platform use. (So others can easily look at my examples and run with them.); (E) No impediments to open-source licensing my code or for others to go commercial with it either (as I have seen when I looked into Qt). So, should I just stick with Java and start looking outside the box for GUI toolkits? Or is there something else out there I should be looking at?" I'm not sure what impediments Qt has to proprietization of software since it's LGPL nowadays; in any case, Qt Quick and GNOME's Clutter seem like they could be a useful. Read on for more context.
"I am not a professional software developer and never have any aspirations to become one. I've been through a generic university computer science degree-program and I can tolerate C++ begrudgingly. I do OK with Java and prefer it, though I still have to look up every API before I use it. Most of the code I want to write will be not much more than prototypes or proof of concept stuff for the research I will be doing, rather than full-on applications ready for distribution and use. I can learn any language out there, if need be, but these days it is more about the ecosystem than the core language. IDEs, libraries, cross-platform compatibility, user support, open source licensing."
This discussion has been archived. No new comments can be posted.

Best Language For Experimental GUI Demo Projects?

Comments Filter:
  • by Anonymous Coward on Monday February 20, 2012 @11:14PM (#39106457)

    ...I would recommend a careful combination of watercolor and origami.

  • OpenGL (Score:5, Insightful)

    by Spykk ( 823586 ) on Monday February 20, 2012 @11:15PM (#39106459)
    If you need 3d and you are building your interface from scratch then you are probably going to want to use OpenGL in whatever language you are most comfortable with. Trying to bend an existing GUI toolkit into something it isn't designed to be will probably be more trouble than it is worth.
  • Some ideas (Score:5, Insightful)

    by mikera ( 98932 ) on Monday February 20, 2012 @11:16PM (#39106473) Homepage Journal

    1. Processing (http://http://processing.org/) is great for visualizations, worth a look. It's used a lot for interactive visualisation tools

    2. Clojure is a great option for general purpose prototyping. It has the advantage of being able to use all the Java libraries and tools, but on top of that is an excellent modern dynamic programming language with great code-generation capabilities. It's great for creating DSLs, for example there is a Clojure GUI library called seesaw that defines UIs like this:

    (frame :title "Hello", :content "Hello, Seesaw", :on-close :exit)

  • by Big Smirk ( 692056 ) on Monday February 20, 2012 @11:35PM (#39106581)

    One big negative on C#. Your code ends up looking like Visual Basic.
    You end up with single files with massive amounts of code. I've seen C# files with thousands of lines of code. Each button, each rule for the button etc. and they are not grouped by any rhyme or reason. The are simply tacked on the bottom as the next function. Thankfully Visual studio helps you find everything.

    Makes code walk throughs either hit or miss (did we go through all the functions on that button?) or scatter brained (function 1 - start button, function 2 - dialog box, funtion 3 - menu item).

  • Re:Processing (Score:4, Insightful)

    by foniksonik ( 573572 ) on Monday February 20, 2012 @11:40PM (#39106599) Homepage Journal

    Take another look.

  • by c0lo ( 1497653 ) on Monday February 20, 2012 @11:46PM (#39106631)
    That explains:

    Swing does in Java. (Boxes in boxes in boxes, Oh My!)

    Oh my, is that what it troubles you? Let's see...

    draw what I want, where I want and make any surface of that 3D object become a source for capturing events;

    And you want to do this without imposing any hierarchy (of the type "boxes withing boxes") on the 3D object's surface, yes? Assuming that it is possible, once the event is generated, how would you implement the event processing if you can't discriminate on the type of your "event source"?

    I do OK with Java and prefer it, though I still have to look up every API before I use it

    Looking into every API, you say. And you say you'd like to finish looking in this life, so that you could do something?

    My advice for this case: the shortest path to destination is the one you already know. Otherwise, if you don't plan to become a professional software developer, hire one.

  • by decora ( 1710862 ) on Monday February 20, 2012 @11:57PM (#39106711) Journal

    to use Office products during classes in college, I think about how they wouldn't be above paying someone to spam slashdot with this stuff, over and over, even after the guy -specifically required portability-.

  • by Anonymous Coward on Tuesday February 21, 2012 @12:17AM (#39106805)

    "Devising entirely new graphical user interface elements, mostly in 2D, though often in a true or simulated 3-D space"

    "This will combine some of the GUI elements invented in (1) as well as displaying standard HTML or HTML5 content via a browser engine"

    What is he talking about? The same sort of bullshit every toolbag who's never studied the history of UI design think of - imagine every craptacular "3D" interface that you've ever seen in a movie. The key tipoff: bragging about "very, very LARGE" data while insisting that they don't want to be a programmer. Utter horseshit.

  • Re:OpenGL (Score:5, Insightful)

    by timeOday ( 582209 ) on Tuesday February 21, 2012 @12:18AM (#39106821)
    OK... but this will be a task of the same magnitude of, say, writing GTK+. OpenGL by itself takes pages of code to open a graphics context or put a string of text on the screen. GLUI/GLUT is a weak joke. If he manages to write this over OpenGL, and it's any good, it will be the first time anybody has written a decent GUI library over OpenGL.
  • by Anonymous Coward on Tuesday February 21, 2012 @12:39AM (#39106919)

    You wrote a much nicer version of what I was going to say. This guy doesn't know what in hell he's talking about, and suggesting a language or API to him is like suggesting which particular brand of rifle someone should use when you know they're just going to accidentally fire it when they decide to see if the barrel is clean.

  • by greg1104 ( 461138 ) <gsmith@gregsmith.com> on Tuesday February 21, 2012 @01:08AM (#39107057) Homepage

    vi vs emacs? Please. Real greybeard curmudgeons argue over the best set of TECO macros to use, and about whether editing on a full screen really makes sense.

  • Re:GNUstep (Score:3, Insightful)

    by wisty ( 1335733 ) on Tuesday February 21, 2012 @01:12AM (#39107083)

    Cocoa isn't exactly very productive. Maybe when neXt first came out :/

    If you want to use Apple's Interface Builder, it's OK, but virtually nobody writes the GUI code by hand. wx and Qt run circles round it.

  • Re:GNUstep (Score:5, Insightful)

    by Space cowboy ( 13680 ) on Tuesday February 21, 2012 @01:41AM (#39107221) Journal

    "run rings around it" is a matter of opinion. I've used all 3 in anger, and I'm far and away more productive in Cocoa. Of course you'd use the gui interface builder (on either GnuStep or cocoa), that's an integral part of the system.

    Pure cocoa would get you farther, easier - the GnuStep stuff imposes limits, but personally I'd use core data for persistence, quartz composer for data visualisation, Grand Central for parallelism (using NSOperation) and you can drop into C or C++ for performance when you need to. All basic building blocks that work well together and ObjC is far nicer to work with than plain old C and desnt have the gargantuan complexity of C++.

    Simon.

    (rather surprised that I was modded down to 0....)

  • by SuperKendall ( 25149 ) on Tuesday February 21, 2012 @01:47AM (#39107237)

    virtually nobody writes the GUI code by hand. wx and Qt run circles round it.

    Both statements are false.

    There is a whole school of thought that people should shun IB for better UI performance. As a result there are lots of people that write all UI elements by hand. It's not hard, but there are a lot of properties you usually need to tweak.

    I myself like to use IB when possible, but have also done a LOT of dynamic UI, including building whole screens dynamically from configuration files.

    On performance - frankly you are dreaming if you think wx and Qt run circles around iOS UI elements, which have all the rendering accelerated by the graphics hardware (since every view is really a plane in a 3D world!).

  • by phantomfive ( 622387 ) on Tuesday February 21, 2012 @02:44AM (#39107463) Journal
    You don't need anything special to link to LGPL code. You can do it with proprietary, commercial code. You don't need to release your source code when you link to LGPL libraries.

    Unless you are modifying the library, then you need to release the changes. But you shouldn't have to modify QT itself.
  • Re:GWT (Score:4, Insightful)

    by glwtta ( 532858 ) on Tuesday February 21, 2012 @03:30AM (#39107635) Homepage
    Question: I would like a 3D GUI toolkit for large-scale data visualization.

    Answer: Here's a web framework.

    Moderation: Informative!

    Only on Slashdot...
  • Comment removed (Score:4, Insightful)

    by account_deleted ( 4530225 ) on Tuesday February 21, 2012 @11:23AM (#39111051)
    Comment removed based on user account deletion

The Tao is like a glob pattern: used but never used up. It is like the extern void: filled with infinite possibilities.

Working...