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

Arnout Engelen lad at bzzt.net
Fri May 21 21:01:44 UTC 2010


On Fri, May 21, 2010 at 11:42:13AM -0700, Niels Mayer wrote:
> On Fri, May 21, 2010 at 8:33 AM, torbenh <torbenh at gmx.de> wrote:
> > On Thu, May 20, 2010 at 10:37:30AM -0700, Niels Mayer wrote:
> > > "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/
> >
> > Java RTS has an innovative pricing model that starts at $6500 per
> > socket/CPU for development or internal deployment.
> >
> > well... thanks :S
> 
> Java is open source. 

Well, indeed a big part of the Sun JVM has been open-sourced under the name 
'OpenJDK'. That does not mean the Java RTS is open-sourced - I'm pretty
sure it isn't. But I'm not even sure RTS provides the kind of RT we're looking
for in the LAD world.

> There are people using embedded and sometimes RT java,
> to varying degrees of effectiveness, in all sorts of everyday devices, like
> your cable company-provided DVR and set top box (which I've worked on) and
> sometimes  even your credit card verification devices (which i've also
> worked on).

What kind of 'real time' are we talking about here, exactly? I think the 
definition relevant for the LAD world is basically: "it can be guaranteed that
no non-RT-safe calls (like anything that may block, including malloc) will 
take place while handling the JACK process() callback". 

Can OpenJDK provide that guarantee? This never has been quite clear to me.

The JACK thread can be run at a higher priority than the other Java process
threads (including the GC thread), so as long as there's no non-RT-safe calls
I think we should be safe from being interrupted by the GC (right?). Probably
the jack process() callback would call some Java code though JNI (like JJack[1]
does). *If* JNI doesn't do anything non-RT-safe, and *if* it is possible to 
avoid doing non-RT-safe stuff at the Java side (by adhering to some rules in 
your Java code, much like you'll have to do when writing C code), it'd be 
possible to write RT-safe code in Java.

It sounds possible, but there are some big 'ifs' there.

Of course the more interesting features of Java would probably still be 
forbidden to be used in the JACK process() callback.

> > i dont understand... are you seriously arguing that dynamic languages
> > are always better ?
> 
> No! (...) However programming in those languages, prototyping UI's in those 
> languages is really tedious. Changing and updating and adapting applications
> for new uses is very frustrating in those environments.

I tend to disagree: actually I find changing/updating/adapting things in a 
dynamic language is more frustrating and tedious because there's no compiler 
to tell me which bits I missed. But perhaps we shouldn't rehash the old static
vs dynamic typing debate here ;).

> > faust is able to parallelize any valid faust code.
> 
> Actually, my thoughts during the faust presentation @LAC2010 indicates we
> seem to inhabit different islands each with it's own cargo-cult...
> 
> (07:59:14 AM) npm: Q: what's the difference or motivation for this Block
> > diagram algebra and lambda calculus and y-combinators??

I'd say you can ask the same question for any functional language. Other 
representations are useful to make the algorithms in a given field easier to
read, write and/or manipulate.


Arnout

[1] http://jjack.berlios.de/



More information about the Linux-audio-dev mailing list