Slashdot Mirror


Cross-Platform GUI Toolkits (Again)?

Futurepower(R) queries: "It has been 2 1/2 years since the previous Ask Slashdot about GUI Toolkits. There were many helpful comments then, such as this one. Since then, Slashdot has discussed wxWindows vs. MFC and considered the book, Creating Applications with Mozilla. The best comparison table is apparently still the GUI Toolkit, Framework Page. Which is the best cross-platform GUI toolkit that provides native look and feel? Which is the best overall? What IDEs and other tools do you use? What are the problems?" Slashdot also had a match-up between GTK+ and Qt, but some of you might have missed that one. How have recent changes in this ballpark changed your feelings on the issue?

514 comments

  1. Visual Basic! by Anonvmous+Coward · · Score: 3, Funny

    Ha! Just kidding. Put the torches out, please.

    1. Re:Visual Basic! by Anonymous Coward · · Score: 1, Funny

      You may be kidding, but Baby Jebus believes that Visual Basic is God's Tool.

    2. Re:Visual Basic! by Anonymous Coward · · Score: 0

      Now that this post has made its way to the top of this relatively popular topic, it'll be interesting to see where that guy's hit counter is at the end of tomorrow (as opposed to 156 currently)...

    3. Re:Visual Basic! by goatasaur · · Score: 2, Funny

      Funny, because I refer to something I use a lot as God's Tool.

      Maybe not so funny.

      --
      ~D:
    4. Re:Visual Basic! by phyxeld · · Score: 4, Informative

      It looks like Qt does native widgets everywhere. I haven't coded with it, but source compatibility bewteen Windows, OS X, X11, and Qt/Embedded seems pretty promising. But personally, I'm still using the tried and true cross platform GUI toolkit known as HTML :)

      --
      __
      Choose mnemonic identifiers. If you can't remember what mnemonic means, you've got a problem. - Larry Wall
    5. Re:Visual Basic! by Anonymous Coward · · Score: 0

      Actually, I remember reading somewhere that someone had created a Visual Basic runtime for UNIX. When you compiled your VB program in Windows you selected 'P-Code' and then it would run in Unix if you had the run time installed.

    6. Re:Visual Basic! by infiniti99 · · Score: 4, Informative

      After using Qt for a couple of years, for both open source and commercial software, I can say it does the job admirably. It is easy to pick up, and using it is fun :)

      Qt is not necessarily only for GUI. There are lots of convenience classes available to make your life easier doing cross-platform work: Text/Unicode handling, image, containers, networking, database, XML, etc. Many of these classes are highly optimized. I use Qt even when I'm writing a console app.

      Though I have not used Java, I am told the API is very similar in style (to Swing?). The upside to Qt is that it is compiled and uses C++, so it is fast and you can mix and match system code. A common myth about cross-platform software is that you must cater to the lowest common denominator, which is absolutely not true with Qt.

      Even if you are doing development for a single platform, you may still want to use Qt. It is generally easier to use than whatever is native (though I have heard very good things about Cocoa/ObjC), and it secures you that 'out' in case you want to port later.

      For some examples of cross-platform projects using Qt, see Opera and Psi.

    7. Re:Visual Basic! by Anonymous Coward · · Score: 1, Informative

      You know, judging from the recent work of the Mono team, I think I wouldn't find that absurd at all.

    8. Re:Visual Basic! by hobuddy · · Score: 2, Interesting

      Though I have not used Java, I am told the API is very similar in style (to Swing?). The upside to Qt is that it is compiled and uses C++, so it is fast and you can mix and match system code. A common myth about cross-platform software is that you must cater to the lowest common denominator, which is absolutely not true with Qt.

      Even if you are doing development for a single platform, you may still want to use Qt. It is generally easier to use than whatever is native... and it secures you that 'out' in case you want to port later.

      It's worth noting that all of the "upsides" you mention here also apply to SWT (for Java), PyQT (for Python), and wxPython (for Python).

      It's not necessary to switch from a higher level language to C++ just to use a fast, cross-platform GUI toolkit that renders via native widgets.

      --
      Erlang.org: wow
    9. Re:Visual Basic! by _marshall · · Score: 1

      We found a witch may we burn him?
      <Crowd Chants: Burn him!>

      Anonvmous, do you weigh the same as a duck? ;)

    10. Re:Visual Basic! by Anonvmous+Coward · · Score: 1

      "Anonvmous, do you weigh the same as a duck? ;)"

      Duck? No no. I'm a little pudgey in the middle. I've been told I'm more like a d..umbf...uck.

    11. Re:Visual Basic! by j-pimp · · Score: 1

      Not familar with python, although I know one form of using it is interperted via a hash-bang (#!/usr/loval/bin/python). However, java is compiled into bytecode run by a jvm en emulator for a system that doesn't exist.

      --
      --- Justin Dearing http://www.justaprogrammer.net/ We're just programmers.
    12. Re:Visual Basic! by hobuddy · · Score: 1

      Not familar with python, although I know one form of using it is interperted via a hash-bang (#!/usr/loval/bin/python). However, java is compiled into bytecode run by a jvm en emulator for a system that doesn't exist.

      I was referring to the GUI toolkit itself being written in C++ (and thus compiled/fast), not necessarily the surrounding application.

      --
      Erlang.org: wow
    13. Re:Visual Basic! by j-pimp · · Score: 1

      I was referring to the GUI toolkit itself being written in C++ (and thus compiled/fast), not necessarily the surrounding application.

      Ok but te swing api is written in java and compiled into java bytecode. Only the lowlevel graphic calls of the vm are implemented in native code.

      --
      --- Justin Dearing http://www.justaprogrammer.net/ We're just programmers.
    14. Re:Visual Basic! by hobuddy · · Score: 1

      Ok but te swing api is written in java and compiled into java bytecode. Only the lowlevel graphic calls of the vm are implemented in native code.

      I've done a fair amount of Swing programming, so I realize how it's implemented. I really admire the software engineering evident in Swing; it's elegantly customizable through and through.

      However, the performance (in both CPU and memory) really sucks. Don't tell me it doesn't; don't tell me it's fixed in Java 1.4. I use a Swing text editor all day every day on Java 1.4.1_01 on Windows 2000 on an Athlon XP 2100+ with 512 MB RAM, and it's still sluggish. This rules out Swing as a serious choice for client-side development in the typical corporate environment, where the client machines are elderly and feeble. That's a real pity.

      --
      Erlang.org: wow
    15. Re:Visual Basic! by Anonymous Coward · · Score: 0

      One of the reasons linux GUI performance is low is because both Qt and Gtk DO in fact address the lowest common denominator of X and GDI - they BOTH basically just treat the display as a dumb framebuffer. X, particularly, is not a dumb framebuffer (neither is GDI, but with X it's more pronounced). X can be much higher performance than the way Qt and Gtk (ab)use it.

    16. Re:Visual Basic! by Anonymous Coward · · Score: 0

      Could be an artifact of MS doing their best to break Java on windows - between 1.3 and 1.4.1 I noticed massive speedups, even unto bearable levels, on Linux Swing GUIs (I don't care about windows). Probably because they removed ancient Motif stuff from the Linux GUI path, and targetted X directly.

    17. Re:Visual Basic! by Anonymous Coward · · Score: 0

      "It's not necessary to switch from a higher level language to C++ just to use a fast, cross-platform GUI toolkit that renders via native widgets"

      That's BS. You can use Qt in other languages. There's already PerlQt http://perlqt.sourceforge.net/

    18. Re:Visual Basic! by afantee · · Score: 1

      I am developing a fairly complex Java application with Swing on a 700 MHz iBook running Mac OS X and Java 1.3.1. It looks almost like a pure Cocoa application, and certainly behave better and runs faster than most of the Carbon programs on OS X, particularly wrt multi-threading. Plus, antialiasing is available too.

      Java is definitely ready for prime time. Most of the Java IDEs are writen in Java itself and feel more responsive than any of the MS Office apps. My favorite is Borland JBuilder which is also 100% pure Java, but very powerful and fast.

      After programming in C/C++ for over 10 years, I am now a very happy Java programmer and will never look back.

      By the way, Mac OS X is definitely the best platform for Java (and C/C++, Objective C/C++, etc). Virtually all of the Cocoa and QuickTime APIs have native Java binding. If you don't like Swing, there is always the wonderful Interface Builder that allows you to design the best GUI with almost no coding. And of course, OS X is bundled with dozens of programming tools for free!

      Before any of your MS VB non-programmers even trying to suggest anything else, I have to confess that I did use VB a lot myself, mostly for small projects. But VB is really just a toy compared with Java or C++, it simply hasn't got the power to scale up. In any case, why are you foolish enough to pay a couple of thousands dollars for Visual Studio .NET just to program for Windows while there other free tools for writting software on all platforms?

    19. Re:Visual Basic! by Samus · · Score: 1

      Actually it isn't really played up very much but Python is compiled to a byte code as well. Whenever you import another module it gets compiled to byte code and then run on a VM. This happens at run time and is then stored in a .pyc file. Its a little strange to me that the main .py file that you execute is compiled but the result isn't stored as a .pyc file. I believe Perl has similar functionality.

      --
      In Republican America phones tap you.
    20. Re:Visual Basic! by arkanes · · Score: 1
      Qt is an excellent toolkit. It's downsides are that it's only free for X11, and very pricey on other platforms. For an alternative for people without 2 grand to blow on licenses, check out wxWindows

      It's not as polished, but it's very good, with excellent support via the mailing list.

    21. Re:Visual Basic! by arkanes · · Score: 1
      You're smoking pot if you think JBuilder is written in Java, it's probably actually Delphi, like all the other Borland IDEs.

      The Java gui components suck ass on Windows. They seem much better in linux (and probably on Mac, I haven't tried one). They still suck with the Sun VM. Don't ask me why, I don't care. They just do. Thats why I hate tools written in Java, and why I don't use them unless I have no choice.

      VB is actually a very powerful language - for example, there's no easier way to write a COM server. It's not really suited for systems programming, of course, or for writing servelets or something, and it's certainly not cross platform (VB .NET and Mono excluded) but it's excellent for slapping out quick & dirty forms. If Mono can really get off the ground, .NET will most likely start kicking Java around - it's like Java with the advantage of 10 years of hindsight.

    22. Re:Visual Basic! by DogIsMyCoprocessor · · Score: 1

      Excuse me, but you are the "stoner" in this thread. The editor component for JBuilder many versions ago was taken from the Delphi one (not "written in Delphi", but taken as a component), but for the last couple of years JBuilder has been written in pure Java.

      --

      "And this is my boy, Sherman. Speak, Sherman." "Hello." "Good boy."

    23. Re:Visual Basic! by frankrachel · · Score: 1

      Uh, after Version 3, JBuilder was rewritten in Java.

    24. Re:Visual Basic! by Anonymous Coward · · Score: 0

      In a commercial environment, it's not expensive at all.

    25. Re:Visual Basic! by Alex+Blume · · Score: 1

      Try Intellij's IDEA, it's one of the most powerful Java IDE's out there, and it's written in Java Swing.

      I won't argue that Java GUI apps still take a serious amount of memory, but the performance issue problem is a thing of the past if the developers know what they are doing and you're using a reasonable machine.

    26. Re:Visual Basic! by Anonymous Coward · · Score: 0

      It's been a while since I've built a GUI app in VB... have they finally added the concept of a layout manager? You know, so that the UI works properly when you resize a window, or when the user switches to something other than the default system fonts? Once I was introduced to Tk and learned that GUI design could be both rapid and robust, I never went back. (By no means is Tk the only UI toolkit to use layout managers, but it was the first one I used.) I find it amazing that people extol VB for its UI capabilities, when it lacks such important fundamentals.

  2. FLTK by Deflatamouse! · · Score: 5, Informative

    The Fast Lightning Tool Kit is very nice. I've used it on Sun OS, Linux and Windows. Compiles between platforms without much change to the source at all...mostly its the system calls that needs to be changed, nothing related to the GUI.

    1. Re:FLTK by Deflatamouse! · · Score: 5, Informative
    2. Re:FLTK by printman · · Score: 1

      FLTK also works on MacOS X, and the current development branch will soon add support for several embedded interfaces as well...

      --
      I print, therefore I am.
    3. Re:FLTK by SiMac · · Score: 2, Insightful

      The Mac OS X version of FLTK works, but it's mostly a joke. The widgets look nothing like Aqua; the menubar is (IIRC) at the top of the window rather than at the top of the screen. As much as I'd like to use it, it just doesn't adapt too well to OS X.

    4. Re:FLTK by Minna+Kirai · · Score: 1

      I've tried out Fltk. It worked alright for simple tasks, but I couldn't figure out how to make more complex programs.

      For instance, I wanted my program to use TCP/IP (regular bsd calls: socket, accept, recv). I used Fl::add_timeout and Fl::repeat_timeout to check the incoming buffer every few seconds (no need for high data rate).

      That worked great- unless I made some call like fl_file_chooser, which blocks until it returns. Then the timeout function won't happen until the dialog box is done- a fact completely ommitted from the documention.

      I suppose I could dig into the source code (it is LGPL after all) and try to fix it, but things like this don't inspire confidence.

    5. Re:FLTK by printman · · Score: 2, Informative

      The plastic scheme gets you closer, and assuming that Apple doesn't jump all over us the 2.0 release will have an Aqua scheme as well.

      As for the menubar at the top of the screen, you just have to use the Fl_Sys_Menu_Bar widget.

      --
      I print, therefore I am.
    6. Re:FLTK by Doug+Neal · · Score: 1

      Don't you think you should background your socket code into another thread? You'll avoid all those problems and keep the GUI responsive whatever else the program's doing.

      It's hardly a failing of FLTK really...?

    7. Re:FLTK by aminorex · · Score: 0, Flamebait

      There's this great new thing called *threads*. You may
      have heard about it. It's a useful thing to know about
      if you're writing GUI code.

      --
      -I like my women like I like my tea: green-
    8. Re:FLTK by Minna+Kirai · · Score: 1

      It's hardly a failing of FLTK really...?

      Fltk's add_timeout doesn't obey it's own documentation. It's wrong. No one to blame but that library.

      Don't you think you should background your socket code into another thread?

      I don't think so. Threading could fix this particular problem, but then I'd have to use threading. That would add a lot of complexity, and overhead as slower, re-entrant versions of all library functions are pulled in. The code would also be less portable, since pthread functions aren't really compatible across different Unices.

      The style I'm using now is the (originally) recommended way to write Unix network code, as per Stevens. That is, a select() call to check for network input (if any exists). It works fine with programs that use tty, ncurses, Qt, Motif, or Fltk without calling certain blocking function. Fltk plainly continues to exectute during the blocking function, as user-input continues to work. But it's neglecting its promise to keep the timeouts working.

    9. Re:FLTK by Minna+Kirai · · Score: 1

      Unix GUI code has been written since 1984 without needing threads.

      Unless the logic of my algorithms is more simply represented as threads, I shouldn't use them. If I want to toss a pretty GUI ontop of a large and ancient existing codebase that is resolutely non-threadsafe, I shouldn't have to use threads.
      If my development tools (linux and gdb) don't support threads easily, it'll be aggravating to use them.

      Suppose I had a thread? What would it do? Wait for stuff to come from the network, and stuff it in a buffer for the main thread to read once it's ready. Well, the operating system is already doing that exact thing for me. I shouldn't need to redundantly duplicate that same behavior in my own code.

    10. Re:FLTK by spitzak · · Score: 1
      You probably want to do Fl::add_fd() to add a callback to be called when your file descriptor is ready. This uses select() internally.

      The add_timeout() callback should be done as well. However you have to put your code in the timeout. You can't rely on it making wait() return, wait() will not return while the modal file chooser is up.

    11. Re:FLTK by Minna+Kirai · · Score: 1

      Alas, the networking code is very deep in a library I didn't write. Convincing it to reveal it's fds would take violent agressiveness.

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

      It also happens to be the one used by MySQL AB for their database interface - MySQLGUI, but:

      "Development of MySQLGUI has been suspended. Our current development efforts are directed towards the development of MySQL Control Center. MySQLGUI is a GUI SQL client for working with MySQL databases. MySQLGUI uses the FLTK GUI toolkit for its cross-platform support, as well as the FLTK Virtual Widgets library.".

      Apparently the development was halted in favor of the Qt toolkit:

      "MySQLCC uses Trolltech's Qt toolkit, which means it can run on Microsoft Windows and Unix environments, and we plan on support Mac OS X in future versions."

      Read more at www.mysql.com

    13. Re:FLTK by oingoboingo · · Score: 2, Interesting

      FLTK looks pretty awful though. We have a bunch of custom apps here at work coded in C++/FLTK and they don't look like they fit in anywhere...they look as alien on my KDE desktop as they do on a Windows 2000 box. They've got some weirdo widgets in there too...there's that one with the little rolling wheel that you use to increase or decrease a value...what's the deal with that?

      Actually, none of these things may actually be FLTK's fault...the guys who developed the apps haven't got an aesthetic bone in their bodies so maybe the shitty look of the apps is more due to them than the toolkit.

    14. Re:FLTK by captaineo · · Score: 1

      Ouch, sorry for you... Here is what to do: spawn a separate thread to handle the networking. Create a pipe between this thread and the main thread. The main thread, which is the only one to interact with FLTK, should use add_fd() to wait on the pipe. Whenever the networking thread needs the GUI to do something, it should write a message to the pipe. The main thread should read the message and then perform the appropriate action.

    15. Re:FLTK by Anonymous Coward · · Score: 0

      You seem to be a talented programer and are getting a load of crap for no good reason. Isn,t FLTK Open Source? If it is why not try and fix it yourself and give it back to the FLTK developers? I know that having to fix other peoples code can be frustrating. I bought TDI modulaII for my amiga why back when. It had a memory leak in the editor. When I told them about it they told me to spend 100 more and buy the source to the editor and then fix it! FLTK is different. Isn't it open source? If so go in and see if you can fix the code and then send it back to them so others can benifit. Isn't that the way open source is supposed to work.

    16. Re:FLTK by Deflatamouse! · · Score: 1

      I agree with you that a lot of the FLTK widgets are not very aesthetically pleasing, however IMO the toolkit itself is very nice, very easy to use. The FLUID tool helps alot as well. If somebody with more artistic skills would go in and design better looking widgets, it'd be great!

    17. Re:FLTK by spitzak · · Score: 1

      In fact in the newer versions of fltk there is an Fl::signal() function that does just that. On Unix it uses a pipe to signal the main thread, on Windows it uses some Windows thread thing, so it is portable.

  3. repeat by Anonymous Coward · · Score: 0

    Actually, it's been much less than 2 1/2 months since this question was asked.

  4. The web? by Gary+Franczyk · · Score: 0, Troll

    Well, until Microsoft took it over, the Web was a very good multi-platform development environment....

    1. Re:The web? by VividU · · Score: 2, Insightful

      Well, until Microsoft took it over, the Web was a very good multi-platform development environment....

      Your post is a mediocre troll at best, but what is interesting is that it was moderated to (+5 insightful).

      The Linuxites are out in-force tonight!

    2. Re:The web? by dimator · · Score: 4, Funny

      Hmm... ya, you're right. I remember the days when word processors and 3D modeling applications were all written in HTML and javascript for all to use... fucking microsoft...

      --
      python -c "x='python -c %sx=%s; print x%%(chr(34),repr(x),chr(34))%s'; print x%(chr(34),repr(x),chr(34))"
    3. Re:The web? by spongman · · Score: 1

      The funny thing is that for a long while IE was easily the most compliant of the popular browsers especially when it came to DHTML scripting. Of course, it also implemented plenty of stuff that wasn't in the spec and missed large chunks of stuff that was, but nobody forced you to use any of it.

    4. Re:The web? by 0x0d0a · · Score: 3, Funny

      It's okay. MS is putting all those complex technologies into rendering the current Start Menu.

  5. GUI/IDE flaw by Anonymous Coward · · Score: 0, Troll

    From the article: The best comparison table is apparently still the GUI Toolkit, Framework Page. Which is the best cross-platform GUI toolkit that provides native look and feel? Which is the best overall? What IDEs and other tools do you use? What are the problems?

    GUI toolkits and IDEs could be exploited if widely used.

    Ken Thompson who we all know and love from UNIX lore has written Reflections on Trusting Trust which describes just this problem.

    Imagine that you insert a backdoor into a compiler, so that everything the compiler compiles is trojaned. If the compiler detects that it is recompiling itself, it quietly reinserts the trojan code. The actual source code to the trojan might be wiped out, but as long as you are running infected binaries, it will keep popping up again and again.

    From the paper: "First we compile the modified source with the normal C compiler to produce a bugged binary. We install this binary as the official C. We can now remove the bugs from the source of the compiler and the new binary will reinsert the bugs whenever it is compiled. Of course, the login command will remain bugged with no trace in source anywhere."

    A very interesting read.

    1. Re:GUI/IDE flaw by antarctic · · Score: 0

      what you just said makes no sense

    2. Re:GUI/IDE flaw by Anonymous Coward · · Score: 0

      This is nothing new, however good to know because it is a possible exploit of a compiler. What I want to know is, how does it apply to the topic of a GUI/IDE? Obviously a compiler can be corrupted this way, but a compiler is only one component of a GUI/IDE but really not the main feature for the most part (since most compilers themselves are cheap/free anyways).

  6. Swing. by XNuke · · Score: 2, Insightful

    Seriously, the question wasn't limited to C/C++, which brings lots of other baggage besides teh GUI.

    1. Re:Swing. by Shade,+The · · Score: 1, Insightful

      Seriously, the question wasn't limited to C/C++, which brings lots of other baggage besides teh GUI.

      And Java doesn't bring lots of baggage?!

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

      Swing is.. well, HEAVY! Not to say its emulation of platforms make children laugh at your face. IBM's SWT is a lot better, take a look at eclipse and try to say it's not a 'native' application.

    3. Re:Swing. by timeOday · · Score: 1

      Would somebody please point me to a program with a *nice* UI made with Java Swing? Not a toy, but a news reader or something?

    4. Re:Swing. by Anonymous Coward · · Score: 0

      JEdit: www.jedit.org
      Intella-J: www.intellaj.com
      Together: www.togethersoft.com

    5. Re:Swing. by weo · · Score: 1

      www.theswingconnection.com

      has a ton of great swing apps.

      my favorites are intellij from idea, limewire and the World Cup MatchCast Applet priceless!

      --
      #=-weo-=#
    6. Re:Swing. by Anonymous Coward · · Score: 0

      Try Poseidon for UML, www.gentleware.com. A very professional full java app.

    7. Re:Swing. by grrussel · · Score: 1

      The following site has many, non trivial, applications. Some are even free. Swing Sightings

    8. Re:Swing. by macrom · · Score: 1

      LimeWire has a decent interface. In fact, I thought it was clean enough to start suggesting we use Swing and switch to Java for our next project. We'll see how that goes...

    9. Re:Swing. by Anonymous Coward · · Score: 0

      Ah, idea...great app. But you have it backwards:

      company: Intellij
      product: IDEA

      Even if you aren't into Java, you need to check this app out...it's what an IDE should be...

  7. HTML by Anonymous Coward · · Score: 0

    HTML 2.0 is still the best cross-platform GUI out there.

    1. Re:HTML by XNuke · · Score: 1

      I am dealing with this attidue with my current emplyer. HTML as a GUI really lack when you need need to cause change. There is no easy way to "push", so different UI elements can't really be informed when the data they are displaying is changed.

    2. Re:HTML by Deflatamouse! · · Score: 1

      UI elements can be changed through Javascript. Unfortunately, not all browsers are created equal in that aspect even though there is a standard out there. You end up having to restrict which browsers your user can use, which kills the multiplatform thing.

    3. Re:HTML by ksb · · Score: 1

      Isn't that what Javascript is meant to be for?

    4. Re:HTML by jaaron · · Score: 3, Informative

      Isn't that what Javascript is meant to be for?

      Well mostly. I think Javascript is wonderful when used correctly. However, the other poster still has a point:

      HTML as a GUI really lack when you need need to cause change. There is no easy way to "push", so different UI elements can't really be informed when the data they are displaying is changed.

      I recently had a project that we wanted to deliver over the web. We have a lot of data that we needed to display in real time graphically and have it dynamically updated while the user is viewing it. This is simple in a classic networked application by using a "push" method of delivering the data. However, for HTML and HTTP, AFAIK there isn't a good solution. Once the page is rendered, that's it. Either you continuously refresh the page or you have some sort of applet or other plug in running. Applets wouldn't suite our situation, so we eventually went for Java WebStart, but I really wish there had been some sort of solution that could have worked directly in the browser.

      --
      Who said Freedom was Fair?
    5. Re:HTML by dubstop · · Score: 1

      However, for HTML and HTTP, AFAIK there isn't a good solution. Once the page is rendered, that's it. Either you continuously refresh the page or you have some sort of applet or other plug in running.

      Use a Java servlet on the server side but keep the response stream open, this allows you to continue to 'push' data to the browser. Basically, this means not exiting the doGet (or doPost) method immediately after generating the content, as you would in a standard servlet example. A little bit of JavaScript on the client side can be used to continuously read this 'pushed' data.

      The last time that I did something like that, it was called 'pushlets'. I'm too lazy to google for it.

    6. Re:HTML by mpilsbury · · Score: 1

      It sounds like your requirements are quite a close match with AltioLive

  8. kinda ironic by cr@ckwhore · · Score: 2, Funny

    Kinda ironic that I'm seeing a .NET ad on this page

    --
    Skiers and Riders -- http://www.snowjournal.com
    1. Re:kinda ironic by Anonymous Coward · · Score: 0

      alanis get out of my COMPUTAR

    2. Re:kinda ironic by oPless · · Score: 1

      hmm ? what you say ?

      GTK# and QT# are two toolkits running on .NET and *nix (mono/pnet/perhaps rotor too).

      Monos Windows.Forms support is embryonic at the moment, but yeah I can see a time I can write something in VS.NET and have it run on linux too.

      So how is it ironic? you're obviously not up to date with current developments in the .NET arena.

      You should: "Think before you post", oh hang on this *is* /. hold on a sec ... what would you do in soviet russia ?

  9. Cocoa or GNUstep by kwoo · · Score: 5, Informative

    I personally think that Cocoa and GNUstep deserve to be mentioned among the best-designed toolkits around. Both follow the OpenStep guidelines rather closely, and the OpenStep guidelines are very well-documented on Apple's site.

    GNUstep is also quite portable -- I have used it on three or four platforms, and have no doubt that others work great. My only complaint about GNUstep is its idiosyncratic build system, but I believe that's a left-over from NeXTSTEP, the precursor to OpenStep.

    If you're interested in learning more about Cocoa and other OpenStep-compliant toolkits, check Apple's developer site and the Hillegass book, published by AW.

    1. Re:Cocoa or GNUstep by bsharitt · · Score: 1

      I've only used it on Mac OS X, but if it is as good on other platforms, it would definatly get my vote for the best toolkit.

    2. Re:Cocoa or GNUstep by Anonymous Coward · · Score: 0

      I'd thought about trying GNUstep, but the progress page at gnustep.org shows the development tools about 1/3 complete... how useful is that? Worse, I came across messages nearly a year old that seemed to indicate that little had changed since that time. If GNUstep is really a productive cross-platform framework, those guys should update the website to reflect it. The best tech in the world won't see daylight if nobody makes the effort to show it off.

      I'll give it a try... Cocoa rocks, and I'd love to use a similar toolkit and Objective-C on other platforms.

    3. Re:Cocoa or GNUstep by GnorpH · · Score: 1, Informative

      The GNUstep libraries are more than 1/3 complete. The GNUstep Base (FoundationKit) has version 1.5.1 and can be considered "complete" as far as this is possible. The GNUstep GUI (AppKit) has not yet reached 1.0 status but is almost there.

      Furthermore there is Renaissance, a new library which lets you implement crossplatform user interfaces for GNUstep and Cocoa in an easy manner. GNUstep Renaissance allows you to describe your user interfaces in simple and intuitive XML files, using an open, standard format describing the logic of the interface.

      http://www.gnustep.it/Renaissance/index.html

      --
      --- GnorpH
    4. Re:Cocoa or GNUstep by joto · · Score: 1
      I think you need to upgrade your sig:
      1. Go to Soviet russia
      2. A beowulf cluster builds you
      3. ???
      4. Profit!
    5. Re:Cocoa or GNUstep by root+66 · · Score: 2, Informative

      First, some resource for GNUstep (for the lazy ones):

      http://www.gnustep.org - Main GNUstep site
      http://wiki.gnustep.org - GNUstep Wiki, lots of tips and hints
      http://www.gnustep.net - collection of docs, Build Guide
      http://www.gnustep.it - Tutorials, applications, etc
      http://www.gnustep.de - some German translations but also English information

      Second, GNUstep makes pretty good progress these days. Gorm, the Interface Builder clone, is rather stable and _very_ nice to use. Also there is now Renaissance, another way to build an interface. (Renaissance is also usable on OS X!)
      Within the next months there will be a new and well done text system.

      The base system has been stable for about a year now, and the gui classes are mostly usable - a lot of gnustep applications were released some time ago.

      --
      -- I love the smell of Blue Screens in the morning.
    6. Re:Cocoa or GNUstep by Anonymous Coward · · Score: 0

      Building GUIs with a text editor... no thanks. Been there, done that, now I choose a more productive means to that end. When they've got a decent front end editor, they'll be in business. Until then, it's a waste of time.

    7. Re:Cocoa or GNUstep by GnorpH · · Score: 0

      A UI builder similar to IB but using Renaissance is
      definitly the missing piece. This will be done in
      the next future either by using Gorm.app for this
      purpose or by writing a new app.

      Anyway, most user interfaces tend to be quite simple
      (apply the typical 80% vs. 20% rule...) so for the
      most apps this will be a good way to write cross
      platform UI code.

      --
      --- GnorpH
    8. Re:Cocoa or GNUstep by jagapen · · Score: 1

      Hey, considering that Nicola released Renaissance mere weeks ago, the fact that it's stable, usable and highly cool on GNUstep and MacOS X is quite an achievement!

  10. Re:Just forget about cross-platform development. by Anonymous Coward · · Score: 0

    You forgot to mention that BSD is dying.

  11. Swing by Tom+Davies · · Score: 5, Insightful

    Swing is functional and cross-platform, free-beer, and widely understood.

    --
    I have discovered a wonderful .sig, but 120 characters is too small to contain it.
    1. Re:Swing by neitzsche · · Score: 1

      Bravo, and amen.

      --
      "God is dead." - Frederik Nietzsche
    2. Re:Swing by Minna+Kirai · · Score: 3, Interesting

      Swing works on a single platform: Java. And not all Java, either.

    3. Re:Swing by Anonymous Coward · · Score: 1, Informative

      Swing works on a single platform: Java.

      Yes. And Java is available for just about every OS platform.

      And not all Java [sun.com], either.

      FUD. The Swing API became part of the standard java API as of Java 1.2
      Of course, 1.2 != 1.3. That's why we have version numbers, brainiac.

    4. Re:Swing by viktor · · Score: 2, Insightful

      Swing might be cross platform, but it isn't native look-and-feel, which the original poster suggested the topic of discussion was.

    5. Re:Swing by Anonym0us+Cow+Herd · · Score: 1

      Swing might be cross platform, but it isn't native look-and-feel

      Swing has pluggable look and feel. Windows and Mac OS X programs in Swing sure look like native widgets to me. That is, they visually look native, although the implementation might not be, but could be.

      but it isn't native look-and-feel, which the original poster suggested the topic of discussion was.

      Then we better not have any discussion of GTK here. (Not a flame. Just an observation that GTK apps on Windows look anything but native.)

      --
      The price of freedom is eternal litigation.
    6. Re:Swing by viktor · · Score: 2, Insightful
      Yes, the easy part is getting the look right, natively or otherwise.

      But the feel is an entirely different can of worms. Then all the stuff like whether OK buttons are to the right or left, where the menu-bar is at, whether it's Ctrl+Q or Alt+Q or Cmd+Q to quit an application (and whether Quit means "close the active window" or "close all windows"), what dialog titles should be (or if they should be sheets as in Mac OS X) and everything else comes in to play.

      And without it, native look-and-feel isn't. ;)

      To be honest, I've yet to see anything that gets even close. Mac, Windows, KDE and Gnome have so different paradigms that it would be an incredible acheivment to create the first true native-look-and-feel-cross-platform toolkit.

    7. Re:Swing by goofballs · · Score: 1

      you're largely talking about programs that aren't programmed to be cross-platform then. the default menu bar location is fine for everything other than mac os; if your program might be run on macs as well, simply set the java property com.apple.macos.useScreenMenuBar=true to set the menubars mac style (it will be ignored by other platforms and they will still respond correctly.

      as for shortcut keys, they are *always* selected by the programmer in terms of the letter then choose to use (it's up to them to follow the programming guides), but the modifier keys (ctrl vs alt vs cmd) is easy enough- don't specify which one! use the system default modifiers- java.awt.Toolkit.getMenuShortcutKeyMask()

      as for the location of buttons, yeah, that can be an issue if you don't want to add extra code... everything else is cake.

    8. Re:Swing by JBhoy · · Score: 1

      Your comment is misleading. Java is cross-platform. Therefore, so is Swing.

      Your link references a widget set for PersonalJava. PersonalJava is a "Java-lite" for memory restricted applications. The context of this discussion doesn't appear to include development for a memory-restricted environment.

    9. Re:Swing by Anonym0us+Cow+Herd · · Score: 1

      Yes, the easy part is getting the look right, natively or otherwise.
      But the feel is an entirely different can of worms.


      You make a very good point.

      Some applications simply don't care. If they look "mostly" native, great. So for those, everything is just fine.

      For others, the programmer must go to extra effort.

      I can see a couple approaches. Maybe they are actually endpoints of a spectrum?

      Architect your program as a front-end and back-end. (Mathematica?) Your model and document classes represent the entire model state of the document, including current "undo" levels, etc. But nothing visual. A seperate "front-end" set of code visualizes the document/model state and sends messages to it to affect changes. MVC or as I do it: Model and ViewController. I actually divide the back end into a Model that generates ModelState objects. The Document has an undoStack that keeps previous ModelState objects generated by the Model. When a change is made, the Model generates a new ModelState object. Several ModelState objects may share significant data structure. (Isn't garbage collection wonderful?) For instance, a 3D modelling program's ModelStates might share a huge amount of data, except for the object, and its parents which were changed. A "Photoshop" application's ModelStates might point to a new huge set of pixels in the now-larger tempfile.

      The Model also keeps the UI informed of which actions are appropriate on the current ModelState. (For instance, since nothing is selected, some commands should be disabled. Or the selection doesn't permit certian operations at present. The back-end doesn't care weather the Copy command is presented as an Edit->Copy menu choice, or as a toolbar button, or both, or something else. But the UI can keep the enabled/disabled state of the Copy command synched with what the back-end says.

      Using this approach I can build multiple front-end UI's onto the back end. Different UI's can visualize the ModelState in different ways. Multiple UI implementations could share a lot of code that draws the model to the screen. The UI itself has ViewStates. Multiple ViewStates might be in an "undo" stack so that you could undo a ViewState change, such as Zoom 500%, which didn't actually change the back end model any, but did affect how it appeared on screen. The two ViewStates could both be pointing to the same ModelState object. The UndoCommand goes back to the most recent ViewState. (The ViewState changes whenever the back end offers up a new ModelState.) Therefore "undo" becomes very easy to implement. You could even save undo states into the document if desired, or if the user so elects under Tools->Options, or is it Edit->Preferences? Which brings us back to...

      A second implementation approach is to have one front end UI, but have it programmed to adapt to the platform. Not only do you set a pluggable look and feel during startup, but you also customize things such as shortcut keys, where the menu bar appears, and the how dialog boxes appear. I might be more likely to adopt this approach, unless one platform called for a very different UI. I've only implemented one UI for my application.

      These two approaches might be a spectrum rather than just two endpoints.

      Still, by using an architecture, as I describe above, which I have actually implemented (in a yet-to-be-distributed program that I will undoubtedly open source), you have the flexibility to use the back end with different front-end's. I could build a web based interface to my application. Or an MDI application. Something that is a floating properties window could become a modal dialog box, or a tab panel on the main window. Multiple different visualizations of the same ModelState could be presented.

      --
      The price of freedom is eternal litigation.
    10. Re:Swing by Minna+Kirai · · Score: 1

      Java programs aren't cross-platform. Otherwise I could download a single package to run on whatever OS I have.

      Java is a platform, or at least Sun calls it that. Following that reasoning leads to absurdities like claiming Super Mario Brothers or StarCraft are cross-platform, since they work in emulators. You could say I'm being pedantic, that "running on a platform on platform A" is practically equivalent to "running on platform A", but that's not so.

      To the point, suggesting the use of Swing imposes serious limitations on the project- mainly that it has to be written in Java and run on a JVM. The performance penalties are appreciable. (It is possible to use Swing to display a non-Java program, but ugly and impractical).

      The other GUI toolkits that got good recommendations generally have multiple language bindings for them

      PersonalJava is sold on devices with 64 megabytes of RAM, or even more.

  12. SWT using Eclipse by DamienMcKenna · · Score: 3, Informative

    The SWT engine in Eclipse seems pretty cool - rather than using Java's standard slow SWING engine you get a toolkit that passes through to the native UI, which results in a much more responsive application.

    1. Re:SWT using Eclipse by Anonymous Coward · · Score: 1, Interesting

      the issue with SWT seems to be openGL support. since the only current openGL support with Java seems to be thought Java3D which is tied in with Swing and Swing and SWT dont get along. this is all from readin posting on the SWT-dev mailing list. so if anyone has any idea on SWT+openGL, let me know!

      Keet it real homies!

    2. Re:SWT using Eclipse by Anonymous+Hack · · Score: 1

      Here's the thing. So we have this fantabulous library that translates your widgets into native widgets. Now we want a Window to have a text box that is 80 chars wide, and below it a radio button with 2 choices. On one platform your text box is 300 pixels and one radio button choice is 150 pixels, so it looks damn good. On the other platform your text box is 300 pixels and one radio button choice is 100 pixels, so your radio buttons are left-aligned and it looks gay. So you center your radio buttons and it still looks gay. Then on another platform your text box is 300 pixels and one radio button choice is 200 pixels, so your text box is left-aligned and it looks gay. So you center you text box and it still looks gay. So you stretch your text box and then it's more than 80 characters and when the user types it wraps BEFORE the text gets to the edge of the text box and they call in complaining the app has bugs.

      THESE ARE THE PROBLEMS, PEOPLE! It's all fine and dandy if you're using native widgets, but that doesn't count for anything if your widgets are different sized and/or shaped on different systems, because it'll screw up the whole layout of your app. There are very few real-world instances where the user interface design isn't explicitly tied to the underlying windowing system. Something is bound to look different or "wrong" if you design it cross-platform, and while that might not matter for an open source app, it matters Very Much when you're trying to sell a product.

      --
      I got a sig so you would remember me.
    3. Re:SWT using Eclipse by mamba-mamba · · Score: 1

      This is a fundamental problem with cross-platform development using layout managers.

      It isn't a criticism particular to SWT. Since the original post specifically asked about cross-platform GUI's, I think your criticism is out of place (off-topic) quite frankly.

      MM
      --

      --
      By including this sig, the copyright holders of this work or collection unreservedly place it in the public domain.
    4. Re:SWT using Eclipse by mamba-mamba · · Score: 2, Informative

      Actually, you would think that a native widget app would be faster, but lots of people claim that SWT + gcj (or javac) is NOT faster.

      I've never done a benchmark myself.

      I do suggest that people who want to try SWT plus GCG go to my sourceforge project, libswt.

      --
      MM

      --
      By including this sig, the copyright holders of this work or collection unreservedly place it in the public domain.
    5. Re:SWT using Eclipse by Anonymous+Hack · · Score: 1

      I wasn't aiming it at SWT, it was just a general comment about all cross-platform toolkits that use native widgets (note that using non-native widgets, a la Swing solves this problem). It's just something else to think about when you plan on developing a cross-platform GUI, and i thought it was pertinent to the discussion. The story poster needs to decide what's more important: that an application looks the same across each platform, or that an application "blends in" on each platform where it is deployed (knowing that it'll never look as good as it would've if it'd been coded for each platform specifically).

      --
      I got a sig so you would remember me.
    6. Re:SWT using Eclipse by Anonymous Coward · · Score: 0
      while that might not matter for an open source app, it matters Very Much when you're trying to sell a product


      Which makes your idiotic rant all the more laughable since Eclipse forms the basis for a shitload of cross-platform commercial software. Good thing you are an "anonymous" hack, because clearly you wouldn't be successful in the real world.

    7. Re:SWT using Eclipse by bmetz · · Score: 4, Insightful

      As someone who writes SWT and eclipse apps for a living, I can say quite definitively that if you're aligning your widgets based on assumptions about pixels and whatnot you are in fact a moron. Microsoft won't let you use their logos with any app that does this either; they know that when Microsoft Windows 2008 comes out they might drastically change what your Win32/MFC calls produce on the screen and they want you assuming as little as possible. No professional programmer hacks it until it works, and if they do, it's certainly no more SWT's fault that it is GTK's fault when someone in a right-to-left language finds out how you didn't stick to the recommended methods.

      Layout in SWT can be done any number of elegant cross-platform ways and only as an absolute last resort should you ever have to use absolute pixel amounts. And don't think this is just a cross-platform issue -- people who jack their font sizes for certain widgets up (namely, me) but not others find improperly laid out controls very very quickly. I can vouch that Eclipse in fact does not have much of this if at all. Typically, if you're coding this way, you need to go back to Layout Managers 101.

      --
      What did you eat today? http://www.atetoday.com/
    8. Re:SWT using Eclipse by Anonymous Coward · · Score: 0

      Errr, pot, meet kettle.

    9. Re:SWT using Eclipse by Anonymous+Hack · · Score: 1

      The bottom line is however good your tools are, however much you code your layouts to be "75% of this, stretched out as far as possible, but with 5% padding on each side" it's the pixels that finally matter. Certainly you shouldn't be doing Widget.setWidth(100px) but the user sees the pixels, not the percentages, and if the pixels don't line up between certain widgets, the user isn't going to be all that impressed with the look of the app. My point was if you develop specifically for one platform you can be assured that it's going to look a certain way no matter who views it. Of course it might still look okay if they upgrade their OS, but most of the time you see programs update with the OS. Even old MS apps themselves don't take advantage of the newest OS widgets if you don't code them that way - take a look at Event Viewer from each version of NT, for example. Or try running anything that uses "*" for passwords instead of those balls that XP does - unless it linked in the XP library first it's going to keep on having asterisks.


      --
      I got a sig so you would remember me.
    10. Re:SWT using Eclipse by Anonymous Coward · · Score: 0

      I would be faster, but the main problem with SWT on the Unix side is, face it, GTK2. According to the Eclipse newsgroup archive, the developers ran into myriads of small problems beginning from the container layout handling to implement a z-ordering of components on top of GTK2 in eclipse because GTK2 either does it differently or does it none at all. No wonder that performance is dragged down. If you look at the windows side, things are quite different and eclipse is blazingly fast.

    11. Re:SWT using Eclipse by mamba-mamba · · Score: 1
      I[t] would be faster, but the main problem with SWT on the Unix side is, face it, GTK2. According to the Eclipse newsgroup archive, the developers ran into myriads of small problems beginning from the container layout handling to implement a z-ordering of components on top of GTK2 in eclipse because GTK2 either does it differently or does it none at all. No wonder that performance is dragged down. If you look at the windows side, things are quite different and eclipse is blazingly fast.
      Well, just for the sake of completeness, I should mention that in the *nix world, you can choose from the gtk version and the motif version of SWT.

      MM
      --

      --
      By including this sig, the copyright holders of this work or collection unreservedly place it in the public domain.
    12. Re:SWT using Eclipse by mamba-mamba · · Score: 1
      I wasn't aiming it at SWT, it was just a general comment about all cross-platform toolkits that use native widgets (note that using non-native widgets, a la Swing solves this problem). [emphasis added]
      Hmm. A counter-example. OK, I withdraw my allegation of off-topicness. Swing is, by all accounts, VERY consistent across platforms, and is about as cross-platform as you are likely to get. The only hassle, then, (for some people,) is the Sun controlled IP, etc.

      MM
      --

      --
      By including this sig, the copyright holders of this work or collection unreservedly place it in the public domain.
    13. Re:SWT using Eclipse by Foresto · · Score: 1
      "The bottom line is however good your tools are, however much you code your layouts to be '75% of this, stretched out as far as possible, but with 5% padding on each side' it's the pixels that finally matter. Certainly you shouldn't be doing Widget.setWidth(100px) but the user sees the pixels, not the percentages, and if the pixels don't line up between certain widgets, the user isn't going to be all that impressed with the look of the app. My point was if you develop specifically for one platform you can be assured that it's going to look a certain way no matter who views it.

      Wow; I'm glad you're not coding my web site. The situation you describe is very much like web programming, using HTML/CSS/Javascript/whatever. Many web sites were coded using the "develop specifically for one platform" method you describe, and they do in fact look great on that platform. On the other hand, they are frequently ugly or downright broken on other platforms. In almost every instance, this problem could have been avoided without sacrificing appearance or functionality, if the developer had used the available tools effectively.

      My experience with cross platform application GUIs has been very similar. It may take a bit more care, and better understanding of the toolkit, but it can be done well.

    14. Re:SWT using Eclipse by Anonymous Coward · · Score: 0

      Its not just about Windows 2008 either, the Asian versions of Windows uses slightly larger fonts than the Western versions. If the layout is by pixels then edit boxes, labels etc. aren't big enough and the bottom part of the text is missing.
      This (still) happens often enough to be worth mentioning, not everyone has 'got it' yet.

    15. Re:SWT using Eclipse by Anonymous+Hack · · Score: 1
      Wow; I'm glad you're not coding my web site.

      That's a bit of a red herring :-) Web sites are completely, completely different. You don't know what browser your readers are going to be using, you don't know what platform... I am totally in support of cross-browser compatibility. When you develop commercial software applications, on the other hand, you know exactly what you're developing for because the platform is stated explicitly in the statement of user requirements. Of course if the user requires their app run on two platforms then you're going to have to take a different approach. I agree that it's absolutely possible to develop your app so it displays completely perfect on every platform, but the question is will making it perfect be just as much effort as building your own API abstractions for each platform in the first place?

      --
      I got a sig so you would remember me.
    16. Re:SWT using Eclipse by sbrown123 · · Score: 1

      See GL4Java.

    17. Re:SWT using Eclipse by @madeus · · Score: 2, Insightful

      No professional programmer hacks it until it works

      I think that is evidently not true.

      Sadly, layout managers cannot do everything a developer can envisage with out such pixel based kludging. In particular, cross platform layout managers are almost guaranteed to give you an aesthetically (and often functionally) ugly result on at least one platform.

      While it is important to make applications behave 'correctly' under varying conditions, such as UI theme's (a topic around which there is a big debate), resolution and font size, it is not acceptable that developers should design programs within the confines of an inadequate layout manager, particularly when the know the layout manager is not up to the task.

      I'd also add that it is utterly unreasonably for developers to be forced to build UI's that are governed by the possibility of major changes in the way user interfaces are rendered on screen by the operating system - changes that may or may not happen, and if they do, will not happen for another 5 years.

      If an operating systems developer such Microsoft decide that they wish to drastically change how a user 'views' an app, applications should re-released with that new approach in mind. Existing UI's should not be 'shoe horned' into working with a drastically new approach, and they should certainly not be limited by the requirement that they may be subject to unforeseeable changes in the way the widget-rendering API's behave.

      I think to argue otherwise is to undervalue the importance of a good User Interface.

      Case in point:

      Microsoft applications for Windows CE required that you not provide any way to quit the application - if you did you were not allowed to use the Microsoft logo in conjunction with your product. This of course was a fiasco and made WinCE devices usable (without a 3rd party hack to work around the problem).

    18. Re:SWT using Eclipse by goofballs · · Score: 1

      java3D is *NOT* tied in with swing; in fact, java3d is a heavy weight component and care must be taken to get it to play nicely with swing...

  13. **DUPE ALERT** by Anonymous Coward · · Score: 0

    OK - so this is a dupe, posted last month, we all know this by now. Now, if this happened at the BBC website, or the NY Times website (and this happens from time to time) - what would happen? Answer: they pull the story. That's right, yank it off the page.

    Why don't /. editors do that? I have no idea. Maybe b/c they're all fg8s? Who knows.

  14. TK... by velcrokitty · · Score: 5, Informative

    Nice and portable and reasonably consistent feel and appearance.

    And for those who like to use it in a scripting environment, use it as is. Use it with Perl, C, C++, etc...

    --
    I stick to walls...
    1. Re:TK... by Xtifr · · Score: 2, Interesting

      I have to strongly agree, it's simple, it's reasonably clean, it's popular, it's been around long enough to well supported and accepted. And it runs on just about anything out there. And it's the default widget set for most of the most popular scripting languages: perl, python, ruby, and of course, tcl. Yet somehow it stays apolitical.

      Of course, I may be accused of bias, since I'm the new Tcl/Tk maintainer for the Debian project. But in all honesty, I don't even care that much for tcl. It's ok, but nothing to write home about. It's tk I like, and tk that made me willing to adopt these packages.

    2. Re:TK... by lunenburg · · Score: 1

      I agree - I was able to build a very functional GUI app in Perl/Tk after going through the book "Learning Perl/Tk".

      As a bonus, the code runs under both X and Win32, which means some non-Linux folks have been able to use it with just a few checks of $^O. It's been great. I looked into WxWindows a few months ago, but the documentation was nowhere near as complete as Perl/Tk's is.

    3. Re:TK... by DavidNWelton · · Score: 3, Interesting

      Tcl/Tk is great. Lots of people certainly get great mileage out of it doing "quick and dirty", but if you design your code right, it can be quite clean as well. Tcl is flexible enough, and has enough of its C API exposed that you can load OO as an extension - [incr Tcl] is a popular one, if you want to do OO. Of course, it's possible to do "design patterns" kinds of things even without that, you just have to be clever about it.

    4. Re:TK... by RussP · · Score: 2, Informative

      Check out GVI, the Graphical Voter Interface, which I wrote in Tcl/Tk. I think it's pretty cool.

      --
      I watch Brit Hume on Fox News
  15. Eclipse by asv108 · · Score: 4, Informative

    If your looking to Java for cross-platform development and cli is not your thing, Eclipse is a nice IDE that works nicely on windows and linux. Its also open source.

    1. Re:Eclipse by CyberDong · · Score: 1

      Just saying eclipse is going to lead to a host of "But Java's too slow" replies. What makes eclipse such a great choice is the SWT components. Not only do you get a great IDE, but you get native speed in the components, with a changeable look & feel. And the "free" part helps too...

    2. Re:Eclipse by cow_licker · · Score: 1

      CAn anyone tell me what license Eclipse is under? Also, no one seems to be mentioning Gtk, how does it stack up?

      --
      $_='while(read+STDIN,$_,2048){$a=29;$b=73;$c=142;$ t=255;@t=map{$_%16or$t^=$c^=($m=(11,10,116,100,
    3. Re:Eclipse by Anonymous Coward · · Score: 0

      Can SWT apps still be distributed using Java Webstart?

  16. kettle? by SweetAndSourJesus · · Score: 0, Offtopic

    I'm not the original poster, but farking?

    Better not let teacher catch you reading slashdot, son.

    --

    --
    the strongest word is still the word "free"
  17. Well, what about .NET? by rjamestaylor · · Score: 1
    Beyond the irony of the .NET ad on the page, do any developers care to comment on .NET toolkit in a cross-platform development environment?

    I keep hearing about how .NET speeds up development work--how exactly? (Sorry, I'm a perl/c/db/vi programmer and haven't touched .NET's GUI toolkit, yet).

    --
    -- @rjamestaylor on Ello
    1. Re:Well, what about .NET? by spongman · · Score: 3, Informative
      some nice screenshots:
  18. Tcl/Tk is the past and future king by nuzoo · · Score: 5, Insightful

    If you're talking about true cross-platform compatibility, combined with ease of development and deployment, then Tcl can't be beat. It's always been good, but recent developments, such as the Starkitpackaging and runtime system, make it a hands-down winner.

    1. Re:Tcl/Tk is the past and future king by Anonymous Coward · · Score: 0

      Yeah, one hell of a king with its only creding being bunch of half-usable apps available on Unix about most of which nobody gives a fuck anyway.

    2. Re:Tcl/Tk is the past and future king by Anonymous Coward · · Score: 0

      are there mod points for optimism ? ;)

      thanks for the reference , I've used tclkit and found it really convenient. It's good to see that it's advancing.

    3. Re:Tcl/Tk is the past and future king by nuzoo · · Score: 2, Informative
      "available on Unix" ? Au contraire. In fact, the overwhelming majority of Tcl developers distribute their apps for Windows these days, though those apps will typically run on just about any platform without changing a line of Tcl code.

      A sampling of companies heavily reliant on Tcl can be seen at http://www.tcl.tk/customers/success/

      The Tcler's Wiki is probably the hub of the most activity: http://mini.net/tcl/0

      A brief list of cross-platform Starkits available is at http://mini.net/sdarchive/ though the Starkit system makes it trivially easy to package and distribute complete applications for multiple platforms. For an impressive display of what can be with a Tcl Starkit, you can check out Kitten, which is "a tclkit collection of [over 100] Tcl/Tk extensions aimed at reducing the work a developer has to do while developing a starkit. It contains script and compiled extensions like tcllib, BWidgets, expat, Expect, incr Widgets, mclistbox, mpexpr, narray, a tcl parser, an sgml parser, tclSOAP, stooop, Supertext, tdom, Tix, Tktable, tclXML, tkHtml, ClassyTk and others."

    4. Re:Tcl/Tk is the past and future king by Lucas+Membrane · · Score: 2, Interesting
      I agree ... except that it doesn't respect screen settings very well on Windows. About 15% of apps written in Tcl don't work ok on my machine, either the window doesn't fit on the screen (because it's 800 x 600) and the programmer forgot to add a scroll bar, or the text doesn't fit in the window (because it's large fonts), or I can't read the text, because it doesn't come out in large fonts. HTML has similar problems, particularly lots of stuff that doesn't fit into the designated frames and often the scroll bars are not present on the frames.

      There are about 130 relatively plausible configurations of screen size and fonts under Windows. There are very few toolkits that will work well with all of those, and that's on just one platform. I know of someone who tested Delphi and VB against all the combinations and found that they each worked well with only about 90%. Cross-platform that will handle all the variations on multiple machines and look good and make it possiblt to put a reasonable pantload of data on the screen regardless -- likely impossible.

  19. Re:Just forget about cross-platform development. by vandel405 · · Score: 1

    You is brain dead!

  20. Java by gUmbi · · Score: 3, Insightful

    This might be a little too obvious, but how about Java - a cross-platform language, API and GUI framework.

    And, if the speed of Swing bothers you, you can try IBM's SWT toolkit. I'm very impressed with it so far.

    Jason.

    1. Re:Java by plierhead · · Score: 5, Insightful
      The question is, at best, a little too simplistic: Which is the best cross-platform GUI toolkit that provides native look and feel? Which is the best overall?

      I myself would favour Swing over others, though I'm really only fully conversant with MFC. But I fully realise that it depends what you're doing.

      If you're building a mass-market app you plan to sell you all of the great unwashed out there, then you probably need to make it look very Windows-centric. Practically speaking, something like a turbo tax is probably going to get 99% of its revenue from Windows users. Its crazy to use anything - like Swing - that doesn't give you the best, most up-to-date look on Windows (though Sun would claim it is native look and feel). Use MFC or something like that.

      If on the other hand you're building something like an IDE, other factors come into play. The fact that your app runs on linux as well as Windows will probably be a key sales point to your target audience. And your app is probably far more complex than a mass market app - meaning you need good productivity and a strong underlying architecture(which, IMHO, Swing gives you). Your users are likely to care less about the memory requirements of a technology like Swing.

      Or as a final example, if you're writing a game, then screw their sheety GUI ! Code everything yourself from lines, dots, and mouse events. Make your list boxes scrollable using human skulls as thumbtabs, have rats running up and down inside your text fields to show focus. (personally I would also use Swing for this but realise that may be straying into personal predjudice).

      In summary, its no good saying "whats best". It depends on what you're coding.

      --

      [x] auto-moderate all posts by this user as insightful

    2. Re:Java by FattMattP · · Score: 1
      If you're building a mass-market app you plan to sell you all of the great unwashed out there, then you probably need to make it look very Windows-centric.
      I think that the success of programs like Winamp and Trillian have successfully countered that argument.
      --
      Prevent email address forgery. Publish SPF records for y
    3. Re:Java by afidel · · Score: 2, Interesting

      Yeah and winamp pisses me off for not using the native widgets all the time. When I upgraded to XP minimized winamp windows would leave a little block under the start bar, this was fine as long as you didn't have autohide on, if you did it was kind of rediculous looking and it would not re-maximize from this state. Another problem is that a vbscript I have bound to one of the keys on my internet keyboard allows me to minimize and maximize any windows, except it doesn't work with winamp because the standard calls don't work! There are sucessfull non-native products out there including for many years winzip, however in general I would say that sticking to the native tools is a definite plus.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
    4. Re:Java by Anonymous Coward · · Score: 0

      This may be dumb, but how typical of Swing programs is jfig (oh, google it yourself), cuz it's a burining hunk of crap currently. Could someone point out a Swing app that does something and will run on, say, a P2 class machine?

    5. Re:Java by gfxguy · · Score: 1

      I love Java, I really do...

      However, I'm ready to put a bullet in my head after trying to develop a cross platform application that runs on Mac OS 9. I don't know who dropped the ball on this, Apple or Sun (I suspect it's mostly Apple's fault), but I can't go past Java 1.1.8 and the early implementation of Swing.

      I can't use SWT. And that early swing implementation appears to be pretty buggy.

      Yes, I'm an idiot... they asked if I could write a program for the Mac and I said "yeah, sure, I'll just use Java!"

      --
      Stupid sexy Flanders.
  21. X-Platform GUI Toolkits by GQuon · · Score: 2, Funny

    I'm sure Microsoft will provide GUI toolkits for the X-Box themselves. They don't need a bunch of geeks working on some kind of open source solution. Everybody knows that open source is just a fad. Microsoft said so.
    ;-)

    --
    Irene KHAAAAAAN!
  22. java SWING by Anonymous Coward · · Score: 0

    numbnuts.

  23. Different paradigms, different toolkits by ObviousGuy · · Score: 1, Insightful

    The biggest difficulty in creating cross platform toolkits is resolving the different paradigms inherent in each platform.

    X is based on a networking concept where anyone can access anyone else's screen as a network resource. This leads to multi-threading issues as it is possible for two people to use the same desktop, even same application, simultaneously. As a result, toolkits that have their origins in that environment like GTK and wxwindows have strong multi-threading support not to mention strong networking support.

    OTOH, Windows was built around a single user concept, which from a networking perspective is more secure because a person's desktop isn't a networking resource (but that's neither here nor there). This results in the base windowing subsystem's reliance on processes as the fundamental object of execution (as opposed to threads). So toolkits built upon Windows (MFC, OWL, QT) are able to harness Windows's windowing support in a way that more easily and effectively takes advantage of the features of the subsystem.

    Attempting to port one toolkit from its home platform to a foreign platform leads to problems of "look and feel". AWT and Swing are prime examples of toolkits that look strange whereever they are used. Likewise, wxwindows feels funny running on Windows and GTK looks funny. Hell, MFC doesn't even run on X.

    What this all boils down to is that cross-platform development is always going to have limitations because the roots of each toolkit will decide its look and feel as opposed to the platform itself deciding the look and feel according to the platform's native interface.

    --
    I have been pwned because my /. password was too easy to guess.
    1. Re:Different paradigms, different toolkits by TummyX · · Score: 2, Informative

      What a load of crap.


      X is based on a networking concept where anyone can access anyone else's screen as a network resource. This leads to multi-threading issues as it is possible for two people to use the same desktop, even same application, simultaneously. As a result, toolkits that have their origins in that environment like GTK and wxwindows have strong multi-threading support not to mention strong networking support


      Your conclusion doesn't follow from your premise. The X *protocol* isn't the reason why GTK and wxWindows have strong multithreading support.


      This results in the base windowing subsystem's reliance on processes as the fundamental object of execution (as opposed to threads).


      What a load of crap. Processes as the fundamental object of execution as opposed to threads? Do you even know what a thread is? Every process in Windows has at least one thread.

      So toolkits built upon Windows (MFC, OWL, QT) are able to harness Windows's windowing support in a way that more easily and effectively takes advantage of the features of the subsystem.


      Yeah, whatever. QT works the same on Windows as it does on Unix.


      Attempting to port one toolkit from its home platform to a foreign platform leads to problems of "look and feel".


      Well this doesn't even have anything to do with the networking issues you raised before. It's all about how you draw the UI widgets.


      AWT and Swing are prime examples of toolkits that look strange whereever they are used.


      Idiot. AWT uses native widgets. And Swing could be made to look practically identical to the native OS. It's all about how you draw the widgets and there's not much stopping Swing from getting it pixel perfect.


      Likewise, wxwindows feels funny running on Windows and GTK looks funny. Hell, MFC doesn't even run on X.


      What about wxWindows 'feels funny'? And MFC *does* run on X, there are Unix ports. Though, why you would ever want to use a monstrosity like MFC is beyond me.

    2. Re:Different paradigms, different toolkits by Anonymous+Hack · · Score: 4, Informative
      Idiot. AWT uses native widgets. And Swing could be made to look practically identical to the native OS. It's all about how you draw the widgets and there's not much stopping Swing from getting it pixel perfect.

      Except when you introduce "themes" a la 99% of X users or more and more Windows users (as XP is adopted). This renders Swing more or less useless if you want the application to blend in to the rest of the windowing system.

      Additionally, Swing is still all tied up in The Way You Code It. We have an application that uses Swing but we have to force it to use the Metal/Steel/whatever-it's-called look-and-feel because we had expanded the widget set to do various other things that just Didn't Work when they were in the Windows look-and-feel. This is the reason why i coded it in AWT first, because it was supposed to run on Windows, but because Sun never fixed the bugs (i think there are still plenty in their bug database i entered that are still open or ignored) we had to convert to Swing... and now we have a weird-looking app for both Windows and X users.

      One of the KEY problems in GUI development that i see is fonts. Fonts are fucked up and all different between the windowing systems, and this was precisely the reason why we needed to implement our own widgets in Java. The names of fonts are different, the sizes they are are different, the way they're rendered is different... Yuck. We ended up having to make a flakey, probably illegal font pack for Linux, made up out of MS fonts, just to use Linux as our development platform, and even then they didn't render exactly the same (especially when we needed a widget to be a specific fixed width). From what i understand, MacOS does it different all over again. This is even a problem in supposedly cross-platform HTML too. Fonts just suck.

      I could go on forever about this, about how GTK applications look like shit under Windows (they don't "refresh" or "paint" properly for starters), most every client app written in Java that's more complex than a JDBC form looks weird under Windows, ugh. I think the original poster is conceptually correct in what he was saying. Unless MacOS, X and Windows all start using a common method to implement themes and font rendering, cross-platform GUI development is going to continue to be utter hell.

      --
      I got a sig so you would remember me.
    3. Re:Different paradigms, different toolkits by TummyX · · Score: 1


      Except when you introduce "themes" a la 99% of X users or more and more Windows users (as XP is adopted). This renders Swing more or less useless if you want the application to blend in to the rest of the windowing system.


      Bullcrap. The XP theme for Java can simply call Windows metrics/theming apis to do proper theming. A similar thing could be done for GTK etc.

    4. Re:Different paradigms, different toolkits by Anonymous Coward · · Score: 0

      And doing so introduces a step that would be unnecessary when using native widgets.

    5. Re:Different paradigms, different toolkits by TummyX · · Score: 1

      So?

    6. Re:Different paradigms, different toolkits by Anonymous Coward · · Score: 0

      So using a toolkit like GTK or Swing only makes your application worse off than using a good cross-platform toolkit like wxwindows.

    7. Re:Different paradigms, different toolkits by Anonymous+Hack · · Score: 1

      And what about the other 99 themes for Java that will be needed to fit in with all the X themes? And any other themes that may be introduced to Windows XP version 2? I'm not trying to be anti-Java here, i coded in it for over a year and enjoyed it, but please don't make out like Swing is going to solve all the cross-platform GUI development problems, because it just won't. (It would be nice if you read the rest of my post next time too, by the way.)

      --
      I got a sig so you would remember me.
    8. Re:Different paradigms, different toolkits by TummyX · · Score: 1

      Where did I say that Swing is going to solve all cross platform GUI development problems?

    9. Re:Different paradigms, different toolkits by joto · · Score: 4, Informative
      This would be very informative, if it wasn't for the fact that it was all wrong.

      And I mean it. You would probably be hard pressed to find even one correct sentence here. For those interested, here are a couple of refutations.

      X is based on a networking concept where anyone can access anyone else's screen as a network resource.

      Wrong. Only those with permission can access it. But that would be programs, not people. For people to access the screen, they would have to physically be there, and that is no different than any other windowing system.

      This leads to multi-threading issues as it is possible for two people to use the same desktop, even same application, simultaneously

      Wrong. While many people can sit in front of one computer if it's enough space for them, that doesn't mean anything will be more multithreaded. Also, the display server will have to do exactly the same kind of resource multiplexing as it does on windows (whether the apps displaying windows are executing remotely or locally is of little difference, they are still in different threads and usually also different adress spaces).

      As a result, toolkits that have their origins in that environment like GTK and wxwindows have strong multi-threading support not to mention strong networking support.

      Wrong. Few, if any, X11-toolkits support multithreading. This is a direct result of the age of the X11 core libraries, which themselves does not support multithreading. Most everyone agrees that this is a bug, but it's also one that's hard to fix.

      OTOH, Windows was built around a single user concept, which from a networking perspective is more secure because a person's desktop isn't a networking resource (but that's neither here nor there).

      Wrong again. How do you think those Citrix farms work? Windows isn't built around a single-user concept any more than Unix is (I am talking about NT/2000/XP of course). It might be the case that your typical windows distribution is only useful for one user at a time, but the underlying technology very much supports several users. As for not exposing anything on the network, sure that makes it more secure. Nobody in their right mind allows X11 through their firewall. But windows has plenty of other security holes.

      This results in the base windowing subsystem's reliance on processes as the fundamental object of execution (as opposed to threads).

      Again wrong. XFree86 uses a simple request-response loop (no threads or processes). There do exist multithreaded X-servers however, but not for the reasons you say. Mainly, if they are multithreaded, it is purely for performance-reasons.

      Whether processes or threads are used, have absolutely nothing to do with networking, but more to do with taste, and programmer preference.

      As for windows, it uses threads. Lot's of them, so even there, you are wrong.

      So toolkits built upon Windows (MFC, OWL, QT) are able to harness Windows's windowing support in a way that more easily and effectively takes advantage of the features of the subsystem.

      I fail to see any correspondence between the "cause" and the "conclusion" here. In any case, it is wrong. On the other hand, windows is a more mature and stable GUI platform. And this is more than enough to explain why X11 GUI's generally suck in comparison (even when they are cross-platform).

      Attempting to port one toolkit from its home platform to a foreign platform leads to problems of "look and feel". AWT and Swing are prime examples of toolkits that look strange whereever they are used. Likewise, wxwindows feels funny running on Windows and GTK looks funny. Hell, MFC doesn't even run on X.

      True. However, MFC apps can (more or less) run on X11, if you want to pay enough for it, and you really need it. There are companies selling that sort of thing.

      What this all boils down to

      Well, the only thing it can boil down to, is that either you are a troll, or someone seriously likely to talk out of his ass about anything he doesn't know about.

      The final "conclusion" is obviously right, but I fail to see why you needed all the errors above to "support" it.

  24. MFC/Qt/GTK by Wheaty18 · · Score: 1

    MFC is ugly, and is even more apparent when compared to Qt and GTK.

    Although a 'net' by definition is full of holes, VB.NET is a good way to do things under Windows (it isn't any faster/slower than C#).

    There's always Java... ;)

    1. Re:MFC/Qt/GTK by Malc · · Score: 1

      Ugly only to the programmer. But they're not important, are they? What's important is does the product look good to the end user? MFC does a much better job under Windows than say GTK. I installed Everybuddy the other day, but couldn't stand its hideous UI. I mean, what's up with the menus that don't disappear when I click on another app and carry on floating above everything? It triggered horrid flash-backs to the GIMP's horrible Win32 UI.

    2. Re:MFC/Qt/GTK by spectecjr · · Score: 1

      MFC is ugly, and is even more apparent when compared to Qt and GTK.

      That's why real windows developers use WTL/ATL for applications development.

      Simon

      --
      Coming soon - pyrogyra
  25. I would keep an eye for mono by kbroom · · Score: 5, Insightful

    It is hard to admit it, but when the mono team gets windows forms working correctly, C# and .NET are going to pick up a great deal of momentum, specially in the cross-platform GUI development area.

    1. Re:I would keep an eye for mono by AirLace · · Score: 1

      Specifically, Mono is working on Gtk#, which provides .NET bindings for Gtk+. Gtk# This effectively provides an elegant OO interface to Gtk+. There's also work being done to make Gtk+ fit into the Windows environment, using native Windows and Windows XP widgets.

      With Mono, it's already possible to run the same binary on Windows, FreeBSD and Linux on multiple architectures (x86 and ppc are well-supported now, with others in the pipeline). Mono seems to slowly be achieving the write-once-run-anywhere mantra that Java never succeeded with on the desktop.

    2. Re:I would keep an eye for mono by nachoman · · Score: 1

      From what I've heard the windows.forms of .NET is a windows specific GUI toolkit. It has only been through the efforts of wine that it has started to make its way to Linux.

      I'd say we should wait a little while longer before seriously considering .NET for cross-platform GUI development.

    3. Re:I would keep an eye for mono by Anonymous Coward · · Score: 0

      I don't care how good you say it is, i'm going to avoid picking up Mono like the plague...

    4. Re:I would keep an eye for mono by fferreres · · Score: 1

      You still have to chose GTK (GTK#) or MFC (Windows.Forms)...so you are at the same place you started today.

      Mono will either help GTK or MFC grow, it will probably help MFC more that it will help GTK. If you where a company, would you rather write an app in GTK# so that I would looks weird under Windows or use MFC and hope someone does the famous "MFC2GTK mappings as in SWT"? :)

      --
      unfinished: (adj.)
    5. Re:I would keep an eye for mono by IamTheRealMike · · Score: 1
      but when the mono team gets windows forms working correctly

      Hrm. Are you sure? The Wine widget toolkit is still incomplete, suffers from visual glitches and is lacking (amongst other things) a RichEdit control.

      In no way does the Wine/Windows toolkit compare to something like GTK. I think one good bet is actually GTK+ nowadays, especially as the windows port has come on so well lately. I've seen shots of AbiWord on Windows and it looks pretty native to me. Of course this is done via theming, so who knows how much it really matches up with what a Windows app should feel like, but GTK does have the advantage of being native on Linux and having plenty of language bindings available, as well as a free UI designer.

    6. Re:I would keep an eye for mono by magerquark.de · · Score: 1

      Windows.Forms is _NOT_ MFC.

      --
      -- Watch me working: www.magerquark.de
    7. Re:I would keep an eye for mono by Keith+Russell · · Score: 1
      ...MFC (Windows.Forms)...

      MFC and .Net have nothing to do with each other. MFC is an island unto itself. A big, scary, densely overgrown jungle island that will claim the sanity of anyone who ventures there. WinForms has its roots in Visual Basic. Think of VB's toolkit, add all the extra common control ActiveX libraries as first-class members, rationalize the naming conventions (was that .Text or .Caption?), and rebuild for the CLR. Now you have WinForms.

      Now that I think about it, I don't recall Microsoft advertising any changes to MFC for VC++ 7. Stands to reason. If they want everyone to move to the .Net Framework, there's no better place to start than a hairball like MFC.

      But I think you're right about WinForms v. GTK#. Whether somebody builds WinForms bindings for X, or GTK learns to do Windows much better, the WinForms mountain isn't coming to Mohammed.

      --
      This sig intentionally left blank.
  26. SWT by jaaron · · Score: 4, Informative

    Okay, I'll bring it up now: IBM's SWT is great. I've been using Eclipse lately under gnome2 and it's wonderful. Nice native look and feel (great anti-aliased fonts) and very responsive.

    If you don't know, Standard Widget Toolkit (SWT) is a java GUI framework that uses JNI to call the native OS windowing API. It's an excellent example of how java can successfully be used for client desktop applications. IBM developed it for the open source Eclipse IDE.

    --
    Who said Freedom was Fair?
    1. Re:SWT by HiThere · · Score: 1

      Is SWT compileable under gcj (or is it gjc)?
      If so, can you compile it using CygWin?
      Also, where is it documented?

      I was looking at using SWT before I started the most recent project, but I had to decide quickly, and had no experience with it. ... Perhaps next time if I can find the documentation.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    2. Re:SWT by Anonymous Coward · · Score: 0

      I tried HARD with MinGW and Cygwin on Windows. Had slightly more success with MinGW.. but got compiler bugs when compiling some of the files. It did succeed in creating a 9MB object file, but when I compiled a program together I didn't work.

      So on windows I have so far been unsuccessful. I read on IBM's site that it had been possible on Linux.

    3. Re:SWT by Gonwin · · Score: 1

      Yes SWT (and indeed eclipse) is compilable under gcj see the gcj home page News article December 27, 2002

      --

      ---

    4. Re:SWT by Foresto · · Score: 1

      According to this article, SWT will work with gcj. I haven't yet read that it works with CygWin, but I haven't researched it in the last couple of months. (The sidebar mentions that cross-compiling on a linux host for a Windows target should be possible.)

    5. Re:SWT by Abcd1234 · · Score: 1

      Unfortunately, I can't really recommend SWT, at least in my experience, if you want to do standalone applications. I began working on a project recently which is fairly intensive, graphically. Swing was a bit of a pig on my first go-around, and this was a rewrite, so I looked at SWT. The basic widget set is nice... it does what you'd expect. But the minute you want more advanced things, like a file dialog, things get really complicated *really* quickly. This is because many of these features are present in jface, which assumes your app will be integrated as a plugin into Eclipse. 'course, this is great if that is, in fact, what you're doing! Otherwise, it's a huge pain in the ass... so, I immediately abandoned and went back to Swing. :)

  27. candy and a gum by bashbish · · Score: 1

    freebees getting better: Eclipse is sweet. Ant is insectuous. xDoclet cuts the learning curve

    pay: TogetherSoft over XDE (for now)
    IBM WSAD over TogetherSoft, and IBM WSAD over TogetherSoft.

    Built-in Object/Relational Mapping a must.

  28. Parent is Goatse redirect.. by LinuxGeek · · Score: 1

    Danger Will Robinson!!!

    --

    Kindness is the language which the deaf can hear and the blind can see. - Mark Twain
  29. wxWindows by MikeFM · · Score: 4, Interesting

    I like wxWindows and especially it's a child project wxPython. wxPython is my favorite way to develop GUI apps because it is easy, flexible, cross-platform, and looks great. My only major wish for it is a Java port so Python/wxPython programs could be made portable to Jython. :)

    --
    At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    1. Re:wxWindows by pnatural · · Score: 4, Informative

      I've been coding for wxPython for months now. It's a great gui library, it's fast, it's portable, and it has tons of controls. It's flexible, and it's free. The docs are good, too. I cannot imagine switching to pygtk or pyqt at this point.

      My only bitch is this: the development model all but forces the programmer to reuse thru inheritance, not composition. I realize that inheritance was the preferred method of OO reuse when wx was originally conceived and written, but reusing wx types thru inheritance is painful because it leads to lots of (very similar) code.

    2. Re:wxWindows by Dunkalis · · Score: 1

      wxPython is awesome. So easy, so powerful, so cool. As someone else said, it relys too much on inheritance, which complicates code, but its still great. wxWindows (the C++ toolkit) is good too. I like that, but Qt is superior for C++ GUI development.

      As an unrelated sidenote, we need a wxScheme, or a tkScheme, or a gtkScheme, or an xtkScheme...or SOMETHING!

      --
      Slashdot is a waste of time. I enjoy wasting time.
    3. Re:wxWindows by dcuny · · Score: 1
      This is an issues with how wxPython has been developed, not with the wxWindows library itself. I've written a (still alpha) small scripting language that uses dynamic callbacks instead of inheritance. It's fairly painless to Connect objects to callbacks.

      That's not to say anything bad about wxPython itself - it's just a matter of style.

      You might want to have a look at wxLua, a nice mixture of Lua and wxWindows.

    4. Re:wxWindows by pnatural · · Score: 1
      This is an issues with how wxPython has been developed, not with the wxWindows library itself.

      Not really. The wxPython package wraps wx classes in rigid parallel. For almost every wxPython class, there is an underlying wxWindows class. Both packages all but force the programmer to reuse the library with inheritance.

      BTW, dynamic callbacks aren't what I need - I can and do use those on my own. What I'd rather have is a wxPython/wxWindows interface that can be used to construct a GUI thru composition. Silly, simplified, contrived example:
      buttons = [Button("Hello"), Button("World")]
      frame = Frame(Panel(buttons))
    5. Re:wxWindows by QuantumG · · Score: 1

      Last time I went to use wxWindows there were no dialog editors to speak of. Actually having to sit down and design a dialog box using pen and paper is not my idea of a good time.

      --
      How we know is more important than what we know.
    6. Re:wxWindows by Anonymous Coward · · Score: 0

      What you are not noticing is that what feels right on one platform does not feel right on another. The widgets may all be native, but the feel of the app is decidedly the feel of the OS it was written for.

    7. Re:wxWindows by dcuny · · Score: 1
      Both packages all but force the programmer to reuse the library with inheritance.

      Erm, take another look at this wxLua example. No inheritance in sight. The choice to force the use of inheritance in wxPython was a design decision.

      What I'd rather have is a wxPython/wxWindows interface that can be used to construct a GUI thru composition.

      wxWindows already has layout management, and based on this wxPython example, it's already part of wxPython. It shouldn't be too hard to write a class that automate this to the degree you want.

    8. Re:wxWindows by aminorex · · Score: 1

      Would it really have been so hard to type "wxWindows dialog
      editor" into google before parading your unmentionables on
      slashdot? 1,550 hits, but I think "I'm feeling lucky"
      would have sufficed in this case.

      --
      -I like my women like I like my tea: green-
    9. Re:wxWindows by zephc · · Score: 1

      I'm not sure if this is what you're going for, but check out PythonCard; it uses python dictionaries and lists etc. to structure GUI elements, like this

      It also wraps some of the complexity of wxPython/wxWindows but doesn't take the access to it away from you.

      --
      "I would say that 99 per cent of what my father has written about his own life is false." - L. Ron Hubbard Jr.
    10. Re:wxWindows by Anonymous Coward · · Score: 0

      I don't like wxPython. I have failed three times installing the required libs for it. There is some dependency on libpng2.so (or whatever it is called) which Mandrake 8.2/9.0 doesn't like.

    11. Re:wxWindows by Anonymous Coward · · Score: 0

      Install it anyway and put a symlink in /usr/lib.

    12. Re:wxWindows by QuantumG · · Score: 1

      have you used any of them, or are you just being a smart ass. Yes, I thought so.

      --
      How we know is more important than what we know.
    13. Re: wxWindows by agentk · · Score: 1


      Version 2.4 was just released.

      I am using it to implement a distributed/RPC based GUI system: any number of servers have an abstract description of the GUI, the client connects, gets the object from the various remote servers, draws it, sends back messages when you click on stuff.

      (http://interreality.org for general info and info about our 3D app)

      --

      VOS/Interreality project: www.interreality.org

    14. Re:wxWindows by MikeFM · · Score: 1

      If you want to try wxPython there is Boa Constructor which puts some nice IDE touches to development. I don't like coding with IDE tools so I've only just tried it now and then to see how it was progressing but I think it can handle your needs okay.

      Of course this is opensource so if you can't find a tool you like, then make your own and share it. :)

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    15. Re:wxWindows by aminorex · · Score: 1

      I do prefer being a smart ass to being a dumb ass,
      I freely admit.

      --
      -I like my women like I like my tea: green-
    16. Re:wxWindows by divbyzero · · Score: 1

      You might be pleased to learn about PLT Scheme, a free, cross-platform Scheme implementation with a GUI kit based on [a somewhat old version of] wxWindows.

      --
      But my grandest creation, as history will tell,
      Was Firefrorefiddle, the Fiend of the Fell.
  30. Re:RIAA/MPAA by Anonymous Coward · · Score: 0

    http://www.puma.dpg.devry.edu/~markvd/index.html

  31. Visual basic for Linux? by Anonymous Coward · · Score: 0
    1. Re:Visual basic for Linux? by Anonymous Coward · · Score: 0

      die mono

  32. Re:friva! by ShadowsMV · · Score: 0, Offtopic

    If you don't like the RIAA/MPAA just open the url, and minimize the window...

    http://www.puma.dpg.devry.edu/~markvd/index.html

    --
    This is my sig, there are many like it but this one is mine...
  33. Qt still wins by motorsabbath · · Score: 2, Interesting

    I like wxWindows but it's not nearly as well and copiously documented as Qt. Also, being able to build code in Linux, FreeBSD, OSX and Windows (at work) is very, very, very cool.

    Qt all the way!

    --
    The heat from below can burn your eyes out
    1. Re:Qt still wins by dcuny · · Score: 3, Informative

      I'm not sure why you wrote "also", since Linux, FreeBSD, OSX and Windows are all supported by wxWindows. Plus, wxWindows supports just about every compiler under the sun.

    2. Re:Qt still wins by motorsabbath · · Score: 1

      Yep - I know that, and I noticed I was unclear *after* I posted. What I meant to say is that they are both excellent, but for me Qt won due to its documentation.

      JB

      --
      The heat from below can burn your eyes out
    3. Re:Qt still wins by Anonymous Coward · · Score: 0

      Yesssssssssssssss....
      another QT lover....QT kicks it....

  34. QT convert by RiBread · · Score: 5, Interesting
    I developed apps with Delphi for 4 years and was completely sold that Borland had the best solution around.

    At my new employment I had a project that needed to be cross platform. I was itching to use Kylix, however it wasn't due to be finished for another 8 months. Looking into the details I saw that they built the corss platform support on QT.

    After checking out the QT tutorials I was immediatly hooked. QT is intuitive; I can't think of many other APIs I would grace with this description. In addition to being well thought out it has a superb implementation. I've been using it happily for 2 years.

    The only thing I miss is the strong third party component community that Delphi/Kylix has. I'm a huge fan of "buy don't build". You can really put quality touches on your app by finding the right component someone else has already made.

    -R

    1. Re:QT convert by jpt.d · · Score: 1

      "I can't think of many other APIs I would grace with this description." Cocoa

      --
      What we see depends on mainly what we look for. -- John Lubbock Now search for that bug slave!
    2. Re:QT convert by Anonymous Coward · · Score: 0

      However, not Objective C.

    3. Re:QT convert by Anonymous Coward · · Score: 0

      QT is a good framework.

      However, unless you want to develop only GPL'd software it is too expensive. Let me explain.

      As a small time developer QT doesn't make any sense. Maybe I want to have an open-source application but not make it GPL'd. Or maybe some day I want to sell my application closed-source. And the list goes on. If any of that is true then you can NOT use the free QT.

      QT costs around $1500 for a single platform. There is no point in building a cross platform application if you can only compile on one platform (duh!). So you must spring for the 3 platform package at around $3000.

      Sorry, but I think Trolltech is shooting themselves in the foot. $3000 buys an MSDN professional subscription with almost every MS development tool and operating system PLUS a brand new powerful laptop to develop on. And you'd still have cash left over. $3000 for a framework??? No freaking way.

      QT should _at worst_ be around $1000 for all platforms. A more reasonable rate would be less than $500 for all platforms. Everyone would use it.

      You have to remember, the Microsoft tools are much cheaper than this and they can be hella powerful and include a boatload of applications (I've not seen an open-source equivalent of MS's fairly good C/C++ debugger).

  35. The best cross platform GUI toolkit I've used is.. by Admiral+Akbar · · Score: 5, Interesting

    available with Eiffel Software's EiffelStudio development suite. It's called Vision2 and provides platform independent look and feel by using a bridge pattern to separate an interface layer from the underlying implementation layer (which uses the Win32 API and Gtk+ for the platform dependent stuff).

    You can download the full EiffelStudio suite for linux (and Windows) and use it free for non-commercial software, Vision2 is included and is available here, it's free!

    --
    -- You see what happens when you have fun with a stranger in the Alps?
  36. Kylix / Delphi by Mr_Tulip · · Score: 3, Informative
    I've used a mixture of Delphi, Kylix, HTML and PERL on a few projects. It's cross-platform, as long as you only need Linux / Windows, and the basic version of Kylix is Open Source as well as free as in beer. You can also choose to code in C++ or Object Pascal.

    Here's the link with more info: Borland Kylix Open Edition

    -My Karma ran over your Dogma

    1. Re:Kylix / Delphi by Anonymous Coward · · Score: 0

      I've used Kylix/Delphi with much success. Mostly to do with developing on Linux, and deploying in Win32. Using the CLX library, everything's quite transparent - and there's enough Borland Pascal/Delphi code out there to make life quite easy.

      -Satyr

    2. Re:Kylix / Delphi by Micah · · Score: 1

      Kylix OE is NOT Open Source... it's only free beer. Which is OK as far as it goes, but Open Source > free beer, by far.

      I've used Kylix 1 and 2, and it's definitely the easiest way to create Linux GUI apps. I'm just concerned about putting too much faith in Borland. It took them forever to fix some serious bugs in K1, then the "fix" was far less than people expected, because K2 was being marketed and of course they wanted people to upgrade. It also took them a long time to support newer versions of databases (don't know if that's improved in the last year). Plus, Borland abandoned BC++ for OS/2. Who knows if Kylix would suffer the same fate if its sales aren't strong enough. Also there are rumors of MS buying Borland. What the heck would happen to Kylix support then?

      Having dabbled in wxPython, I'm pretty sure I'll code my next GUI app in it (either that or XUL). It's open source, and Python always supports the latest database versions, and you know it's not going to be abandoned.

    3. Re:Kylix / Delphi by ErnieD · · Score: 1

      I think if you were to try Kylix 3, you'd find a *vast* improvement over versions 1 and 2. Borland has been putting quite a bit of focus on Kylix (and the CLX application framework in general) with the latest releases of Kylix and Delphi. I can't say enough about what they've done for cross-platform development. And the dbExpress components have really matured to an enterprise-level database application solution. And don't even get me started on IntraWeb. :)

      I my (admittedly limited) experience, there's no other development environment out there under which I can take code written in Delphi (as a CLX application), copy it over to my linux box and compile it in Kylix without altering a single line of code.

  37. XUL by Anonymous Coward · · Score: 1, Interesting

    What about Mozilla's XML based GUI - XUL?

    1. Re:XUL by Anonymous Coward · · Score: 1, Informative
  38. WxWindows? by Futurepower(R) · · Score: 3, Informative


    What has been your experience with WxWindows? The web site says that WxWindows provides a native look and feel on Windows, Unix, or Mac. There are IDEs and other tools.

    1. Re:WxWindows? by Hanji · · Score: 3, Interesting

      I'm a big fan of wxWindows - really nice look AND API, but I've had trouble getting any of the dialog editors to work (I'm under OS X), which has been something of an annoyance, since, as any GUI programmer can probably tell you, implementing GUIs entirely in code is a huge pain in the ass, and is harder to change later on than if you use a resource file...

      --
      A Minesweeper clone that doesn't suck
    2. Re:WxWindows? by Anonymous Coward · · Score: 1, Insightful

      What I noticed first about wxwindows is that it is a clone of MFC through and through. Even down to the message pump, it is almost identical to MFC in every way except for the method names.

      As a former MFC maintainer (feel free to boo and wing tomatoes) with a huge interest in GUI toolkits personally, I took a look at wxwindows. At least for the Windows portion of the wxwindows code, the toolkit offers no advantage over MFC. It is at a slight disadvantage actually because it lacks many of the feature classes (wx supports most of the basic classes) of MFC.

    3. Re:WxWindows? by timeOday · · Score: 1

      I did a project for my master's thesis with wxWindows and liked it alot. I used the OpenGL window successfully. There were some platform incompatibility issues to iron out at times. I would use it again.

    4. Re:WxWindows? by Dunkalis · · Score: 1

      Thats part of the point. wxWindows is very similar to MFC to allow porting of MFC apps to wxWindows. The other point is, as others have pointed out, is that it is totally cross-platform and is under an open source license. You may have all the MFC source, but can you legally make modifications to it?

      Since the MFC code/headers are packaged with VC++, I can't afford it. I'm a hobbyist programmer who does his development on Linux. I just use wxWindows so that I can run stuff on Windows or Mac OS if I so choose.

      --
      Slashdot is a waste of time. I enjoy wasting time.
    5. Re:WxWindows? by Fnkmaster · · Score: 3, Informative
      I've used wxPython to build a fairly large GUI application. It was actually an annoyingly complicated project, for reasons that were not really the fault of wxWindows, and Python probably wasn't the right language to use (sometimes strong typing and compile-time type checking are really nice to have around).


      Anyway, you see a lot of Qt fans around here. Qt is nice, and is unbeatable for its documentation quality and the cleanness of extending the base widgets with new composite widgets, and extending the base objects with new behaviors. wxWindows can be a bit more awkward in these ways, isn't always quite so clean and well architected as Qt, and definitely isn't as well documented (especially if you are using the wxPython bindings - reading C++ docs with "annotations" is annoying).


      However, wxWindows uses true native widgets, not rendered widgets that look and feel nearly native (Qt - it does a pretty damned good job of it, not like Swing or something, but it's still not using true native widgets on Windows). wxWindows is also free (as in beer) for use in commercial AND Free Software applications, licensed as LGPL with the exception that derived works in binary form may be distributed on any terms you want. In other words, no restrictions on commercial use or licensing. Qt is GPLed or commercial software. Meaning you can either use a GPL-compatible Free Software license, or you can license their commercial version, which is fairly expensive (for a hobbyist or private individual - and not exactly cheap for a company if you have to buy a bunch of seat licenses for your developers).


      If you can afford it, and don't mind the fake painted widgets, then Qt is the way to go. If you want real native widgets on Windows, OS X, and X Windows, and you are on a budget, then wxWindows rules - just expect to sometimes have to bang your head against some annoying documentation or some unfinished features (wxGrid anybody? God fucking damn if I didn't build an entire app around a wxGrid only to find out it doesn't exactly work as advertised all the time... grr...).


      Most importantly, ignore the posts about how the "feel" isn't quite right on some platforms. If you really want a slightly different menu layout or some such thing for each of the several platforms, it's pretty damned easy to add a few lines of conditional compilation (for a C++ program at least) to switch a few things around - and since the joy of Unix is that X apps have no fucking standards anyway, that app you wrote that looks good on Windows will probably look just as good in X - just make sure you test the OS X version out if that's a target platform, since I imagine you need some extra work to make things truly meet the Macintosh platform guidelines. Still a ton easier to maintain one wxWindows source base than to maintain a Gtk, MFC and Carbon/Cocoa GUI separately.

    6. Re:WxWindows? by Anonymous Coward · · Score: 0

      > If you can afford it, and don't mind the fake
      > painted widgets, then Qt is the way to go. If you
      > want real native widgets on Windows, OS X, and
      > X Windows

      Modern Operating Systems provide APIs for drawing widgets, the Mac OS X one is called the Appearance Manager, I forget what the Windows XP one is called (Theme Manager?).

      Qt uses these APIs to draw widgets when possible, so that the OS itself draws the widgets rather Qt drawing 'fake painted widgets'.

      On X11 Qt does draw the widgets itself, but that makes sense on X11.

    7. Re:WxWindows? by kollivier · · Score: 2, Informative
      Most importantly, ignore the posts about how the "feel" isn't quite right on some platforms. If you really want a slightly different menu layout or some such thing for each of the several platforms, it's pretty damned easy to add a few lines of conditional compilation (for a C++ program at least) to switch a few things around - and since the joy of Unix is that X apps have no fucking standards anyway, that app you wrote that looks good on Windows will probably look just as good in X - just make sure you test the OS X version out if that's a target platform, since I imagine you need some extra work to make things truly meet the Macintosh platform guidelines. Still a ton easier to maintain one wxWindows source base than to maintain a Gtk, MFC and Carbon/Cocoa GUI separately.

      Just a quick note: I've used wxPython to develop an application and I can say that it does very well in the "look and feel" department. It sometimes even goes "above and beyond" the call of duty - wxMacPython, for example, will rename your "Exit" menu item to "Quit" automatically. There are also notes on how to make a wxApp more "Mac-friendly". As a developer working on Mac but developing primarily for Windows users, I can say wxWindows/wxPython really works well for me. And while the documentation isn't the greatest, it is pretty decent considering the constraints of an open source project, and the folks on the mailing lists are more than helpful when you have a question, or even find a bug. =) Just my $0.02!

    8. Re:WxWindows? by hobuddy · · Score: 1

      I've used wxPython quite a bit, and I love it.

      I do have one complaint: single-line text controls can't be right-aligned (e.g., for monetary values)! I believe this is a wxWindows limitation rather than a wxPython limitation, and wxPython includes a dirty hack to circumvent it, but to me the omission of this feature is senseless.

      In recent releases, wxPython has begun to incorporate numerous "high-level composition widgets" that AFAIK don't exist in wxWindows itself, such as calendar controls. They're aimed at making the wxPython programming experience even more high-level, and they succeed admirably.

      Unlike some other posters here, I do not find the C++-centric documentation annoying; the documentation is, in fact, excellent. For the most part, the wrapping of the C++ wxWindows API in Python does not introduce any API mismatch; in cases where it must, the transition is handled with a reasonable sacrifice in elegance.

      wxWindows uses native widgets, so there are no look and feel problems.

      Thanks to Robin Dunn and the wxWindows team for a job well done.

      --
      Erlang.org: wow
    9. Re:WxWindows? by Arandir · · Score: 1

      If you can afford it, and don't mind the fake painted widgets, then Qt is the way to go.

      They're not "fake painted widgets." They're real widgets drawn in exactly the same way MFC draws them: using the GDI.

      --
      A Government Is a Body of People, Usually Notably Ungoverned
    10. Re:WxWindows? by Anonymous Coward · · Score: 0
      Python probably wasn't the right language to use (sometimes strong typing and compile-time type checking are really nice to have around).
      I think you mean 'static typing'. Python is strongly dynamically typed. In fact there are lint-type checkers for Python (i.e. pychecker), which will catch some 'spelling errors' dynamic typing may seem to cause.
    11. Re:WxWindows? by raboofje · · Score: 1
      > single-line text controls can't be right-aligned

      I haven't used wxPython, but in wxWindows the wxTextCtrl seems to support it using the wxTE_RIGHT style flag.

      > wxPython has begun to incorporate numerous "high-level composition widgets" >that AFAIK don't exist in wxWindows itself, such as calendar controls.

      The wxCalendarCtrl has been part of wxWindows for a long time...

  39. Depends on the task by darkwiz · · Score: 4, Informative

    For the kind of GUI-I-Wanna-Slap-Atop-A-Database, I like to use Tcl/Tk. Works great for programs where you just want to have something quick, rapidly prototyped AND cross platform.

    If you really want a well orchestrated OO GUI toolkit (with the exception of some nasty hacks), QT is a great thing to couple with C++. I know there are many out there that cry foul at the MOC. For the uninitiated, QT uses a macro processor to add a few keywords to C++ for their Observer(or Publish/Subscribe) pattern. I feel that these extensions are minor, and do not significantly detriment the portability of the code. That is, unless you are insane and derive EVERYTHING from QObject - then you are going to be heavily dependent on QT. In a well abstracted interface, your main code tree shouldn't contain much, if any, GUI code.

    I have a lot of respect for GTK+, but it just isn't for *me*. GTK programs do generally feel a little more responsive on slower hardware, and are generally lighter weight (being mostly pure C), but the question seems to revolve more around cross platform programs, and GTK doesn't seem to integrate very naturally with the other platforms - at least not the programs that I have seen.

    1. Re:Depends on the task by Greyfox · · Score: 2, Interesting

      The C++ wrappers for GTK have come a long way. They make deriving new components a breeze -- just slap together something derived from the closest widget to what you need, add some hooks so you can put stuff into it and get stuff out and drop it into your favorite layout tool. The signal system is pretty slick too, and doesn't use a preprocessor. The signal system alone is worth looking at -- I could see using it in non-GUI projects.

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    2. Re:Depends on the task by Eneff · · Score: 1

      "For the uninitiated, QT uses a macro processor to add a few keywords to C++ for their Observer(or Publish/Subscribe) pattern."

      To the uninitiated, this makes no sense.

  40. FOX by barole · · Score: 5, Informative
    We are using the FOX toolkit and we are happy. It is a simple toolkit, designed and implemented mostly by one person. It uses the primitive drawing routines of the underlying platform (win32 or X) so looks the same on all platforms. It is written in C++, but there are ruby and python bindings.

    The author has spent a lot of time looking at existing UI libraries and tried to learn from them before writing his own.

    See the website for more info.

    1. Re:FOX by JoshRendlesham · · Score: 3, Informative

      It should also be noted that there is an addendum to the LGPL licence covering FOX that clarifies several issues. Unmodified versions of the FOX library can be statically linked to applications without causing licensing headaches, however, any changes to the library must be made available.

      This may be attractive to developers who wish to simplify the distribution of their software by statically linking in FOX, but without putting their work under the LGPL as well.

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

      Yes, it is a great toolkit and works seamlessly with OpenGL as well. And the message model blow Qt away....

  41. Is Java dying? by Futurepower(R) · · Score: 1, Insightful


    Swing and AWT often provide poor GUIs. Java is often slow. Sun involvement makes Java a proprietary technology. Is Java dying?

    1. Re:Is Java dying? by Anonymous Coward · · Score: 0

      Is Java dying?

      If it's not, let me know where it is and I'll help put it out of its (and our) misery.

      A world without Java would be a better world.

    2. Re:Is Java dying? by Anonymous Coward · · Score: 0

      A couple years back, Java was a top language. Everybody seemed to want to use it. Then something happened, and everyone started using other programming languages instead. And this mysterious event? Microsoft stopped bundling Java with its OS, so people stopped using it. Oh, and around the same time, MS came out with C#.

      If Java is a proprietary technology just because Sun created it, then shouldn't UNIX also be proprietary, since it was first created by Bell Labs in the 1970's? Shouldn't Linux be considered proprietary, since commercial groups have contributed to the source code? No, the "problem" here is that nobody has created a GNU'd java interpreter for Linux. (yes, I do know about the compiler, but that's quite different from an interpreter).

      Mod me down and call me flamebait if you must, but somebody has to say it.

    3. Re:Is Java dying? by MORTAR_COMBAT! · · Score: 1

      IBM (and others) is exerting a lot of pressure upon Sun to more fully "open" Java. At least Java has the community process (JSR, etc) for new features and so on, as well as more than one development kit vendor.

      --
      MORTAR COMBAT!
    4. Re:Is Java dying? by ObviousGuy · · Score: 1

      Sun won't. It's their bread and butter to license Java compatibility logos. They'd be fools to allow logos to be used willy-nilly.

      As it stands now, if you don't say you are "Java Compatible" and you don't use any Sun-trademarked logo, you are in the clear even if you can run Java programs. You can then include whatever toolkit you like and customize the JVM according to your own specs instead of Sun's. Unbranded Java, there's a lot of it out there.

      --
      I have been pwned because my /. password was too easy to guess.
    5. Re:Is Java dying? by Anonymous Coward · · Score: 0

      obvious troll. who modded this up?

    6. Re:Is Java dying? by 0x0d0a · · Score: 1

      I hope not. Java has tons of problems, but the primary alternative is a MS-controlled language/toolkit/library set.

    7. Re:Is Java dying? by Doomdark · · Score: 1
      You are assuming desk top apps are the only kinds of things written in a certain programming language.

      Currently Java is one of the major languages on server side (at least for new code being written); for enterprise web apps probably the number one implementation language.

      As to desk top apps, we'll see. Sun hasn't really been concentrating on that area too much lately, although there are some new useful things (Java Web Start especially) that would make app writing (or, rather, installation) easier.

      FWIW there are lots of new Open Source Java application projects being started, check out SourceForge for examples. Of existing apps JEdit, Limewire and DBVis are ones I use (for text editing, gnutella access and DB debugging) regularly and find pretty useful.

      --
      I like paying taxes. With them I buy civilization -- Oliver Wendell Holmes
  42. A few glitches in the Linux version... by aquarian · · Score: 5, Interesting

    Eclipse does have a few glitches in the Linux version.

    For those that don't know, Eclipse is based on a unique IBM GUI toolkit called SWT. It has a Java API, but the underlying code is native. The supposed advantage of this is that it can be used by any Java programmer as an alternative to Swing, but it's faster. The problem is that it's only available for Windows and Linux, and since the underlying code is native, it has to be separately developed and maintained. Since more GUI apps are run on Windows, there's more pressure to make the Windows code work right, and the Linux code is always a little behind.

    I don't think there's any advantage to SWT these days, with Swing programming coming along so well. For anyone who doubts this, have a look at IntelliJ Idea, a really nice Java IDE that's Swing-based, and super fast. Frankly, I think Eclipse and SWT was a move to establish an IBM-centric Java community, with lots of vendor lock-in. Hijacking Java from Sun, if you will.

    Eclipse *is* a really nice application, but I don't think IBM's motives in creating it were at all community-minded. And I don't have high regard, or high hopes, for SWT.

    1. Re:A few glitches in the Linux version... by Wesley+Felter · · Score: 1

      Eclipse *is* a really nice application, but I don't think IBM's motives in creating it were at all community-minded.

      Yeah, they're really hurting the community by replacing proprietary Swing with open-source SWT. :-)

      The fragmentation is a little disappointing, though.

    2. Re:A few glitches in the Linux version... by Anonymous Coward · · Score: 0

      Actually it has been ported to several different platforms:
      * win32:
      * linux gtk:
      * linux motif:
      * solaris motif:
      * aix motif:
      * hpux motif:
      * photon qnx:
      * macosx:
      and Win32 for PocketPC...

    3. Re:A few glitches in the Linux version... by John+Kelvie · · Score: 1

      I think you're reading too much into this...IBMs creation of SWT was a welcome response to sun's lethargy in creating a viable Desktop GUI toolkit. Swing drives me nuts...it's layered on top of awt, one if the worst(the worst if you measure it by quality + importance) apis among the java libraries. It in itself is nothing to behold either. It has a terrible memory and processing profile. And I haven't looked at IntelliJ(though I will since you have mentioned it), but the only Swing application I've ever been able to stomach is JEdit, and I kicked that to the curb like an old hooker when Eclipse came out. SWT _is_ what Swing should be and the fact that the Eclipse developers finally got fed up with waiting around for someone to make Swing _work_ and built their own is something I applaud wholeheartedly.

      I do second the comment above about fragmentation, but really, there are so few Java gui apps out there(and among the ones that are, 90% are ides, probably just because if you build your ide in a language other than one it's intended for you will lose credibility), there's really not a market to fragment. My hope is that with SWT, we will start to see some real java desktop gui apps emerge.

    4. Re:A few glitches in the Linux version... by cheezfreek · · Score: 1
      Eclipse *is* a really nice application, but I don't think IBM's motives in creating it were at all community-minded.

      No, the motives weren't entirely community-minded. Remember that Eclipse forms the basis of the latest versions of the Websphere products. It was probably designed with this in mind first, with open source a mere afterthought. They most likely open sourced it for quick bug recognition and fixes from the community, and to give third party vendors an easy way to customize Eclipse for whatever Websphere-compatible products they want to release. Win-win for IBM.

    5. Re:A few glitches in the Linux version... by yiingineer · · Score: 5, Informative

      Actually SWT has several really nice advantages. I agree that Swing has improved a lot in the past few years, but Swing apps are still not native apps and users can certainly tell the difference. SWT applications are essentially native applications not only in appearance, but also in functionality. There will always be little keyboard shortcuts or imcompatibilities that Swing will miss that SWT programs inherently account for because they use the native implementations underneath. SWT apps are generally considered more responsive than Swing apps. As cross-platforms toolkits go, the one-to-one mapping design philosophy has also been embraced as a great idea from an architectural stand point. (see http://www.eclipse.org/articles/Article-SWT-Design -1/SWT-Design-1.html for reasons why) The SWT is not available for only Windows and Linux. It also works on Motif (for Unixes), Carbon (Mac) and I think they even have one for and embedded platform named QNX. Also, IBM had no intentions of creating an "IBM-centric Java community" with the development of SWT. SWT was originally created to be used in Eclipse and the simple reason why they didn't use Swing was because Swing was horribly slow and ugly back then. I would say that it still is fairly slow and ugly, but one might argue that if Swing was in its current state when the Eclipse project was started that IBM may not have bothered to create the SWT.

    6. Re:A few glitches in the Linux version... by someguyintoronto · · Score: 1

      While I agree that both: the Linux implementation is behind, and IBM's intentions are questionable, conceptually SWT is a better direction than Swing.

      First, of all I have never been impressed with the performance of any Swing GUI I have used. Secondly, the widgets are too clunky and drastically inconsistent compared to the naitive OS (Ok, I'll agree that OS X Swing is pretty a solid, reliable implementation). For a user, performance, consitency, and clean layout are paramount to a good GUI.

      The stance that SWT takes is to first use the native UI, and if not available (such as a Tree widget on Windows vs. no equivlent on Motif), then provide a custom implementation. This picks up where AWT failed, proving a useful widget toolkit, while still being essentially native.

      The Swing API is beautiful, and kudos should go to the team responsible for it. But underneath the hood, Sun should have allowed in their spec hooking to native OS UI like AWT did and SWT does.

    7. Re:A few glitches in the Linux version... by aminorex · · Score: 1

      There is an OSX SWT port. Also, to say "Linux" is misleading.
      SWT works quite well on Solaris and *BSD, and I would expect
      it to work similarly well on most X11-posixish platforms.

      --
      -I like my women like I like my tea: green-
    8. Re:A few glitches in the Linux version... by mritunjai · · Score: 1
      The problem is that it's only available for Windows and Linux, and since the underlying code is native, it has to be separately developed and maintained. Since more GUI apps are run on Windows, there's more pressure to make the Windows code work right, and the Linux code is always a little behind.

      Are you nuts ? SWT/eclipse is available for 7 platforms (you read it right!) which include Windows, Linux (RH and Suse), QNX, Solaris, AIX, HP-UX, and MacOSX.

      I am using it right now for my development work and so far is has been a lovely experience. The widgets are native and SWT really rocks. In comparison, Swing looks like a tonne of lead tied to Java's foot. Once running you cannot make out whether your app was written in Java or C/C++.

      Those you doubt, may download eclipse IDE for their favorite platform. It itself has been written using SWT and by and large is one of the best IDE ever. Only if there were a GUI builder for SWT, it would be perfect RAD tool.

      --
      - mritunjai
    9. Re:A few glitches in the Linux version... by calinm · · Score: 1

      SWT looks indeed good for a cross-platform toolkit, however using eclipse in Linux is a pain. I am switching back to windows for my work desktop after eclipse/Linux fails to save files when pressing Ctrl+S or just hangs and crashes. I tried both the Motif and the GTK compile on Redhat 8.0. If I were to develop a crossplatform GUI I would use Eclipse on windows as my Devel environment and SWT.

    10. Re:A few glitches in the Linux version... by Hezaurus · · Score: 1

      As a user who has used both (Eclipse and IntelliJ) the IntelliJ performs better.

      When I say 'performs' I don't just mean responsiviness, but the IDE's ability to make you more productive. I love the code-parsing-on-the-fly approach of Idea. It's fully customizable and www.intellij.org has many plugins to go. It supports EJB's, servlets, jsp, live templates, code completion, custom syntax highlightning, code inspection, etc...

      They had a xmas offer (valid until 15.1.2003) for 200$!! Compare that to JBuilder pricing, with Idea you get more features (sans GUI builder) with fraction of the price.
      --

      --
      No matter how fast light travels it finds the darkness has always got there first, and is waiting for it. (T. Pratchett)
    11. Re:A few glitches in the Linux version... by Felipe+Hoffa · · Score: 1

      Not my experience. At my office we have been using Eclipse (gtk version) with RedHat for several months and it has worked without major problems. I've also experienced eclipse with windows, and I have not felt differences between them.

      Fh

  43. Re:Just forget about cross-platform development. by pato+perez · · Score: 1

    Someone forgot to tell Apple.

  44. Windows & Linux by mvdw · · Score: 1

    For Windows and linux (x86) cross-platform programming, the CLX library from borland (ships with kylix and delphi/cbuilder) is pretty good.

  45. No real cross-platform GUI by mike9010 · · Score: 1

    In my experience with many GUI toolkits. There just isn't any one that works well accross all platforms. Those that come close are just lacking of features.

    If you have the time and knowledge, the best thing is to use each OS's standard toolkit. Whether it be MFC, QT/GTK, Cocoa/Carbon, or whatever, if you want it to look good and feel good, you can't really have cross platform.

    Despite this, I do not discourage using cross-platform toolkits. On appliactions that the GUI isn't really that important, or it is placed elsewhere (OpenGL, etc), cross-platform toolkits work great.

    Just my 2 cents

    --
    ---Baseball is not right, a man can not walk with four balls. mike9010
  46. Re:Today's winning intrinsic observation by mstyne · · Score: 0, Offtopic

    Hi. I believe the word you're searching for is "fucking".

    HTH
    HAND

    --
    mstyne: real name, no gimmicks
  47. Err...the web? by Anonymous Coward · · Score: 1, Funny

    Man, you're right. The RFC for HTML had one thing that MFC, QT, GTK+, Cocoa, etc. will never have:

    <BLINK>

  48. Java / Swing by Whatsmynickname · · Score: 2, Insightful

    I know I'll get beaten up for this, but how about Java / Swing? One project I wrote had to work on W2K, Solaris, HPUX, and SCO. Plus, I had to use a C library to boot. Had to develop a client with tabbed pages, trees and grid controls with drop down lists within cells. What did I use? Java with the Swing GUI library. Although it had some limitations, I was able to successfully port the app across all machines with virtually no code change! I liked the Swing architecture much more than other libraries I've used.

  49. Non-AWT/Swing GUI toolkits and Certified Java by Anonymous Coward · · Score: 0

    Is SWT JCK-certifiable?

    1. Re:Non-AWT/Swing GUI toolkits and Certified Java by Wesley+Felter · · Score: 1

      No, but why does it matter?

    2. Re:Non-AWT/Swing GUI toolkits and Certified Java by Anonymous Coward · · Score: 0

      Then you can't use it in anything but a PC or Server environment without also including cruft like AWT in the VM.

      If your work never leaves that environment bully for you.

  50. I hate BASIC as much as the next guy by SHEENmaster · · Score: 1

    but it really did help me get started in programming oh so many years ago.

    If you really do use BASIC, I recommend RealBASIC for Mac OS X. I could never stand it for serious development, but it's a lot better than VB with features like syntax formatting to make lame code easier to read.

    I used it to throw together a custom client for my Fortune page for all the lame OSes in a few minutes. BASIC is still easy to look down upon and all implementations are seriously lacking in vital(at least to me) areas. RB doesn't have UDP support, and VB doesn't have syntax formatting.

    Back to the serious topic and away from replying to a joke: Java's SWING toolkit is my favorite multiplatform toolkit. A single binary works for most platforms, and "advanced" features that we don't consider necessary in disagreement with our respective (former :) bosses.

    For quickly drafting small projects, PHP and other server-side scripting languages are a great option. I would love to be able "throw togethor" something like this as well as package it into self contained binaries for winshit and OS X.

    --
    You can't judge a book by the way it wears its hair.
    1. Re:I hate BASIC as much as the next guy by RevAaron · · Score: 1

      I totally identify with your statement. I, like many got started on BASIC; in my case, it was on a really awesome Radio Shack PC-3, handheld computer with 4k of RAM.

      I've used RB for whipping together Mac apps where my primary development environment, Squeak, didn't make much sense.

      Worth note is that RB targets OS X, OS 9 and Windows without extra work. Coming out soon is the IDE for Windows; currently you can make Windoze apps, but not develop under Windows.

      There isn't support for Linux outside of Wine thus far. I imagine RB apps work pretty swell within Wine, considering its non-reliance on many of the fancier "features" of the Windows system.

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
    2. Re:I hate BASIC as much as the next guy by erc · · Score: 1

      Escapade is much faster and easier at doing quick projects like this, and it's also free. We've even got a compiler for it that compiles down to an ELF executable (Linux and FreeBSD only at the moment). The compiler is in alpha, Escapade itself is beta, but it's been well shaken out and is fater than PHP and Perl without all the bloat. If you embedded BASIC into HTML, it would sort of look like Escapade. It's also under active development, and new stuff is added every day. I use it all the time to throw quick web-based apps together. Click here for more info.

      --
      -- Ed Carp, N7EKG erc@pobox.com PGP KeyID: 0x0BD32C9B What I'm up to: http://intuitives.mine.nu
    3. Re:I hate BASIC as much as the next guy by acarey · · Score: 1

      Not to stick up too much for VB, but given that I have to use it everyday at work, I can assure you that it _does_ have syntax formatting - unless by "syntax formatting" you're referring to something different than what I think you're meaning?

      VB 6 also has classes, encapsulation and simple (interface only, not implementation) single inheritence. No polymorphism, which is the major bugbear. But on the flip side it does include the best GUI form builder ever made...

      --
      -- "I believe the human being and the fish can coexist peacefully." - George W. Bush, 29 September 2000
  51. User Interface design: "Information Architecture" by Futurepower(R) · · Score: 1


    It seems that a fancy name for user interface design is "Information Architecture".

    Usability Links

    More Usability Links

    Site Critiques

  52. vanity? by SHEENmaster · · Score: 1

    make xconfig doesn't look very gnome2-like, but I still use it.

    Users will judge a product based on how it performs, and (hopefully) not how it looks.

    --
    You can't judge a book by the way it wears its hair.
    1. Re:vanity? by cheezfreek · · Score: 2, Insightful
      Users will judge a product based on how it performs, and (hopefully) not how it looks.

      Unfortunately, that's not how it works for most people. To most people, if a program doesn't "look right", then it doesn't "feel right", so it must not "work right". And when people reach this point, they've decided that the program is a "piece" of "crap", and to hell with the "functionality", they just "know" that it "blows large ass".

    2. Re:vanity? by russellh · · Score: 1
      To most people, if a program doesn't "look right", then it doesn't "feel right", so it must not "work right". And when people reach this point, they've decided that the program is a "piece" of "crap", and to hell with the "functionality", they just "know" that it "blows large ass".

      Hey, that's how I judge tech books.

      --
      must... stay... awake...
    3. Re:vanity? by Jace+of+Fuse! · · Score: 1

      Sometimes something can "LOOK RIGHT" and still not "FEEL RIGHT". A great example of this is Trillian for Windows, using the XP Theme. IT LOOKS like it's using the XP widgets and gadgets, but it doesn't FEEL like it is. This isn't exactly a bad thing though, since it still responds fairly well and it does (after a fashion) perform somewhat like you would expect.

      At the opposite end of the spectrum, there are programs that look absolutely nothing like they are using any kind of standard, but under the looks they work perfectly fine.

      It's hard to really draw up some kind of judgement system though. Some people don't care how something "feels" as long as it works. Some people don't care if it works as long as it's pretty. Some people don't care if it's pretty as long as it "feels" right. And of course functionality, form, and fashion can have as much to do with with individual software design as it does the environment it's running under so...

      --

      "Everything you know is wrong. (And stupid.)"

      Moderation Totals: Wrong=2, Stupid=3, Total=5.
    4. Re:vanity? by Deflatamouse! · · Score: 1

      > At the opposite end of the spectrum, there are
      > programs that look absolutely nothing like they
      > are using any kind of standard, but under the
      > looks they work perfectly fine.

      A fine example would be Winamp.

  53. wxWindows does non-gui stuff too by AintTooProudToBeg · · Score: 1

    My company has been using wxWindows for a year now. Our simulation software runs in gui and console modes. We use wxWindows because it offers cross platform (win32, linux is all we use) GUI, sockets, threads, file system stuff, 64 bit integers, "registry", OpenGl. You can build wx libraries without the gui stuff and still get the other cross platform functionality.

    I use a (commercial) gui "wizard" - wxDesigner - to layout our dialogs. Others do it by hand. The open source version wxWorkshop wasn't up to speed the last time I checked (6 months or so ago), but could be there now.

    The only think wxWindows isn't able to do for our company right now is display multiple children in an MDI at the same time under GTK (they're drawn as seperate tabs).

  54. The best is... by Anonymous Coward · · Score: 0

    Omnis Studio

    Check out on the web at:
    www.omnis.net and download an evaulation copy.

    Once a programmer is up to speed, they can easily outperform a team of 3 - 4 java developers. The tool creates interpreted cross-platform libraries (Windoze, Mac OS, and Linux/Solaris) that can connect to many different database backends.

    Unique web client is a small downloadable footprint, making applications much faster to develop, deploy and execute than java/swing applets.

    Oh, wait...its not open source. Nevermind. ;^)

  55. Why not native? by jmd! · · Score: 1

    Can't someone write an API that translates directly to native widgets on OS X, Gtk+, and MFC? Native will always win out over non-native (Apple's Safari being a recent example).

    Or would the LCD of these three platform's toolkits not be usable in any way? Are they that inherently different?

    1. Re:Why not native? by Anonymous Coward · · Score: 0

      wxwindows does exactly that.

    2. Re:Why not native? by Hanji · · Score: 1

      wxWindows</cough>

      --
      A Minesweeper clone that doesn't suck
    3. Re:Why not native? by dcuny · · Score: 1
      You mean, like wxWindows??

      Not that MFC is really "native." And GTK+ is no more "native" than Qt, but that's quibbling. Then again, this is Slashdot.

    4. Re:Why not native? by fault0 · · Score: 1

      wxWindows uses native widgets on x11 (through gtk), on windows, and macosx

      qt uses native widgets in windowsxp (through visual styles) and on x11 (through itself), and on macosx (through aqua)

      gtk uses native widgets in x11 (through itself)

      swing uses native widgets on x11 (through itself)

      ibm eclipse swt uses native widgets in x11 (through gtk usually), on windows, and on macosx

      gtk+ is not a native platform :o

    5. Re:Why not native? by jmd! · · Score: 1

      > gtk+ is not a native platform :o

      Well, I listed Gtk+ as native, since it's the native toolkit of the GNOME platform.

      I wouldn't want literal native X11 widgets... since that wouldn't match the look of or interoperate (DnD, paste, etc) with any other application.

  56. wx by Anonymous Coward · · Score: 1, Interesting

    My impression is that wxwindows is is a bit different than the other tool kits mentioned because it tries to provide a wrapper to the underlining gui system rather than creating its own. That may limit its functionality and portablility a little, but it means that you really will get native look and feel across platforms. I would imagine that it also cuts down on memory and speed overhead.

    1. Re:wx by Anonymous Coward · · Score: 1, Insightful

      You can get native widgets, but since people on Unix and Mac and Windows all have different ideas about what an application should be like, the "feel" aspect of the application will always be wrong on at least one of the target platforms.

      This is not about the window itself, but about the placement of buttons within the window and the fonts used and the way things are laid out. The worst UIs usually come from people who develop for Unix because they are used to so much less adornment in their apps as a result of their natural operating environment.

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

      Thats true, although just about any tool kit will suffer from those problems.

  57. Re:Fans? by Anonvmous+Coward · · Score: 1

    "Why so many fans? You're generally either funny or have something interesting to say, and the freak sheldonb hates you as well."

    Thanks man, though I'm stunned you got a +1 instead of an off-topic for that, heh.

    Question: Who's Sheldonb? Assume that's either you or a /. celebrity of some sort. I checked, though, he does have me on his foes list. Ha!

    *posted with no bonus because I'm off-topic.*

  58. Jabbascript. by Anonymous Coward · · Score: 3, Interesting
    You can update the inner xml of a tag by using Javascript to make an http request for a string.

    For example, the way that Kuro5hin has dynamic threads. They keep a stub of each comment id, and then run javascript to dynamically load the comment's contents when requested.

    I'm not sure whether it would have worked for you... real time graphical information -- so you needed to reload an image? How often?

    It's not suitable when you want to change an image ten times a second, but if your application would suit 2 or 3 second updates then there's a lot you can do with Jabbascript.

    Ahh Jabbascript.. the world doesn't know what you can do.

    1. Re:Jabbascript. by jaaron · · Score: 1

      I need to reload the image every few seconds, but it's rather tricky since there's a _lot_ of processing that goes into generating the image. It's easier to render it once and then just post the updates. So for several reasons it just wasn't acceptable to reload the whole image. We needed something that could be dynamically changed. There could potentially be some ways to do this with an applet and javascript, probably in Mozilla, but if we went with a fully browser based app, we would be stuck with IE, so it just wasn't going to work.

      In the end, I went with Apache's Batik and SVG. It allows us to generate static images for the web and real time images within the WebStart application.

      --
      Who said Freedom was Fair?
    2. Re:Jabbascript. by Anonymous Coward · · Score: 0
      Yeah, push doesn't work well in browsers - I've done something similar.

      With javascript we queried an url and based on the http status code we either refreshed the image (http code 304) or kept the current one (http code 2xx). We did this every 5 seconds. We even found a way to see whether a file was downloaded and we didn't reveal that image until it was :)

  59. Qt? by Futurepower(R) · · Score: 4, Informative


    Trolltech's QT costs $1550 each, per developer, for commercial use on Windows and Mac.

    QT versus Java (PDF file)

    QT versus MFC, in English (See the French below.)

    QT versus MFC, in French (MFC contre Qt)

    1. Re:Qt? by cje · · Score: 3, Informative

      The key word there is "commercial."

      Qt is free if you're developing free software.

      Incidentally, as somebody who has used both the Free and Commercial versions of Qt, I can vouch for the quality of Trolltech's support. Any technical questions that we've had about the library have been promptly answered, bug fixes have been handled well, and they are always receptive to requests for new features.

      --
      We're going down, in a spiral to the ground
    2. Re:Qt? by vrt3 · · Score: 2, Informative
      Qt is free if you're developing free software.

      Yes, but the Non Commercial Edition for Windows is still at 2.3 while other versions are at 3.0, and Trolltech doesn't seem to have animo to upgrade the Non Commercial Edition.

      --
      This sig under construction. Please check back later.
    3. Re:Qt? by alkini · · Score: 1

      This was a big reason that I ended up using *gasp* VB for a desktop project that I had when I was doing contracted work.

      My client didn't understand the concept of OSS or Free Software (why would they?) but they made it clear that they would not pay to have it developed if other people were going to get the software for free soon after. So, if I wanted the job (income) I had to write commercial software.

      I would have loved to tack on an extra $1550 to my quote in order to purchase a QT license, but that's an obvious issue when the client looks at the break-down of my quote and that line adds a large percentage to the bottom line.

      Unfortunately, Swing is a pain to work with (at least from my experience) and Microsoft put VB in my hands for next to no cost when I was a college student and allowed me to use it after I graduated, even on commercial projects. Once again, Microsoft's marketing succeeds in this case.

      I'm not sure what the solution to this is, but perhaps QT would consider a per-project license fee, one that acknowledges low-budget projects. Maybe charging a percentage of a project's total cost (if under a certain amount) for the rights to use QT in it would work.

      Maybe giving college kids a low-cost license that enables them to use QT in commercial projects after school would be beneficial to everybody.

      Maybe GTK just needs to mature on other platforms.

    4. Re:Qt? by el_chicano · · Score: 1
      Unfortunately, Swing is a pain to work with (at least from my experience) and Microsoft put VB in my hands for next to no cost when I was a college student and allowed me to use it after I graduated, even on commercial projects. Once again, Microsoft's marketing succeeds in this case.
      I have gotten a student version of VB6 with a textbook. The student version will not let you compile the exe file. Did you get a special student price on the full version of VB with no restrictions on how you use it after you leave school?
      I'm not sure what the solution to this is, but perhaps QT would consider a per-project license fee, one that acknowledges low-budget projects. Maybe charging a percentage of a project's total cost (if under a certain amount) for the rights to use QT in it would work.
      They really should also take into account educational institutions. It would be nice to write in-house Windows programs that are not meant to be distributed anywhere. For a lot of database driven apps the HTML forms interface has some shortcomings, a real GUI interface would be cool. I guess I need to look at TK...
      --
      A man who wants nothing is invincible
    5. Re:Qt? by alkini · · Score: 1
      I have gotten a student version of VB6 with a textbook. The student version will not let you compile the exe file. Did you get a special student price on the full version of VB with no restrictions on how you use it after you leave school?
      Yup. MS struck a deal w/ our school where we can get full versions of just about anything (OS upgrades, Office, Visual Studio, etc) for around $30. I think Slashdot posted on this in the past, but good luck digging through the archives to find it. The specific part of the agreement reads, "If you leave the University within the term of the contract you will receive a perpetual license for the products that you have received."

      It's one heck of a marketing move on their part, but I can't say that I feel good about it.

  60. pyGTK is the EASIEST GUI toolkit by daveaitel · · Score: 2, Interesting

    pyGTK with Glade is the EASIEST GUI toolkit. It may not be the "best" but I've built a commercial, cross platform application using it (here is a screenshot) and I am a complete retard at GUIs. It took a total of 2 weeks - from complete scratch. Porting it to Windows for my customers is just a matter of installing a few simple .exe's - they are used to that anyways. Because the GUI is actually a .glade XML file, I don't have to write any code at all every time I change it. It just makes more sense than having to worry about integrating your entire IDE into a GUI builder!

    1. Re:pyGTK is the EASIEST GUI toolkit by Anonymous Coward · · Score: 0

      You should check out PyGTK for gnome 2. Looks awsome.

    2. Re:pyGTK is the EASIEST GUI toolkit by pixelbeat · · Score: 1

      PyGTK + libglade is a fabulous combination.

      1. "Draw" the GUI in glade.
      2. Save the xml file
      3. In your python program essentially draw(xml file)

      Advantages:
      you/users can alter the xml file as required
      completely cross platform
      python really is a fabulous language.

      For an e.g. see FSlint

    3. Re:pyGTK is the EASIEST GUI toolkit by Anonymous Coward · · Score: 0

      I clicked your link and got a page that was entirely blank except for "html>" up in the top left corner. Not impressed.

  61. Moderators on crack by Anonymous Coward · · Score: 0, Flamebait

    The parent post is so full of errors, I don't know where to begin.

    1. Re:Moderators on crack by Anonymous Coward · · Score: 0

      I don't know where to begin.

      How's -1 Flamebait sound?

  62. what is Apache Software Foundation spinach? by linuxislandsucks · · Score: 0, Offtopic

    by your argument than what is Aapche Software Foundation which alos contibutes to Jav through the JCP process

    --
    Don't Tread on OpenSource
  63. GCJ + SWT by Anonymous Coward · · Score: 0

    GCJ [1] makes SWT [2] *truly* cross platform. You are not even tied to the Java VM at runtime.

    For example I'm creating windows GUI's under MinGW with GCJ and SWT [3]. But it should work anywhere that GCC and SWT work and you can develop in C++ (or any GCC language?) as well as Java.

    If you like Java and refactoring you can develop in Eclipse under a full java platform but deliver native executables.

    [1] http://gcc.gnu.org/java/
    [2] http://www.eclipse.org/
    [3] http://gcc.gnu.org/ml/java/2002-12/msg00105.html

  64. What's the point? by NineNine · · Score: 1

    I don't understand the value added in having everything cross-platform. I know, you can run the app on multiple platforms, not everyone runs Windows, blah, blah, blah. But, in reality, very few corporate apps are going to be run on multiple platforms. Most are used in one department/group which is standardized on one platform, and doesn't jump around willy-nilly. It doesn't happen. And, considering the averate life span of most apps, I think that today it's even *less* necessary to make sure that one app is multi-platform. Use the tools that work based on where and how the app is gonna be used. By the time new platform support is necessary, chances are a new app is gonna be needed anyway.

    But, that being said, my vote is for Oracle Forms. Build a GUI with a VB-like interface, and click the button that makes it all a Java app. Slickest thing out there that's not being used.

    1. Re:What's the point? by Raphael · · Score: 1
      in reality, very few corporate apps are going to be run on multiple platforms

      I disagree: my main workstation is running Solaris. I also have a Linux laptop on which I work when I am not in my office. My boss and most other people in the department are using Win2K, although several of them are also working on Linux. The corporate applications that I use daily are cross-platform. Some of them are web-based in order to have an easy way to support all platforms, but some others (such as the one that we use for time reporting) are native applications that have been developed with support for multiple platforms.

      So from my point of view, it does make sense to develop cross-platform applications. If you are using a good toolkit, this is not very difficult anyway.

      --
      -Raphaël
    2. Re:What's the point? by Grab · · Score: 1

      Do you always throw all your existing code away when you move to version 2 of an app?

      If you know for sure that you're *never* going to change to a new platform, then great. However the reality of corporate software tools is that they don't last a short time - rather, they hang around for ages bcos the management won't approve money to create a new tool when the old one kind of does the job. Given this context, multi-platform support makes sense, bcos you don't know how long any given platform will be around.

      Also remember that this isn't just corporate apps. A lot of ppl on /. have their own pet projects - they're writing programs which fill some need they have and which they intend to release as Open Source. (I'm one of these - check the link for details of my "GunFire" project. Shameless plug! ;-) If you've written a program to fill a niche and you think that a whole load of other ppl could benefit from using your program, it'd be a bit silly to restrict yourself to a single platform. Instead you plan your design so you can make your code multi-platform, and then you can reach the widest possible target audience.

      Grab.

    3. Re:What's the point? by gfxguy · · Score: 1

      Agree...

      I develop on Win2K, I also maintain a Linux server, and develop for Win2K, Linux, Irix, Max OS 9.x (that's the hard one right now).

      Why the diversity? The pointy heads are using Windows, the artists are using Macs. The 3D animataors are using Windows and SGI. Being the office nerd, I set up the intranet web and SQL server on Linux.

      Maybe if you're talking about a really boring work place (like an accounting firm) then everyone is using the same thing (and they all talk like Ben Stein).

      --
      Stupid sexy Flanders.
  65. V (lameness filter sucks) by quantum+bit · · Score: 1

    The V Toolkit for C++ had a lot of promise, but sadly it doesn't seem to have been maintained in a while...

  66. [OT]: your Sig by scotch · · Score: 1

    ...is not valid C - maybe you were trying for another language?

    --
    XML causes global warming.
  67. But.... by angst_ridden_hipster · · Score: 1

    I'm confused.

    What the hell's wrong with printf and fgets?


    --
    Eloi, Eloi, lema sabachtani?
    www.fogbound.net
    1. Re:But.... by aminorex · · Score: 1

      You have to write separate control sequences for every
      terminal, and woebetide you if you forget a flush(stdout)
      at the crucial moment. ncurses is the true xplat gui grail.

      --
      -I like my women like I like my tea: green-
    2. Re:But.... by Jeremy+Erwin · · Score: 1

      I'm guessing that your web browser is based on a more sophisticated API.

      Oh that's right-- there's a particularly lame browser called "WWW" (IIRC) which numbers each link, and link traversal is accomplished by typing in that number. It's obsolete...

      I think lynx uses curses (which is somewhat more involved than fgets/printf)

    3. Re:But.... by angst_ridden_hipster · · Score: 1

      uh... it was a joke, guys.

      You may be too young to remember it, but at one time, C was considered to be the super-eeeeelite cross platform language, 'cause there was a standard waiting for ANSI to approve it.

      Ah, nevermind. Kids these days. ncurses? Sheesh.

      --
      Eloi, Eloi, lema sabachtani?
      www.fogbound.net
  68. Laszlo? by Anonymous Coward · · Score: 1, Interesting

    For a very different (but interesting!) approach to x-platform dev, a company called Laszlo Systems has a "presenation server" that delivers full-fledged apps with real, desktop-style UIs into just about any browser. They have an XML- based application description language, combined with a JavaScript library -- all of this gets compiled by the server into SWF files (Macromedia Flash, version 5).

    http://www.laszlosystems.com/

    bottom line is it sounds like you get the benefits of things like SVG and XUL (standards-based, textual authoring) combined with the cross-browser, cross-OS/device compatibility and visual dynamism of Flash. No Flash authoring needed... XML only. Not a bad approach... and both the client (browser) as well as their server will run on Linux, Windows, Mac... etc.

    Has anyone worked with this?

  69. Realistically this should not be an issue IMHO. by FooMasterZero · · Score: 3, Insightful

    For the majority of the time I create GUI's in Java's Swing API. Despite what the purists say, my experience has shown that with a little bit of fore thought and not having Swing developers rely on GUI builder tools that create some pretty bad code, a.k.a JBuilder which is a good example of this. I personally like the SWT approach via IBM Eclipse project, yet purist will most likely say that this toolkit suffere or will suffer the same quasi-proprietary baggage that people claim Swing suffers from with Sun's involvement with Java.

    However with the subject at hand, why are GUI toolkits such an issue anyways. This seems like a senseless battle that tends to reflect a typical male chauvinism of mine is bigger and better then yours so NAH !.

    I have no experience with most of the *nix toolkits as they honestly gave me no reason to start since I could never figure out which one was the most sensible to use. This is something I am sure alot of *nix developers face as they decide things like "Do we want GNOME support, KDE support, both ?" Working with MFC some they are all right of course there is not the smorgasboard of choices present in the windows world as *nix worlds. I think in Win32 for native Toolkits you are limited to MFC and QT, I could be wrong.

    So now the question is not really what toolkit is the best to use, but which toolkits can simply go away. Realistically how many different usable ways can you create a window and manipulate a window component. I ask this becuase i have managed to create very nice platform independant GUI's that work damn near identical on linux, mac, and windows and with the exception of win32 and linux since the Java Look and feels don't emulate the environment 100%. However disregarding certain things they pretty much look native.

    So if Java API's are good enough to create an abstraction layer to the native look and feel. Whats to say that idea can't be taken a step further and take the java factor out, this is similar to SWT approach. I mean seriously lets show some innovation here, instead of trying to declare on toolkit over another based on the premise that something as silly as showing a round button with gradients versus a flat rectangular one with no gradient colors.

    On a final note of this rant, a simple standard toolkit for platforms to could encourage developers to work with simpler toolkits that give them the benifit of working on multiple platforms with confidence, this way more developers more applications that are available to more people then just select few for whatever platform the choose. For those purist or XXX toolkit zealots out always remember if you have special needs that a standard toolkit doesn't provide you can always go one step further and do it yourself, i mean there is always assembly right ?

  70. Text/Note Pad by Beatnick · · Score: 2, Funny

    Everyone knows a good developer uses just a
    simple text editor. ;) Just kidding of course.


    For me, I see the many aforementioned GUI kits
    as great tools but it all comes down to what
    the job demands/dictates. I find myself being cross-trained
    instead of cross-platform developing. Every contract we take on,
    we are asked to perform it in the company's chosen dev environment.
    Anyone else in this predicament?

    Does anyone know of a site that tracks various
    IDEs that are currently in use?

    If your company requires multiple IDEs as mine does,
    who supplies you with the training to effectively
    use the tools as well as the languages themselves?

    1. Re:Text/Note Pad by Anonymous Coward · · Score: 1, Interesting

      We don't work onsite, so this is not an issue, but there could be something applicable in my experience to your experience.

      When we get a new project, it invariably requires some learning curve just to get our engineers up to speed. However, there is always some aspect of the project (like IDEs in your case) that someone has some proficiency in. That person is put on the project in order to provide help to other team members who may be complete newbies to the types of technologies necessary on the project.

      This leads to less frustration on the part of inexperienced engineers as well as a boost on the learning curve. It also spreads knowledge around so that next time a project comes along with the same aspect as before the engineer who used to know nothing can take charge and teach others.

    2. Re:Text/Note Pad by j3110 · · Score: 1

      This is an interesting trend... Now real programmers use notepad. Last time I heard this phrase, it was "real programmers use a hexeditor" or debug. When computers are voice programmed, will people be saying real programmers use a keyboard or IDE?

      --
      Karma Clown
    3. Re:Text/Note Pad by peterpi · · Score: 1
      "Everyone knows a good developer uses just a simple text editor. ;) Just kidding of course."

      Damn right they do. On my current project we have 2 vi users, one emacs luser, one MSVC user and one guy who wrote his own text editor.

    4. Re:Text/Note Pad by Beatnick · · Score: 1

      Interesting you brought this up. I still recall
      hand entering hex on some of the older personal computers
      even the Commodore 64 & 128s.

      After working in assembler for quite some time
      one grows affectionate but not dependant on
      development environments that work the memory management
      task.

      I'm sure Mano's simple computer design is still
      taught but I'm curious how many people under
      current IDE design influence have seen it discussed.

    5. Re:Text/Note Pad by Beatnick · · Score: 1

      My first OO project in Software Design was a
      text editor for X. I still use it from time to time
      on some of my development projects.

    6. Re:Text/Note Pad by Beatnick · · Score: 1

      That's exactly the way it is for us. Some are pulled
      from other projects due to their experience
      but the fact that our division is small in head-count
      creates a number of frustrations.
      Spreading knowledge definitely helps out tons for us.
      With recent cut-backs in our training package,
      it's hard to keep up in my field and really appreciate
      other team members helping me to keep up.

    7. Re:Text/Note Pad by j3110 · · Score: 1

      I would guess 1%.

      Good ole memory management... The days of security through obscurity. Most of those old programs were so cludgy that they won't even run on a fast computer. I was affectionate of them, but honestly, for the good of the world, I'm glad they are gone. If any of my old programs had encountered a string >255/65535 bytes long, it would probably have died and brought the computer down with it. VM's are the way of the future... They are the ultimate hardware abstraction. Imagine if all the software in the world was written in a scripting language or Java. X86 would have died long ago, and hardware would have compensated for the performance loss and them some.

      I try not to have the "pry my hexeditor/notepad from my cold dead hand" approach to computer practice and theory. It's quite hard to be too liberal about software development. #1 The best way to do something will never be found. #2 Things change faster than you can code.

      A good IDE is a neccesity. Even the notepad people have some kind of IDE... It may not be as integrated, but even a build tool + editor is an ide. It's just easier for new people to get into computer programming with an IDE. They usually have integrated help, auto-completion, and other utilities that make a 10h project a 9h project. They also let people learning to code do a little maintenance work to learn the language and style of a program without learning 4 tools (editor,builder,compiler,repository). In a good IDE, you only need to worry about the code and the editor.

      In the end, programming will be done with the least possible human input. Say, you design the program, and the computer interprets the design into a machine readable format. There will always need to be someone who can work at each tier though to improve the system. Someone has to make better hardware, compiler/interpreter, OS/VM, UI. Someone out there will have to be the next generation's low-level optimization specialist or basic system OS boot-strap writer, or VM optimization person. Those skills will always be needed, but the lack of demand will cause the quality of work at these levels to deteriorate some. There is always that crazy 13y/old that can speak X86 binary like a native language though, so who knows.

      Where do you think it's all going? Is there still much room/demand for low-level programmers anymore? Do you think the trend will continue? To what end?

      --
      Karma Clown
  71. If Bill Gates decides to marry Britney Spears? by Futurepower(R) · · Score: 2, Insightful

    Yes, but doesn't it make a difference that WxWindows is:
    1. Open Source. You can fix it, or ask someone else to fix it if something goes wrong. If Bill Gates makes an anti-customer decision (Would Bill Gates do that?), you are protected. If Bill Gates decides to quit Microsoft and become a wind surfer, you are protected. A downturn in the fortunes of Microsoft does not become a downturn in the fortunes of your company.
    2. Cross Platform. It is impossible to predict how popular other operating systems will be. You may want a Linux version of that Windows product.
    3. If necessary you can always make a call to MFC. Using WxWindows does not stop you from using MFC for some special need.
    1. Re:If Bill Gates decides to marry Britney Spears? by Anonymous Coward · · Score: 0

      1. MFC is completely open source. All the code that makes up MFC is provided under the mfc\src directory. A little time spent understanding the directory structure would result in being able to write the makefiles for MFC as well. There's nothing difficult in there except for the silly variable scoping issue in VC++ 4 that was exploited in the code.

      2. With products like MainWin's, you can run Win32 apps on Unix. MFC is only an extension wrapper around Win32, so MFC apps will work there as well.

      3. Why use wxwindows at all if it only provides a subset of MFC features?

      wxwindows is not lighter, faster, or better than MFC in any way on Windows. It does have native support on other platforms and that is a leg up in regards to cross-platform programming.

      So yes, it makes a difference if you don't know what operating systems you are writing your app for. Otherwise, I'm not sure it makes much of a difference.

    2. Re:If Bill Gates decides to marry Britney Spears? by Anonymous Coward · · Score: 0

      All the code that makes up MFC is provided under the mfc\src directory
      That doesn't mean it can legaly be expanded on or ported, though. Maybe it actully can (I have no idea), but it certainly isn't implied by your statement.

  72. Wookie Love! by Anonymous Coward · · Score: 0

    Wookie LOVE!!

    Who wouldn't want to make love to Chewbacca?

  73. Sun controls Java. by Futurepower(R) · · Score: 1

    Sun controls Java. No one controls Unix work-alikes.

  74. ZooLib has a native look and feel by MichaelCrawford · · Score: 3, Informative
    I'm a big fan of Andy Green's ZooLib, at:

    It draws its own widgets, but uses switchable renderers so it maintains the platform look and feel. It uses the Appearance Manager if it is available on the Mac OS. It put the menu bar in the windows on Windows and across the top of the screen on the Mac.

    It supports Mac OS (68k, PowerPC, classic and Carbon), Win32, BeOS x86 and Linux. It would not be hard to bring it to a totally new platform.

    It is in C++, is multithreaded, and provides a complete solution - not just GUI but TCP networking, file I/O, streams and persistent storagge.

    If you use it, I suggest you use the version in CVS as a lot of work has been done since the last release. A new release is planned soon.

    I have started writing a tutorial called The ZooLib Cookbook.

    ZooLib is under the MIT License and the Cookbook is under the GNU Free Documentation License.

    ZooLib has actually been around longer than even wxWindows, but it was only placed into open source in the fall of 2000. Among the applications written with it is Knowledge Forum.

    --
    Request your free CD of my piano music.
    1. Re:ZooLib has a native look and feel by Anonymous Coward · · Score: 0

      wow it's been around longer than wxWindows, and it still has jack for features! How can you go wrong with that?

  75. Omnis Studio by ThadMan · · Score: 2, Informative

    Omnis Studio (www.omnis.net) is a multi-platform application development environment that allow you to build business centric applications. It allows you to develop an application on one platform and deploy to all other platfroms with little or no code changes. The deployed applications have a native look and feel. Currently Studio supports Linux, Windows, Mac OS 9 and X, and Solaris.

    From what I hear, there is even support for Windows CE (or whatever it's called) planned in the future.

    Studio also has a client that allows to embed a fully gui application in a web browser too.

    It's pretty amazing stuff; especially since the technology has been around sice the Apple II!

    1. Re:Omnis Studio by Anonymous Coward · · Score: 0

      I'll second this. Building applications that last years without worrying about OS's. I know of apps that were built in 1992 and are still running great with only minor changes. The web client stuff still beats them all when used in the right environment :)

    2. Re:Omnis Studio by -rgtm- · · Score: 1

      I'll go along with this. I've been using Omnis, in various incarnations, since 1986! It's a wonderful, very powerful tool.

      It's mostly a database development system. It has its own (SQL) database engine or you can develop the GUI front-end for just about any of the big engines (Oracle, Sybase, etc, etc) or lots of others through ODBC.

      It's mature, fully cross-platform and fully object-oriented. The web tool lets you deploy your app through a browser.

      I work for a software company now, coding in Omnis, Oracle, and PERL, but I cranked Omnis code for almost ten years at Nortel. So it is used by some of the big, enterprise-scale employers. Not to speak of hundreds of small-medium businesses. Omnis is what PowerBuilder wants to be if it ever grows up. :-)

      Yeah, this is commercial software, but it truly is "best of breed." Strong, supportive developer community, too.

      Ragtime

    3. Re:Omnis Studio by Anonymous Coward · · Score: 1, Informative

      Here is my admittedly biased view on Omnis. I've been developing with Omnis since 1988. I don't work for or own any stock in the company that created and sells Omnis. I'm just a happy developer. I also develop using various other languages like C, PHP, PL/SQL, and Java. All these tools have their place but whenever I need to develop a database application quickly, I find myself turning to Omnis. It is an exceptionally productive tool for developing these types of applications but it is not a tool that someone would choose to write a word processor for example.

      Omnis has been cross platform since 1989 so the kinds of things that some toolkits are still struggling with today, were addressed some time ago in Omnis. In concept, it is very similar to Java. It is a byte code interpreted language that needs a run time (virtual machine) installed on the target platform. Its performance is quite acceptable given that it is an interpreted language. The developer community is rabidly devoted to the product and there are countless vertical market products that have been developed with Omnis over the last 25 years (that's right - over 25 years!). You can download it and get more information here. There is an upcoming user conference that you can read about here. Give it a whirl. I think you'll be amazed. On second thought, don't. I'd like to keep my competitive advantage:)

    4. Re:Omnis Studio by jcxm · · Score: 1

      Omnis Studio allows the developer to program on the OS of his or her choice. I run a consulting firm that specializes in the Omnis family of products. When we bring on a new hire, I allow the person to choose a new machine, one that they are most comfortable with, whether it's a Windows, Mac or Linux box. That allows for a happier employee, greater productivity and enables me to deliver greater value to our clients. It also allows me to deliver future proof applications as the environment is not tied to a particular OS. The Omnis developer community is incredibly vibrant. There is a community list server with nearly 1000 subscribers and there are three developer conferences held each year, one in North America (AmerOmnis - www.ameromnis.com), one in Europe (EurOmnis - www.euromnis.com) and Australasia (OzOmnis - www.ozomnis.com), all of which are community run. Omnis Studio is mature and fully functional. It's been around for decades yet it has very much kept up with the latest technologies. You can download a fully functional demo version at www.omnis.net.

    5. Re:Omnis Studio by sidmitra · · Score: 1

      Been working on and off with Omnis since 1994. Incredibly stable, rich and elegant development environment. Truly cross platform--I am currently working in an environment where our lead developer is developing on OSX while we are deploying to Windows client sites. The only downside to Omnis would be it is a relatively obscure product, which can make risk-averse management wary of it. But that is offset to by a stable, *incredibly* helpful, and rabidly loyal developer community that's been around since the eighties. For cross-platform development, I cannot think of any other tool (incl. Java) that comes close to Omnis.

    6. Re:Omnis Studio by Anonymous Coward · · Score: 0

      Another STRONG vote for Omnis. I'm another person who's used various versions of it since the mid-80's, in companies large and small. It just works. And it's the easiest product I've ever used to DEVELOP on Mac, Windows and Linux platforms and have the code totally useable and shareable across all those supported platforms.

      One Omnis feature not yet mentioned is its own VCS. The company I work for currently has 25 Omnis developers working on our product (software for managing BIG ad agencies), and Omnis' Version Control System has been invaluable for development team.

      And the product is big. Just to give you an idea, one module pulls in the entire Nielsen ratings so media buyers can research how specific programs or time slots perform against any demographic target.

      Omnis allows us to server the Agency market, where there still are many Macs in addition to other platforms. It's the best kept 'secret' in the development world.

      David.Barnett@encodasystems.com

    7. Re:Omnis Studio by Anonymous Coward · · Score: 0

      Omnis Studio it is the best cross-platform and in fact all-round RAD development tool I have come across. Customers love the results and developers love working with it. We have a fully fledged ERP package written with it.

      Paul Smyth

    8. Re:Omnis Studio by Anonymous Coward · · Score: 0

      The technology cannot be faulted PERIOD. I have been using Omnis since late 80's and am constantly suprised at the longevity and stability of applications on all platforms. If there is one thing that this thread has underlined it is that those who know Omnis love it, unfortunately there a huge numbers of clients and developers that have NEVER heard of it... if Raining Data have a marketing division please wake them up and market our favorite tool a little better

  76. The GUI toolkits/frameworks page by Oniros · · Score: 1
  77. When.. by Suppafly · · Score: 1

    I'll be able about cross-platform GUI toolkits when they make one that looks as good in windows as mfc does. Its easy enough to make a toolkit thats easier to use and understand than mfc, but its awful hard to make one that produces an end result that looks and feels like a native windows app. Linux users are used to apps that don't behave in predictable manners, or don't look the same (mozilla is awful popular among linux users for instance), but windows users are less accepting of programs that look and behave 'wrong'.

    1. Re:When.. by Arandir · · Score: 1

      I'll be able about cross-platform GUI toolkits when they make one that looks as good in windows as mfc does.

      Then you need to try Qt. Seriously. Download the free Windows version and try it out. The widgets under the Windows theme look perfectly native. They also look perfectly native under Mac OSX and Motif.

      A lot of people are using it for their non-crossplatform native-Windows development, because the library architecture makes so much more sense than MFC.



      You mean like MediaPlayer, WinAmp, Quicktime and RealPlayer? Typically, it's the "media" applications that tend to go their own way, but Microsoft Office seems to come out with something different every alternating version. Frankly, Or what about the .NET look?

      And Mac OSX users seem to accept their OS just fine, despite the fact that Apple can't make up their mind if they want jelly drops or brushed aluminum on the desktop.

      The myth that users will only accept one way of dong things is easy to reiterate, but it doesn't hold too much water when scrutinized.

      Qt gives you the best of both worlds. Theme it to your hearts content (Liquid, Qinx, Keramik, etc), or keep the native look. In the same application.

      Really, give Qt a try. You don't have to keep using it if you don't like it, but it solves your stated problem so it deserves your analysis.

      --
      A Government Is a Body of People, Usually Notably Ungoverned
    2. Re:When.. by Anonymous Coward · · Score: 0

      I beleive Qt does this perfectly. However, it might set you back 1500$ :D

      1. it's native on win32, without any hitches (try out Psi, for example)
      2. it's native in macosx (sorta.. uses carbon not cocoa)
      3. it's far easier (imho) to use than MFC (or MFC-like toolkits such as wxWindows)

    3. Re:When.. by Anonymous Coward · · Score: 0

      "but windows users are less accepting of programs that look and behave 'wrong'." Huh? I am at a loss trying to figure out how you arrived at that conclusion. Windows users are probably the most accepting of programs that look and behave "wrong" or better yet, "inconsistent". Windows programs are full of inconsistency as is the OS itself.

  78. One person's analysis: by Futurepower(R) · · Score: 2, Informative


    One person's analysis and comparison of GUI toolkits: Why this GPL programmer didn't choose .NET

  79. Post a link by Anonymous Coward · · Score: 0


    If this is a dupe, post a link to the previous story.

  80. VisualWorks Smalltalk by MarkWatson · · Score: 1

    I would check out VisualWorks from www.cincom.com

    It is free for non-commercial use. I signed up as a VAR with Cincom a few months ago, and I have been very impressed with VisualWorks.

    On this topic: it is easy to build native-looking applications
    for Windows, Linux, Mac OS X, etc.

    -Mark

  81. With Java, you may give away your source code. by Futurepower(R) · · Score: 1

    Mono and GTK can be compiled to native binary, eliminating the possibility that exists with Java of easily seeing the underlying coding.

    1. Re:With Java, you may give away your source code. by aminorex · · Score: 1

      Java too has native compilers. If you're too cheap to
      buy one, get gcj. It works. SWT compiles well with gcj
      on almost any platform that is remotely interesting.

      --
      -I like my women like I like my tea: green-
  82. Trying to Answer the Original Question... by shaklee · · Score: 1

    As usual, this thread has wandered pretty far from the original topic, which is a shame considering that this is a fairly important issue for a lot of people. I do actually have a little experience in this area, so here's what I know that might help: wxWindows: If you're going to stick to a C++ cross-platform application framework, I honestly believe this is the best option. Most people don't seem to pay much attention to it, and many of those who have were burned by bugs in earlier versions, but it's really starting to come together in terms of both stability and functionality. I ported early code for a pretty complex program from MFC to wxWindows within 2 months, which impressed me considering that I wasn't familiar with either toolkit and that was my first real use of C++. I'm now doing a bit of work with wxPython, which is also going pretty well. The Mac port development tends to lag a bit behind the others, but it has been (and is being) used to deliver several commercial products, so it seems to be in usable condition; I haven't had a chance to test it myself yet. By all means, please carefully consider this option; it seems to be the most capable framework of it's type currently out there, has a respectable number of users and developers, and will get even better with more support. CPLAT: Afraid I can't say anything as positive about this one; the MFC project I mentioned above was itself a port from CPLAT. After 2 months of development with CPLAT (ending January 2000), the developers unanimously agreed that the framework was so buggy that it would be faster to write separate versions of the program for MFC and PowerPlant. I believe there is only one developer on the project; that simply isn't enough resources to properly handle a framework of this magnitude. Whisper: We looked at this one also, but it didn't have enough of the features we were looking for to be worth trying. It also looked to be, like CPLAT, a one-man effort. YAAF: Another one we passed over after a brief glance. The web site didn't have much information, and I don't see any indication that it's being used much. I may have short-changed it, but I just don't see enough activity around it to indicate a really good product. GLUI: I haven't used this or looked too closely at it yet. The lack of native widgets bothers me, though... Carbonless Copies: Hadn't heard of this before. The web site given above hasn't been updated in a while, I haven't heard of many people using it, and it's a proprietary program; I'd be inclined to avoid it. Regarding some of the other options people have suggested: Java: While useful for some purposes, cross-platform GUIs arguably isn't one of them. It's relatively easy to get a Java GUI program to work cross-platform, but practically impossible to get it to work well. AWT lacks major functionality. Swing is buggy and a *massive* memory hog; don't even think about running Swing apps on computers with 32 MB of RAM, and they're not terribly happy even with 64 MB. And Java in general is lagging far behind on the Mac. Finally, it is a proprietary platform complete with all of the problems that entails. I used to really like Java, but not much progress has been made at solving some of it's critical deficiencies. I'm now hoping Python can take it's place... Mozilla: Mozilla is useful, but it's deficiencies have been noted above; lack of native widgets, slow response time to user input, etc. I look forward to using this for some projects, but it isn't going to replace the need for a cross-platform C++ application framework. GTK+: Doesn't work on the Mac, and won't for some time to come. Doesn't use native widgets on Windows, either (to my admittedly limited knowledge.) I agree with the wxWindows approach; use GTK+ on Windows, use the Windows API on Windows, and use the MacOS API on the Mac. Qt: Again, doesn't work on the Mac and doesn't use native widgets on Windows. Tk: Doesn't have native look and feel, and last I checked has some issues on MacOS. I've also gotten the impression that the widget selection isn't as rich as that of wxWindows, although I haven't looked at it closely enough to judge for myself. On the topic of RAD tools; wxWindows does not yet have a usable RAD tool, although the wxStudio IDE is under development and there is a working dialog and panel editor. wxPython has the Boa Constructor IDE which seems to be almost in usable condition; it could also be argued that compared to using C++, even manually writing Python code practically *is* a RAD environment. Hope this successfully addresses some of the issues, and hope it isn't buried so far down in the responses that it never gets noticed...

    1. Re:Trying to Answer the Original Question... by Anonymous Coward · · Score: 0

      Qt Now supports Mac...
      See Here [Trolltech.com]

  83. Excellent book.. by TheTomcat · · Score: 4, Informative

    on PyQT:
    http://www.opendocspublishing.com/pyqt/

    Python: cross platform
    QT: cross platform, native-working widgets.

    QT, however, isn't free for commercial use.

    S

  84. can anyone vouch for SWT? by QuantumG · · Score: 1

    cause when it comes to comparing Qt to Java Swing/AWT there is simply no comparison. I'll put it to you straight: code one more graphical application in that dog slow language and I will personally ensure that you eat every word you utter about "java performance not really mattering". A gui should respond to a user request in less than 100ms, anything slower and you have written a dog slow application. I submit to you that EVERYTHING written in Java/Swing that has a graphical user interface element does not meet this requirement. Now, can anyone vouch for SWT?

    --
    How we know is more important than what we know.
    1. Re:can anyone vouch for SWT? by revscat · · Score: 1

      IDEA.

  85. Making a choice, BTW MFC ain't all bad by Anonymous Coward · · Score: 1, Informative

    I've spent a lot of time developing commercial apps on multiple platforms, and I haven't found any perfect solution.

    The trouble is users (especially Windows users) nearly always (eventually) want some platform specific functions: "Why doesn't this app have .... (fill in blank with your choice of the day, could be XP themed menus, integration with MS Outlook or a hundred other things) like that latest version of Office/some other app.

    So I would suggest the best answer for many problems:
    1. Separate the underlying logic from the UI with a well-defined interface.
    2. If you need to be cross platform, try to use a toolkit which lets you drop down to the native API where necessary. Otherwise you can really suffer if you later need to do something that the toolkit doesn't support - unless you are absolutely sure such requirements do not apply now, and never will.
    3. Be absolutely sure you need to be cross platform, before embarking on the extra work.
    4. Every toolkit/API involves some compromises or design choices by the people who made it. Before choosing one, make sure you are aware of the choices the designers made.

    Changing subject... For MFC, I think the original choice was "thin wrapper round Windows API". Some later choices involved backward compatibility

    Regarding MFC. People bash it. It's not really cross platform. It includes a bunch of IMHO hopeless utility classes. It has quirks. But I would say:
    1. It lets you mix with native Windows API easy.
    2. It works way better if you truly understand the Windows API. Most of the quirks in MFC are because of Windows quirks. ...If on the other-hand you rely purely on the app-wizard generating the code, and filing out empty functions, you're probably in trouble anyway. Possibly more trouble with MFC than some other toolkits, but still in trouble whatever toolkit you use.
    3. The older utility classes (example: non-template collections) are IMO mostly hopeless, but are there for backward compatibility. At the time they were introduced Microsoft's compiler didn't support templates and STL was still in its infancy if extent at all. CMap, CArray and CString are pretty much the only good ones.
    4. There are lots of samples/help at codeproject.com codeguru.com and Microsoft's sites
    5. MS do give you the source code to MFC. You could modify it and recompile (although I never found the need), or alternatively you can use this to hack around or better understand a limitation/bug/quirk.
    6. Rumors of its death are much exaggerated. As long as Windows supports the Win32 API, MFC apps are still going to work. Whether Microsoft keep enhancing it is another question, but if they don't there are plenty of people rolling their own add-on class toolkits

  86. QT! by nonmaskable · · Score: 1

    I've worked with Qt on large projects with ports to both Win32 and various Un*x flavors. I'm really happy with QT (other than stupid reinventing of STL stuff). Qt is clean, well-documented, easy to use and subclass. Gtkmm is very good for a veneer on top of C language OO, but isn't remotely as clean or consistent.

    Try a non trivial specialization of a Gtkmm widget - then try the same thing in Qt. IMO, it's not a close call - even if you have the time to figure out what to do in Gtkmm (compare the documentation with Qt's docs).

    1. Re:QT! by fault0 · · Score: 1

      > I'm really happy with QT (other than stupid reinventing of STL stuff).

      Well, Qt and STL happily coexist (especially since Qt3). The reason TT invented their own STL-like classes is because Qt predates the time when STL was fairly portable and standardized across platforms. If Qt was written today, it probably would make full use of the STL.

      > Gtkmm is very good for a veneer on top of C language OO, but isn't remotely as clean or consistent.

      Agreed.

    2. Re:QT! by Anonymous Coward · · Score: 0

      QT collection classes are much more lighweight and generally are much faster than STL stuff.
      Sometimes this matters a lot.

  87. Flash MX by burnitall · · Score: 1

    flash mx/actionscript using it's native xml stuff to talk to web services. for distributed data access type apps especially ones that require visualization, this could well be the future.

    it's just too bad its proprietary

  88. Re:Fans? by Call+Me+Black+Cloud · · Score: 1

    No, I'm not sheldonb...I meant to hit "no karma" on my last post and hit "post anon" instead. He is a foe of mine as well. He doesn't post, no friends, just collects foes. Anyone he hates must be ok in my book :)

  89. wxWindows by MrBlack · · Score: 1

    I never noticed anything "funny" about wxWindows either....'cept the "now for something completely different" splash screen in wxPython, but I imagine this is just as funny on any platform. Actually now that I come to think of it wxBasic was pretty funny too (in a good way).

  90. Trying to Answer the Original Question, v. 2.0 by Futurepower(R) · · Score: 2, Informative


    I reformatted the parent post. No other changes:

    As usual, this thread has wandered pretty far from the original topic, which is a shame considering that this is a fairly important issue for a lot of people. I do actually have a little experience in this area, so here's what I know that might help:

    wxWindows: If you're going to stick to a C++ cross-platform application framework, I honestly believe this is the best option. Most people don't seem to pay much attention to it, and many of those who have were burned by bugs in earlier versions, but it's really starting to come together in terms of both stability and functionality. I ported early code for a pretty complex program from MFC to wxWindows within 2 months, which impressed me considering that I wasn't familiar with either toolkit and that was my first real use of C++.

    I'm now doing a bit of work with wxPython, which is also going pretty well.

    The Mac port development tends to lag a bit behind the others, but it has been (and is being) used to deliver several commercial products, so it seems to be in usable condition; I haven't had a chance to test it myself yet. By all means, please carefully consider this option; it seems to be the most capable framework of it's type currently out there, has a respectable number of users and developers, and will get even better with more support.

    CPLAT: Afraid I can't say anything as positive about this one; the MFC project I mentioned above was itself a port from CPLAT. After 2 months of development with CPLAT (ending January 2000), the developers unanimously agreed that the framework was so buggy that it would be faster to write separate versions of the program for MFC and PowerPlant. I believe there is only one developer on the project; that simply isn't enough resources to properly handle a framework of this magnitude. Whisper: We looked at this one also, but it didn't have enough of the features we were looking for to be worth trying. It also looked to be, like CPLAT, a one-man effort.

    YAAF: Another one we passed over after a brief glance. The web site didn't have much information, and I don't see any indication that it's being used much. I may have short-changed it, but I just don't see enough activity around it to indicate a really good product.

    GLUI: I haven't used this or looked too closely at it yet. The lack of native widgets bothers me, though...

    Carbonless Copies: Hadn't heard of this before. The web site given above hasn't been updated in a while, I haven't heard of many people using it, and it's a proprietary program; I'd be inclined to avoid it.

    Regarding some of the other options people have suggested:

    Java: While useful for some purposes, cross-platform GUIs arguably isn't one of them. It's relatively easy to get a Java GUI program to work cross-platform, but practically impossible to get it to work well. AWT lacks major functionality. Swing is buggy and a *massive* memory hog; don't even think about running Swing apps on computers with 32 MB of RAM, and they're not terribly happy even with 64 MB. And Java in general is lagging far behind on the Mac. Finally, it is a proprietary platform complete with all of the problems that entails. I used to really like Java, but not much progress has been made at solving some of it's critical deficiencies. I'm now hoping Python can take it's place...

    Mozilla: Mozilla is useful, but it's deficiencies have been noted above; lack of native widgets, slow response time to user input, etc. I look forward to using this for some projects, but it isn't going to replace the need for a cross-platform C++ application framework.

    GTK+: Doesn't work on the Mac, and won't for some time to come. Doesn't use native widgets on Windows, either (to my admittedly limited knowledge.) I agree with the wxWindows approach; use GTK+ on Windows, use the Windows API on Windows, and use the MacOS API on the Mac.

    Qt: Again, doesn't work on the Mac and doesn't use native widgets on Windows.

    Tk: Doesn't have native look and feel, and last I checked has some issues on MacOS. I've also gotten the impression that the widget selection isn't as rich as that of wxWindows, although I haven't looked at it closely enough to judge for myself.

    On the topic of RAD tools; wxWindows does not yet have a usable RAD tool, although the wxStudio IDE is under development and there is a working dialog and panel editor.

    wxPython has the Boa Constructor IDE which seems to be almost in usable condition; it could also be argued that compared to using C++, even manually writing Python code practically *is* a RAD environment. Hope this successfully addresses some of the issues, and hope it isn't buried so far down in the responses that it never gets noticed...

    1. Re:Trying to Answer the Original Question, v. 2.0 by Anonymous Coward · · Score: 0

      Actually, Qt is native in both MacOSX (e.g, carbon) and in Windows.

    2. Re:Trying to Answer the Original Question, v. 2.0 by e8johan · · Score: 1

      "Qt: Again, doesn't work on the Mac... "

      According to trolltech it does.

  91. nonsense by RelliK · · Score: 4, Interesting
    Tcl is a complete hack of a language. Imagine a Bourne shell, but with a totally ugly syntax. It is completely unsuitable for any sort of large application (and I have had an exteme misfortune of writing a farily large project in Tcl/Tk). What's wrong with Tcl? Let's see...
    • It's a scripting language, interpreted on the fly. That means only the parts of the code that are actually being executed are parsed. You may have a syntax error in another part of the code, but you will not notice it unless you run that code. Even Perl parses the entire file before running it, but Tcl, just like shell, essentially treats the file as a stream of commands.
    • It's weakly typed. This is actually the bane of all scripting languages that makes them unsuitable for large projects. You can assign an integer / float / string / file handle / whatever to the same variable without the interpreter even twitching.
    • Here is a biggie: it does not force explicit declaration of variables.A variable simply comes to life when it's first used. Good luck trying to debug misspelled variable names.

    And these are just my biggest objectsions. The Tk widget set is not bad. It is quite ugly and limited, but good enough for a small GUI app. The underlying language though is absolute crap.

    The only good thing about Tcl is that it provides a (relatively) easy way of interfacing with C code: you can expose C functions as Tcl commands (e.g. you could map Tcl command foobar to C function MyFooBar()). This is, in fact, what Tool Control Language was designed for: exposing C functions to a high-level script to facilitate easy automated testing. However, trying to write a real application in Tcl is an excercise in futility. There are much better alternatives available. But, if all you have is a hammer, everyting looks like a nail -- that is why Tcl is the "past and future king".

    --
    ___
    If you think big enough, you'll never have to do it.
    1. Re:nonsense by bluGill · · Score: 1

      You missed what I alternativly think is either the coolest, or the worst feature of TCL: It is one of the few languages left that does not have static type scope. This allows for some wonderful ways to ensure you are never fired. (Sure just access the variable foo from two function calls back directly, but God only knows which of the many functions with foo that is). There are also times when you MUST use this feature. (Though I only encountered it once in my 40,000 lines of TCL, it was difficult to make work)

      Everyone should expirence this at least once so they know what the old farts are talking about when they mention dynamic typing. IBM used to have one guy whos job was to assign variable names, and you couldn't have a tempary variable without his permission. Fortunatly TCL isn't purely dynamicly typed, so you can re-use variable names.

    2. Re:nonsense by twalk · · Score: 1

      "However, trying to write a real application in Tcl is an excercise in futility."

      You must not know about the EDA industry then. Anymore practically everything uses tcl and tk. Some of these GUIs would be impressive as just a native Windows program, but yet they are portable.

    3. Re:nonsense by Anonymous Coward · · Score: 0

      True, however the core applications, such as synthesis or timing engines, are not written in TCL, they're written in C or C++. In addition to portability, TCL is there to allow the customers much more flexibility in automating the tedious, time-consuming jobs which are so common in chip design.

    4. Re:nonsense by pyrrho · · Score: 2

      which is interesting because this is the point of TCL... TCL has a very good attitude about itself in that it's not presented as the end all be all language, one language for all. TCL justifies script languages as a means to tie together all the components that are carefully created in optimal, compiled, languages.

      This is appealing as a philosophy because it's the reality that most seem to wish away... many languages always crying for various types of integration. But it's still a scripting language, and in a way any scripting language can borrow that philosophy.

      --

      -pyrrho

    5. Re:nonsense by Anonymous Coward · · Score: 0

      What do variable names have to do with dynamic typing?

      I think by "static type scope" you mean "lexical scope", which has nothing to do with types.

      Dynamically typed languages certainly have no problem with variable names.

    6. Re:nonsense by twalk · · Score: 1

      "True, however the core applications, such as synthesis or timing engines, are not written in TCL, they're written in C or C++."

      Huh? I've never heard of *any* eda tool that was only written in tcl. All of them are using tcl as a scripting front-end to make calls into the c/c++ methods. It also makes hooking in tk easy for the gui.

      To add more, perl, not tcl, is becoming the prefered high level scripting language for automation. tcl usually sits in the "middle" between the perl script and the c++ code.

  92. Re:Fans? by Anonvmous+Coward · · Score: 1

    "No, I'm not sheldonb...I meant to hit "no karma" on my last post and hit "post anon" instead. He is a foe of mine as well. He doesn't post, no friends, just collects foes. Anyone he hates must be ok in my book :)"

    Ha! I noticed he never posted heh. Makes you wonder what that guy's up to. :)

    Cheers man.

  93. A few glitches in the list of supported platforms by alder · · Score: 1
    What about Solaris 8 (SPARC/Motif), QNX (x86/Photon), AIX (PPC/Motif), HP-UX (HP9000/Motif) and Mac OSX (Mac/Carbon)??! Port Status page lists more specific SWT subprojects: aix/motif, hpux/motif, linux/gtk, linux/motif, linux/qt, macos/carbon, qnx/photon, solaris/motif, win32/win32, win32-ce/win32. Most of these are marked as "Running well", or " Running reasonably, but needs performance tuning". Some have issues/completness (macos/carbon), some are not yet included in Eclipse (linux/qt), but it's not just Windows and Linux, and it was not for quite a while.

    Re: "Swing programming coming along so well" Until not so long ago I had to use Celeron 400 w/ 128 MB at work. And, you know, Swing DID NOT really swing in there...

  94. A humble user would like to request gtk+ by Anonymous Coward · · Score: 0

    I'm not a developer, but a [free software] user. I've thought about this issue a bit, and though I'm ignorant of many things I believe I have a few points to make.

    gtk+ is a large project, widely used under linux at least. This leads to applications that all look the same. This is huge. It may not make complete sense, but I've come to dislike alternate toolkits just because they don't look the same. Consistancy is a great thing especially when dealing with themes, keyboard input/shortcuts, etc. (unfortunately, wxwindows apps do not look the same as gtk apps, it's very close, but the file dialog is different for example, and audacity's toolbar does not theme (yes, gtk's file dialog sucks, but that's a different issue))

    Some say gtk is ugly; well, it's themeable. It's annoying to find a pretty theme and then have a tk window pop up, making you wonder why you even bothered.

    The largeness of the project also leads to things such as atk and pango. I think these are a good thing, and I just don't see the smaller toolkits having things like this (though, as I understand, pango and atk are not gtk specific...).

  95. scientific plotting libraries? by Camel+Pilot · · Score: 1

    I am in midst of rewriting a Motif application that used a plotting library ( XRTgraph ) for displaying data. In all the cross-platform gui environments which one has a decent plotting library?

  96. LEGO! by Anonymous Coward · · Score: 0

    FD 20
    RT 90
    FD 20
    RT 90
    FD 20
    RT 90
    FD 20

    will always produce a square.

    1. Re:LEGO! by Anonymous Coward · · Score: 0

      ... and a very dizzy turtle.

    2. Re:LEGO! by Anonymous Coward · · Score: 0

      You're thinking of LOGO: Turtle Graphics by Seymour Pappert.

  97. Squeak Smalltalk by RevAaron · · Score: 3, Interesting

    I know people won't be into this, considering the crowd here, but all the same:

    I use Squeak Smalltalk as my cross-platform toolkit of choice. Squeak includes a cross-platform GUI toolkit, as well as a cross-platform language, IDE, runtime and configurable world of libraries. Once you get out of the rut of Tk, GTK+, etc and get used to the programming style, it makes so much sense, it's almost scary. I was doing Python+(Tkinter or wxPython) before Squeak.

    What most people here will gripe about is that Squeak's GUI system, Morphic can't be called from C, C++ or Perl at this point. It's possible, but so far our users have been happy enough with Smalltalk not to move away from it. Squeak also has it's own UI look and feel- it's not Windows, Mac OS, or GTK+ in appearance. I may be in the minority, but I prefer a clean look to poorly emulated widgets. By default, the look and colors are a bit kidsy, but like everything in a Smalltalk system (ala emacs, but easier!), it's very configurable.

    Squeak supports a lot more platforms that most of the combos mentioned here. Right now, Squeak supports: Mac OS X, Mac OS Classic (System 7 - OS 9; m68k and PPC), Windows >= 95, DOS, WinCE (StrongARM, XScale, MIPS, SH4), X11 on any modern Unix-like, Linux framebuffer (Linux PDAs and kiosks), SDL (lending support to PicoGUI and others), OS/2, and the Acorn RiscOS. It also runs on bare hardware on stock x86 machines, complete with drivers written in Smalltalk. There might be more, but that's should be most of them.

    No, I would reccoment it to people who are wanting to create a business app for a homogonized work environment, but it has many uses.

    --

    Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  98. Can you post a link...? by Futurepower(R) · · Score: 1


    Can you post a link to a non-commercial license for Qt? I can't find it.

    1. Re:Can you post a link...? by _|()|\| · · Score: 1
      Can you post a link to a non-commercial license for Qt?

      Qt/X11 Free Edition is dual licensed under the Q Public License and the GNU General Public License.

      Qt Non-Commercial Edition for Microsoft Windows is licensed under the Qt Non-Commercial license.

  99. How does Qt acheive its system native look? by E-prospero · · Score: 3, Insightful
    Since you seem to know about Qt on Windows/Mac, I'll ask here...

    Sure, Qt can be used on Unix, Windows or Mac, but how does it achieve the native platform Look-and-feel? From the screenshots, it appears that there is are Windows and Mac themes, but how does it achieve this theme?

    Does it:
    1. Draw a theme that "looks" like windows, with behaviour managed by Qt
    2. Use system native drawing routines to draw widgets that look like native widgets, but whose behaviour is still managed by Qt
    3. Use system native widgets (actually create an MFC button), gaining the look AND feel of the native platform

    Swing, and the "redmond" theme of GTK+ do (1); even these well maintained toolkits miss minor details in their rendering of system native widgets, so they end up just looking wrong. In addition, the interactions with menus, buttons, etc differ in subtle ways from genuine system native, making applications built using them respond in an unexpected manner.

    From what I can make out, the nativeWin theme for GTK+ does (2), so it should look right, but it will still feel alien.

    The only toolkit I can think of that does (3) is wxWindows. IMHO, this is the best solution, as it ends up with a genuinely platform native look and feel. However, I haven't ever programmed with wxWindows, so I can't comment on it as a toolkit in practice.

    Under unix (1) doesn't really matter, because there IS no "system native"; as long as all your apps use the same toolkit, (vis, Gnome or KDE), you don't end with apps that feel wrong.

    So - Which category does Qt fall into? Does anyone know of any other multiplatform toolkits that fall into category 3?

    Russ %-)
    --
    ... and never, ever play leapfrog with a unicorn.
    1. Re:How does Qt acheive its system native look? by MartinJ · · Score: 1

      It is a combination of 1 and 2. If 2 is available (Win XP, OS/X) then it is used, otherwise it is emulated. In most cases it is impossible to tell a Qt application from an application using native widgets.

      The advantage of Qt's approach is that you can actually change/extend a widget by subclassing. You are also not limited to the lowest common denominator offered by all supported platforms - a serious problem with the third approach.

      Martin.

    2. Re:How does Qt acheive its system native look? by e8johan · · Score: 2, Interesting

      http://doc.trolltech.com/3.1/qstyle.html

      I'd say 1 (and perhaps 2). Remeber that it is possible to configure Qt to a windows look in a X Windows environment, so I'd go for 1. If you really need to know: read the source or ask trolltech (they are usually friendly and quick to reply).

    3. Re:How does Qt acheive its system native look? by Arandir · · Score: 2, Interesting

      I don't know about Aqua, but under Windows Qt does not use the native widgets. It uses the GDI instead, in the same way that it uses Xlib under X11. Using these basic drawing tools, it creates its own look. The QButton class draws itself, and is the same identical file under all platforms. So it can't be using native widgets.

      It gets them right simply by drawing them right. 'Nuff said. It's really not that hard when you look at it.

      I've got a couple of applications written with Qt, and they look like native Win32/MFC apps under Windows. You can't tell the difference, except that they use slightly fewer CPU resources. Throw a Liquid, Keramik or Qinx theme at them under NIX, and they don't look like Windows anymore.

      --
      A Government Is a Body of People, Usually Notably Ungoverned
    4. Re:How does Qt acheive its system native look? by spitzak · · Score: 1
      The answer is #1 on all platforms. Low level calls are used.

      Except it is possible the Aqua look on OS/X uses #2 a bit, such as to request images from the OS for what a button should look like, that it then draws just like an image supplied by the program.

      Personally I don't think it is possible to write a working and truly portable toolkit by any other method. WxWindows despite all the claims here is obviously not used for any open-source software or anything complex like a drawing or word processing program, but mostly for commercial fill-out-the-forms stuff. At the current bad level of the technology and toolkit design this is just impossible. If toolkit 1 needs you to do "A" before "B" and toolkit 2 needs you to do "B" before "A" (typical example is A=create a window, B=figure out what you will draw in it) then no portable toolkit can do anything other than combine A & B together, no matter how illogical or complicated it is. This severly limits the ability to make an easy-to-program and nice design.

      I expect someday a low-level design will be made that will cleanly provide widgets without being obscenly complex and will be obvious enough that all systems will use it. But we are nowhere near this. This is similar to the discovery in about 1970 that powerful file systems could be managed with just read/write/seek and not "record management" and that discovery led us to the enormous and fast disks, varied filesystems, and the networks we use today. GUI is obviously harder but perhaps some genius out there will figure it out.

  100. It's not a troll. by Anonymous Coward · · Score: 0


    It's not a troll. I've seen some slow and quirky Java applications. People are beginning to rebel against Sun domination. C# seems to answer some of the problems. The excitement over Java is beginning to cool.

  101. Borland KLX by MobyDisk · · Score: 1

    What about Borland Kylix/Delphi/KLX? I have not used it, but it looks promising? Do any Slashdotters have experience with these?

    1. Re:Borland KLX by Anonymous Coward · · Score: 0

      I just posted about that. I'm on Delphi 6.0 moving to 7.0 and it's great. I run into a few problems, mostly with third party components, not having KLX support, but there's plenty of others out there.

  102. Links for Qt non-commercial editions by cje · · Score: 1
    --
    We're going down, in a spiral to the ground
  103. Nonsense on the nonsense by hobbs · · Score: 1

    It's quite apparent that you are completely oblivious as to the true value of a scripting language. Your rant seems most specifically against scripting in general, but I'll address all the points:

    1. Tcl is a scripting language, but it does compile on-the-fly for speed. It is true that it doesn't compile everything statically, but that is because Tcl is one of the most dynamic of languages. You can redefine any command you want at runtime, so what appears "wrong" may be correct by the time the code reaches it. Numerous tools exist to validate large bodies of Tcl code.

    2. Weak typing can be a big boon to software development. Why is the need to call strtol() or some equivalent of value in large projects? It only makes large projects larger. Some statistics put bugs in software at 1/20LOC written. Of course, with scripting you need 1 LOC to a systems language's 5-10, but the bug rate doesn't increase. So which one is really better for large projects?

    3. I think you are thinking about perl. You cannot refer to a var (like $var) without having set it first, although you can in perl (when not strict). You can of course set a misspelled varname, but that's true of all scripting languages. Tests are the only way to ensure that anything you create does what you expected.

    The core Tk widget set may be some 15 widgets, but there exist 100s more for users to choose from, from simple comboboxes to complex graphing widgets. Furthermore, it uses native elements on Mac and Windows.

  104. Java + GCJ + SWT = Holy Grail of Applications Dev. by shrhoads · · Score: 1, Interesting

    I wrote a white paper about this on new years day. The mingw project has made native Win32 binary development using Java and the SWT API possible. In my opinion this is the only true write once, compile anywhere solution.

  105. Here you go, Cross platform code. by NullProg · · Score: 1

    Choose your compiler at your own risk.


    int main(int argc, char **argv)
    {
    printf("Hello I compile under ANSI C\r\n");
    return(0);
    }


    Seriously,

    Give me a break. If you have to ask this question then you haven't coded for multiple platforms. Ever!

    A UI is just a UI. As a developer, decide how the user will interact with your program. Abstract the lower layers and then create your Win32/Gnome/KDE UI. Jeesh, this isn't rocket science. If your design is right, it's not hard to maintain separate UI's for your target platform. This is my build process....

    make kde
    make gnome
    make win32

    Enjoy,

    --
    It's just the normal noises in here.
    1. Re:Here you go, Cross platform code. by ObviousGuy · · Score: 1

      It doesn't compile. Where is printf defined?

      --
      I have been pwned because my /. password was too easy to guess.
  106. Qt Correction by Anonymous Coward · · Score: 0

    Qt: Again, doesn't work on the Mac
    Qt does work on Mac OS X, and it does not require
    an X server running to display, although it is not 'native' in the sense that quartz is native on OSX.
    Trolltech's site
    lists it, and I saw a demo once of a graphing app that was using Qt on Linux, Windows, OSX, and Windows CE, all with 2 lines of code changed across the platforms. Not too terrible.

  107. Yes, but... by FPhlyer · · Score: 3, Informative

    In order to achieve the cross-platform compatability between gnustep and cocoa, you have to code on the gnustep platform. Apple has added much to make cocoa differ from the original openstep specification. So taking gnustep and compiling it on cocoa works fine... but not so the other way around!

    --
    Brought to you by Frobozz Magic Penguin Fodder.
    1. Re:Yes, but... by Anonymous Coward · · Score: 1, Informative

      >So taking gnustep and compiling it on cocoa works >fine... but not so the other way around!

      GNUstep implements (most of) the sain MOSX extentions too.
      It is not too difficult to compile from MOSX to GNUstep.
      You need to be careful to :
      +not use (use real OpenStep include)
      +not use ObjC++ since it is not yet backport in official gcc
      +not use CoreFoundation
      +not use propriatory (*Draw*,*Quicktime*)

  108. Xplat (mac pc) front end system by azav · · Score: 1

    I wrote GUI foundation classes and async communcation routines in Director for the mac and pc. Samples of part of the functionality can be found here:

    Downloadable mac projector is here:
    http://www.zavatone.com/director/UI%20Libra ries/

    Features in demos:
    Automated asset creation
    Named Button/Control registry
    Messageable Buttons and Toggles
    Command keys assigned to items
    Command key display (hold down command or control key)
    Arrow navigable controls (press space or return to activate)
    Async animation manager

    This GUI is completely abstractable from whatever back end needs it. Communication between front and back end is managed through my async messaging routines.

    All content ©Alex Zavatone.

    --
    - Zav - Imagine a Beowulf cluster of insensitive clods...
  109. Re:Fans? by Anonymous+Hack · · Score: 1

    Dude, that guy is like one of the editors in disguise. I posted about it on the user-generated comments a few days ago. He seems to collect foes that score +5 by saying anything that isn't "LINUX R0X0RZZZ". I bet he's collecting names to just bitchslap in one big go. In the mean time it's cool to look up his foes and see what they're contributing, because it's usually pretty cool.

    --
    I got a sig so you would remember me.
  110. there is no "best" by g4dget · · Score: 1
    For example, if you need to put together an application very quickly, Tcl/Tk is great, but it has its limits. wxWindows is probably the most complete of the cross-platform toolkits, but it's harder to use. Qt has a clean design but uses some non-standard constructs and costs lots of money if you want to use it commercially. FLTK is very easy to program and generates very small executables (even statically linked), but its widget set is limited and the released version have very limited layout support.

    If you want a simple answer and you are asking for a C++ toolkit, your best bet is C++. But you have to realize that there are intrinsic tradeoffs in choosing any toolkit.

  111. YHBT by Anonymous Coward · · Score: 0

    HAND

  112. XPCE is little-known - for C, C++, Prolog, LISP by Anonymous Coward · · Score: 0

    XPCE is an excellent cross-platform alternative, at
    http://www.swi-prolog.org/". Most discussion is about Prolog, but see http://www.swi-prolog.org/packages/xpce/ for info about C, C++, LISP bindings.

  113. Central problem of GUI programming by Latent+Heat · · Score: 4, Informative
    The central problem of GUI programming is how to transmit that an event has occurred in once object (such as a button being clicked) to another object (of a class representing a containing form). It is not about objects but about relations among and connections between objects.

    The low-level Windows API solution is the each object has a window handle and the interface that goes with that -- a WinProc. That means every window object has to expose the same, complex interface with a zillion Windows messages to every other window object it can come in contact with. This leads to (what some people) consider ugly -- the Giant Switch Statement in C implementations or those even uglier message map macros for C++ MFC (I believe wxWindows uses message maps too).

    The Grand Quest is some simple mechanism for making direct signalling connections between objects without breaking encapsulation -- exposing the inner workings of every object to every other object: kind of like how to be on the Internet and disclosing your e-mail address without losing your privacy or worse.

    The solution is to create some bridge class -- a courier with a personal knowledge of the recipient but a courier which publishes only a very generic interface to those seeking to contact the recipient. In Delphi that courier is an event type, in Java, it is an inner class with an ActionListener interface, in C# it is a delegate.

    Qt has this mechanism called signals and slots, and to pull it off they had to extend the C++ language with this macro processor called MOC, and this has the BVDs bunched of C++ purists because they are in effect extending the language.

    1. Re:Central problem of GUI programming by Anonymous Coward · · Score: 0

      Very nice post. I think you have given a clear, concise and objective analysis of a difficult subject.

      Thank you.

    2. Re:Central problem of GUI programming by Arandir · · Score: 1

      Wonderful analysis.

      The Signal/Slot mechanism is the most elegant solution to C++ callback syntax I have seen. It makes using complicated helper classes and message objects (Qt), or complicated templates and functors (libsigc++), a breeze to use.

      --
      A Government Is a Body of People, Usually Notably Ungoverned
    3. Re:Central problem of GUI programming by ovapositor · · Score: 1

      Well stated! I even learned a little about how the various languages handle this task. I wish more posts on Slashdot were this informative.

    4. Re:Central problem of GUI programming by Anonymous Coward · · Score: 0

      For a "pure" C++ approach to signals-and-slots take a look at the Boost Signals library: http://www.boost.org/libs/signals/doc/index.html

    5. Re:Central problem of GUI programming by Anonymous Coward · · Score: 0

      Stop immediately, this is an official TrollTech employee advertising thread.

      No non-TT employees are allowed to post... at the very least you should post gushing drivel about how Qt rocked your world and revitialised your sex life. Not to mention ensured world peace and set a new standard for C++ programming.

      Posting about a "pure C++" solution is unacceptable -- only TrollTech and their macro language (however disgraceful, ugly and inelegant it is) is allowed.

  114. Qt nativity by Earlybird · · Score: 2, Informative
    The answer is #3.

    On Windows, Qt uses native Win32 widgets and is fully integrated into drag/drop, clipboard, keyboard shortcuts, standard dialogs etc. Applications built with Qt, such as Psi, the excellent cross-platform Jabber client, feel perfectly native.

    On Mac OS X, Qt uses the Carbon APIs and therefore looks and feels native. However, the Mac GUI is different from Windows and Linux in several ways, most by convention, such as the placement of the menus, window resizing icon, button placement, icon look etc. Psi, for example, looks okay on OS X, but its default theme's choice of colours and icons makes it stand out like an eyesore among the slicker Aqua apps. However, it's definitely possible to create a Qt app that follows the Mac design guidelines and therefore looks and feels perfectly native.

    On Linux, Qt is the native widget provider.

    1. Re:Qt nativity by Anonymous Coward · · Score: 1, Informative

      No, look at the damn source code.
      There is not a single native Win32 widget being used by qt - not one.

  115. Swing isn't particularly good cross platform by g4dget · · Score: 2, Insightful
    Yes, I know, Sun wants Swing to be cross-platform. I was really hopeful when it came out. The first few years, it looked like Sun was going to make it work and work out the kinks. But after several years, it's clear that they won't be able to do that any time soon.

    Swing still really falls short compared to other cross-platform offerings. In particular, performance and correctness of Swing on X11 and Macintosh are iffy: for example, window management is broken on X11, antialiasing makes lines disappear on Macintosh, and graphics can crawl to a halt in the presence of transparency on both X11 and Macintosh.

    Another problem is that Swing is, as you point out, only "free as in beer": it's not open source and there is no open source implementation. Sun could, at least in principle, pull the rug out from under you at any time, for example, by starting to charge for commercial applications. And I recommend that you read the JRE license very carefully--it already comes with many strings attached (e.g., Sun reserves the right to install software on your machine).

    If you need to write cross-platform prototyping code, Swing is OK. However, something like wxPython is probably both a bit easier to use for prototyping still and works somewhat better across platforms.

    If you want to write professional-looking, robust, and efficient cross-platform applications, Swing is not the answer, at least for now. Programming in something like wxWindows or Qt may be a lot more work, but at least you can get the job done.

    1. Re:Swing isn't particularly good cross platform by Anonymous Coward · · Score: 1, Informative

      Programming in something like wxWindows or Qt may be a lot more work, but at least you can get the job done.

      And Qt is more "free" than swing? Sure maybe on Linux, but last time I checked Trolltech was charging to make commerical apps with it on windows.

    2. Re:Swing isn't particularly good cross platform by sbrown123 · · Score: 1


      In particular, performance and correctness of Swing on X11 and Macintosh are iffy: for example, window management is broken on X11, antialiasing makes lines disappear on Macintosh, and graphics can crawl to a halt in the presence of transparency on both X11 and Macintosh.


      Ive used Swing in both X11 and on a Mac. I have seen none of the issues you are speaking of. Maybe when it first came out there were bugs but these must have been fixed.

    3. Re:Swing isn't particularly good cross platform by mvw · · Score: 1
      The first few years, it looked like Sun was going to make it work and work out the kinks.

      I believe that Sun's Java managers had a big poster on their office wall, showing a graph of Moore's law for the growth of the average PC's power with some red line around 1 GHz/256 MB. :-)

      Swing is a hog. On the other hand it is a powerful graphics API which allows the easy creation of modern nice looking GUIs.

      Every PC bought in the last two years should be sufficient to run SWING applications. As the typical business app just shovels data between the GUI and some database that needs to presented in a nice way, SWING is now probably just OK thanks to Moore's law.

      My last experience with SWING, coding a data viewer for bioinformatics data, was that you have less reserve with SWING than what you would have if you used Qt or GTK+. You can't allow yourself to programm sloppy because then you hit the performance barrier with SWING immediatley.

      Interestingly enough, it seems it is not the code execution that sucks with Java, but memory waste and the related cycle waste when allocating/copying it.

      Regards,
      Marc

    4. Re:Swing isn't particularly good cross platform by Anonym0us+Cow+Herd · · Score: 1

      This has been exactly my experience.

      Swing is a hog.

      Swing allows the developer to work at an extremely abstract high level. Platform neutral. Any modern PC bought within the last couple years is more than capable of running Swing programs very comfortably. I say this based on experience. I run several Swing based "hog" programs. Notably, NetBeans. XNap. My own program, which will probably be open source at some point, when I'm ready to actually give it to anyone.

      Swing is very high level. No absolute positioning. Powerful layout managers allow you to design your forms where everything is relative to everything else, yet you have control of what widgets expand and contract as the window is resized. This also gets you the ultimate platform neutrality. Now matter how swing is implemented, even if a swing pluggable UI is implemented using native widgets. High level in other ways as well. MVC. Actions. Multiple visual representations tied to a single action that can update the state of numerous controls. (i.e. a menu item, a button, and a toolbar item might all be tied to the "undo" action.) A powerful "accessibility" interface.

      I very much have the attitude about Swing that I had about the Lisa in 1983. Computers should make me more productive -- how many megabytes and megahertz it takes be damned. A year later, 1984, the Mac was a pleasant surprise. Computers today are vastly more powerful, and moreso every day.

      So I ask the question, how soon before nobody gives a darn about Swing being a hog? If you think that execution efficiency for the computer is paramount, then you are hypocritical if you program in anything but assembly language. Yet, the assembly vs. high-level language debate pretty much ended by the mid 70's. (I watched it, I know.) As computers become more powerful, programmers and lusers alike naturally gravitate towards less (computer) efficient, but more (human) efficient tools. Just as stone knives gave way to refrigerated meat in the grocery store. We've come a long way. (despite Microsoft :-)

      --
      The price of freedom is eternal litigation.
    5. Re:Swing isn't particularly good cross platform by greed · · Score: 1

      Every time I need to use a GUI-based Java program, I have to play X roulette to find a combination of X server, X library and window manager that will work with it.

      And it's different based on where the JVM is running: Solaris, AIX, Linux or HP-UX. At one point I had to VNC to a Windows machine, use an Exceed session to a Solaris X terminal server and then use DISPLAY to send the Java GUI to the Exceed screen.

      Normally I can get away with a VNC X server on Solaris or Linux. Sun's JVM is only happy with an X server running on Solaris.

      But that's still pretty ridiculous. The only other X programs I've seen with this kind of problem are from Rational or IBM.

      (Scroll bars that don't work, buttons you can't press, colours that get scrambled, clip region 40x20 in a 600x300 window, and so on.)

      I like the Java language, but the libraries and .class file implementation just make me want to throw up.

    6. Re:Swing isn't particularly good cross platform by g4dget · · Score: 1
      Ive used Swing in both X11 and on a Mac. I have seen none of the issues you are speaking of. Maybe when it first came out there were bugs but these must have been fixed.

      No. I still develop in Java, and I assure you they haven't been fixed. They are still in 1.3 and 1.4.

      Basically, Sun doesn't seem to give a damn about any platform other than Windows when it comes to the client side. With a supposed 95% market share, that may sound reasonable, but the problem is that Java is advertised as a good cross-platform solution for client apps, and that it just isn't.

    7. Re:Swing isn't particularly good cross platform by g4dget · · Score: 1
      I made a technical point there: wxWindows or Qt let you write cross-platform code that works well, Swing doesn't. I would even have listed a fully commercial cross-platform toolkit if Troll Tech hadn't driven them all out of the market with their "QPL" gimmick.

      Now, since you do bring up licenses... Of course, Qt isn't free for commercial apps. I frankly think the Qt dual licensing scheme is a lousy idea for users. However, even Qt is at the very least available under the GPL so that if you use it for non-commercial apps, you won't get stuck when Troll Tech goes out of business or changes their business model. With Sun, Swing is entirely proprietary and you are at their mercy.

    8. Re:Swing isn't particularly good cross platform by g4dget · · Score: 1
      Every PC bought in the last two years should be sufficient to run SWING applications.

      You missed my point. I can live with Swing being a resource hog. What I can't live with in Swing is the bugs, the poor desktop integration, and the platform-dependent behavior. And the "kinks" I was referring to weren't just Swing problems, they were lots and lots of Java language, library, and runtime problems. Take a look at Sun's own bug tracker.

      As the typical business app just shovels data between the GUI and some database that needs to presented in a nice way, SWING is now probably just OK thanks to Moore's law.

      wxPython, Tcl/Tk, or a web application are OK for that, too, and they are even less effort to program (and considerably better cross-platform) than Swing.

    9. Re:Swing isn't particularly good cross platform by mvw · · Score: 1
      You missed my point. I can live with Swing being a resource hog.

      Sorry in that case. :-)

      What I can't live with in Swing is the bugs, the poor desktop integration, and the platform-dependent behavior.

      Yes, there are bugs. One really has to use the latest VM to get rid of them (and perhaps get some new ones). But I at least had none, which was a show stopper. Yes, the desktop integration is an issue. Drag and drop is not perfect and the present state of printing is a joke.

      And the "kinks" I was referring to weren't just Swing problems, they were lots and lots of Java language, library, and runtime problems. Take a look at Sun's own bug tracker.

      Perhaps I was just more lucky, covering less buggy parts of the system. My biggest enemy was Web Start, which was ported very sloppy from Solaris to Windows by Sun. I stumbled on many, many bugs here (some are documented in the unofficial JWS FAQ :)

      Regards,
      Marc

  116. Then use SWT ... native look and feel by Evil+Pete · · Score: 1

    SWT doesn't use Swing it uses a JNI layer to hook into the native GUI stuff. Very fast and looks like Windows on Windows, gtk on linux etc. Only wish it had a UI builder. I guess that will come one day.

    --
    Bitter and proud of it.
  117. The primary link seems significantly out of date.. by podperson · · Score: 1

    E.g. Qt supports more platforms than shown, and RealBasic, Director, Flash, and QuickTime are not shown.

    RealBasic is a very effective cross-platform (windows / mac -- no *nix sadly) development tool that does a good job of native appearance and behavior from a single code base.

    http://www.realbasic.com/

    Director and Flash are multimedia development tools. They are also, incidently, both capable of creating cross-platform double-clickable or web applications from a single code base. Indeed, Flash code is probably one of the MOST portable and cross-platform GUI toolkits there is (it runs inside QuickTime and on quite a few embedded systems and both Palm and PocketPC).

    QuickTime is -- aside from being a very nice digital video architecture -- a cross-platform GUI toolkit with an embedded bytecode-executing virtual machine.

  118. Layout != Composition by supton · · Score: 1

    Composition is association; Layout is just containment of views.

  119. Re:The best cross platform GUI toolkit I've used i by Anonymous Coward · · Score: 0

    Don't forget eiffel.net for the .NET platform

    It the best programming language, PERIOD

  120. wine support by SHEENmaster · · Score: 1

    Is excellent. I am using just wine, without winshit to grab libs from, and have yet to encounter a problem.

    Stability in OS X is another issue, RB crashes frequently.

    My first "awesome" computer is a 286 lappie w/ 4mb of ram and 20mb of hd space. I started on a comodore vic 20 when I was 8. Then again, all my friends had parents with Winshit 95 at the time......

    Damn I was ahead of the times!

    --
    You can't judge a book by the way it wears its hair.
    1. Re:wine support by RevAaron · · Score: 1

      I've never ran into stability issues on OS X myself. Granted, that was under 10.0 and 10.1- I've not touched RB since upgrading to 10.2. I've made some wee apps with huge executables, due to big resources, and not run into problems even with that. *shrug*

      After the PC-3, I got a second hand XT for free. Running Minix no less. That was pretty badass, I must admit. When we got the 486, I was hardc0re D0S boy, and refused to upgrade the 486 to Win95 or use Win 3.1. Until I discovered Slack and UMS-DOS, that is. :)

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
    2. Re:wine support by SHEENmaster · · Score: 1

      RB has the stability issues; I've only had one segfault in OS X ittself.

      --
      You can't judge a book by the way it wears its hair.
  121. Re:Fans? by Anonvmous+Coward · · Score: 1

    " In the mean time it's cool to look up his foes and see what they're contributing, because it's usually pretty cool."

    Ha! Hehe I think I see what you mean. Experimenting on /. is fun. Know of anybody else like that?

  122. Borland NE1? by Anonymous Coward · · Score: 0

    I've been using the Win/Linux CLX libs from Borland and they rock. A decent IDE in Delphi, plenty of support, and Interbase/Firebird is solid.

    my $.02

  123. Re:Fans? by Anonymous+Hack · · Score: 1

    Not at the moment, but it just occurred to me it'd be really cool if a couple of "organized accounts" were set up and managed some friends/foes lists that people could use as resources. For instance "REAL_TROLLS" could list all the interesting/clever trolls as its friends, "CRAPFLOOD_TROLLS" could list all the crapflooders/goatse posters as its friends etc... "FOES_OF_TROLLS" could list people like sheldonb whose only contribution is another list of "real" trolls... Hell, we could get totally recursive here. It would rock.

    --
    I got a sig so you would remember me.
  124. Score by PogiTalonX · · Score: 0

    Did anyone notice that the informative reply, "this one" got a score of 1?

  125. Re:Fans? by Anonvmous+Coward · · Score: 1

    Heh. I wanted to register a bunch of Dilbert names so I could have each of the characters respond based on their own.. uh.. defectiveness. Problem is I could dedicate my day hours to that.

  126. Re:Fans? by Anonymous+Hack · · Score: 1

    Judging by your posting frequency dude i think you already do :)

    It would be cool, though. Were you around when the whole spork thing went on? Ten zillion sporks. That was funny as hell. I got caught in the loops too, with the sigs that teleported back to the middle of the thread which was already 50 answers deep. Clever trolls rock the kasbah.

    --
    I got a sig so you would remember me.
  127. Re:Fans? by Anonvmous+Coward · · Score: 1

    "Ten zillion sporks. That was funny as hell. I got caught in the loops too, with the sigs that teleported back to the middle of the thread which was already 50 answers deep. Clever trolls rock the kasbah."

    lol!! No. Missed that! Shit, Slashdot needs a hall of fame. I also wanna know how many funny points I've earned.

  128. Re:A few glitches in the list of supported platfor by Anonymous Coward · · Score: 0

    Don't like it? Start coding!

  129. Re:The best cross platform GUI toolkit I've used i by afidel · · Score: 1

    eiffel is a truely great programming language, in fact when programming in c++ or java I often find myself thinking "why can't this be as easy as Eiffel". The only problem with Eiffel in the past was the lack of library code, there simply wasn't enough of it. Now with the .Net framework making components from any other CLI language available this is solved, I think I may find myself going back to Eiffel programming in the near future. Besides Eiffel is the only language I know where correctness can be guarenteed.

    --
    There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
  130. Re:Fans? by Anonymous+Hack · · Score: 1

    Yeah, a Slash hall of fame would be cool. I'm going to ask about the spork issue at http://www.sporks-r-us.com/. The sporks were cool.

    --
    I got a sig so you would remember me.
  131. Experiences with FOX, Cocoa, Swing, FLTK, etc. by zefnd · · Score: 5, Informative

    First, a shameless plug: I'm working on a couple of C++ applications that are currently using FOX for the GUI (and other parts). The first one is a front end to the open source stats language R and it is called Obversive. This is the most active project, but it is still real tiny. The second project is a little chat client I'm writing called Bombyx which will work on the SILC and hopefully IRC. In addition to Bombyx, I've also developed a little GUI generator with Lua that makes FOX widgets pretty quickly. It's called GIG and you can get it from the Bombyx site mentioned previously. The intention with GIG is to make it work for any toolkit, but right now it does FOX only.

    When I was working on these projects, I went through a huge number of toolkits and actually tried developing fast "mock-ups". My test was to see if I could get the first window I wanted in each project using available resources. If that worked, then I would try a couple of other windows. I also reviewed the designs of each and then went with what worked best at the time.

    Here's my review of each of the toolkits I used. These are just my opinions, but they are based on actually using them in various platforms (or trying to).

    FOX After all of this evaluation, I found that FOX was pretty much the best at the moment for clean, simple GUI building. It has pretty good docs (way better than wxWindows), and is fairly natural for coding. It also has some nice language bindings for various languages like Python, Ruby, and Eiffel. It doesn't have quite as many controls as wxWindows, and it doesn't work natively on as many platforms, but it is much easier to build and work with and much smaller. If you are porting a Windows application to another platform, you will probably be better off with wxWindows since they try to mimick the API design as much as possible (and of course, all it's problems too). Also, if you hate macros then you'll have a problem with FOX (and wxWindows too). A testimony to how easy FOX is comes from Obversive, where one developer had no C++ or FOX experience and has already created several complicated controls. Another developer has good C++ skills, but only worked with KDE previously. He not only developed an excellent Twin Table control, but also added lots of great features to it and in very little time.

    FLTK I did the original work on Bombyx with FLTK. FLTK is a nice library, but it was just missing too many widgets to be useful. It was also rather buggy and it was a real pain to do delegation. There are, however, two really nice things about FLTK: no macros, excellent GUI builder. One of huge problems with ALL other toolkits I've ran into is that, when the developers start to make their GUI builder, the decide they need an entire IDE. I already have one thank you. I doubt some OSS project is really going to out-do my tool chain right now, especially if it's also working on the widgets. Just give me a simple builder please. FLTK got it right with FLUID--their GUI builder. It's real easy to use, super fast, and does one thing well: build interfaces. It was a little weird at times, but I checked out the latest and it worked great. Also, FLTK does not use macros for messaging which is nice for the C++ purists.

    Cocoa I love Cocoa, but, Apple made a huge mistake by making it a MacOSX only beast. I think Apple could rule the world if I could spend my time writing my apps with a nice UI, great tools, and an easy language (Objective-C), and then click a button and have a Windows, Linux, HP-UX, and Solaris binary. You could do this with the original NeXT stuff, but Apple crippled Cocoa and friends. So, I reserve Cocoa for other useless programming that I only do on my MacOSX. There is GNUstep, but I couldn't get anything to work with it, and half the fun of Cocoa development is using Interface Builder (IB). BTW, IB is another GUI builder that is excellent, and also does just GUI building. Let's hope the wxWindows guys figure out this pattern and write a small GUI builder rather than their entire IDE which nobody seems to be able to compile but three dudes inside the cabal (sorry, it really burns me).

    wxWindows I must say that wxWindows has a ton of nice widgets (I may steal their HTML widget) and works on a huge number of platforms. But, I kept getting burned in three areas: docs, dependencies, and bugs. Their docs are horrible. You have to hunt around the net looking for tutorials which are not very good anyway. Half the example applications in the distro don't even work so you can't rely on them, and it's just really hard to figure out what to do. I also hated having to add a billion other libraries to my build just to get wxWindows to work. I found it a problem when linking my application took longer than compiling all the files from scratch. Finally, just about everytime I went to use some widget, I found some bug or limitation that made it unusable. They have improved quite a lot from what I have heard, and people really rave about it, so I think everyone should give it a try. One thing also that annoyed me about wxWindows is that it does not support delegation very well. All the other toolkits I used either support delegation easily or practically require it. In wxWindows, I spent the better part of a week just trying to get one simple delegation design working and couldn't do it despite lots of help from people on various IRC channels. To me, things are broken if I have to subclass every time I want a widget. The wxWindows XML based resource files are supposed to fix this, but I won't hold my breath.

    JFC/Swing The original version of Obversive was done in Swing with lots of other goodies. Java is my primary work language, and I really wanted to use it on the Obversive project, but we just kept running into performance problems. Frankly, Swing is just a P.I.G. and is really hard to code. None of the GUI builders available we tried proved to be that useful, and eventually we dropped it becuase it was just too huge. Ironically, we were able to prototype an almost complete GUI using FOX which runs on Linux, *BSD, Windows, and MacOSX (through the XDarwin or Apple X ports) in about 3 weeks time. This was mainly in part due to the slick design of FOX and simplicity, and partly in part because of the GIG code generator I put together. Oh, and we looked at SWT, but balked at the Linux or Windows only (and the fact that the flagship, Eclipse, ALWAYS crashes on Linux does not make me happy).

    So, that's my experiences with these toolkits. I hope that helps answer the question, and I hope the reply wasn't too long. To summarize: Use FOX if you need C++ and good design. Use wxWindows if porting from MFC or if native controls are important. Use Swing if speed is not a problem, but cross platform really is. Use Cocoa if you only care about MacOSX and need to get something out quick. I actually prototype some UIs in Interface Builder on MacOSX, which says a lot.

    1. Re:Experiences with FOX, Cocoa, Swing, FLTK, etc. by zefnd · · Score: 1

      Ooops, I screwed up the link to SILC, it's actually http://www.silcnet.org. I hope Pekka isn't mad :-)

    2. Re:Experiences with FOX, Cocoa, Swing, FLTK, etc. by tomkins · · Score: 1

      Why didn't you try Qt?

  132. Re:Fans? by Anonvmous+Coward · · Score: 1

    Heh. I'll chekc out sporks r us.

    Cheers man.

  133. I would keep an eye for stealth patents by SgtChaireBourne · · Score: 4, Insightful
    Until there is a written, legally binding agreement or guarantee that Mono is free from encumbering patents, it's best to keep at a great distance. Or else you risk ending up with far worse problems than we had with the GIF format when UNISYS decided to uncloak their patents. With Mono, Microsoft would be holding the leash. Then again, this is a company that has a hideous track record with binding agreements.

    It would seem to me that the whole reason for .Net was to port vendor lock-in to new platforms in case Windows died and also to try to compete with Java. Now that Microsoft is being forced to stop distributing a sabotaged variant of Java and to instead distribute Java as specified in the original contract, Java is even more useful.

    --
    Beta is broken and the link to classic doesn't work. Stop wasting our time or there won't be anybody left here.
    1. Re:I would keep an eye for stealth patents by truthsearch · · Score: 2, Interesting

      ABSOLUTELY RIGHT. (I'd mod instead of post, but I just used up my points last week!) The core of .NET plus the C# language being accepted as ECMA standards will be rendered useless if MS later uses patents force licensing fees or restrictions on developers. ASAIK nothing in the core or the standards themselves is patented, but things within other basic libraries are. Since none of the "higher" libraries are standardized, they can change at any moment. The forms for example can be implemented by Mono, but since it's not a standard MS can change their APIs at any moment and still claim "open standards compliance". Once everyone's dependant on the common non-standardized APIs implemented by MS and others, if they pull tricks like changing the APIs or enforcing patent licenses we'll again have segmentation and implementation reliance. MS will play that card if they see too much of a threat.

      While the technology seems promising, we must be weary due to patents and corporate strategies. It's better to stick to non-corporate-backed open technologies in general. I personally like wxWindows for a native look-and-feel cross-platform object library. I'm fascinated, though, by the Mozilla platform as a way to serve GUIs from servers and to have apps centered around a rendering engine.

  134. One hand clapping by Anonymous Coward · · Score: 0

    How do you tell if the typing is weak if there's only one type?

  135. WARNING: PARENT IS GOATSEX LINK by Anonymous Coward · · Score: 0

    I am the lying goatse redirect warning troll, who posts goatse redirect warnings under legitimate posts. I can assure you that the parent warner is not me, and he is not a lying goatse redirect troll. That eliminates some of the possibilities, and while it does not determine whether or not he is a hall monitor, it does prove that the link you follow by clicking on the words "hall monitor" in the parent post leads to goatsex! be warned! DO NOT CLICK

  136. DirectX by LadyLucky · · Score: 1
    OK, bear with me. DirectX has been ported through WineX to various other platforms. This allows a performance advantage that no other Crossplatform GUI toolkits can possibly acheive.

    With such a control over the hardware, you are allowed to bypass the XWindows system, which kills the performance in such desktop environments as KDE and Gnome. Painting directly to the hardware buffer, buttons and other widgets can be responsive in a unique way.

    The only common manner across all major platforms, BSD, Linux, yes, even windows that you can do this is via DirectX. Compiled binaries can be ported cross platform due to the quality of the cross platform implementations.

    Not only this, but the breadth of the system allows realtime multimedia eventing systems, such as audio responses to important system events. Platforms such as NT incur an inherent delay, but not when using directX.

    --
    dominionrd.blogspot.com - Restaurants on
    1. Re:DirectX by e8johan · · Score: 1

      "OK, bear with me. DirectX has been ported through WineX [transgaming.com] to various other platforms. This allows a performance advantage that no other Crossplatform [trolltech.com] GUI [eclipse.org] toolkits [wxwindows.org] can possibly acheive."

      Hav you ever tried SDL? Also, today OpenGL tends to give good performance while being (almost) portable.

  137. GNUstep 0.6.6 ??? by Anonymous Coward · · Score: 0

    Hey !!!!
    Wake up

    -make 1.5x
    -base 1.5x
    -gui 0.8x
    -backend 0.8x

    Supported Platforms:

    http://gnustep.org/information/machines_toc.html

    And you don't need X or whatever on non-*nix.
    It is also mostly Cocoa (MacosX) source-code compatible

  138. On a lighter note... by Tokerat · · Score: 1


    ...I believe this is the first time /. has realized their story is a repost.

    *ducks*

    --
    CAn'T CompreHend SARcaSm?
  139. Qt does not support all of C++ by josse · · Score: 5, Informative

    I have been using Qt for the last 1.5 years to develop an application for post-processing of segmented (medical) image data as part of my master thesis. The application is available under the GPL at sourceforge

    During development one major disadvantage of Qt has surfaced, and I think it shows that the Trolltech has choosen a terribly wrong solution to a complex problem.

    In order to support their signals-and-slots mechanism (which is an elegant concept, and allows for easy implementation of both the model-observer pattern and the mediator pattern) they have added two new keywords to the language, namely signals and slots. In order to support these you _HAVE_ to run a preprocessor called moc (Meta Object Compiler) for your program to link. But moc does not support templates.

    Mostly we have managed to work around this limitation by having a non-template superclass which declares the signals and slots (luckily slots can be virtual) and then have the template parts in a subclass, but this leads to unnatural class hierarchies.

    Other libraries have managed to support a signals-and-slots mechanism without such an ugly hack. Both Boost.signals and libsic++ implement them. However their syntax is not as nice as Qt's. If C++ really need even more syntax is of course another question :-)

    While not all applications rely upon templates, they have some interesting uses, and if an applications first starts to use them, most classes easily ends up as template classes. See the book Modern C++ Design for "new-school" uses of templates. This could easily be the direction C++ development is headed, and it's a shame Qt will not be able to be a part of it.

    1. Re:Qt does not support all of C++ by Anonymous Coward · · Score: 1, Informative

      What you're missing is that moc doesn't just do signals and slots, it also adds dynamic capabilities like runtime introspection (known as reflection in java).

      This is a feature that is sorely missing from C++, but available in more dynamic languages like Java and Objective C.

      This feature is necessary for designing sophisticated apps that want to query the methods of an object at runtime, like a GUI builder showing the properties/signals/slots of a widget.

      This is explained pretty clear here:
      http://doc.trolltech.com/3.0/templates.html

      I don't know about Boost but libsigc++ doesn't give you this.

    2. Re:Qt does not support all of C++ by elflord · · Score: 2, Insightful
      During development one major disadvantage of Qt has surfaced,

      The alternative you're so enthusiastic about also has a "major disadvantage".

      and I think it shows that the Trolltech has choosen a terribly wrong solution to a complex problem.

      No it doesn't. It shows that you don't understand why they chose to design it that way. The loose coupling between componenents is a feature. The dynamic object model used by Qt is a feature.

      Mostly we have managed to work around this limitation by having a non-template superclass which declares the signals and slots (luckily slots can be virtual) and then have the template parts in a subclass, but this leads to unnatural class hierarchies.

      Hiding parametrization is a necessity if you need to support a dynamic object model. There's nothing "unnatural" about having a superclass for a family of template classes. Doing this sometimes is a useful way of hiding template code, and reducing code dependencies between translation units.

      Other libraries have managed to support a signals-and-slots mechanism without such an ugly hack.

      Using a different ugly hack instead. How do you dynamically load objects using the boost/libsic++ template model ? It's a more static model, and that has its disadvantages -- code is more tightly coupled (because classes need to know more about each other), and you get all the usual template overhead. Qt behaves much like an interpreted language, it is very flexible. You lose that with a static template model.

      While not all applications rely upon templates, they have some interesting uses, and if an applications first starts to use them, most classes easily ends up as template classes. See the book Modern C++ Design [amazon.com] for "new-school" uses of templates. This could easily be the direction C++ development is headed,

      Templates are useful, and they're certainly helping give speakers/writers something to talk/write about. But the world is bigger than templates. They are powerful, and useful if used judiciously, but the thought of trying to actually compile an application where most classes "end up as tempalte classes" is fairly scary. Templates are a powerful tool, but the power comes at a price. Simply put, one should not claim that "the answer is templates" without first understanding what the question is.

  140. Do you bet part of your quality of life on Java? by Futurepower(R) · · Score: 5, Insightful


    Remember Pascal? At one time, Pascal was the major development language. Pascal was taught at all the universities. But, an amazing thing happened. In a period of about 4 years, Pascal died. Hundreds of thousands of people had spent millions of hours learning the particular quirks of Pascal and of Pascal compilers. All of that time was lost.

    If you have never lived through the loss of a major direction in your life, you may not even realize it can happen. The people saying I'm a troll in this thread probably haven't seen technology die.

    Remember Powerbuilder? At one time there were about 1.5 million active Powerbuilder programmers.

    No really, is Java dying? Now, I'm seeing, or think I'm seeing, the same thing with Java. The expected energy and support and standards have not appeared. Or have they? If I'm wrong, prove me wrong; I would like Java to be a success, that would simplify my choices. We bet part of our lives on our choices of specialization.

    What frightens me is that there is so little support for GUIs in Java. When programmers don't work to improve their tools, they are consciously or unconsciously deciding that the technology does not warrant improvement.

    I've seen Java programs that are unacceptably slow.

    Sun mismanagement of Java makes people look elsewhere. The world is beginning to realize more fully that proprietary means, "I'm a dog on a leash; I'll bark whenever you yank my chain; please abuse me."

    When you use Java, or any language in a way that is not fully compiled to native instructions, you give away your source code. Sure, what you give away is without comments or variable names, but nevertheless you may give away important routines. That's fine if you intend to make a gift of your work to the world; you should have the option not to do so. There has been surprisingly little work on full Java compilers; until Java has acceptable compilers, it hasn't proven itself. Is GCJ mature?

    Visual Basic and Perl are written in C. Should it bother me about other languages that they are written in C or C++? Why not eliminate the middleman? Can an acceptable result for application development be achieved using something like Boundschecker and avoiding pointers and using automatic garbage collection where appropriate?

    Slashdot has a moderation problem. You can't comment on and moderate the same story. So, moderators by definition moderate stories that don't interest them much.

    Bet wrong and go back to being a novice. As I write this, the parent post has been moderated Flamebait=1, Insightful=1, Overrated=1, Total=3. The question is a real and important one, not a troll. When you pick a technology, you lose part of your quality of life if you are wrong; you go back to being a novice at something else.

    If you know better, educate me. If I'm wrong, and you know better, educate me. That's the entire purpose of Ask Slashdot.

  141. My vote is for wxWindows by raboofje · · Score: 3, Insightful
    Not only is it stable and complete, I'm pleased that wxWindows is under ongoing active development in the Open-Source tradition.

    The mailinglists are, though high-traffic, very informative and the atmosphere is friendly (hardly any flames, 'dumb' questions are usually anwered with 'check the docs at ....' instead of 'RTFM, you dumbass').

    Though the bulk of the wxWindows code is written by a small group of core developers, the development process is very 'open': decisions are often made based on discussion on the mailinglists, and patches usually well-appreciated.

    As with QT, wxWindows is also very much worth considering when developing single-platform or even non-GUI applications (check out the wxBase port).

  142. What about Python? by Domini · · Score: 1

    The article seems to be C/C++ oriented.

    What about really portable cross-platform languages such as Python? Or is that too easy? Do we really WANT to suffer with C in this day and age?

    A cool cross-platform RAG GUI IDE builder:

    http://boa-constructor.sourceforge.net/

  143. Re:DHTML by cheekyboy · · Score: 0

    You surely have no idea what DHTML is, its like flash but in JS/html

    Search the web for examples. you can do a lot.

    --
    Liberty freedom are no1, not dicks in suits.
  144. Who is making a mistake??? by Anonymous Coward · · Score: 0

    Dude visits story in which hundreds of people feel motivated to comment. Dude says that the story shouldn't exist. Who is making a mistake, the hundreds of people who find the story relevant, or the one who enters a story in which he has no interest and makes a negative comment?

  145. I be happy to read 50 more pages... by Futurepower(R) · · Score: 0, Troll


    You said, "I hope the reply wasn't too long."

    I'd be happy to read 50 more pages like you wrote.

  146. obligatory Eiffel plug by mvonballmo · · Score: 1

    I can't believe some other people finally beat me to the obligatory Eiffel plug here. That's quite refreshing actually. I've used Vision2 for some smaller test projects and found it to be an extremely well-written, abstracted library...pretty much like all the other Eiffel libraries.

    To be fair, though, it only works on Unix/Windows...leaving Mac OS X out of the discussion when talking about cross-platform is problematic because most people kind of assume that's included in a cross-platform package (witness Mozilla or Opera, for example). Judging by Opera's results, I'd have to say QT does a great job as well.

    Here comes the plug....if more people actually found out which features the Eiffel language and libraries offer, there would be a *lot* more people developing in Eiffel....or wishing they could.

    1. Re:obligatory Eiffel plug by the_mystic_on_slack · · Score: 1

      Eiffel is excellent for this... I am a college student and we developed in the language last semester and for a final project created a cross-platform board game with a GUI. And according to eiffel.com, an OS X version of EiffelStudio is in the works.
      I'm a huge fan.

  147. Any libraries that support graphical AND text UIs? by Anonymous Coward · · Score: 0

    I'm working in a small software development company. We have a lot of software (written in Informix 4GL) for console applications. It's more and more getting time to switch over to graphical user interfaces. To make this transition as smooth and easy as possible, we'd like to have a toolkit with which we can write applications that support console mode (curses) and X11 (maybe Windows) mode.

    SuSEs YaST2, as an example, does this, but I think they use their own toolkit and their own (strange) scripting language for this.

  148. Common Lisp CLIM 2.0 by Anonymous Coward · · Score: 0

    It is really, really nice. You can have abstract definitions of your GUI in terms of "commands", but you can control every pixel if you want to.

  149. Um...you??? by Tokerat · · Score: 1

    It was a joke.

    Laugh.

    P.S. - No one said ANYWHERE the story shouldn't exist. It's a follow-up from a story two years ago, it SHOULD exist. All I said this was the first time /. editors noticed a duplicate story, which has been happening less and less lately.

    The only thing that makes my humor worse than it already is: having to explain myself to hungover AC trolls at 5AM.
    1. Collect Underpants.
    2. Make anonymous derogitory posts about my obvious joke to make me look bad and get me modded down.
    3. Laugh as my karma plummets from "Excellent" to "Fucking shitty."
    4. ????
    5. Profit!


    And just to be on topic: I have never used any of the mentioned libraries because I never had the need to make my code cross-platform. If I did, I'd probably choose QT or Tk, as I have heard lots about them, and KDE 3.0, which, I'm told, is based around QT, and I find it quite impressive.
    --
    CAn'T CompreHend SARcaSm?
  150. A lot of answers to the wrong question. by viktor · · Score: 4, Insightful

    As I read the question, it was about a cross-platform toolkit with native look-and-feel. I definately interpret this as being native to the platform where it's run, not native to the toolkit! Otherwise the statement would be meaningless.

    The discussion has, as usual, talked a lot about Tk, which has it's own look-and-feel and therefore certainly not is native. Qt is cross-platform, with applications that look native, but necessarily aren't.

    There's more to a platform's look-and-feel than how the buttons look. The location of the menu-bar is one example. The placement of OK/Cancel buttons another, and standard quick-keys a third. Mac OS X has GUI guidelines which specify how far apart different controls should be, and they are almost guaranteed to not match KDE's guidelines.

    Mac OS X/Cocoa also has the concept of sheets, which are basically modal dialogs attached to one certain document window in an application. There's no similar concept in e.g. Gnome, and a toolkit would therefore be hard pressed to find a replacement within the native look-and-feel. In fact multi-document applications in their entirety are differently handled on Windows, Linux and Mac. And I don't even think Gnome and KDE agree on all details of look-and-feel.

    Cross-platform with native look-and-feel is therefore a lot more complex than just using Qt or Tk. What would really be needed is actually a way of abstracting away the GUI part of an application entirely, basically making the entire presentation into a Stylesheet of sorts, somtehing like what you do to strings and numbers for i18n/l10n.

    But I haven't seen any real efforts to do this. It might work without it for Linux vs. Windows, because neither have very strongly enforced standards on look-and-feel, and you can therefore get away with doing things almost right (or even doing them wrong).

    1. Re:A lot of answers to the wrong question. by spitzak · · Score: 2, Informative
      Mac OS X/Cocoa also has the concept of sheets, which are basically modal dialogs attached to one certain document window in an application. There's no similar concept in e.g. Gnome,

      Actually both X (or X Window Managers) and Windows support the idea of "child" windows that belong to a certain parent window. In fact this is about the only way to keep one window atop another. On both systems hiding the parent window makes the child window disappear, and showing it again makes the child window reappear. Also (for Windows and most X window managers) the child windows have no iconize buttons of their own and cannot be iconized seperately. Sheets match pretty cleanly onto this.

  151. MFC dead by edxwelch · · Score: 2, Insightful

    For anyone starting a new project from scratch I would advise not to use MFC as this product is being discontinued. Bug fixes will still be released, but no new features. The product manager of Visual.NET has stated that fact here (if you read between the lines): http://www.codeproject.com/interview/nickhodapp140 22002.asp For a new project it's much better to choose a library that is seeing real improvement in each release, like QT from Trolltech.

  152. From a starter's point of view by xynopsis · · Score: 2, Interesting

    I would just like to point out my experience from using QT for the past two days. It was very nice and straightforward to learn. I am trying to port my old motif-based application to QT and so far I have made some real progress after a day of reading the documentation and tutorials. In the field of widget interaction, QT's signal and slots model really rocks compared to callbacks (GTK still has callbacks). No more trying to double check your callback's parameters to see if it matched the calling widget and get screwed in the process.

    Creating custom widgets too is a pure pleasure - subclassing really is a gift!
    ...Just some of the nice things you get with QT not to mention you get a free excellent GUI desinger plus excellent documentation.

  153. This got me thinking... by dardem · · Score: 1

    I've have been using QT for the earlier stages of my Master's Degree project. This article got me thinking about the licence, which suggests I must make the source available with any binary distribution.

    This maybe problematic seeing how the copyright would be shared with the college. I think I'll give wxWindows a try since it has no such requirement.

    --

    "Ceilean Súil an ní ná feiceann..."
  154. Eclipse on SWT on Qt by GyroCaptain · · Score: 1

    1. Is it possible to implement SWT in Qt? 2. If it is, I think Eclipse could easily be ported to more platforms. 3. ???? 4. Profit!

  155. Re:Eclipse runs on Mac OS X by afantee · · Score: 1

    >> The problem is that it's only available for Windows and Linux, and since the underlying code is native, it has to be separately developed and maintained. Which version are you talking about? I am running Eclipse 2.0 right now, and it works fine.

  156. MetaCard will do it all! by MonsieurX · · Score: 1

    Since HyperCard died and C++ didn't make life any easier, java is still so ugly duck, i turned to MetaCard for all my coding needs. It's HyperCard's next evolution - fast, easy, light and I know very few limits whether in number of platforms supported, compatibility, range of applicability, or even depth of project structure... You're limited only by your imagination with this product! Since the IDE is made out of itself, you can customize it to the gut like RunRevolution did.

  157. MFC is out of question by afantee · · Score: 1

    I don't understand why so many people even mention MFC.

    First of all, we are supposed to talk about cross-platform GUI tools here, how does MFC fit the bill? Secondly, even MS has given up MFC and moved on to the .NET frameworks (or whatever it's called). And finally, it's just a piece of shit.

  158. Too bad for me... by gfxguy · · Score: 1

    I'm developing an in-house project on the Windows platform but currently having Max OS PRE-X (9.x) target. I'm learning the hardway that swing simply doesn't work well, and SWT isn't and won't be available.

    I do not have a development Mac, so I chose Java. I like Java a lot, but it's also giving me a lot of headaches right now.

    --
    Stupid sexy Flanders.
    1. Re:Too bad for me... by Anonym0us+Cow+Herd · · Score: 1

      As a long, long time Mac user and one time advocate, I would say that Apple's implementation of Java on Mac (MRJ) was never really that good. On a typical Mac of a few years back, with 144 MB RAM, back when that was a LOT (!), MRJ was just plain bad at running any reasonably sized swing application. It really begged for a better underlying OS with true virtual memory and other services, which Mac OS X is. I have run some big Swing applications, a few times, on OS X, and can say that I was impressed.

      Unrelated, I no longer use Mac very much.

      --
      The price of freedom is eternal litigation.
  159. iSeries rendering green-screen into a gui by Anonymous Coward · · Score: 0

    Rendering the GUI afterwards strikes me as a good idea - if you have a good infrastructure.

    see http://www.seagullsw.com/products/jwalk.html

    x-platform gui client --> best-of-class-server

    might be too obvious.
    shame no mac os x support...

  160. Not my favorite platform... by gfxguy · · Score: 1
    Those you doubt, may download eclipse IDE for their favorite platform. It itself has been written using SWT and by and large is one of the best IDE ever. Only if there were a GUI builder for SWT, it would be perfect RAD tool.

    Not my favorite platform, but what I'm stuck developing for: Mac OS 9.x. There are a lot more of these around than Mac OS X boxes, and unfortunately our upgrade plans here do not include OS X, even on new boxes, because of older software requirements.

    To make matters worse, I don't even have a Mac to develop on, so I'm relying on the write once, run anywhere philosophy. I'd really love to use eclipse and SWT, but as long as one of my target platforms is Mac OS 9, I'm SOL.

    I don't think it's that uncommon for Java programmers to have only one platform to develop on, even if they have multiple target platforms. That was supposed to be the promise of Java. I don't know who to blame, Apple or Sun, for abandoning Mac OS 9, but it's done and I'm stuck.
    --
    Stupid sexy Flanders.
  161. MFC for cross platform? by Spunk · · Score: 2, Funny

    Isn't that like a bar that plays both types of music: country and western?

  162. QT Rocks by WPIDalamar · · Score: 2, Informative

    We've been using QT for Mac & Windows for a while now, and it rocks!

    Also, if you're looking for a job doing QT development, we're hiring!

    check out
    http://www.tomsnyder.com/about/au_work_depts.asp?D eptID=PROD

  163. Apple Safari by w128jad · · Score: 1

    Don't forgot that Chimera is native Cocoa. Notibly Chimera was the fastest OSX browser before Safari, but in this case native (proprietary) beat native (public).

    w2^8me out.

    --
    w2^7me out.
  164. WinForms (.NET) by Serapth · · Score: 1

    I've seen alot of people joke or laugh about VB style GUI creation, and I can't help but think thats wrong. Actually if you look closely at winForms (.NET GUI), its actually fairly well architected. If ximian gets mono working on linux (and im pretty sure they will) its a really impressive piece of tech. Keep in mind, it becomes not only multitarget, but language neutral, so any language that hits the CLR can make use of the WinForms UI... no need to write custom bindings, etc... As of now, in terms of targets, I believe that winForms can run on all windows flavors, WinCE, SmartPhone2002 and the web (ASP target). If mono suceeds, you can add Linux to that target list, plus shortly after probrably Mac and Solaris... once its supported on linux, it should be a no brainer to port to any other platform. Granted, its not the be all end all user interface... but... the fact its code driven, unlike that black box magic crap VB (7) used! I think in time you will find WinForms becoming more and more popular. Another interesting point, is the newest VisualStudio.NET allows C++ to use WinForms as VB and C# do! Also, I think you will see that MFC is as good as dead. If you look at the most recent update, and the number of advancements and changes they made to MFC... well, theres something like 5! Im guessing MS just wants MFC to roll into a corner somewhere and die. Not such a bad idea in my opinion!!! Ive always hated MFC

  165. So wrong about QT... by marshall.jobenokia.c · · Score: 1

    In a previous article...one ignorant due wrote: > Qt: Again, doesn't work on the Mac and doesn't > use native widgets on Windows. He was soooo wrong. Here's the comment from QT Norway....in rebuttle to this... On Wednesday, 22. Jan 2003 07:59 Marshall wrote: > > > FYI: How others rate QT...I think he is bias however...I luv QT...and > what is the big > deal about native widgets on windows....windows sux... > http://ask.slashdot.org/comments.pl?cid=1011628&si d=5809&tid=156 > Hi Marshall, thanks for the link; apart from being biased he is also wrong - Qt does support Mac OS-X, and using native windows is indeed of no practical importance as long as the toolkit is good enough in emulating the look. In the end emulating scales much better and allows a lot of things that are simply impossible when you are restricted to the native widget's capabilities. Best Regards, Volker -- Volker Hilsheimer, Support Manager Trolltech AS, Waldemar Thranes gt. 98, N-0175 Oslo, Norway

    1. Re:So wrong about QT... by marshall.jobenokia.c · · Score: 1

      On Wednesday, 22. Jan 2003 07:59 Marshall.Jobe@nokia.com wrote:
      >
      >
      > FYI: How others rate QT...I think he is bias however...I luv QT...and
      > what is the big
      > deal about native widgets on windows....
      > http://ask.slashdot.org/comments.pl?cid=1011628&si d=5809&tid=156
      >
      >
      > ---
      > Marshall Jobe 972-374-1442 (W)
      > Nokia NRC/Dallas
      >

      Hi Marshall,

      thanks for the link; apart from being biased he is also wrong - Qt does
      support Mac OS-X, and using native windows is indeed of no practical
      importance as long as the toolkit is good enough in emulating the look.
      In the end emulating scales much better and allows a lot of things that
      are simply impossible when you are restricted to the native widget's
      capabilities.

      Best Regards,
      Volker

      --
      Volker Hilsheimer, Support Manager
      Trolltech AS, Waldemar Thranes gt. 98, N-0175 Oslo, Norway

    2. Re:So wrong about QT... by MeerCat · · Score: 1

      and using native windows is indeed of no practical
      importance as long as the toolkit is good enough in emulating the look


      Except for testing - we use tools like Rational Robot to run an automated test suite over our products, and these tools work by looking for the native widgets. As such it makes it very hard to do automated GUI testing without the native widgets.

      --
      T

      --
      I spent a lot of money on booze, birds and fast cars. The rest I just squandered. - George Best
  166. The same question for game development by Anonymous Coward · · Score: 0

    Finding the best cross-platform solution is certainly always depending on the sort of projekt you are doing. So i have a very specific question.

    I am currently working on a game-like private projekt which does use Mesa and Glut. It's now reaching a point where i need a GUI (so far i was just using keyboard commands and put some messages on the screen). At the moment it does run only on linux but could still be ported easily to other platforms.

    Which API would you recomment for this task? The API should make it easy to implement some custom widgets. For example, like those popup-menues which you can use in The Sims which surround an object. Also the form of buttons should be customizable with bitmaps (so they can take any form and look as nice as my artistic possibilities do allow me).

  167. Re:Today's winning intrinsic observation by Anonymous Coward · · Score: 0

    or www.fark.com

  168. Mac OS X is *NOT* the best platform for java by goofballs · · Score: 1

    The main reason it isn't is that the developer kits come out after it does for the other platforms, if it comes out at all- for example, are we EVER going to see java3D on Macs?

    1. Re:Mac OS X is *NOT* the best platform for java by Anonymous Coward · · Score: 0

      Java3d works on os x, you just have to build it yourself (som hacks are needed, but it works).

  169. java performance by goofballs · · Score: 1

    What swing text editor do you use? some suck, some are great (both in terms of quality and performance). if a text editor is slow on that class machine in swing, it's not a well programmed piece of code, or something's wrong with your box.

  170. Reinventing the wheel by Jungle+Boy · · Score: 1

    I was looking at this problem a while ago myself. I wanted to use SDL as my base though, so that limited my choices of GUI libraries to either ParaGUI or LibUTA. After playing a bit with LibUTA (which could really use some more documentation), I decided that what I needed was just different enough from what was out there that I should make my own.

    While the project is nothing spectacular, I'd like to think that it's become something quite usable in a relatively short time (for having only 2 developers).

    For those of you curious enough to take a look at it: http://wgui.sourceforge.net

    If nothing else, it's been an incredible learning experience and a lot of fun.

  171. I'm the source of the original Ask-SlashDot.... by rrwood · · Score: 2, Informative

    I posted the original question about cross-platform GUI toolkits, for whatever that's worth.

    After much investigation, I've concluded that they all suck a little bit in different ways, and that there is no absolutely "right" answer. Since each has strengths and weaknesses, you have to look at the platforms you are trying to hit, and choose accordingly.

    That said, I have to say that Qt is very nice in terms of its polish, documentation, user community, and support of Mac OS X, Windows, and X. The only downside I see there is that they emulate the look/feel on the target platforms, rather than using native widgets, and they don't support Mac OS 9.x and earlier.

    For my project, my choice is wxWindows, which uses native widgets and supports Mac OS 9.x as of the latest wxWindows stable release. wxWindows has a great user community, has reasonably okay docs, and is pretty simple to get up to speed with.

    Oh-- one other option that I have not investigated for a long time is CPLAT. It also looks quite nice for all the same reasons as wxWindows, though CPLAT is far less well known.

  172. Re:Omnis Studio-Great Tool by Anonymous Coward · · Score: 0

    Omnis has been around a long time, and it is a fantastic cross platform development tool. Studio is the current product and is extremely object oriented. I have not seen any other product that is as mature and full featured as Omnis for producing cross platform Mac/Windows apps. There is support for Linux as well, and the web client is good and improving.

    Anyone wanting a good 4GL Cross Platform tool would be wise to look at this product. The only down side is the company is practically invisible when it comes to marketing. On the plus side, it's been around for years, and hopefully this will be the case for a long time to come. I've been working with it for over 15 years.

    Regards,
    Lee Snover
    lsnover@tplus.com

  173. Cross-Platform GUI Toolkits by KeithBartlett · · Score: 1

    Look at Studio, works on Windowz, Mac, Linux and Solaris. http://www.omnis.net

  174. What about ParaGUI? by mkrosky · · Score: 1

    I like ParaGUI.

    It works on top of SDL, so it is more useful for game development, which is what I'm looking for.

    I found it to be simple enough that I can make changes whenever it's lacking something I need.

    http://savannah.nongnu.org/projects/paragui/

  175. Jext and Ant by Anonymous Coward · · Score: 0
    I've used the Jext text editor every working day for about 4 years now. It's free, Open Source, and written in Java so it works everywhere Java works. Originally I got it because I wanted a GUI text editor that worked exactly the same in Windows as in Linux. But now I use it because it's just a great product.

    ANT, (Another Nice Tool) also runs anywhere Java runs. It replaces make files with an XML based build tool. I've written scripts that can check out code from cvs (or PVCS) compile, build jar files, build EJBs, deploy EJBs, stop and restart servers, and email me the results.

    ANT can be found here It is also free and open source. Although each of these tools are written in Java they can be used to edit, compile and build programs written in other languages.

  176. wxWindows corrections... by GooberToo · · Score: 1
    But, I kept getting burned in three areas: docs, dependencies, and bugs.
    Hmm. That's odd, all of the documentation is available via HTML, PDF, and PS. The HTML docs are available online and mirrored all over the place. Dependency issues? WTF? Every distro I've compiled wx on, had everything installed already. This includes Windows. Bugs? You must of tried this 5-years ago or been trying to use unstable-dev versions.

    Their docs are horrible.
    Hmm. Not really sure what you expect. The docs seem to explain everything rather plainly and clearly. The vast majority of minor gaps are filled in via the samples and demos. Which is to say, unless you're trying to do something really obtuse, you have pretty much everything you need.

    Finally, just about everytime I went to use some widget, I found some bug or limitation that made it unusable.
    Hmm. Sounds like a design or user issue. Chances are you used a VERY old version (5+ years old, or older) or, for whatever reason, decided that a development version was what you needed to use. The stable releases tend to be just that, very stable and usually bug free.

    In wxWindows, I spent the better part of a week just trying to get one simple delegation design working and couldn't do it despite lots of help from people on various IRC channels.
    This does seem to support the notion that perhaps there is a bit of a user-issue here.

    You also forgot that the Python (wxPython: http://www.wxpython.org) bindings are excellent (getting better all the time) and that there are also Perl bindings to boot.

    Some quotes from the wxPython site:


    "Why the hell hasn't wxPython become the standard GUI for Python yet?"
    -- Eric S. Raymond

    "Tkinter is dead, Java is dead, wxPython rules! That's all there is to say."
    -- Robert Roebling

    "I've written some rather involved applications with Python/Tkinter. wxPython beats it hands down... The widgets are better (being based on GTK for Linux) and the class setup is immediately useable. wxPython gives me a good reason to never even worry about using Java."
    -- Aaron Rhodes

    "The Python community needs to give up on Tcl and come join us. wxPython is wonderful stuff."
    -- David Priest

    "BTW, great work! I've definitively switched from Tk. I work on Win32, anybody who works on Win32 should switch!"
    -- Michel Orengo

    I have just picked myself up off the floor having looked at the wxHTML stuff in the new beta! wxPython is moving from excellent to completely awesome very quickly indeed.
    -- Sean McGrath

    Thanks for such fantastic work on wxPython. As a newcomer to Python the power of this GUI library blows me away. I will never use anything else.
    -- Mark Evans



    Plus, many other wxPython users truely enjoy using it. If wxWindows were anywhere as bad as you seem to imply it is, it's doubtful that wxPython would be anywhere near as well received. Not to mention the army of happy wxWindows users.

    I would highly recommend you check it out again or simply not comment on wxWindows as I don't think your comments are accurate or truly reflective of wxWindows or a typical developer's experience that may seek to try it.
  177. Regarding the linked "Good Response" by malachid69 · · Score: 1

    Interesting that you pointed to the "Good Response" that so thrashed Java. None of those claims are valid anymore, any many weren't then. I can't honestly see someone writing a cross-platform anything in C++, since at the very least it requires recompiling on each platform you support.

    I still believe (and have since the early 90s) that Java is currently the best (yes, it still has its problems) solution for anything cross-platform. I compile it on Windows, and it works on my BSD and my friends MAC. My Handspring has Java3D on it, and places like javagaming.org show what can truly be done. Hell, I have Java running on my TINI, which is basically a computer on a SIMM.

    I think that, until we have true object oriented software (which requires object oriented hardware, which we don't have), Java is probably going to remain the best option for anything cross-platform.

    --
    http://www.google.com/profiles/malachid
  178. Abiword/Windows != gtk+ by fault0 · · Score: 1

    The reason Abiword acts, looks and feels native on Windows is because it is. It does NOT use gtk on windows. Rather, it uses the win32api through the Abisource Application Framework, a lightweight and crossplatform wrapper created alongside abiword.

    It's actually pretty neat.. the source is in (abiword_source_root/src/af). It provides a level of nativeness that can't ever be acheived through something like gtk+, which is (still) quite half-assed on windows.

  179. Gimme a GUI toolkit that doesn't dictate design by Anonymous Coward · · Score: 0

    Is there a GUI toolkit that doesn't dictate design? I want to take an existing procedurally designed program and slap a GUI onto it without totally shredding the existing program to make a bunch of callbacks and plugins for a GUI framework. Is there a GUI toolkit that doesn't expect to dominate the function call tree?

    Basically, I want to replace the standard GUI design of "GUI sends message to callback function, gets callback function output and continues processing" with "program calls GUI routine to get data and continues processing". Is there GUI toolkit that will let me do this?

  180. Re:Fans? by Anonymous Coward · · Score: 0

    Yeah, sporks: yeah.

  181. Mozilla -- the "XMLVM" by idearat · · Score: 1

    Just wondering why, when the topic of browsers as "cross platform platforms" is introduced, people immediately jump to the conclusion that the user would have to be running the one you targeted -- or that you have to be cross-browser?

    In the context of this discussion that doesn't make sense to me. If you're building an app with Java, or C++, or any of the other technologies mentioned here you'd ship a complete package. If the user didn't have the libs/jars/etc. you required you'd include them in your installer.

    Why not do the same with Mozilla? Just include it in your installer. It's your "XMLVM", providing portable cross-platform XML-programmable application support. It runs practically everywhere, its native programming model is XML-based. It has XSTL, SOAP, XML-RPC, etc. built in, all scriptable as needed using JS and XPCOM.

    Within the context of "what can I put in my installer package that costs me nothing but gives me access to the most platforms with a single codebase" I think Mozilla wins hands down.

  182. I want you to know that I am completely sincere. by Futurepower(R) · · Score: 1


    zefnd,

    I said that I would like to read 50 more pages of the kind of analysis you wrote, and a moderator called that a troll. I want you to know that I am completely sincere. I feel I need the guidance. I'm not always sure I am picking the best tool for the job, and the cost of making a mistake can be very high.

  183. LGI by Anonymous Coward · · Score: 0
    I've written an XP gui lib - LGI.

    It does most of what wxWindows doesm but takes a little more consistant look and feel approach by avoiding the native widgets and having it's own. This makes for very consistant feel on different platforms. Something which I certainly appreciate in my flagship spplication: Scribe (an email client).

  184. vcf by Anonymous Coward · · Score: 0

    need a BSDd crossplatform gui?
    then check this one
    http://vcf.sourceforge.net/
    very mature oss project which i enjoed mutch

  185. Re:DHTML by jaaron · · Score: 1

    Actually, I'm very familiar with Javascript and DHTML; however, you still CANNOT push with javascript. HTTP is a "pull" based technology. The browser sends a request and the server responds. The server cannot initiate a "push" of data to the client browser. This is why there are some things that are very hard to do within a browser, even with Javascript. Flash has the same problem.

    --
    Who said Freedom was Fair?
  186. Thats if God is a fool by Anonymous Coward · · Score: 0

    Thats if and only if God is a fool... VB is a tool written by the fools for the fools and to fool the fools even more.

  187. XWT by Anonymous Coward · · Score: 0

    xwt.org - amazing project that is cross-platform and remote as well... worth checking out.

  188. Re:Do you bet part of your quality of life on Java by Anonymous Coward · · Score: 0

    Most companies are _TIED_ to java. Java will not die because most of their applications run on java - applications which are running millions if not billions of dollars of transactions a year. Heck, java will almost be like cobol; you think its going to die, but it just doesn't....

    Java is in a different league than pascal, powerbuild, et. al. It works, IMHO, and many others' very well for enterprise server side business CRITICAL applications.... where the money is being created to ultimately pay for programmers salaries... nuff said

    -eleison

  189. It still is - www.xwt.org by Anonymous Coward · · Score: 0

    XWT is a web based GUI engine for creating remote applications - ie native GUI client side and functionality serverside.

    I can honestly say it's absolutely amazing. It's responsive and versatile.

    It's a proper use of java, a GUI engine that uses an appropriate syntax rather than some crap hack like Swing.

  190. Omnis has saved my client approx. $1M so far by ghcf · · Score: 1

    We started with Omnis5 and upgraded to Omnis7, all on Macs. Then the client (major bank) went to NT and we just rolled out the same code on that platform. For a while, we supported both Mac and NT platforms with common code, until the Macs had all been retired. With several years invested in two major applications, they must have saved about a million dollars in rewrite costs. Both applications are solid and reliable and are supported and continually enhanced by a team with a budget of of 1.1 persons per year. Hence very low running costs. From a techy point of view, I love coding Omnis, especially Omnis Studio - it just performs anything I want it to do. But from a businessman's point of view, the long term cost of ownership is superbly competitive.