On Fri, May 21, 2010 at 11:42:13AM -0700, Niels Mayer wrote: > On Fri, May 21, 2010 at 8:33 AM, torbenh <[email protected]> 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/ _______________________________________________ Linux-audio-dev mailing list [email protected] http://lists.linuxaudio.org/listinfo/linux-audio-dev
