[aprssig] Rant - Cross platform portability

Gregg Wonderly gregg at wonderly.org
Wed Sep 20 11:20:04 EDT 2006


Dave Baxter wrote:
> However.....   Of the Ham population, who actually program anything
> significant, what percentage of them have the skill's to do that on any
> platform/language combination.  Of them, who has the spare time and
> inclination to learn something totally different, if they don't "need
> to"...  I suspect a small fraction of 0.1%  Good on them though, go roll
> with it...

Dave, this is a good and valid point.  Someone with the right knowledge and 
background needs to do this work right.  My point is that if one person would do 
this one time, then everyone could use it everywhere Java runs with the utilized 
platform (J2SE vs J2ME for example has some different capabilities to consider).

> As to Java's IO control, well, it's already been said.  Sun's dropping
> of native java support for COM port, at about the time of the rise of
> USB strangely is a pain.  Utilities like RXTX work, but again, there
> seem to be several versions skulking about, and not all the new ones
> work with newer Java app's.  Then you're back in the usual mess, of how
> to get right down to the metal as it were, across multiple platforms, so
> you can never have true cross platform portability if you are going to
> use external IO.

I understand that this seems bad.  But, the point is, that the javax.comm API 
design is a fixed thing.  You can code to it, and have portability to all 
implementations of that API.  Sun chose to make that an optional API rather than 
an included API.  Not sure why, but that's what happened way back when.  So, the 
developer just needs to find the appropriate implementation to ship with their 
application for everyone to use.  The SUN version can be shipped with 
applications.  All of them have native code libraries that need to be installed 
correctly etc.  That's a little more labor for the developer to work into their 
installation task, but not insurmountable.

> As others have said, the main problem for the users, is getting it all
> installed up and running, citing LimeWire as a good example of how it
> should be done (regardless of what I think of the app itself, and some
> of it's users!)  It is certainly a "hands off" approach, and sorts out
> what it needs, and goes and does it.   Sadly, much ham (and an awful lot
> of commercial stuff sadly) does not do that.

Yep, many people doing software development in the HAM community don't have 
enough training or information, or motivation to get it right.  That's a real 
problem for many people.  Some argue that HAMs ought to be smart enough to 
figure it out.  I think it's important to not waste unneeded time in peoples 
lives just because you can.

> The majority of the so ham so called SDR stuff currently about, is
> computer controlled analogue RF/IF, down to for example 12kHz, then
> soundcard DSP.  That is not true SDR.   Go look at what Amsat among
> others are doing in respect of true SDR.   I doubt much will be done in
> Java, but I could be wrong.  It would certainly be a good way to go for
> the User Interface part, but I doubt for the embedded code.

The realtime aspects of audio capturing that are possible with the PC sound 
cards, in conjuncting with buffering built into the audio subsystems at the 
kernel level (because these are time sharing systems), allows a non-realtime 
system to be used to do this audio processing.  The visible effect is a delay in 
audio caused by the computational time of the audio processing pipeline.  As I 
mentioned before, this is already visible in our cellphones.  We're learning to 
talk slower and respond with less interjection :-)

Doing the audio processing in Java vs C vs C++ vs ASM code is only going to 
result in a different latency (audio delay) between the arrival of the audio and 
its output to the speakers for your perception (hearing).

The issue is, once it's done in Java, it can be more widely used than if done in 
C or C++ or ASM targeted at a specific OS, library or processor type.

> It's not beyond imagination, to have one box that could do just about
> everything.  PSK31, WJST, CW, APRS as well as "normal" voice comm's, all
> running together on the same hardware.  Transmitting on one HF band,
> while doing that Receiving on another though, is still as much a
> challenge as it always was, but numerically not impossible.  I guess the
> closest we have to that at the moment, on VHF at least is DSTAR, but at
> a cost.

Yep, that's what I'm trying to make apparent.  With a little bit of focused 
effort, HAM radio could be in charge of the next generation of RF, instead of 
all of us sitting around waiting for the manufacturers to decide what we need. 
Building new, high class digital equipment with hardware is expensive and time 
consuming.  Doing it with software means that a lot more people can take up 
where others leave off and further explore concepts without everyone having to 
build some basic hardware to get to the starting point.

> I'm sure Java will improve over time, but it has a way long way to go
> yet, for true "all hardware platform" portability that some may claim it
> has now..

I think it's all a matter of perception.  There's a lot of FUD going around from 
8 year old experiences.  Java has come a long way from those early days. It 
really can perform quite adequately.  I used it for repeater recording, echolink 
VOIP GSM codecs (http://javecho.dev.java.net), enterprise class data processing 
(30+ database transactions/second) and a wealth of other things related to 
satellite communications etc.

Again, I'm really interested in hearing about peoples bad experiences and trying 
to understand where all of the negativity comes from.

Gregg Wonderly




More information about the aprssig mailing list