Slashdot Mirror


Best Language For Experimental GUI Demo Projects?

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."

278 comments

  1. GNUstep by Space+cowboy · · Score: 1, Interesting

    I'd use Cocoa on a Mac, and stick to the (large) subset supported by GnuStep. Bonus, you'd be able to test IOS devices with your data set with a little more effort...

    Simon

    --
    Physicists get Hadrons!
    1. Re:GNUstep by Eponymous+Coward · · Score: 1

      Is GnuStep still alive?

    2. Re:GNUstep by wisty · · Score: 2, Insightful

      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.

    3. Re:GNUstep by Space+cowboy · · Score: 4, Insightful

      "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....)

      --
      Physicists get Hadrons!
    4. Re:GNUstep by JoeMerchant · · Score: 1

      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....)

      Gargantuan complexity is where you make it. If you don't like Object hierarchies, don't write them.

    5. Re:GNUstep by morgauxo · · Score: 1

      GnuStep might be a valid although strange answer. Does anybody use that any more? I suspect if he was looking for a Mac specific implementation he would have just started the project in Cocoa already. Most likely if he is even asking the question he isn't even using a Mac and suggesting Cocoa is like suggesting he go out and buy a new computer just for this project.

    6. Re:GNUstep by TedC · · Score: 1

      Yes, that was my experience as well. I tried building a Cocoa app using only a text editor and a Makefile, and it was a lot of trouble, especially tracking down all the libraries that need to be linked.

      Qt "by hand" isn't perfect, but it's better than Cocoa.

  2. Speaking as a VC wonk... by owenferguson · · Score: 5, Funny

    I'd be tempted to do it in English, but, given current demographic patterns, Chinese may be better in the long run...

    1. Re:Speaking as a VC wonk... by tobiah · · Score: 0

      heh

      --
      "The ability to delude yourself may be an important survival tool" - Jane Wagner -
    2. Re:Speaking as a VC wonk... by Higgins_Boson · · Score: 1

      I'd be tempted to do it in English, but, given current demographic patterns, Chinese may be better in the long run...

      English? Really?
      I was more thinking of crayons, construction paper, a juice box and a nap to call it a day.

    3. Re:Speaking as a VC wonk... by Rei · · Score: 2

      It's an experimental GUI. Go with something unexpected, like Icelandic. Plus, the letter makes for better emoticons than P. Example:


      . :P // Aack, what's wrong with this person's tongue?!?
      . : // Much better!

      --
      "Now we're getting to Science -- I love this!" -- Dr. Steven Chu, Energy Secretary confirmation hearings.
    4. Re:Speaking as a VC wonk... by Rei · · Score: 4, Informative

      Ohhh... right. Slashdot is stuck in the mid-1990s and can't handle Unicode properly. The letter that magically disappeared from my post is this.

      --
      "Now we're getting to Science -- I love this!" -- Dr. Steven Chu, Energy Secretary confirmation hearings.
    5. Re:Speaking as a VC wonk... by donscarletti · · Score: 1

      Chinese programmers use English for variable names. Compiling any >8 bit per character language is painful because of more complex string processing. Hanyu pinyin (Chinese written in Latin alphabet) is mainly used as a way of typing, nobody can actually read it and even if they could, it would be ambiguous. Since the bulk of programming resources are in English anyway, a Chinese programmer who is not fluent in reading it cannot actually do any useful coding anyway. So generally, even in Chinese companies, coding style still mandates clear English variable names.

      Experimental UIs are the same, Chinese programmers tend to slap them up in English because they don't have to support Chinese encoding.

      --
      When Argumentum ad Hominem falls short, try Argumentum ad Matrem
    6. Re:Speaking as a VC wonk... by AmiMoJo · · Score: 1

      It can't even handle ASCII properly. The Pound sign (£) never comes out right. Come on Slashdot, after going all Web 2.0 and introducing a big "off" button the least you could do is fix these ancient bugs.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    7. Re:Speaking as a VC wonk... by Teun · · Score: 3, Funny

      Come on! you guys had your chance to standardise it to € euro so don't complain.

      --
      "The likes of Facebook and WhatsApp are free to those whose privacy is of zero value."
    8. Re:Speaking as a VC wonk... by dkf · · Score: 1

      Compiling any >8 bit per character language is painful because of more complex string processing.

      It's only truly painful if you've mistaken a group of 8 bits for a character and if you've got a poor string library. If you're struggling still, you're using the wrong language. (Now, supporting multiple languages and locales in a single program is more painful because there's so many ways things differ and so many ways to hard-code assumptions.)

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    9. Re:Speaking as a VC wonk... by Anonymous Coward · · Score: 0

      Slashdot is stuck in the mid-1990s and can't handle Unicode properly

      Unicode was conceived of in the 80s and the first version was published in 1991. Slashdot is stuck in the early 90s.

    10. Re:Speaking as a VC wonk... by alostpacket · · Score: 1

      Looks like you got a thorn in your side.... or not....in this case.

      --
      PocketPermissions Android Permission Guide
    11. Re:Speaking as a VC wonk... by Anonymous Coward · · Score: 0

      http://pastebin.com/W6YzYZvy

      It seems to work fine (Java source file with a Chinese class name, a Hindi method, a Hebrew variable identifier and a Greek string constant).

      But I think, given that the programming is in English (public static void main ...) I'd rather stick to one language than have to switch between two all the time.

    12. Re:Speaking as a VC wonk... by gurumeditationerror · · Score: 1

      Compiling any >8 bit per character language is painful because of more complex string processing.

      It's only truly painful if you've mistaken a group of 8 bits for a character and if you've got a poor string library. If you're struggling still, you're using the wrong language. (Now, supporting multiple languages and locales in a single program is more painful because there's so many ways things differ and so many ways to hard-code assumptions.)

      I think the parent meant that it's more complicated for the compiler of the language, rather than the language itself.

    13. Re:Speaking as a VC wonk... by justforgetme · · Score: 1

      btw, what does that off button do? I don't dare pushing it!

      --
      -- no sig today
    14. Re:Speaking as a VC wonk... by wrook · · Score: 1

      Japanese programmers are the same. Hell, you can't even use Chinese or Japanese characters in Ruby identifiers. And Ruby was invented by a Japanese guy. I've often thought this is too bad. Japanese grammar suits programming so much more than English grammar. It would be great to have a programming language based on Japanese.

    15. Re:Speaking as a VC wonk... by Anonymous Coward · · Score: 0

      The Pound sign (£) is not in ASCII, but in Latin1 and Unicode, and it it displays just fine for me in preview. Let's see what happens after submission...

    16. Re:Speaking as a VC wonk... by Anonymous Coward · · Score: 0

      Are you talking about ð (ð), by any chance?

      I guess someone didn't learn their character entities in junior high, did they?

    17. Re:Speaking as a VC wonk... by Rei · · Score: 1

      No, I'm talking about "" (note that you won't see it). In English, the letter is called "thorn". I linked to the wikipedia page on it earlier, but apparently you weren't looking.

      --
      "Now we're getting to Science -- I love this!" -- Dr. Steven Chu, Energy Secretary confirmation hearings.
    18. Re:Speaking as a VC wonk... by crunchygranola · · Score: 1

      Ooh... the letter "thorn", my favorite obsolete runic letter! I think we should bring it back to we can retire the "th" in English letters, and stop getting confused with foreign Latin script words and transliterations where "th" is actually an aspirated "t" that sounds nothing like either of the two English ways of sounding "th"!

      --
      Second class citizen of the New Gilded Age
    19. Re:Speaking as a VC wonk... by Anonymous Coward · · Score: 0

      Is that a sideways quake logo?

    20. Re:Speaking as a VC wonk... by Zontar+The+Mindless · · Score: 1

      That should be þ or þ, but that particular character seems to get filtered out by Slashcode.

      --
      Il n'y a pas de Planet B.
  3. Processing by Deathnerd · · Score: 5, Informative

    Im sort of in the same boat (Graphic Designer with aspirations to be a UI/UX designer) and am learning to code of my own accord. I've had much success with Processing. It's really easy to get started and get functional code running. Also, you can run your processing files on a webpage with Java or Processing.js. I don't know about the large data sets you're dealing with, but since Processing is java based, I assume there won't be much difficulty

    1. Re:Processing by Anonymous Coward · · Score: 1

      I took a very quick look. Cool, but the language itself looks a lot like Java without classes. WTF...? Why not just provide a Java-based framework and class libraries...

    2. Re:Processing by foniksonik · · Score: 3, Insightful

      Take another look.

      --
      A fool throws a stone into a well and a thousand sages can not remove it.
    3. Re:Processing by retchdog · · Score: 4, Informative

      so that non-programmers can script up their concept without even the cognitive overhead of java. processing is intended for use by journalists, biologists, &c... and it is, to great effect.

      --
      "They were pure niggers." – Noam Chomsky
    4. Re:Processing by Anonymous Coward · · Score: 2, Funny

      processing is intended for use by journalists, biologists ...

      Whoa, whoa, whoa! Don't get carried away with wishful thinking there. Biologists. Sure they could program. If you'd said dog catchers, garbage men, or ditch diggers I could believe they'd be capable of programming too.

      But journalists? Give me a fuckin' break. That's just completely unrealistic.

    5. Re:Processing by Anonymous Coward · · Score: 3, Interesting

      Try Piccolo, also known as Piccolo2D.

      It's a ZUI (zoomable user interface) framework in Java. Essentially a 2D scene graph model, with event handlers for zooming, panning, tapping/clicking, etc. Nodes can be 2D vector graphics, or can contain bitmapped images, and standard Java UI controls.

      http://www.piccolo2d.org/

    6. Re:Processing by dkf · · Score: 3, Informative

      Biologists. Sure they could program.

      I work with biologists. It's a very rare one that can program. Rarer still that they can program efficiently.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    7. Re:Processing by datavirtue · · Score: 1

      My vote is Java and Processing. All this cocoa talk and other crap is just a disservice offered by people who do not understand the question. No, I'm not new here.

      --
      I object to power without constructive purpose. --Spock
    8. Re:Processing by datavirtue · · Score: 1

      Biologists typically use the other side of the brain. Not programmers. My wife can pwn biology, but give her a basic math problem (anything with fractions in it) and she locks up.

      --
      I object to power without constructive purpose. --Spock
    9. Re:Processing by retchdog · · Score: 1

      you know, i considered putting economists in that list too, and decided against it for that very reason. ;-)

      --
      "They were pure niggers." – Noam Chomsky
    10. Re:Processing by retchdog · · Score: 1

      also, there's a big trend toward more computer literacy in journalism. believe me, they've gotten the memo. more power to them, it can only improve things.

      --
      "They were pure niggers." – Noam Chomsky
    11. Re:Processing by GrantRobertson · · Score: 1

      Thank you. I will definitely look into Processing. After a quick glance it seems to meet many of my immediate needs, even lots of documentation and support. Definitely worth further exploration.

    12. Re:Processing by Anonymous Coward · · Score: 0

      And if you want to use Piccolo2D from Processing, there is a GPLv3 or later licensed library for Processing

      https://github.com/heuermh/piccolo2d-processing

  4. Based on your requirements... by Anonymous Coward · · Score: 4, Insightful

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

    1. Re:Based on your requirements... by retchdog · · Score: 1

      really? based on those requirements, i think origami would be a bit much for him.

      --
      "They were pure niggers." – Noam Chomsky
    2. Re:Based on your requirements... by Sulphur · · Score: 5, Funny

      really? based on those requirements, i think origami would be a bit much for him.

      The project might fold.

    3. Re:Based on your requirements... by MadKeithV · · Score: 3, Funny

      really? based on those requirements, i think origami would be a bit much for him.

      The project might fold.

      But hey, at least it looked good on paper.

    4. Re:Based on your requirements... by Anonymous Coward · · Score: 1

      Hey! Cut it out!

    5. Re:Based on your requirements... by voidphoenix · · Score: 1

      That would be Kirigami.

  5. OpenGL by Spykk · · Score: 4, Insightful

    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.

    1. Re:OpenGL by timeOday · · Score: 4, Insightful

      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.

    2. Re:OpenGL by ZackSchil · · Score: 3, Interesting

      This isn't true at all! It doesn't take "pages" of code to open a context and draw something, not even close. It is a poor choice though, since you're starting from absolutely nothing. You don't have a single resizable button control or any way to kern/reflow text for labels.

    3. Re:OpenGL by timeOday · · Score: 4, Interesting
      Here is the code to draw 3 triangles in OpenGL without an abstraction library such as GLUT (which is very limiting). Have fun with that!

      For that matter, I had to look down to about the 8th page of google hits for "opengl hello world" to find one that did NOT use an abstraction library. Which tells you how many people actually do that. So, "use openGL" isn't much help. How about, "try using openGL throgh wxWidgets" or somesuch. Nobody uses straight openGL.

    4. Re:OpenGL by PaladinAlpha · · Score: 3, Informative

      The code you linked is written against the Windows API and most of the code on display is conforming to that. The OpenGL code takes up less than a screen.

      GLUT is limiting because it's cross-platform; the limitation isn't in the abstraction but in the union of deployable platform features.

    5. Re:OpenGL by timeOday · · Score: 2

      That's right, without an abstraction layer, the initialization code for openGL isn't even cross-platform compatible. That is wgl code (for windows). The glx equivalent code (for X11) is at least as bad. So, double the above, smoosh it all together with some #ifdef's for something resembling platform independence, and you're good to go!

    6. Re:OpenGL by tibit · · Score: 1

      OpenGL? The heck? You need some sort of a scenegraph on top of that. In OpenGL if you want to draw a fine circle, you have to tesselate it yourself. I presume that has been done enough times by now and you'd be insane to suggest that the OP goes to do it yet once again.

      --
      A successful API design takes a mixture of software design and pedagogy.
    7. Re:OpenGL by Anonymous Coward · · Score: 0

      You're correct saying "use OpenGL" is about as helpful as saying "use graphics". But GLUT was only created to simplify the examples given in the OpenGL Super Bible - anyone using it in the real world needs their toes jumped on.

    8. Re:OpenGL by Spykk · · Score: 2

      Correct. You aren't going to find a language with a create_innovative_new_3d_interface() function. What the submitter is trying to accomplish is non-trivial and will require a great deal of work.

    9. Re:OpenGL by MacGyver2210 · · Score: 1

      Every OS will have its specific language overheads. This one, being Windows, is a very well-known and simple to implement version. Register and Create Window, Create WinProc, do whatever else you need to do. It's really not hard if you can see past your hate for Windows.

      It has been much more of a nightmare for me to get OpenGL projects running on Debian or OSX than it has been for Windows. GLUT and GLTools have been more of a hindrance than a help. OpenGL is more flexible than alternatives, so I can usually come up with some very neat data management that would be impossible with other graphical layers. To implement that stuff from the base OGL system it takes a LOT of code and work.

      When I choose Windows I'd probably go right for DirectX. Microsoft built-in that compatibility for me, and distributes the runtime thoroughly, so I would need a better reason than a detest of Windows to go with something less convenient instead.

      --
      If the only way you can accept an assertion is by faith, then you are conceding that it can't be taken on its own merits
  6. XUL by La+Gris · · Score: 4, Informative

    https://developer.mozilla.org/En/XUL

    Multi-platform with Xulrunner, integration with HTML5 engine if needed.

    --
    Léa Gris
    1. Re:XUL by killer__app1 · · Score: 1

      You could try the BSD licensed Berkelium, at http://berkelium.org/ code to embed a chrome web browser on any offscreen buffer, specifically designed for use within a 3D scene. That way you can put webpages on polygons or easily embed it in an app. here's an example vid http://www.youtube.com/watch?v=zUdrflSOe_Q

    2. Re:XUL by Skuto · · Score: 1

      Chrome/Berkelium doesn't allow you to make a fully usable GUI, let alone look native. It was never meant for GUI toolkit work.

      XUL/Gecko do - it was a designed as a GUI toolkit from the beginning, and it's what powers Firefox and Thunderbird.

    3. Re:XUL by durdur · · Score: 1

      I clicked on the link to "XUL Periodic Table" in Firefox 10.0.2 and immediately got the message "This page uses an unsupported technology that is no longer available by default in Firefox.". Doesn't sound very promising.

  7. Flash by Anonymous Coward · · Score: 2, Interesting

    This is probably going to draw some heat, but frankly, it sounds like using Flash and ActionScript 3 may be a good fit for the prototyping work. You probably wouldn't want your final deliverables that way, but as a prototyping framework, you could get pretty far with it.

    I'm not sure what the state of Flash's 3D support is these days, but I know that back in the day when I used to work with it more heavily (about 8 years ago) there were things like Swift3D that you could export 3D models from applications like Lightwave and bring them into Flash. Although I think this was less from a data-driven standpoint and more from an animation standpoint, but that may have evolved since then - I simply don't know.

    AFAIK there shouldn't be any problem with you open sourcing AS3 code. And while the Flash IDE itself is commercial, you can get an AS3 compiler from Adobe for free and just write everything in AS3, although you wouldn't have the ease of use of the IDE itself for drawing on the stage, doing keyframe animation, etc. But that may not matter to you.

    Flash has a plethora of UI components and modules out there that are free (and some commercial, too) that you can use. It ships with many re-usable components to add things like collapsable lists, windows, text editing fields, etc. It also has some sugar to make working with data easier, though personally I always preferred writing clean AS directly.

    Full disclosure: I haven't bothered with Flash in at least 3 or 4 years now, but based on my current knowledge it still sounds like a potential fit. Haters are gonna hate no matter what, so don't let all the negative hype get in your way of using it in a controlled environment as a prototyping system. After all, a prototype is just a prototype, not the finished product.

    1. Re:Flash by epyT-R · · Score: 3, Informative

      flash is a bloated mess. might as well use java/.net at that point, but even guis built on these lag noticably more than native. how about using existing toolkits that target your platforms? if you want a wrapper, use something like wxwidgets. if your goal is something that wxwidgets won't handle well, then maybe your application's needs are specific enough to warrant explicit targeting of platforms (ie a windows target, a *nix target, etc).

    2. Re:Flash by Anonymous Coward · · Score: 1

      I agree that AS3/Flash would be perfect for this project. It already has GUI framework components and event handling built-in, but it is easy to write new components from scratch too. In addition the IDEs are very mature, and AS3 source code is very similar to Java.

    3. Re:Flash by TheInternetGuy · · Score: 2

      ull disclosure: I haven't bothered with Flash in at least 3 or 4 years now,

      If you had, then you would have known that there has been loads of progress on 3D in the last year or so. Used in combination with Flex UI framework (which is the only reasonably mature UI frame work I have seen that allow 3D transformations to it's UI components). And the hardware accelerated Stage3D with AGAL can give you lots of power to push polygons if that is what gets your juices flowing.
      After hating on flash for a long time, they are slowly reeling me in and I am starting to realize that the main problem with flash is actually more what content creators have been using it for than anything else.
      The OP stated this was for demo/quick and dirty work. Otherwise there might be concerns about memory and read-write performance of huge data sets. Although I have been positively surprised in this area lately as well.

      --
      If my comment didn't sound as good in your head as it did in mine, then I guess we all know who's to blame
    4. Re:Flash by muridae · · Score: 1

      The fact the there are multiple tweening libraries available isn't bloat, but using all of them is. Guess who's fault that is? If developers would just stop including the whole com.adobe package, this wouldn't be a problem. You really don't need everything in mx just to get the mx.data.crypto objects and functions.

    5. Re:Flash by alostpacket · · Score: 1

      wxwidgets might be great, might even be the best tool for the job, but just calling Flash bloated without giving a reason isn't really informative IMHO. Flash has one of the nicest scripting languages around and is a amazingly fast vector rendering engine. The Flex UI components are pretty good too. The problems come when it's used to play the latest HD trailer on top of a browser which is in-itself a large application. You can hate on Adobe, hate on advertising, hate on Flash cookies, or security risks to the plugin model, but the technology behind Flash is anything but bloated.

      --
      PocketPermissions Android Permission Guide
    6. Re:Flash by datavirtue · · Score: 0

      Targeting platforms is the absolute worst advice ever. Everything needs to be cross-platform.

      --
      I object to power without constructive purpose. --Spock
  8. Some ideas by mikera · · Score: 4, Insightful

    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)

  9. Python with wxWidgets by ikedasquid · · Score: 5, Interesting

    I don't always write GUIs, but when I do, I prefer wx. But in all seriousness - I hate writing GUIs. I write embedded C for a living and am lost when it comes to the differences between window manager(s) on Linux or Windows or whatever. When I need to whip something up quick (and it's not embedded, and we're not going to sell it) sometimes I switch over to Python, and if that quick thing needs a GUI, wxPython (the port of wxWidgets from C to python) is something you can tack on there with minimum hassle. If you need a portion to be fast for your math calcs or whatever you can write that part in C. There's a boatload of tutorials via google (and youTube).

    1. Re:Python with wxWidgets by Hooya · · Score: 2

      > I don't always write GUIs, but when I do, I prefer wx.

      After that line, I swear I heard "stay thirsty my friends".

    2. Re:Python with wxWidgets by Anonymous Coward · · Score: 0

      You can see the line in the 3d version.

    3. Re:Python with wxWidgets by frankgod · · Score: 1

      I second wxPython. There is a lot of info available and python makes it easy to use. You can set up a window where you draw something with opengl and use virtual lists or trees for your huge datasets.

  10. One for all "best language" questions by JoeMerchant · · Score: 3, Informative

    Use the language your developers know. If they say the problem is too hard in the language they have been using, maybe you need new developers?

    Seriously, C++ is pretty awesome, for me, I use it for lots of rapid gui design - mostly with Qt, but it sounds like you'll be crunching some of your own 3D...

  11. Qt and open source by Anonymous Coward · · Score: 5, Informative

    Well, Nokia open sourced Qt under the LGPL 2-3 years ago. I am a Nokia systems engineer. We are still the primary maintainers, but we are committed to keeping it that way (open source), and with the current moves of the company toward Windows Mobile on our high-end phones, we may well be considering pushing it out to the community entirely, but with some resources still assigned to it. I don't know for sure, but I'll try to find out what the plans are for it. Qt is an important part of our Meego and Symbian phones, which are still popular and getting a few new models. My own company phone is an N8 Symbian device.

    1. Re:Qt and open source by Simon80 · · Score: 3, Informative

      For clarity regarding the original post, this means that Qt has been freely available for commercial use for the last few years.The LGPL is the same license that is used by glibc on Linux, so if you release commercial software for Linux, you will be using LGPL code anyway unless you deliberately avoid it. Unless you statically link an LGPL-licensed library, the licensing requirements are pretty easy to fulfill.

    2. Re:Qt and open source by Teun · · Score: 1
      When Nokia wants to engage in some damage control they could fess up that the N9 is a superior platform to the Windows prototypes.

      Here in The Netherlands I see adverts of large phone houses where the Nokia Windows phones are offered without ever uttering the word Windows!
      While Android and Symbian phones are explicitly sold as such...

      --
      "The likes of Facebook and WhatsApp are free to those whose privacy is of zero value."
    3. Re:Qt and open source by Daniel+Phillips · · Score: 0

      Mod ^--- that tripe down to oblivion please.

      --
      Have you got your LWN subscription yet?
    4. Re:Qt and open source by Daniel+Phillips · · Score: 1

      Here in The Netherlands I see adverts of large phone houses where the Nokia Windows phones are offered without ever uttering the word Windows!

      Interesting. You could almost think that MS marketdroids went out and did some research and found that for typical buyers the word "Windows" is a branding liability.

      --
      Have you got your LWN subscription yet?
    5. Re:Qt and open source by Teun · · Score: 1
      More or less my thought, or it could be the phone resellers knowing their customers.

      It's really weird seeing these phones with the typical blocks on the screen and no mentioning what so ever of an OS.

      --
      "The likes of Facebook and WhatsApp are free to those whose privacy is of zero value."
    6. Re:Qt and open source by Daniel+Phillips · · Score: 1

      Thankyou :-)

      --
      Have you got your LWN subscription yet?
  12. Just create by PenquinCoder · · Score: 5, Funny

    A GUI in Visual Basic. I hear its good for this internetz stuff.

    1. Re:Just create by Noughmad · · Score: 1

      A graphical GUI interface in Visual Basic. I hear its good for this internetz stuff.

      FTFY

      --
      PlusFive Slashdot reader for Android. Can post comments.
  13. When I think of a quick GUI project, C#. by Anonymous Coward · · Score: 1

    And not because C# is 'superior' or anything like that.
    The basics are easy to learn (for C++ or Java programmer).
    But more importantly it is the integration with Visual Studio. Netbeans, Eclipse, KDevelop are all a distant 2nd compared to the ease of development in Visual Studio. Besides, I think you need a i7 Extreme edition to run Eclipse....
    WYSIWYG development. Drop in a button, anywere you want, then start using it.
    For 3D and graphics you have WPF, XNA and a little off the reservation, stuff like SDL.NET.

    I personally enjoy how they blended the Visual Basic stuff in. Enumerators make for some interesting code when you use them like rate buffers. I hate most multi-threaded programming. 15 years ago I thought it was cool. Now I've come to realize that it has ruined most applications. Which is why I personally believe most Java applications suck. Because the only solution that the novices seem to come up for any requirements seems to be spawn a thread and have it do whatever is required. You end up with programs that are either non-responsive, or worse, the response is variable - click a button, nothing happens, click again, then it suddenly happens twice. Ugh. I built programs on 133Mhz Pentiums that were better. If you can avoid garbage collection, learn how to use enumerators to pull data as needed, it makes for snappy programs.

    1. Re:When I think of a quick GUI project, C#. by Big+Smirk · · Score: 3, Insightful

      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).

      --
      TODO: create/find/steal funny sig.
    2. Re:When I think of a quick GUI project, C#. by adonoman · · Score: 2

      This is better now with partial classes. All the designer generated stuff goes into it's own file that shows up as a sub-file of the main file. You're free to split up the classes into whatever groupings you want. With WPF and XAML you have even better separation of logic and design.

    3. Re:When I think of a quick GUI project, C#. by mikera · · Score: 3, Interesting

      Visual Studio with C# isn't very useful great for cross-platform development (which was one of the requirements of the OP)

      Also I personally find that "visual" editors, while good for producing something quickly, aren't much use for more advanced GUI development where you need to do much more meta-programming, develop custom components and have detailed control over layouts and behaviour etc.

      Even when I was using Visual Studio a lot (which I'm glad to have left behind), I tended to code all the GUI stuff by hand.

    4. Re:When I think of a quick GUI project, C#. by rev0lt · · Score: 3, Interesting

      I think you need a i7 Extreme edition to run Eclipse....

      The same one you need to run Visual Studio 2010? Not that I'm an Eclipse fan (I'm not), but VS is no speed beast by any metric, and it gets worse once you load external plugins, heavy components or are working with a medium codebase. That's one of the motives why I use SharpDevelop.

    5. Re:When I think of a quick GUI project, C#. by Surt · · Score: 2

      Trolling, or omitted IDEA because it embarrasses visual studio so badly?

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    6. Re:When I think of a quick GUI project, C#. by FrootLoops · · Score: 2

      Your complaints seem directed at WinForms. I much prefer WPF--for instance, finding all the functions on a button can be done manually by going to the XAML file, finding the button's UI code, seeing which events go to which functions, and finding those functions in the code-behind file. WPF's separation between business logic and the interface is very appealing to me, as are a bunch of the features WPF offers, like recursive templates.

      My evaluation of WPF and C#.NET along the points outlined by the OP:
      (A) Check; strong IDE.
      (B) Unclear. Being locked in to a particular mindset is too vague for me to quantify and evaluate.
      (C) Check, probably. Certainly you can make your own custom interface elements with whatever graphics you feel like. I'm unfamiliar with WPF/.NET 3D capabilities, though they almost certainly would suit the OP's needs.
      (D) Not check. C#.NET is largely Windows-only, and WPF is not part of Mono, the "cross platform, open source .NET development framework".
      (E) Unsure. Licensing isn't my area. Probably no problem.

    7. Re:When I think of a quick GUI project, C#. by Anonymous Coward · · Score: 0

      Like in any other language, .NET/c# can be mess. But it's a mess you created. And partial classes should be avoided at all cost - should only be used to split generated and user code.
      If your form has methods with any more that 5 lines of code, you're doing it wrong.

    8. Re:When I think of a quick GUI project, C#. by flimflammer · · Score: 1

      ...5 lines of code? Seriously? I've heard of keeping your functions small, but "wrong" at 5 lines of code is ridiculous.

    9. Re:When I think of a quick GUI project, C#. by bondsbw · · Score: 1

      The MVVM pattern may be able to help on WPF.

      But I beg to differ with your analysis. Nothing about C# promotes what you are describing. It is similar in SLOC (Source Lines of Code) per function point as Java and C++ (link, which shows that Visual Basic actually averages less than any of those languages).

      Regardless of language... if you have 10,000 lines in a source code file, you're doing it wrong.

      --
      All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
    10. Re:When I think of a quick GUI project, C#. by r3x_mundi · · Score: 1

      That is true for any project where you just keep building something bottom-up and just adding more code at the UI layer, or whatever layer your entry points are. I've seen enormous source code files in many languages / platforms. You've got to think beyond that and apply a little more structure yourself i.e. separation of concerns. Don't just slip into the easiest path whatever IDE, interface builder, or framework slides you down.

    11. Re:When I think of a quick GUI project, C#. by gl4ss · · Score: 1

      pssh. the requirements laid out by the OP are going through qt demo vids and writing a requirements paper based on that, multi platform, render webkit on 3d surfaces and have input go into them etc..

      (wtf does enumerators have to do with if you can avoid garbage collection?)

      the op should really just render his shit in 3ds max though and then implement it in whatever if it's usable at all.

      xaml/c# buttons aren't that different to say making a button in logic in android in java. if you fuck up locking the gui in another after starting to do something that's supposed to look synchronous then you'll fuck it up in the other language too.

      --
      world was created 5 seconds before this post as it is.
    12. Re:When I think of a quick GUI project, C#. by Anonymous Coward · · Score: 0

      Visual Studio with C# isn't very useful great for cross-platform development

      English isn't useful great either, my parser just broke.

    13. Re:When I think of a quick GUI project, C#. by Anonymous Coward · · Score: 0

      For Forms, the GP has a point. Application logic should be elsewhere. Complex interactivity should be in user controls. Validation boilerplate should be in a separate class. A Form should be doing bugger all.

  14. LOGO by drfreak · · Score: 1

    Isn't that vector-drawing in a nutshell?

  15. Take a Good Luck at Delphi and FireMonkey by Ronin+Developer · · Score: 4, Interesting

    Yes...I know...Pascal..Ugh (it's a shame so many people under rate Delphi's Object Pascal). But, Embarcadero Delphi will enable you to build FireMonkey based apps that can run on Mac, Windows and iOS. FireMonkey still has a ways to go. However, if you look at the whitepapers posted on the Embarcadero.com website, you will see some interesting stuff. FireMonkey is evolving. Once of the nice things is that it can use the GPU vs the CPU for rendering. This makes 2D and 3D rendering a piece of cake. Additionally, FireMonkey controls can (and should be) stylized. The number of effects one can achieve for a simple button is amazing. Imagine what one can do in terms of designing new UI paradigms.

    Are are some blog on using FireMonkey to render functions and demonstrate wave interference (in 3D).
    http://blogs.embarcadero.com/ao/2012/02/02/39215/
    http://blogs.embarcadero.com/ao/2012/01/30/39208/
    http://blogs.embarcadero.com/ao/2012/01/27/39206/

    and, for a commercial product by TMS Software http://blogs.embarcadero.com/davidi/2012/02/07/41510/

    FreePascal w/ Lazarus is another way to experiment (and, get Linux and ARM as target environments as well). FireMonkey for iOS depends on the ARM compiler to bring the apps to iOS (at least until Embarcadero writes their own ARM compiler).

    Granted, the tool isn't cheap. But, if you have the budget, it's worth adding to your tool bag.

    Another alternative is getting intimately family with JQuery and the DOM. There is a lot you can do to experiment with new UIs.

    1. Re:Take a Good Luck at Delphi and FireMonkey by Anonymous Coward · · Score: 0

      I am a delphi/ObjectPascal developer, have used it for years, and while Firemonkey is an impressive release, it's a 1.0 technology. If the goal is to ship yesterday, Firemonkey isn't totally ready for the bigtime yet. Maybe in a year's time it will be. But it's truly the only professional 3D framework that is NOT designed for games, but rather from the ground up for business use.

      It's cool stuff, but (A) the OP is looking for open source stuff, so the whole app can be redistributed and built by anyone from source, and (B) seems to be interested in C-like languages (Java, etc) only.

      W

    2. Re:Take a Good Luck at Delphi and FireMonkey by codepunk · · Score: 1

      Yes lazarus would be a good choice given his requirements.

      --


      Got Code?
    3. Re:Take a Good Luck at Delphi and FireMonkey by rev0lt · · Score: 0

      And let's not forget the habit of discontinuing Delphi products (Kylix anywone?), or having years pass by without a useful update, and lack of a long-run clear vision: I'd used to love Delphi, and still have some application codebases on it, but we never know when the next release will be and what they will break next.

    4. Re:Take a Good Luck at Delphi and FireMonkey by codepunk · · Score: 1

      Did anyone mention anything about borland delphi, or code gear or whatever is left of them?

      We pointed the man to open source alternatives.

      --


      Got Code?
    5. Re:Take a Good Luck at Delphi and FireMonkey by Anonymous Coward · · Score: 0

      As a scientist who uses Delphi to write GUI-rich front ends for complex calculations ... SECONDED!

      Don't waste time fighting with complex GUI tools.

    6. Re:Take a Good Luck at Delphi and FireMonkey by Raging+Bool · · Score: 1

      Not sure if parent post was serious, but just in case:

      Embarcadero _is_ the successor to Borland/Codegear for Delphi and also C++ Builder.

      My company has been using C++ Builder for over 10 years and find the Rapid Application Development aspect of it ideal for rapid prototyping and also for building full-scale real-time, distributed data acquisition and analysis systems. So, if learning Delphi/Pascal doesn't float your boat, then stick with C++.

      The latest version of Builder (XE2) also provides application development for Macs as well as Windows, although their support for boost libraries is not quite so strong. But the original poster probably doesn't want to learn too much boost, so that may not be an issue.

    7. Re:Take a Good Luck at Delphi and FireMonkey by Ronin+Developer · · Score: 1

      Kylix, to my understanding, was discontinued because of the reception (or lack, thereof) it received by the "Open" source community. That, and the fact that it required WINE to run the IDE. I remember how people bashed it to death here on /.

      The latest version, XE2, was the first version I bought since Delphi 7. The number of features and capabilities in the product are amazing. I also own RadPHP. However, lately, I have been concentrating on XE2 (couldn't care less about PRISM (or Dot Net in general) right now) and FireMonkey. RadPHP can get me to the the mobile platform quicker via PhoneGap - but, when going after Windows, Mac or iOS, XE2 is the way to go. I do wish that they would publish more usable documentation, however. Counting on 3rd parties to write books on it is not the way to go.

      Paradox has gone bye bye (finally). In favor is their own Interbase XE and connectivity to other databases. They have forged connections with third-parties to supplement the IDE with tools for reporting, internet protocols, logging and debugging and profiling. Should also point out that when developing for iOS, it is possible to step through the code in Delphi while it runs on the the iOS device. For me, it's one stop shopping.

      FireMonkey is still relatively new - a 1.0, per se. However, it is being updated and it's capabilities for 2D and 3D graphics (with or without the GPU) are impressive. Creating controls using the Properties/Methods/Events/Styles model means that you can fine tune the look and feel of your app. Writing FM controls is a little more involved than VCL, but if you are dedicated, it's worth the time to get right.

    8. Re:Take a Good Luck at Delphi and FireMonkey by Anonymous Coward · · Score: 0

      Discontinuing Kylix, which was never well-received, makes for a "habit"? After that horrid Delphi 8 snafu (the .Net-only release), native Win32 Delphi has been consistently maintained even through Borland's other blundering decisions. Recent versions, at least since D2009, have had much improved stability and features (and finally real Unicode support). I have to agree on the lack of clear vision during the latter Borland years, though.

      Of course, they discontinued 3rd Rail, too, apparently due to lack of interest. C#Builder was simply a Borland IDE wrapper around the MS C# compiler; I wouldn't say they abandoned that, just realized the pointlessness of it too late to kill it before 1.0. Also, you could technically say that they discontinued Delphi.Net, but they partnered with RemObjects to provide a smooth transition to Oxygene, so I wouldn't count that. AFAIK, Embarcadero hasn't updated JBuilder, so that might become abandoned, but that's just speculation. I think they haven't established a "habit", just a history of mismanagement, at least before the CodeGear spin-off.

      - T

    9. Re:Take a Good Luck at Delphi and FireMonkey by theArtificial · · Score: 1

      And let's not forget the habit of discontinuing Delphi products

      List of Discontinued Microsoft Software is it like golf, who ever has the lowest wins? For development, J++, VB6 (and prior code), VisualFox Pro, Frontpage...

      having years pass by without a useful update

      You mean like IE6? Office?

      and lack of a long-run clear vision

      What's Microsoft's, relearn how to do it every 10 years with their shiny new tools? How's Silverlight working out?

      ....and what they will break next.

      You mean like what happened between the jump from VB6 to .Net for example?

      --
      Man blir trött av att gå och göra ingenting.
    10. Re:Take a Good Luck at Delphi and FireMonkey by rev0lt · · Score: 1

      List of Discontinued Microsoft Software [wikipedia.org] is it like golf, who ever has the lowest wins? For development, J++, VB6 (and prior code), VisualFox Pro, Frontpage...

      I can pick a VB6 project and easily convert it to the latest version of Visual Studio. J++ was an abortion and got no traction. FrontPage projects can be opened in virtually any decent web suite, and the extensions package is still available. Microsoft now has a semi-decent web editing environment, that may be compatible (haven't tried it). The last release of Visual FoxPro isn't that old, and while the writing on the wall had been announcing its demise for years, it had a sigificant community, and is one product that made no sense to end.

      You mean like IE6? Office?

      IE7, IE8 and IE9 are useful updates to IE6. Office 2003 has 2 service packs, Office 2007 has at least one.

      What's Microsoft's, relearn how to do it every 10 years with their shiny new tools? How's Silverlight working out?

      I have no idea about the size of the silverlight community, but the few products I've seen are usually RIA backends, so It's mainly a niche tool, that probably will get the axe soon.
      Re-learning everything every 10 years isn't that bad, if some backward compatibility is mantained and the product is improved. The last significant version of Delphi probably was v7, in 2002. Delphi2010 had some actual improvements, but still no 64 bit support. Meanwhile, part of the community died out. Component providers start focusing on .NET, many software houses migrated away their products.

      Btw, I'm not that I'm a fan of Microsoft development tools or the ever-changing GUI framework. But .NET has been improving a lot (except that utterly shitty C# DataGrid), with frequent releases.

  16. Haskell !! by Weezul · · Score: 0, Troll

    Haskell is the best language for anything new and interesting!

    --
    The Christian religion has been and still is the principal enemy of moral progress in the world. -- Bertrand Russell
    1. Re:Haskell !! by Anonymous Coward · · Score: 2, Interesting

      banana
      http://www.haskell.org/haskellwiki/Reactive-banana

    2. Re:Haskell !! by Wonko+the+Sane · · Score: 3, Funny

      I typically reply to any "which language" type of question with "Forth" but it seems that it's becoming less effective as a joke because not as many people seem to know what Forth is.

    3. Re:Haskell !! by devphaeton · · Score: 4, Funny

      Han Solo: Hokey religions and ancient weapons are no match for a good blaster at your side.

      Obi Wan: But the forth will be with you, always.

      --


      do() || do_not(); // try();
    4. Re:Haskell !! by Anonymous Coward · · Score: 0

      Ha, Forth, that brings back memories! Good times.

    5. Re:Haskell !! by Anonymous Coward · · Score: 2, Interesting

      Flash or Apache Flex (yep, Adobe donated Flex to the Apache software foundation).

      Flash is still king of 2D GUIs that's why AAA games use it for their interfaces via Scaleform

      http://gameware.autodesk.com/scaleform/usage/games

      If you want to do it via Flash tecnologies, you can build .SWF, .AIR or native export via Apache Flex too, the SDK of which works like Java's JDK (you can write the code in any text editor, then compile use the SDK.

      I've yet to see an HTML5 site that runs anything close to the old 2Advanced site without brining a dual-core CPU to its knees. Or anything done as slick for that matter in iOS or Android. The old 2advanced site runs full speed on an 800MHz Android CPU btw.

      Cheerios.

    6. Re:Haskell !! by justforgetme · · Score: 2

      Ok, I kind of agree to the preformance clause. But!
      The site you linked to - probably self promoting since there isn't any other reason in your text to post AC -
      is UI overkill. Self constructing animations of sites were hot in 2002. I doubt that any designer, no matter
      how much of a showoff, would go to such an extent with a presentation UI... Minimalism is very hot atm!

      Also I had the impression that Scaleform GFX is a UI development product for studios.
      two points here:
        1. UI development is not UI prototyping
        2. Development platforms for studios usually licence around 100k USD maybe less if you strike a good deal

      --
      -- no sig today
    7. Re:Haskell !! by gtall · · Score: 3, Informative

      While I do not think you should have been modded troll, I don't think Haskell is best suited for interface. Interfaces typically require a lot of state. Setting up state monads for all that would be painful. And then there's the GUI libraries, does Haskell even have those.

      On a more generic note, Haskell's ecosystem is not ready for prime time. Where are the debuggers? Don't feed me the function language crap, if you cannot produce a decent debugger for a language, no one will use it.

      The type system is wonderful, until something goes wrong. Haskell's feedback about where the type mismatch occurs and why is horrid.

    8. Re:Haskell !! by Weezul · · Score: 1

      I'd agree the debugger is fucking weird, but that's mostly because your code runs backwards, which grows on you. Any opinions on what gdb offers that ghci doesn't? I haven't noticed anything missing, but maybe I don't use gdb well enough.

      I've found GHC's profiling tools vastly easier than anything I've used for C++ or whatever, but I haven't used C++ profilers much. And I got stuck using Xcode for a bunch of profiling once, very annoying.

      You're wrong about the error messages though, GHC's error messages are infinitely more informative than any gcc's C++ compiler's messages, especially the type errors. If you find a funky one, you could usually force the error message into the right place by simply inserting a type signature. C++ has all the type signatures to begin with but still produces massive unreadable type errors. I'm unfamiliar with Java's type errors, hopefully they're better than C++'s errors.

      --
      The Christian religion has been and still is the principal enemy of moral progress in the world. -- Bertrand Russell
    9. Re:Haskell !! by phy_si_kal · · Score: 1

      For functional reactive programming and HTML5, there is Opa. It's a new, but easy-to-learn, language which is progressing pretty quickly.

    10. Re:Haskell !! by fusiongyro · · Score: 1

      I'm into this stuff, but reactive-banana isn't even a GUI library. I know Haskell pretty well and haven't dared enter the sticky world of writing a GUI in it. I would say it's a long way from being a good choice for GUI experimentation.

    11. Re:Haskell !! by Joce640k · · Score: 1

      Jupiter Ace FTW!

      --
      No sig today...
    12. Re:Haskell !! by fusiongyro · · Score: 1

      You obviously haven't heard of functional reactive programming, which greatly simplifies writing interactive apps. You don't wind up needing state monads for everything.

      I agree that it isn't the right tool for this situation, but the main problem is the state of the GUI libraries. Getting GTK installed is not easy (but getting easier). Not something I have desperately wanted to do though. Though it certainly can be done, it would be tremendous effort, and since the OP is asking here for a recommendation he probably isn't swift enough with Haskell that it wouldn't be a huge effort on top of doing his GUI experimentation. Learning Haskell is hard, and it will be an impediment.

  17. opendx by Anonymous Coward · · Score: 0

    good luck with that.... as a coder i'd just use opendx, make it work properly(not an easy task), and show some results quickly, less effort and you will have fun with the data.

  18. Groovy and Griffon by Foofoobar · · Score: 1

    For those who love how Groovy/Grails makes Java less verbose and its convention over configuration approach, I highly recommend Griffon. It can work with Swing, AWT, QT or whatever you want to use and is very clean, simple and easy to understand and is based on tried and true technologies and libraries.

    --
    This is my sig. There are many like it but this one is mine.
    1. Re:Groovy and Griffon by tobiah · · Score: 1

      How well does it eat gigabyte files? I'm thinking not very well.

      --
      "The ability to delude yourself may be an important survival tool" - Jane Wagner -
    2. Re:Groovy and Griffon by Anonymous Coward · · Score: 0

      +1 on the Griffon/Groovy front, and it eats Gigabyte files like cookie monster at the Famous Amos factory, just as well as any other interpreted language (JVM et al..).
      C Style syntax, and a great for rapid prototyping. If you know Java/C you will love this.

  19. Speaking of Qt, what about QML? by MrEricSir · · Score: 4, Informative

    What about QML? It's designed for rapid prototyping, it's cross platform, and you can extend it with C++.

    --
    There's no -1 for "I don't get it."
  20. Processing ftw by foniksonik · · Score: 4, Informative

    http://processing.org/

    It's been ported to nearly every language, does 2d and 3d, has a straightforward syntax and lots of math libraries, physics engines, etc etc.

    --
    A fool throws a stone into a well and a thousand sages can not remove it.
  21. Javascript by Anonymous Coward · · Score: 5, Informative

    As someone with experience with just about every major programming language. I'd seriously consider Javascript. Rather than "Embedding" something to render HTML, embed your special sauce in an HTML5 Canvas. Specifically consider writing it as a Chrome App. Not only will it be fast you'll automatically have a standard platform to release your work onto, no installer, no pain in pushing out updates as your work evolves.

    See some examples here: http://net.tutsplus.com/articles/web-roundups/21-ridiculously-impressive-html5-canvas-experiments/

    JSON is becoming the defacto data interchange format used by just about all web services and Javascript can also be used on the backend via node.js. You or anyone you're working with can easily learn javascript from places like http://www.codecademy.com/. Plenty of IDE support, but Chrome itself provides excellent debugging tools via "Inspection" and a javascript console which can be used as a rapid prototyping shell.

    As an added bonus, javascript provides the best of both functional and object oriented programming, and just about every decent programmer knows javascript or can learn it easily.

    1. Re:Javascript by Outtascope · · Score: 3, Interesting

      I'd seriously consider Javascript.

      As an added bonus, javascript provides the best of both functional and object oriented programming, and just about every decent programmer knows javascript or can learn it easily.

      For varying definitions of the term "best". Shoot me in the head before I take on the nightmare of debugging a project like this written in Javascript. The thought of it truly makes me *cidal. (where * is sui and/or homa)

    2. Re:Javascript by Anonymous Coward · · Score: 0

      > The thought of it truly makes me *cidal. (where * is sui and/or homa)
      >
      express yourself using regex... /(sui|homi|sui- and homi)cidal/

    3. Re:Javascript by gknoy · · Score: 4, Funny

      I agree. There are several very good WebGL-abstracting graphics libraries for Javascript, such as three.js (and some others). You can use Javascript and CSS to place (and style) all of your buttons and widgets, as well. For data visualization, you might consider d3.js. I'm currently working on integrating both three.js rendering and d3 visualization in a GWT app, and it's mindblowing how slick some of the Javascript libraries are. I deeply regret having avoided Javascript for so long, because ... I'm really starting to like it.

      three.js: http://mrdoob.github.com/three.js/
      d3: http://mbostock.github.com/d3/

      d3 examples: http://mbostock.github.com/d3/ex/ (nearly all are amazing.)

    4. Re:Javascript by fadethepolice · · Score: 1

      Not sure about html5 but I looked at this type of project about 14 years ago and vrml kinda did the trick although we never linked it with queries and databases. If you are trying to visualize a lot of data you might want to look at html5 as the above post suggests and also pick up some skill with python to manage the data. If html5 contains some descended code that is similar to vrml then you can rough out some pretty basic shapes. Instead of hand coding for each type of data you have in your specific data store create a function that automatically assigns characteristics by examining the data. Should save a lot of time and you can write the visualization function with a general idea of the data. Python also works with several different types of databases and can script commands easily to a variety of windows programs. Did a little search, and this came up. Not sure how far they have come on this as this seems to be a pre-release web page, but if x3d is descended from vrml and it works in html 5 natively then it is a very basic and quick way to start rendering in 3d with minimal experience. http://www.3d-test.com/interviews/x3d_2.htm

    5. Re:Javascript by VoidEngineer · · Score: 2

      Mod parent up. d3.js is becoming one of the slickest libraries around.
      Add jquery.mobile.js in the mix for CSS optimized page transitions and single-page web designs.
      And maybe a dash of webgl.js.


      I second the notion that I'm *really* starting to like Javascript. At this point, I'm consider 100% javascript applications; since things like node.js and mongodb are now available.

    6. Re:Javascript by Anonymous Coward · · Score: 0

      Agree. I've written GUI frameworks, used many different GUI systems, and in a variety of languages over my 30 years writing professional code. About a year ago I wrote an ambitious GUI for a webapp using Raphael.js and three.js. I was quite surprised and pleased at how easy they are to work with, and working with the WebApp rendering directly into the page, freely trading and sharing events with the GUI was a welcome pleasure.

    7. Re:Javascript by gknoy · · Score: 1

      I'm glad you mentioned JQuery. I literally learned about it this week, and only today looked more at the jquery UI page -- and wow. It looks fantastic, and I'm looking forward to using it for some toy personal projects.

  22. I am not a professional software developer by Osgeld · · Score: 1

    WXlua lua fltk, wxpython, processing (java)

    1. Re:I am not a professional software developer by Anonymous Coward · · Score: 0

      I know what you mean but still feel strangely compelled to append "iä iä WXlua fhtagn" to your post.

  23. "I am not a professional software developer" by c0lo · · Score: 4, Insightful
    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.

    --
    Questions raise, answers kill. Raise questions to stay alive.
    1. Re:"I am not a professional software developer" by Anonymous Coward · · Score: 0

      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"?

      Why do you need a hierarchy to have an event source? Maybe each piece of data is an event source. Maybe the data is "drawn on the 3D surface" because it matches some criteria which can change over time and has no impact on the behaviour of interacting with the data. Whatever! Given that one of the areas of research is developing new UI components it seems reasonable to want to do away with the standard models (or at least not be restricted to them).

      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?

      Looking up every API before they use it only implies they will look into API they are going to use. If your going to be a pedantic jerk you at least be an accurate pedantic jerk.

    2. Re:"I am not a professional software developer" by Anonymous Coward · · Score: 2, Insightful

      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.

    3. Re:"I am not a professional software developer" by c0lo · · Score: 3, Interesting

      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"?

      Why do you need a hierarchy to have an event source? Maybe each piece of data is an event source. Maybe the data is "drawn on the 3D surface" because it matches some criteria which can change over time and has no impact on the behaviour of interacting with the data. Whatever!

      Unless he asks for a holographic GUI, when interacting with a 3D projection in 2D, one will need to solve 2 problems:
      1. data presentation and exploration - you know, like rotating the POV, zooming in/out, etc. Believe me, it is necessary
      2. Interaction - even if only the selection of one sample point.

      You'll need to distinguish then between an event that doesn't have the subject a sample (like a navigation gesture) from an event that have the subject a data point.
      But... as you say... whatever.

      Given that one of the areas of research is developing new UI components it seems reasonable to want to do away with the standard models (or at least not be restricted to them).

      Huh? Developing new UI components in the context of "I am not a professional software developer and never have any aspirations to become one" ? Go away, I wonder why I'm bothering to answer to AC trolls.

      --
      Questions raise, answers kill. Raise questions to stay alive.
    4. Re:"I am not a professional software developer" by Ear+Phantom · · Score: 1

      +1 to the above post!

      The person wants to design their own widgets, with all the benefits of 3D acceleration, without an actual 3D library.

      "Hi, I'm Dr. Frankenstein. I want to create a human being from animal parts without any knowledge of anatomy whatsoever. What blood type should I use?"

  24. Stick with Java by glwtta · · Score: 4, Funny

    Are you really going to have time to learn something new with all that groundbreaking paradigm shifting you'll be doing?

    Leverage your core competencies to push the envelope on impactful best practices, and hit the ground running - it's a win-win!

    Synergy.

    --
    sic transit gloria mundi
  25. Physion uses some Qt variation, I think... by Anonymous Coward · · Score: 0

    Subj sez it all... Cf Physion.net for details (I didn't notice any src being offered there...)

  26. Of beat possibilities... by Panaflex · · Score: 2

    You might look at some game engines, they have decent GUI's these days and are designed to handle large data sets. They usually have multi-lingual support also so you can work in a few languages.

    I did a few projects in Irrlicht and ogre3d and was really impressed - I was able to work in Java, C# and C++ in the same project with some work and message passing.

    Good luck

    --
    I said no... but I missed and it came out yes.
  27. GWT by CyDharttha · · Score: 2

    GWT

    1. Re:GWT by glwtta · · Score: 3, Insightful

      Question: I would like a 3D GUI toolkit for large-scale data visualization.

      Answer: Here's a web framework.

      Moderation: Informative!

      Only on Slashdot...

      --
      sic transit gloria mundi
    2. Re:GWT by raddude99 · · Score: 1

      I'll fill in the parts you are missing, with GWT, you can use plain old Java to program WebGL using gwtgl, check out: http://code.google.com/p/gwtgl/

  28. does anyone know wtf he's talking about? by decora · · Score: 1

    "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"

    1. Re:does anyone know wtf he's talking about? by Osgeld · · Score: 1

      VRML

    2. Re:does anyone know wtf he's talking about? by Anonymous Coward · · Score: 2, Insightful

      "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.

    3. Re:does anyone know wtf he's talking about? by tobiah · · Score: 1

      I was going to say "yes", but that's not what I was thinking.

      --
      "The ability to delude yourself may be an important survival tool" - Jane Wagner -
  29. when I think of Microsoft paying teachers by decora · · Score: 4, Insightful

    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-.

  30. QT by BravoZuluM · · Score: 4, Interesting

    You dismissed the one framework that would do what you want. LGPL and if really necessary, Digia does not charge that much for a commercial license. I've been doing cross platform work for 20 years. Java was my first foray. Star Framework (Star Office was written with this) was a pretty good framework. But QT beats them all hands down.

    1. Re:QT by suy · · Score: 1

      I agree. I think that Qt is the best in class for UI development. And if you add Qt Quick to the mix, specially the new features coming in 2.0, is a clear winner if you need 3D added smoothly. Check out the video, is really cool: how you create any element, and apply GL shaders to create all sorts of effects on it, no mather is is a simple rectangle, or a fully fledged UI element.

  31. Expressive versus easy-to-learn by Okian+Warrior · · Score: 4, Interesting

    If you want demonstrations and "proof of concept" stuff, you want a language which is expressive, not a language which is easy to learn or which generates heavily optimized code.

    In the demo phase, you're not really worried about performance. The goal is to have something showing as quickly as possible, and not worry too much about how fast it runs, or how much memory it takes. Overspec your demo system for the time being (ie - make it really fast and install lots of memory), and once you have a reasonable interface go back and recode it in a simpler language which can be more easily optimized.

    Languages which are simple to learn (c++, for example) are generally not very expressive. You end up wasting tons of time debugging issues of memory allocation, library interface details, and datatype conversion.

    Languages which are expressive are a little harder to learn, but any individual line in the expressive language does a lot more. Since you are writing fewer lines, and since the fewer lines do more, you end up making programs more easily and in less time.

    Yes, the programs will execute a little slower, but as mentioned, this is not important in the demo stage. Your productivity will be much higher.

    Perl was written by a linguist, not an engineer. As such, it's harder to learn (it's got tons more keywords and context), but once you get the hang of it it's much more expressive. The following single line:

    @Lines = sort { $a->{Name} cmp $b->{Name} } @Lines;

    unfolds into several lines of C++, plus a subroutine definition with datatype definitions. The following line:

    @Files = <c:/Windows/*.exe>;

    can be implemented using one of over a dozen possible library calls in C++, but is builtin in perl. You don't have to look up the library call interface specific to your system.

    I hear that Python is also expressive, although I don't use it.

    1. Re:Expressive versus easy-to-learn by Anonymous Coward · · Score: 0

      not sure which universe you live in where c++ is simple and perl is difficult. Anyone who can code can write perl, that's one of its main strengths. c++ generally takes years to be able to develop the knowledge to even understand how things like functors and binders interact with stl containers and how powerful a few lines of templates can be. And that's before C++11 which I think could get your perl examples down to one line if you really wanted to.

    2. Re:Expressive versus easy-to-learn by icebraining · · Score: 4, Informative

      An equivalent in Python would be:

      lines = sorted(lines, cmp = lambda a, b: cmp(a.name, b.name))

      Alternatively (faster, but less similar):

      lines = sorted(lines, key = lambda line: line.name)

      Of course, if the class implements the __cmp__() method, you can just do lines.sort().

    3. Re:Expressive versus easy-to-learn by martin-boundary · · Score: 3, Informative

        @Lines = sort { $a->{Name} cmp $b->{Name} } @Lines;

      In C++, this would be something like

      sort(lines.begin(), lines.end(), [](line_t *a, line_t *b) { return strcmp(a->name, b->name) < 0; });

        @Files = <c:/Windows/*.exe>;

      In C++, this is impossible as the concept of a filesystem with a directory structure isn't portable. But using Boost, you could do

      for_each(directory_iterator("c:/Windows"), directory_iterator(), [&v](directory_entry e) { string s= e.path().native(); if( ends_with(s, ".exe") ) v.push_back(s); });

      although maybe there's a simpler way.

    4. Re:Expressive versus easy-to-learn by luis_a_espinal · · Score: 1

      Languages which are simple to learn (c++, for example) are generally not very expressive.

      Say what???????????? C++, easy to learn???????

    5. Re:Expressive versus easy-to-learn by Anonymous Coward · · Score: 0

      You don't have to choose between expressive and fast. Haskell is just as expressive and compiles to very high performance native code.

    6. Re:Expressive versus easy-to-learn by Anonymous Coward · · Score: 1

      I hear that Python is also expressive, although I don't use it.

      Python is an excellent programming language. A good developer can learn Python in a weekend, and it is an amazingly flexible language.

      Perl is expressive through addition. Every time they wanted to add a feature to Perl, they added more crap to the language.

      Python is expressive through subtraction. Every time they wanted to add a feature to Python, they removed the crap that prevented the language from just working that way already.

      Python and Perl are have an entirely different philosophy. Perl appeals to people who like to solve puzzles. Python appeals to people who like to solve problems.

  32. Qt license issues by cstec · · Score: 0

    One quirk to be aware of with Qt. Once you do work with it in the LGPL, then you can never upgrade that work to a commercial license, thus even experimenting with it carries risk.

    Who wants a commercial license you ask? Ignoring the pricetag, without a commercial license you can't static link the Qt libs. So if you want a mobile Qt app, your say 150k program will have to come with 11Mb of 'library', which has been enough to blow some mobile app store limits (to say nothing of how much your end users will appreciated it.) Unless Qt's already supported on the platform, so that gets you ... Symbian.

    1. Re:Qt license issues by Anonymous Coward · · Score: 1

      One quirk to be aware of with Qt. Once you do work with it in the LGPL, then you can never upgrade that work to a commercial license, thus even experimenting with it carries risk.

      Who wants a commercial license you ask? Ignoring the pricetag, without a commercial license you can't static link the Qt libs.

      What are you talking about? I think you are confused.

    2. Re:Qt license issues by Anonymous Coward · · Score: 0

      No, he's not. It's not an LGPL term, but it is a term of the Qt commercial license: Nokia will not license it to you if you have at any point used the LGPL-licensed version in that piece of software.

    3. Re:Qt license issues by phantomfive · · Score: 3, Insightful

      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.

      --
      "First they came for the slanderers and i said nothing."
    4. Re:Qt license issues by Anonymous Coward · · Score: 0

      No, he's not. It's not an LGPL term, but it is a term of the Qt commercial license: Nokia will not license it to you if you have at any point used the LGPL-licensed version in that piece of software.

      So? If that's the case then you just purchase the commercial license of Qt ever and just continue using the LGPL version? What's the problem? You can still use Qt is closed source applications under the LGPL version. I can't see what the catch is.

    5. Re:Qt license issues by Psychotria · · Score: 1

      No, he's not. It's not an LGPL term, but it is a term of the Qt commercial license: Nokia will not license it to you if you have at any point used the LGPL-licensed version in that piece of software.

      So? If that's the case then you just purchase the commercial license of Qt ever and just continue using the LGPL version? What's the problem? You can still use Qt is closed source applications under the LGPL version. I can't see what the catch is.

      That should have read "never purchase the commercial license"

    6. Re:Qt license issues by Anonymous Coward · · Score: 1

      No, you're confused.

      While we can do this charming back-and-forth forever, the concern about conversion to commercial is a throw-back to when Trolltech did GPL and commercial dual-licensing. And ever since then, the company licensing Qt has had an unofficial policy of "forgiveness" for companies wishing to convert to commercial.

      Also, unless you're modifying Qt itself or statically linking it, the LGPL license should be no bother.

    7. Re:Qt license issues by Anonymous Coward · · Score: 1

      Bullshit. You can statically link against lgpl - you just need to make your object files available so that it can be re-linked to a different version of the lgpl library

  33. Droid by rsilvergun · · Score: 1

    either that or (god help me) Silverlight + C#/VB. Both do a really good job of separating GUI & program logic, and both have easy access to high performance display libraries (opengl for Droid, directx for Silverlight). I'm working on a combination Droid/Sliverlight app where the front end user data stuff runs off Android and the backend creations tools are in Silverlight. Oh, both have the added value of being free to develop on.

    --
    Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
  34. Why Html (the language of commercial ads)? by Anonymous Coward · · Score: 0

    I'm sure you won't like opencobalt.org since it's not biased towards Html ...

  35. I Am A Greybearded Curmudgeon by Anonymous Coward · · Score: 1

    Programmers stopped being programmers when they stopped talking about what algorithms they should use and started going on about what languages and IDEs and APIs they should use.

    1. Re:I Am A Greybearded Curmudgeon by Eponymous+Coward · · Score: 1

      You may want to get yourself checked out for Alzheimers. Programmers have always loved to talk and argue about their tools, or have you forgotten about the whole vi vs emacs debate that has been raging for 35 years now.

    2. Re:I Am A Greybearded Curmudgeon by greg1104 · · Score: 3, Insightful

      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.

    3. Re:I Am A Greybearded Curmudgeon by Anonymous Coward · · Score: 0

      "'Screen'? Oh, you had a screen, did you? We used to only DREAM of havin' a screen. We'd carve our code into the frozen dirt with pointed sticks, for sixpence a week; and we LIKED it that way!"

      Take it away...

  36. doesn't exist by tobiah · · Score: 1

    I've been following the protyping languages closely, looking for a better and more open option than Matlab. I haven't found it, but in the process of writing a book on scientific prototype-to-product development, I'm getting a better idea of what this language/environment should do.

    --
    "The ability to delude yourself may be an important survival tool" - Jane Wagner -
    1. Re:doesn't exist by Anonymous Coward · · Score: 0

      Mathematica

    2. Re:doesn't exist by tobiah · · Score: 1

      Easily fails points A, B, and E.

      --
      "The ability to delude yourself may be an important survival tool" - Jane Wagner -
  37. 3D Studio Max by stanlyb · · Score: 1

    Short answer.

  38. Matplotlib by mchnz · · Score: 5, Interesting

    Python Matplotlib covers some of what you might be interested in and it can be used with other GUI toolkits see http://www.scipy.org/Cookbook/Matplotlib and http://matplotlib.sourceforge.net/ - at the very minimum it might provide some food for thought about the feature-set you're seeking.

  39. sencha/extjs by Anonymous Coward · · Score: 0

    worth a look anyway...
    http://sencha.com
    http://www.sencha.com/products/extjs/
    http://www.sencha.com/products/extgwt/

  40. The case for iOS by SuperKendall · · Score: 1

    I know you said cross platform but...

    iOS offers you touch sensitive pane of any size (UIView), onto which you can put any controls you want - then you can apply a 3D transform.

    You can group the views (place one view inside another and move the whole unit). You can apply alpha to any view, arbitrarily block or accept input on any surface. Any of the views can be an OpenGL surface itself for more advanced rendering.

    You can draw bitmaps into views, or also use a vector based system to place shapes in views which the system will render with high levels of performance.

    On top of all that you can also easily animate many properties of views, allowing motion to easily and smoothly factor into your UI.

    To my mind iOS is a pretty awesome system for exploration of alternative UI's, which I have been thinking about myself for a long time...

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:The case for iOS by Daniel+Phillips · · Score: 1

      Why would anybody want to waste their time with a proprietary API using a splinter language and throw cross platform development to the wind?

      --
      Have you got your LWN subscription yet?
  41. Squeak/Croquet? by martin-boundary · · Score: 1

    Isn't this what Croquet was designed for? Does anyone have experience with it?

    1. Re:Squeak/Croquet? by tobiah · · Score: 1

      The wikipedia page makes some big claims with some nice pictures, but there is little evidence of use and their website consists of single link to download a zip file.

      --
      "The ability to delude yourself may be an important survival tool" - Jane Wagner -
    2. Re:Squeak/Croquet? by dmm10 · · Score: 1

      Open Cobalt, opencobalt.org, is the successor to Croquet, and it does indeed do all that the OP required with the possible exception of the requirement to not "lock me in to a particular mind-set." To me Smalltalk and Morphic, the interface paradigm, constitute mind-sets, and while one could subclass the Smalltalk compiler within Open Cobalt and play with the metaobject system to be able to work in a language of ones own design there would be a considerable bit of work to mask Morphic to allow work in a different mind-set. I don't think that Morphic would impose the limits that seem implied as the cause for this requirement though. Morphic provides for arbitrarily shaped widgets/windows (allowing for holes and non-contiguous surfaces) as well as focus tracking and interaction across 3D surfaces.

      Yes, I have experience with Croquet -though it was some time ago.

      ======8X-----cut-here-----
      Now for my wish that the OP would have a hand at fixing the SlashDot interface and get it implemented. After typing a longer and more detailed response I Previewed that response only to find that these days white space isn't preserved in posts by default. No problem, Continue Editing to get back to that Options button (just over from the non-destructive Preview button) and see what can be done about inserting some blank lines for readability. Only problem is that clicking on Options and choosing to switch to the old plain text option wound up loosing the comment I'd just typed in. I'm frustrated and sad that Slashdot exhibits this behavior. Please fix it. sigh

    3. Re:Squeak/Croquet? by Anonymous Coward · · Score: 0

      The wikipedia page makes some big claims with some nice pictures, but there is little evidence of use and their website consists of single link to download a zip file.

      There's OpenQwak and OpenCobalt. Both are active.

  42. Re:Processing and Java: not always play nice by Dr+Herbert+West · · Score: 4, Interesting

    Don't assume too much in terms of playing nice with straight-up JAVA. I've been building a lot of interactive video projects (kinect interface with JSON queries to databases holding IP addresses, for mapping animations on spheres) and I've been using the Eclipse rather than the Proceesing IDE. There's a lot of weird shortcuts that the Processing IDE does to make it easy for n00bs (that's why I got into it ;) but once you start doing stuff with openGL, threading, or (most importantly for the OP) using fonts and UI elements, things get really convoluted. And the debugger blows.

    Not to say you shouldn't do it-- but while the Processing learning curve is pretty easy, it gets quite steep when you want to incorporate more high-level functionality.

    That said, there's a lot of libraries that will address most stuff you'll need in terms of UI elements-- controlP5 is one that deals with text fields, text boxes, etc, for instance.

  43. Don't knock it by Anonymous Coward · · Score: 0

    Don't knock it, but for fast, easy and deployable experimental UI work, give Flash a shot. The Flex UI toolkit can be used (and skinned) for custom looks, or completely ditched for the Flash display tree. It works everywhere (except cell phones, heh).

    Approaching Flash development with Flex Builder as a C/C++ guy, ended up being extremely easy (ActionScript 3 is somewhere between C/C++ and JavaScript, with most of the nice features of both, with only a few of the ugly bits).

    Flex is open source these days too (the platform isn't however).

    1. Re:Don't knock it by tobiah · · Score: 1

      Flash is no good with big files.

      --
      "The ability to delude yourself may be an important survival tool" - Jane Wagner -
  44. Nyet, Use Qt by Dragon+Bait · · Score: 1

    QT controls are not designed with either the user or the UI designer in mind (and they're not easy to learn to program for, either). AND, they're ugly! Designing layouts with QT seems to be built around a philosophy that the application developer should not actually have much control over how the controls are rendered at runtime, but the end user should somehow understand how to reconfigure everything about the application's visuals to his liking. Plus, as much as nobody wants to hear it, no cross-platform IDE holds a candle to a vendor provided solution such as Visual Studio or Borland's very fine offerings.

    I admit to not having used Visual Studio in a while -- and I have never used .NET. I have programmed extensively using the Qt framework and find your comments about Qt to be completely off the mark. If you want to control your Qt widgets programmatically, you can. If you want to "skin" them with CSS, you can. If you want to drag-and-drop design your layouts, you can.

    I'm old school -- I code everything by hand and find Qt to be very simple and straightforward to use. I also have found that I can have complete control over my widgets. If you don't want to use QLayout (QGridLayout, QHBoxLayout, QVBoxLayout, ...) then just implement QResizeEvent and take pixel level control over where your widgets to go and what their sizes are.

    Having used MFC (yes, I'm showing my age), I find that the Qt approach is far more powerful. The signal-slot mechanism for inter-object communication decouples class dependencies offering a much cleaner design. The event propagation through the class hierarchy is another sound approach. I find overall classes are much simpler to manage with far less inter-class dependencies.

  45. Paint by Anonymous Coward · · Score: 0

    Since it sounds like you are uninterested in programming (and talking about 'prototyping' significant/difficult functionality), why not play with ideas at a much more prototypical level. Your favorite painting/drawing tool (could even be non-electronic!) or something like PowerPoint could allow you to try out ideas much quicker. I've seen some pretty good mock-ups through PP that showed an entire user flow for some specific functionality.

    For 3D, specific 3D drawing/rending tools would obviously be part of the toolchain as well.

  46. Classical language! by Anonymous Coward · · Score: 0

    "Sanskrit" is the best candidate for this.

  47. Lazarus by DMFNR · · Score: 4, Interesting

    My suggestion for you would be to check out Lazarus and Free Pascal. Lazarus is a cross platform and open source clone of Borland's (or whoever the hell own the company now) Delphi. Free Pascal is the compiler it uses, and it is pretty damn close to source compatible with Delphi, and also provides compatibility modes for other Pascal dialects as well, including it's own Object Pascal mode which fixes some of the stupid design decisions in the Delphi version of Object Pascal. The compiler itself has very speedy compilation times compared to C++ compilers, and generates decently quick code as well. The compiler itself is very mature and well maintained, and it gaining new features all the time. Lazarus is the IDE, which provides you with a RAD environment to quickly piece together the UI, and it is packed with all kinds of awesome features. The LCL, it's supporting library, wraps all of these functions up in a way that makes it very easy to deploy cross platform applications. It covers OSX, Linux (GTK+ and Qt), and Windows. The Free Pascal compiler can compile code for many more platforms, and has in fact supported some even before GCC. If you stick with the LCL, just about everything is covered between platforms and it uses the native components of the platform it is compiled for. It has a very healthy community, with plenty of bindings for all different kinds of libraries. It also provides a good method for creating custom components and reusing them, allowing you to install them in to the IDE and drag and drop them in the form designer just like you would with a standard button or text box. I've never done any stuff with 3-d graphics, but there's all kinds of OpenGL stuff available, and anything you can do in the native widgetsets you can do with Lazarus. The issue with Lazarus is that the IDE is still beta, and there still are a few bugs here and there, but they are fixed pretty quick, and there aren't any major show stoppers. The big issue is that it uses GDB for debugging (there is a native Object Pascal debugger in the works, but it won't be finished anytime soon), which is really aimed towards C based languages, so debugging isn't always smooth. Most of the basic tasks, like setting breakpoints and stepping through a program/function work fine, but there are a few issues with the differences between Pascal datatypes and C datatypes that can make things confusing.

    The reason I recommend this tool is because even though it doesn't have a massive ecosystem like C++, it is coherent and works very well between platforms. The Object Pascal language is very easy to learn, it's powerful, and well designed. While not as fast as C or C++, is you look at the alioth debian language shootout page, it is pretty quick compared to other languages. It provides access to all of the familiar C library functions, and includes all kinds of stuff in the language for compatibility with the C language. It's not the old Pascal from the Turbo Pascal days that people like to bash, almost all of the complaints I hear about the language itself were taken care of a decade ago. The only issue I can really think of is that the language can be a bit verbose compared to C, but compared to Java it's pretty succinct.

  48. Why not WPF? by Anonymous Coward · · Score: 0

    I've never used a language better than WPF for experimenting with unconventional GUIs, even with very large datasets. You can create both 2D and 3D designs quickly using imported data from Illustrator or any vector graphics and turn them into usable controls easily, with practice. It encourages you to objectify everything, which is great when doing quick GUI mockups, in case one of them is selected so you don't have to rewrite the hacked code you had before.

    I know people love their open-source here on slashdot, but WPF is just awesome for GUI design.

  49. Give JavaFX a go by Anonymous Coward · · Score: 1

    JavaFX is worth a look. It's now a Java library, works really well. At present it's supported on Windows, and is close to general release on Mac (it works well in OS X 10.7), and just released in beta for Linux. I have written some pretty complicated UIs in JavaFX, so speak from personal experience.

    1. Re:Give JavaFX a go by randomlogin · · Score: 1

      No mod points, so I'll second this. The 2.0 release of JavaFX is a huge step forward from Swing. A few of the things that would be useful in this context are:
      * Declarative approach to UI construction using FXML so you can rapidly prototype the UI without needing to implement any of the application code.
      * CSS support so you can easily 'skin' the UI.
      * Uses underlying hardware acceleration for 3G.
      * It's now a standard Java library, so you can also use it with other supported JVM based languages like Groovy.

    2. Re:Give JavaFX a go by Tchule · · Score: 1

      And possibility to easily add a web browser in your application.

  50. Boxes in swing? by Anonymous Coward · · Score: 1

    Not that I would recommend swing as the greatest option for prototyping, but the boxes within boxes issue that you describe has nothing to do with Swing itself, but with your layout manager. If you use the built in layout managers, sure, you will have those issues: I tend to only use BorderLayout out of those, and that's under duress. There's other options for layouts that do away with the problem. If you are using a graphical editor for your layout, there's FormLayout by JGoodies. If you want to lay it all down in code, there's MiGLayout instead.

  51. Anything with Lua embedded by Anonymous Coward · · Score: 0

    There are plenty of 3D engines with Lua scripting

  52. VTK by Anonymous Coward · · Score: 0

    I use VTK. Great for visualizing large data sets. Native C++, most everything exposed in Tcl, java, and python. Lots of data set processing functions. Interfaces with Fltk, Qt, etc. if you want to write a full gui. Use ParaView or Mayavi2 to get started. If VTK can handle simulations of supernovas, it can probably handle your dataset.

  53. Lots of people write ObjC GUI code by SuperKendall · · Score: 3, Insightful

    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!).

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Lots of people write ObjC GUI code by CadentOrange · · Score: 2, Informative

      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!).

      Qt renders its widgets using any available 3D hardware. wxWidgets uses native controls, so on the Mac there's nothing stopping you from using wxCocoa which should presumably be equally hardware accelerated as a native Cocoa app. The added benefit of these toolkits is that they're a lot more portable than Cocoa.

    2. Re:Lots of people write ObjC GUI code by dkf · · Score: 2

      The added benefit of these toolkits [Qt, wxWidgets] is that they're a lot more portable than Cocoa.

      And the disadvantage is that they don't look or behave in a native way on OSX without lots more work. At the prototyping stage this doesn't matter (and for some users it never matters) but it becomes a major PITA when you're ramping up to the level of becoming a product.

      I used to care about cross-platform development, but I don't now nearly so much. Platforms differ. It does make sense to make the core functionality independent of platform though. Sometimes that's best done by offloading that core to a server (under your desk, in your datacenter, in the Cloud, whatever) and sometimes by having a common library or language to implement the core, often a combination of the two. It really depends on what you're doing.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    3. Re:Lots of people write ObjC GUI code by wrook · · Score: 1

      I like to write UIs by hand. Actually, I tend to think of it this way: why would I go to the trouble of laying out everything graphically, when I can just let the computer take care of the layout for me? It's a bit like TeX. I define the content and the computer does what it does best by keeping track of all the little details that make the presentation look good. I often have to write my own layout routines, but I only have to do it once for the entire application.

      Like you say, it's not hard. I'm a programmer. Programming is my specialty. I'm often surprised that more people don't write UI code by hand.

    4. Re:Lots of people write ObjC GUI code by SuperKendall · · Score: 1

      why would I go to the trouble of laying out everything graphically, when I can just let the computer take care of the layout for me?

      That's why IB has auto-reizing behaviors you can set.

      I like to use IB when possible because it's less code that can go wrong, and much less work than setting all of the properties of an object by hand. As long as it adapts to the space it ends up in without further work all is fine.

      It's only when you have a fairly dynamic number or arrangement of elements that doing it in code has a greater payoff.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    5. Re:Lots of people write ObjC GUI code by marcosdumay · · Score: 1

      I've never learned how to make a tool designed UI properly respond to resizing. Put me in the team that designs it by code, but I don't do that because of performance.

  54. use Qt by Anonymous Coward · · Score: 1

    you can use Qt legally if you don't static link to Qt libraries.. if you don't know what it means just install Qt by default and build your application and ship it with Qt libraries (those dll files).
    this is what everyone does and there is no problem if your application is commercial or not (dosen't matter if its opensource or whatever).
    look at need for speed the run.. they use Qt for in game GUI stuff and shipped their game with Qt dlls.. and they didn't have to buy licence or anything.. also remember to include the Qt LGPL license file in your project..
    believe me Qt is great.. it has a very clean documentation.

    1. Re:use Qt by Daniel+Phillips · · Score: 4, Informative

      Absolutely, seconded.

      Without a doubt, QT is the reigning king of quick, pretty and cross platform GUI development. And of course you would do that with C++ if you want your code to be most widely portable, and to put your demo in the best light by starting fast and responding fast. But QT works well with many other languages, including having excellent Python support. Here is an idea: use Lua both to drive your demos and be the embedded scripting language at the same time. That would rock.

      --
      Have you got your LWN subscription yet?
    2. Re:use Qt by Anonymous Coward · · Score: 0

      Thirded. Qt is absolutely amazing, and QML(Qt Quick) makes designing a working GUI very simple. You can write all your GUI in javascript and offload the heavy processing tasks to C++. This feature alone should make it much easier for you to develop a working UI.

    3. Re:use Qt by marcosdumay · · Score: 1

      Also, include the source of the QT dlls you are distributing. You don't need to distribute the software of your code, just QT (if you modify the QT dlls you must include the modified source, but just QT). This way nobody under any circunstance can complain about you using it.

  55. Paper and pencil, story boards by perpenso · · Score: 5, Interesting

    I'd use [software environment and platform here] ...

    No. Just use paper and pencil. Create a story board, http://en.wikipedia.org/wiki/Story_board, showing how the user will use the interface.

    Go to the academics that represent your users. Ask them what they want to see in a visualization, how they expect to do a search, how they expect to manipulate things. Give them paper and pencil and tell them to just draw things however they think it should be, not what they are used to seeing in their current environment and applications, rather whatever they can imagine would be a good way, a way that feels natural.

    1. Re:Paper and pencil, story boards by zarlino · · Score: 2

      ^^^ This! And once you have your UI sketched on paper, you could use Qt (with or without Quick) to implement it. Your requirements for ease of cross-platform use *and* big datasets just begs for Qt.

      --
      Check out my cross-platform apps
    2. Re:Paper and pencil, story boards by Anonymous Coward · · Score: 0

      And after you're done all that, discard 90% of the drawings your clients made.

    3. Re:Paper and pencil, story boards by Anonymous Coward · · Score: 0

      From the storyboards, just create the GUI prototypes using the latest version of Microsoft Visual Basic.

      No other free/open source language or GUI IDE even comes close to how quickly the UI can be designed and implemented.

      Storyboards by themselves only work to a limited point because the user wants to see how it would look on the computer screen, not just on paper.

    4. Re:Paper and pencil, story boards by dkf · · Score: 1

      ^^^ This! And once you have your UI sketched on paper, you could use Qt (with or without Quick) to implement it.

      Except the user interface proposed will almost certainly not work well because the user who designed it won't understand about GUI design. Not that it's their fault; it's a discipline all of its own. Expect to iterate many times. Whatever you use had better support rapid prototyping. Being able to interactively add things in and test them out will help (it cuts the cycle-time of iterations). Be aware that you might not discover major features until quite late in the process.

      In other words, GUIs need you to be hyper-Agile during the early stages of development and you're proposing something disturbingly close to Waterfall...

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    5. Re:Paper and pencil, story boards by Anonymous Coward · · Score: 0

      unfortunately there is a very large gap between what people say is best and easiest for them to use when presented with mock-ups and what actually turns out to be the best and easiest when you actually let them try using it.

    6. Re:Paper and pencil, story boards by Anonymous Coward · · Score: 0

      Yeah it's been proven time and time again that most people:
      1) don't know what they really want
      2) don't say what they really want
      3) are very bad at judging how they would feel about things in the future.

      For decades people didn't say they wanted chunky spaghetti sauce.
      http://www.ted.com/talks/malcolm_gladwell_on_spaghetti_sauce.html

      And for years and years and years and years, Ragu and Prego would have focus groups, and they would sit all you people down, and they would say, "What do you want in a spaghetti sauce? Tell us what you want in a spaghetti sauce." And for all those years - 20, 30 years - through all those focus group sessions, no one ever said they wanted extra-chunky. Even though at least a third of them, deep in their hearts, actually did.

      As Howard loves to say, "The mind knows not what the tongue wants."

      If I asked all of you, for example, in this room, what you want in a coffee, you know what you'd say? Every one of you would say "I want a dark, rich, hearty roast." It's what people always say when you ask them what they want in a coffee. What do you like? Dark, rich, hearty roast! What percentage of you actually like a dark, rich, hearty roast? According to Howard, somewhere between 25 and 27 percent of you. Most of you like milky, weak coffee. But you will never, ever say to someone who asks you what you want - that "I want a milky, weak coffee."

      But as Apple knows, once you give them what they want, they'll buy it.

  56. Excel by Anonymous Coward · · Score: 0

    Seriously. Excel.

    http://www.amazon.com/Effective-Prototyping-Excel-Interactive-Technologies/dp/0120885824

  57. So: I want X, but not in Y, even if Y supports it? by VortexCortex · · Score: 4, Interesting

    Why not just use Flash & ActionScript, along with Unreal. Specifically, Scaleform. Since it already does the "never before seen" 3D GUIs you want, and game engines are particularly good at visualising extremely large data sets (we call them game worlds).

    Any amount of searching "HTML 3D" would have turned up WebGL, which uses OpenGL in existing browsers... That would be a good prototype platform for me.

    I take particular issue with the childish statements against using Java (and Swing), considering they already support 3D Swing components (see XTrans demo). Swing displays HTML components, even in tool tips. In fact, there is already an entire 3D collaboration framework in Java ready for any "Never Seen Before" GUIs you wish to dream up... It displays HTML, images, & PDFs etc.

    Furthermore, their indignant remarks smack of ignorance, considering Java 2D & Java 3D exist, and both have rich non standard box shape intersection libraries, which can be used to create custom components of any shape or position, hierarchical or not restricted only in that they should be used in a Canvas, to save yourself some time.

    They want someone to hand them a magic library that has all the bells and whistles already to go, but heaven forbid any of them have an API that requires using... Have fun inventing that shiny new wheel.

  58. Hire a coder by Yvanhoe · · Score: 1

    Seriously consider hiring a professionnal and experienced coder. Several of your requirements are very hard to combine : large data sets, cross-platform, HTML rendering and 3D rendering. You won't find an off-the-shelf library that does all of that directly. You will find pieces of what you need, but making them work coherently together is a hard work.

    Know your limits as a coder. You need someone with several years of experience to help you identify the technical limits and guide your design. Someone who can tell you if the size of your datasets mean that you have to do things around a powerful database engine or if you should rather use a game engine and add a standard database, for instance.

    --
    The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
  59. If you really want real 3D and ease development... by Anonymous Coward · · Score: 1

    maybe try one of the open source 3d rendering engines like Ogre3D or Panda3D.
    These both wrap both OpenGL or DirectX and provide higher level coding of the scene and behaviour.
    The lower levels are all C++ for speed, but all of the API's are accessible from Python for development productivity.
    Surfaces etc. are queryable (that's how they figure out where your game character got shot).

  60. HTML5 + CSS3 transforms + jQuery by Anonymous Coward · · Score: 0

    If you don't need real 3D objects and moving 2D controls in 3D space is all that you really want, the easiest way is using css transforms, transitions and key animations. If you need to impress with your prototypes/demos, present it on OSX + safari to get smooth animations (chrome & firefox are better browsers, but safari wins in that very specific department).

  61. NeosisGUI by 11011001 · · Score: 0

    Perhaps see if you can get in the NeosisGUI beta. It looks very interesting: http://www.noesisengine.com/noesis_gui_features.htm You write the GUI in XAML, and the rest of the API is C++. It's all 3D, and is built on top of OpenGL and DirectX. It looks mega fast. For rapid prototyping, perhaps consider Processing. It is essentially Java, with some nice APIs, and a rendering context already setup for you.

  62. ClanLib SDK (ZLib style license) by rombust · · Score: 1

    The ClanLib SDK contains a full GUI with CSS support.

    Check out examples at Windows 7 and Linux

  63. U++? by Anonymous Coward · · Score: 0

    You cannot beat in productivity while creating GUI or GUI widget classes. E.g. the whole Button definition in U++ is about 20 lines of C++.

    http://www.ultimatepp.org/www$uppweb$overview$en-us.html

  64. Re:So: I want X, but not in Y, even if Y supports by devent · · Score: 1

    You can also use JMonkeyEngine for 3D engines in Java. Or you can use Piccolo2D for 2D in Java.

    --
    http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
  65. Why limit yourself to existing WM's by hinchles · · Score: 1

    As many have said opengl. How about going down a slight variation of that theme though rather than doing ogl on the desktop or as part of another frame work why not approach it as more of a "game" ui where the elements of data are elements within a 3d world. your 2d data can be represented as "pictures" on a wall and your 3d date could be truely interactive. Perhaps ogre3d for your engine (or any other engine would work too) and awesomium (http://awesomium.com/) for your html rendering engine for doing the whole html5 stuff you mentioned.

  66. Holy wall of text by Hognoxious · · Score: 0

    I think before fucking around with advanced multidimensional displays you should learn to use line breaks, you retarded spacktard.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  67. theSame.needful.revert(); //revert same if needful by Hognoxious · · Score: 1, Funny

    Chinese programmers use English for variable names.

    Whereas Indian ones think they do.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  68. give up on cross platform by Anonymous Coward · · Score: 0

    research is prototyping, showing it can be done. supporting something as complex as you propose on all OSes/platforms will be a lot of work.

    find an api/package that works and get on with your reseach.

  69. Microsoft pays shills by Anonymous Coward · · Score: 0

    Oh, but Microsoft does employ a vast number of shills to astroturf /.

    See who is in charge of Microsoft's PR
    http://www.microsoft.com/presspass/pr_contacts.mspx

    And see what they do for Microsoft
    http://www.waggeneredstrom.com/practices

    The people responsible for Microsoft shills boast that they apply the right people and best resources to help build influence around any business issue, for any client, anywhere. In short, they comb through forums to manipulate discussions and spread FUD and propaganda.

  70. Sketched and Hand Drawn by Anonymous Coward · · Score: 0

    I've been working on my own toolkit to prototype new interfaces. http://canvas.dennisschaaf.com

  71. What language can cope with minimal requirements? by thogard · · Score: 1

    If you're doing a new UI (like say the iPod touch one before it was around), you need a language that allows you to collect events that most languages don't. In fact most languages don't deal with the events at all, they just let the OS cope with some of it and massive libraries of poorly written software for the rest.

    What language allows you to hook into the condition where a mouse down event happened here and then there were motion events along this path... It gets even stranger when you start to deal with gestures or eye movements or whatever else you need to do to invent a new UI.

    The result of all that leaves C, assembly and forth with top layers in whatever you want.

  72. Make a new GUI by Anonymous Coward · · Score: 0

    1. Learn to program and Design GUI, Windows 8 is a good reference
    2. Make a GUI for Mono on Linux, like WinForms

  73. Re:make it easy for n00bs by TaoPhoenix · · Score: 1

    This is a crucial point - there needs to be a couple of languages that don't need to target enterprise apps, just get a n00b ANYWHERE so that he can play with his pet project. I had a lot of fun as a child with the Commodore 128: 300 lines of code and I was playing my own games including "Navigate the Space Maze without crashing into the walls", custom-warped versions of standard logic puzzle games, dark versions of Eliza, and more. It was the most powerful programming language I have seen in years: draw a line, print text, make a sprite, simple data in variables. It was BASIC beyond steroids - it was on a rocket launcher.

    I know, I know, none of that matters In Today's World. But it should. I can't count the times I wanted to build a cute little app to do something fun for a month, only to take a look at virtually all the languages and it a brick wall. Java and Javascript are a mess. So the Processing concept looks promising. Then if someone gets inspired enough to move on, by that point they should be good enough to port over their concept to a heavy lifter language.

    --
    My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
  74. Matlab has strong points ... by golodh · · Score: 1
    I agree. Matlab is very suitable for building the kind of quick-and-dirty GUI's you'd want to inspect scientific data.

    You are facing a classical trade-off between quality and effort. If you are looking to just get something that works, I'd recommend Matlab. If you positively want to craft new GUI's, look to more low-level tools.

    Matlab does have a workable IDE built-in, and being an interpreted language the development cycle is short. The code that you develop can be licensed under GPL, but any recipient will need Matlab to run it (Octave won't do the full GUI stuff).

    It easily does 2-D and 3-D visualisations and it has things like sliders, knobs, selection-lists, and buttons that allow you to fiddle with you data.

    However, it does not support (or at least I don't know how to do that) custom-built widgets, which is what you will be looking for if you are considering radical GUI innovations. You can easily cobble together existing widgets though.

    I'm not a visualisation specialist, but I have a lot of experience pooring at data and I rarely ever found the pressing need for any "radically new" GUIs.

    I could always "make do" with customising existing ones. For me quick adaptation and sensible customisation of standard elements was sufficient 60% of the time. In 30% of the cases I was better off with one of the graphics packages provided by R. The remaining 10% I just exported the data to another, domain-specific, package.

    This may or may not not be an option for you since you sound as the programmer being tasked with providing graphics.

    1. Re:Matlab has strong points ... by stooo · · Score: 1

      >> but any recipient will need Matlab to run it (Octave won't do the full GUI stuff).

      No, you can use the "matlab compiler", every user then has to install the runtime.

      --
      aaaaaaa
  75. Kivy by txprog · · Score: 1
    You could give a try to Kivy. It's a python module to create NUI interfaces and:
    • * support natively various input devices (wm_touch/wm_pen on windows, macosx multitouch, mtdev & hidinput on linux, TUIO, mouse, android input)
    • * multiplatform: linux, macosx, windows, android, (and ios in development, but basis works)
    • * have a graphics stack based on OpenGL ES 2, using VBO / Shader
    • * have a graphics compiler that take the appropriate decision to reduce the graphics instructions send to the GPU
    • * have a widgets stack with label, button, slider, progressbar, textinput, switch... grid/box/anchor/stack layout... filechooser, popup, videoplayer, vkeyboard... scatter and stencil view!
    • * have an intermediate language named Kv, similar to QML, to create UI and easily connect all the components together
    • * have a core layer that abstract all the libraries / os operation: image loading, text rendering, windows, video, audio... If you use them, you're ensured to be crossplatform

    The project is the result of more than 3 years of programming with multitouch devices (interactives wall, multitouch tables), and from one year now, we worked hard to make it professionnal! We runned a Game contest last month, you should take a look to see what we could do. And go to our Gallery too!

  76. Assembly Language by Green+Salad · · Score: 1

    for detailed control....or Latin. Latin is used a lot for demos...of document formatting-styles.

  77. What are you trying to do? by Anonymous Coward · · Score: 0
    • Show a mock-up - Use pencil and paper etc.
    • Test some technology - Use the back-end tech most suited to that sort of processing. Eg. don't use visual basic for parsing huge datasets.
    • Explore interactivity -

      1.    
      2. Split into lab-bench experiments
           
      3. Use whatever is quick and dirty
           

    Remember if the real thing ever gets built it will be different, be using tech from 3 years down the line, being coded by other people. In the meantime don't worry about cross-platform and cool and correct. You're cooking things up in the lab not producing a finished product.

  78. java mindset by sl4shd0rk · · Score: 1

    Of Java there exists only two mindsets; one of do, and one of do-not. Choose one you must, but cease to cherish these boxes.

    --
    Join the Slashcott! Feb 10 thru Feb 17!
  79. Example of OpenATC by mattr · · Score: 3, Interesting

    I thought I would share some info with you about how one team did this, what was cutting edge work at the time.
    Not that I am saying you should use these tools although it seems they are one possibility.

    Here are links related to a quite interesting software project developed by Christophe Mertz and others at CENA.

    The Digistrips system was a user interface prototype demonstration system written in Perl for the design of new touch screen based air traffic controller systems that mimic the traditional system in which paper strips are used to represent aircraft in flight. The demonstration is said to have been successful, and there are a number of papers written about user interaction in the system.

    It used Ivy (a cross platform message bus in Perl) and TkZinc (an OpenGL and 2d capable canvas).

    Below are numerous links to papers and software sites although the openatc.org website is no longer in service itself. It is possible to download Ivy and TkZinc it seems.

    keywords: cena france french aircraft controller prototype perl perl-anim gui prototyping tk-zinc opengl perl strips

    Ivy Software Bus
    http://www2.tls.cena.fr/products/ivy/
    http://freecode.com/projects/ivy
    http://www2.tls.cena.fr/products/ivy/download/desc/ivy-perl-deb.html
    Ivy is a simple protocol and a set of open-source (LGPL) libraries and programs that allows applications to broadcast information through text messages, with a subscription mechanism based on regular expressions. Ivy libraries are available in C, C++, Java, Python and Perl, on Windows and Unix boxes and on Macs. Several Ivy utilities and hardware drivers are available too.
    Ivy is currently used in research projects in the air traffic control and human-computer interaction research communities as well as in commercial products. It is also taught to CS students.

    http://wiki.tcl.tk/9246
    Christophe Mertz

    Zinc.pm
    http://search.cpan.org/~zincdev/tk-zinc-3.303/Zinc.pm
    Patrick Lecoanet

    http://search.cpan.org/~cmertz/svg-svg2zinc-0.05/svg2zinc.pl
    though openatc.org is down.

    TkZinc
    http://www.tkzinc.org/tkzinc/index.php
    http://freecode.com/projects/zincisnotcanvas
    http://wiki.tcl.tk/2798
    TkZinc is a Tk widget developed with Perl/Tk, Tcl/Tk and Python/Tk bindings. TkZinc widgets are very similar to Tk canvases in that they support structured graphics. Graphical items can be manipulated, and bindings can be associated with them to implement interaction behaviors. But unlike the canvas, TkZinc can structure the items in a hierarchy, and has support for affine 2D transforms. Clipping can be set for sub-trees of the item hierarchy and the item set is quite more powerful, including field-specific items for Air Traffic systems. TkZinc is fast enough to allow the implementation of 2k2k radar displays with smooth animations. It is structured enough to allow the implementation of direct manipulation desktop GUIs.

    Since the 3.2.2 version, TkZinc also offers as a runtime option, support for openGL rendering, giving access to features such as antialiasing, transparency, color gradients and even a new, openGL oriented, item type : triangles. In order to use the openGL features, you need the support of the GLX extension on your X11 server.

    Zinc Is Not Canvas!
    Tkzinc has been developped at CENA to help building experimental user interfaces for Air Traffic Control. Tkzinc is a Tk widget, with Tcl, Perl/Tk, and Python/Tkinter bindings. Tkzinc is available as open source under the GNU Les

  80. How about WT (Witty) by Anonymous Coward · · Score: 0

    Take a look at witty (WT), http://www.webtoolkit.eu/wt
    Just my two cents here. Although you do get locked into a framework it is totally written in C++.
    It is platform independent, fast and secure.

  81. d3.js by VoidEngineer · · Score: 1

    I second processing. Also, if his project is going to be in HTML/HTML5, he should check out the javascript successor to processing.org, which is d3.js.

  82. Re:This is sad. by datavirtue · · Score: 3, Insightful

    I love it when people exclude Java when it is the obvious choice and the one that best covers the problem domain. Translation: I'm going to learn a language but I don't want it to be Java for some imagined reason. Undoubtedly the other solutions that have been offered are a complete mess, especially when considering he needs to use this to manage information. Just use Java. Great 3D, 2D, and whatever else you need. You are building a new UI anyway, why bother with swing.

    --
    I object to power without constructive purpose. --Spock
  83. Re:Processing and Java: not always play nice by datavirtue · · Score: 2

    Look kids it's a java watchdog.

    --
    I object to power without constructive purpose. --Spock
  84. Re:make it easy for n00bs by datavirtue · · Score: 1

    Java and Javascript related to each other by a word in the same context? Huh? What are you talking about? Javascript is for simple UI tasks that cannot be accomplished by the server side. Java is for building applications that require an object structure. I wouldn't describe either as a mess. Sure, if I leave an incompetent asshole alone to solve a complicated problem they will surely return a mess--no matter what the tool. I recently found a script used by a large bank written in Javascript that was grabbing the screen resolution and doing a bunch of calculations to layout the screen for a simple login. If you had your browser zoomed it would not work---total fail. That, is a mess, and I would hardly blame Javascript.

    --
    I object to power without constructive purpose. --Spock
  85. Tcl/Tk by Anonymous Coward · · Score: 0

    I would give Tcl / Tk a try!

  86. Pick your native lanuage and by Anonymous Coward · · Score: 0

    Then use Crayola Crayons! The best for over 100 years or so. ;) Nothing beats speaking the native tongue when it comes to communications, and nothing beats a good box of 64 colored crayons. Splurging on the bigger box is just so liberal and gay. Don't do it.

  87. comment on OP's "Boxes in boxes in boxes oh my!" by WOOFYGOOFY · · Score: 1

    Java2D is and JOGL or Java3D are full blown first quality graphics libraries upon which Swing is built. The Swing widget library- the boxes you refer to- are so people don't have to re-create commonly used widgets over and over again. You're free to ignore them and go straight for the drawing library creating literally anything you want.

    Either you're going to use a widget library or you're gong to be drawing freehand. If you want to draw freehand then Java2D and JOGL or Java3D are the way to go . I have used these many times to great effect. There are tons of libraries out there for scene graphs for instance if you want to go that way to graphing packages to number crunching to text processing all active all first rate.

    Where does over aggressive language faddishness come from? "Java is a bloated and slow .. Swing is dead... " stuff like that?

    IMO it comes ultimately from consultants who are always looking to have rare expertise they can charge a lot for. They make a boat load of money when they're one of the first 25, 50, 100 consultants who know about "New Breakthrough Technology Which Is Where Everyone Is Going To Go" and can charge 250-500 an hour consulting to companies who buy into The Dream.

    Every language has its place and every language is interesting and worthy in its own right and is perhaps the best language for a particular task. Languages get nicer to use *in some ways for some uses* over time but they also lack things like a wide range proven libraries and tool support which makes for huge productivity boosts.

    i am not dissing anyone's choice of language here. I just have to note the misconception embedded in the OP's characterization of Swing and Java and how or why he may have acquired it. It can't be first hand or he wold know that he can use Java for interfaces and not use Swing, and this gets me thinking about why language wars even exist at all in the form that they do with the FUD, the bashing, the wide dissemination of plainly false characterizations etc etc .

  88. Recent related blog post by erwincoumans · · Score: 2

    See http://www.dodgycoder.net/2012/01/modern-cross-platform-development.html

    In addition to Qt, GTK+ and wxWidgets it discusses some alternatives such as Moai, Corona etc.

  89. Agreed, 110% & porting 32-bit to 64-bit? CAKE! by Anonymous Coward · · Score: 0

    I've been busy porting apps I wrote circa 1997-2005 or so in Win32 over to Win64 using Delphi in RAD studio XE2 (apps were written in Delphi 3/5/7)!

    Yes- it's as SIMPLE/EASY as it gets imo for "porting" across memory boundaries, for lack of a better expression!

    (E.G.-> No need to directly "mess with" going std x86 registers out to ebx/rbx stuff).

    The MOST I have "run into" was recompiling the JEDI libs &/or Indy-OverByte VCLs for 64-bit (that "threw me" for a bit, lol)... I figured they'd be "ready to go" outta the box, & would have the {IFDEF Win32) vs. 64-bit in place - they didn't lol! Live & learn...

    Also, then, changing some typecasts on pointers (no need on variables though thank goodness) - but, so far @ least? That's about it... not that tough as I am sure you know.

    * Delphi/Object Pascal's also been KNOWN to outperform BOTH MSVC++ &/or VB5 onwards, from as far back as 1997 (when it displaced MSVC++ & VB as my fav. dev. tools, because of this) in the Sept./Oct. 1997 issue "Inside the VB5 Compiler" where Delphi SOUNDLY "knocked-the-chocolate" out of BOTH MSVC++ &/or VB5 on 6/10 tests done, as well as DOUBLING even MSVC++ on both string and math work (which EVERY PROGRAM DOES).

    APK

    P.S.=> I've tried a LOT of dev. IDE's, & languages over time since 1982, but Delphi/ObjectPascal "stole me away" from all of them + keeps me coming back too!

    (That's from also around a dozen languages it did that for me with)...

    Yes... Delphi's got the "multiplatform/cross-platform" game down too (& if ONLY XE2 studio would incorporate CLX again so Linux was doable, as it was in Kylix? It'd be PERFECT!).

    Only languages I know that can port to as many platforms are JAVA (too slow & buggy imo), & C/C++ (fast, but a more difficult language imo than the others) & perhaps RealBASIC!

    Still - however, to be able to build as FAST as VB, & yet have more speed/performance than C++ even? That's for ME... don't know about the rest of you!

    ... apk

  90. One up for QML (aka. QtQuick) by hydrofix · · Score: 1

    QML is really a breeze to write, and you can get very impressive visual effects easily. It has CSS-like transitions (but easier and with added benefits), and the property-system allows you to easily build complex relations between the visual elements. Objects are laid out using anchoring, where rather than defining x,y coordinates you just define the relations between the element. This also means that everything is out of the box adaptible to a wide array of screen sizes.

    QML supports JavaScript inline and also the relations between the objects can be defined as JavaScript statements. Or, you can easily define methods to your QML objects by just writing out the JavaScript function in the code.

    Extending from C++ has a small learning curve, but once you get into it there's nothing to stop you from doing your own components, or even implementing the whole visual element stack from the beginning. Not that you would really need to: the JavaScript is runtime compiled to machine code and executes so well that the interface is fast and responsive even on a smartphone.

    LGPL is non-issue: it is both friendly to open source applications and fully proprietary closed source commercial applications, and places no legal constrains on your application code.

    You can get started with QML right now. I dare you will be able to write your first app UI after 30 minutes.

  91. Clutter + Python by KerrickStaley · · Score: 1

    I'm working on a very similar project, and have chosen to use the Clutter toolkit along with Python. Both are cross-platform, and both are well suited to the task. Clutter is a little rough-around-the-edges, but it's getting better, and Python is the best language out there for quick, easy development.

  92. Scala with OpenGL / OpenVG / Cairo by Anonymous Coward · · Score: 0

    I would use Scala with a custom UI toolkit built around something like OpenGL.

    Scala is a sufficiently advanced and expressive language to make representing new UI abstractions less painful than most other languages. The type system will also keep you honest and help you to design a thoroughly modular library. It has good IDE support now, plenty of libraries (both native and Java based), and is plenty fast for most tasks.

    OpenGL / OpenVG / Cairo all make sense for different reasons. OpenGL will give you the most flexibility but may be lower level than you'd prefer. OpenVG seems like a good compromise if you want primarily 2D, vector based graphics. You could also go with something like Cairo for the latter, although I would tend to prefer OpenVG as it is a standard.

    Hope that helps.

  93. Technically crosses some platforms by SuperKendall · · Score: 1

    Why would anybody want to waste their time with a proprietary API using a splinter language and throw cross platform development to the wind?

    In the case of research he could have many more advanced prototypes done far more quickly. Remember that was the whole point - experimenting with data visualization UI's. Why does that NEED to be cross platform, for exploration it just needs to be quick, then you can port the UI ideas that work out.

    But also it's not true that ObjC is not cross platform. It's on iOS and also the Mac. That's two very distinct platforms.

    Someone else mentioned GnuStep but I don't think the UI elements it offers have the same level of functionality to make it worth looking into.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Technically crosses some platforms by Daniel+Phillips · · Score: 1

      But also it's not true that ObjC is not cross platform. It's on iOS and also the Mac. That's two very distinct platforms.

      Wow, you have quite the sense of humour for an Apple shill.

      --
      Have you got your LWN subscription yet?
    2. Re:Technically crosses some platforms by SuperKendall · · Score: 1

      Wow, you have quite the sense of humour for an Apple shill.

      Better a sense of humor than a total lack of any inkling as to the spectrum of UI/UX technology available today and when it is best applied.

      Having a sense of hour often wins me friends, how's ignorance treating you?

      I have also prototyped UI concepts for visualization in Java and other platforms. For what was asked, currently Apple's UI frameworks offer the best platform for rapid UI conceptual research

      Do you have any insights to offer as to why other platforms meet the criteria better, or are you just a wanker with only insults on tap?

      Thought so.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
    3. Re:Technically crosses some platforms by marsu_k · · Score: 1

      But also it's not true that ObjC is not cross platform. It's on iOS and also the Mac. That's two very distinct platforms.

      Yes, very distinct

    4. Re:Technically crosses some platforms by Daniel+Phillips · · Score: 1

      So, you would be a typical Apple fanboi, then? No wonder you're not welcome in polite company :-)

      --
      Have you got your LWN subscription yet?
  94. Re:Agreed, 110% & porting 32-bit to 64-bit? CA by Anonymous Coward · · Score: 0

    3rd line.

  95. Registers (16-bit/32-bit/64-bit, etc./et al)... by Anonymous Coward · · Score: 0

    Apparently, I didn't state that very well: I meant that having to toy directly with registers is NOT a problem... like you must in assembly.

    (Ala ax/bx/cx/dx -> eax/ebx/ecx/edx -> rax/rbx/rcx/rdx or any HIGH order vs. LOW order parts of them)

    I.E. - Yes, you can, but the language is VERY fast, as is (and much of its sourcecode, which Delphi comes with source to its controls/vcl, has that in them ala "inlined asm" etc. (but using it yourself via the asm directive HAS changed from how it used to be done in older versions of Delphi as I understand)).

    * Hope that clarifies my statement on the 3rd line better... thanks.

    APK

    P.S.=> Sorry if I didn't state that up to spec etc. (busy day here, people coming & going all day long @ my place) - and they're STILL doing it, lol, man... sometimes? I wish I was on a desert island! apk

  96. Check out IB by SuperKendall · · Score: 1

    I've never learned how to make a tool designed UI properly respond to resizing.

    IB (Interface Builder, built into XCode now) is really excellent in this regard. Through a combination of grouping and spring/strut style auto-resizing behaviors you can get UI's to scale almost any way you want.

    IB is the ONLY GUI development tool I have ever liked. In every other language I also just did all my GUI programming in code. The reason I like IB is because it's not a code generator, but an object instantiator and freezer.

    On the Mac, IB has way more advanced techniques to help with dynamic scaling of interfaces, in part to help with localized interfaces not needing extra work to define.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  97. Delphi XE2 does 64-bit & multi-platform code by Anonymous Coward · · Score: 0

    "Delphi2010 had some actual improvements, but still no 64 bit support." - by rev0lt (1950662) on Tuesday February 21, @07:11PM (#39118389)

    See my subject-line: "It's in there"... & I am currently 'porting' my apps I wrote circa 1997-2006 or thereabouts in 32-bit Delphi (versions 3/5/7), and it's a snap using it.

    ---

    "The last significant version of Delphi probably was v7, in 2002. " - by rev0lt (1950662) on Tuesday February 21, @07:11PM (#39118389)

    It was excellent, & it WAS my fav. Delphi build environment/IDE, until XE2 that is... I can even do C++ Builder in it too!

    APK

    P.S.=> Not only will it produce "standalone portable executables", but also .NET runtime driven ones as well, and it can produce programs for Apple platforms as well as win32/64 also (& I wish they'd bring back Kylix CLX so that Linux would be in the mix as well as it used to be in Kylix/Delphi/C++ Builder - it'd be a PERFECT dev. toolset then (and be like RealBASIC is, and produce executables for "the big 3" in Win32/64-Apple-Linux)... apk

  98. Qt. by Anonymous Coward · · Score: 0

    Qt.

  99. It's obvious by Anonymous Coward · · Score: 0

    COBOL

  100. Gambas by magma · · Score: 1

    If it is a prototype and you don't want to be a developer then I would recommend Qt in Gambas. You cast all caution to the wind, even program willie nillie, if so inclined. Declare variables? Not use globals? Require modues? Pffft! Wimps. Those guys are all probably still sitting in car seats! http://gambas.sourceforge.net/en/main.html