Re: [LAD] Looking for an introduction to rt programming with a gui

From: Niels Mayer <nielsmayer@email-addr-hidden>
Date: Thu May 20 2010 - 20:37:30 EEST

I agree with the Qt option, as it clearly produces some nice & performant
music applications. But you're still programming in C++ which is tedious
because of memory management; also "hard realtime" often precludes the use
of Garbage collectors. Of course Java has RT garbage collectors available:
http://java.sun.com/developer/technicalArticles/Programming/rt_pt2/ although
some may find "soft realtime" garbage collection as provided by the new G1
garbage collector sufficient:
http://research.sun.com/jtech/pubs/04-g1-paper-ismm.pdf ... see also:
http://blog.headius.com/2009/01/my-favorite-hotspot-jvm-flags.html

Lots of interesting Java-based music apps exist, with GUIs:
http://jmusic.ci.qut.edu.au/applications.html
http://www.softsynth.com/links/java_music.html

GUI application programming might be a little more forgiving in Java,
although Java is a pain-in-the ass language, where you spend more time
building and understanding scaffolding than you actually do programming...
part of the scaffolding are the "design patterns" needed to work-around
fundamental issues with primitive strongly typed languages like Java and C++
(
http://www.tiagoluchini.eu/2007/07/28/strategy-pattern-comparing-java-x-lisp/
 ).

The good thing is you don't need to use Java anymore, but can take advantage
of its portability, security, advanced garbage-collection options, and
just-in-time compiler advances that may give it a performance advantage,
these days.... But you don't have to program in Java, you write in
http://groovy.codehaus.org/ or http://clojure.org which means you can do
really high-level things with just a few lines of groovy code (
http://lists.xwiki.org/pipermail/users/2009-August/016937.html ).
Fortunately, several million unfortunate souls have slogged through all the
hard work and made a huge library of functionality for people to use, much
of it open source.

http://curious-attempt-bunny.blogspot.com/2009/01/simple-clojure-graphics-api.html
is
a good example of the concision made possible by clojure...

Clojure may be of particular interest in realtime
multiprocessor/multithreaded apps because of its high level., language-level
support for concurrency and multithreaded programming (
http://clojure.org/concurrent_programming ) as well as potential support
for Software Transactional Memory, which is analogous to garbage colleciton
for threads ( http://www.stanford.edu/class/cs242/readings/TMvsGC.pdf
http://java.ociweb.com/mark/stm/article.html ).

Niels
http://nielsmayer.com

_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Fri May 21 00:15:01 2010

This archive was generated by hypermail 2.1.8 : Fri May 21 2010 - 00:15:01 EEST