13

Although Racket permits one to create GUI apps (even games) I am wondering whether it is suitable for releasing commercial applications visually on par with Things or OmniOutliner. Would such an app feel native or would it look like an awkward stepchild not belonging on the platform? For example the Gnome apps on Ubuntu blend seamlessly into the platform even though some are written in Ruby or Python.

Can Racket pull this off and if so can someone point me to an example? I'm trying to determine how suitable Racket is for creating -- from a visual perspective -- commercial-quality applications. Without this one could not readily use it to make apps for sale and this seems to reduce the language to backend and academic use.

Mario
  • 6,572
  • 3
  • 42
  • 74

4 Answers4

7

Perhaps you can get inspiration from SirMail?

On Windows Racket will use the native Windows API. On OS X it will use Cocoa on Mac OS X, and and on Linux it uses Gtk.

This gallery was made on Linux; and here’s a similar gallery on OS X.

soegaard
  • 30,661
  • 4
  • 57
  • 106
5

The best example I'm aware of is the Dr. Racket IDE you got with Racket. It runs on multiple platforms. It includes full source code.

Greg Hendershott
  • 16,100
  • 6
  • 36
  • 53
  • I was afraid I might get that answer. The IDE to me is not an application for an end user. I'm thinking of apps that the typical non-techie might use, not the tool used to build it. – Mario Apr 28 '13 at 02:39
  • 3
    OK I see; I missed that in your question. But for the criteria you mentioned -- exercise many native GUI features, multiple OS platforms, full source -- I _think_ it's the biggest real-world GUI app, and the one with the most users (if not the _kind_ of users you meant). – Greg Hendershott Apr 28 '13 at 14:28
3

The Racket GUI is written to produce programs that run on Windows, OS X and Linux without changing a single line in the code.

Examining Things and OmniOutliner I see that the applications are OS X only. This imply that they use OS X specific GUI elements - the conclusion must therefore be, that you can't produce just as polished interfaces if you stick to racket/gui.

However there is a silver lining. Racket includes an Object C FFI, so you can use the OS X specific GUI elements directly. Since you are interested in writing an OS X only application (I presume), you have more leeway than an OS agnostic GUI library.

As an example of embedding OS X specific GUI elements into a Racket program, I'll point you towards this project which embeds WebKit into Racket: https://github.com/shekari/racket-webkit

soegaard
  • 30,661
  • 4
  • 57
  • 106
  • No interest OS X in particular. The interest is seeing what caliber of app Racket can produce from an aesthetic standpoint. Can it produce something of similar visual quality to Things? In part this will depend on how many kinds of controls are available to it. Pointing me to any visually stunning commercial app that Racket produced would be sufficient. – Mario May 06 '14 at 12:21
  • 1
    To my knowledge there is no application to point you to. That doesn't mean you can't build such an application though. The GUI elements in the provided GUI library are all implemented via the C FFI (or the Objective C FFI). This means that you there is GUI element in your OS not provided by the GUI library, you can import via the FFI. – soegaard May 06 '14 at 15:57
2

Not a very impressive GUI, but this fits the "end user" side of the question: Towers game on Ubuntu. (source code)

Much less on the "end user" side, a GUI designer for Racket applications (old screenshots on Windows).

Metaxal
  • 1,083
  • 8
  • 10