[MINC-development] MINC as a platform-independent portable web-friendly platform

Jason Lerch minc-development@bic.mni.mcgill.ca
Wed, 17 Sep 2003 13:58:22 -0400


Greetings all,

consider this a dissenting voice: I don't like Java, I don't
particularly care if something is web-enabled or not, and I care even
less if our software can run on Windows. Now, I realise that all of
these concerns (windows, web, etc.) are important to many people, and
justifiably so. But not at the expense of writing decent software to
advance research in brain-imaging. 

So what are the pros for sticking with the good old C/C++/P{erl,ython}
combo? They are threefold: 

1) speed. Java is still slow. Some more hardware intensive stuff (i.e.
graphics pipes on the ONYX) might only be accessible in C.
2) We are used to them. There is a lot of expertise in writing C code
and perl scripts; one would have to present many good reasons to move
away from that combo and into a different framework.
3) Libraries. We have them in C, we use many external ones written in C.
I'm sure similar ones can be found in Java, but again a lot would have
to be relearned.

Furthermore, the C/C++ and scripting language combo is surprisingly
portable, esepcially when used together with some autoconfiscation
mechanism. And Java can be surprisingly unportable considering that that
is what it was designed for (case in point: "synch all cursors" in JIV).
And C/C++ and scripting gives you access to the object oriented world
without trying to lock you into it.

So I have no objections to someone writing a Java wrapper to MINC. But I
would be unhappy if that became the standard development platform we are
supposed to work in.

Jason

On Wed, 2003-09-17 at 11:46, yvesroy_@sympatico.ca wrote:
> Hello,
> 
> If I may share a few, general thoughts....
> 
> I agree with Chris in recognizing the need to write portable software
> that runs on a variety of computing platforms.  Ensuring portability and  platform-independence of medical imaging software should be a primary concern. These issues should be considered early in the design and development of the application software.
> 
> Also, I think that it is worthwhile to invest time in the early stages of development so that a software system (like MINC libraries, core and applications, in the actual layering) has built-in support for extensibility and modifiability to be able to handle future change in requirements (like the shift from minc 1.1 to 2.0). How ? Many design patterns address those requirements.
> 
> How to achieve portable software? One way is through the development/reuse of host infrastructure middleware that provides an OS abstraction layer that shields application software from the details of the underlying OS. I am thinking about things like ACE, for networked applications.
> 
> As for which language to use to implement the design, Java, being object-oriented and web-friendly, seems a good avenue.
> 
> My humble 2 cents...
> 
> Yves Roy 
> 
> 
> _______________________________________________
> MINC-development mailing list
> MINC-development@bic.mni.mcgill.ca
> http://www.bic.mni.mcgill.ca/mailman/listinfo/minc-development