RepRap: followup.
I received some comments on my previous blog post; one of them I guess was from one of the people who helps develop reprap, and who pointed out that the Java software is not the only thing; there are apparently alternatives in python, and a C-based one in development. Goodie.
Another managed to put out this gibberish:
I'd just like to point out that C and POSIX isn't very easily portable to the majority of computer systems that users use (ie. Windows), not to mention that C doesn't have a whole lot of abstractions away from the OS (eg. building up path names is not easily portable in C).
My friend, that is why they have these things called 'libraries' and 'cygwin', or even 'MingW'. There are many programs who were written in C and who are portable across Windows and POSIX; Apache, OpenSC, to name but a few. I'll grant you that it is more work to develop applications that are cross-platform using C, but that doesn't mean it can't be done. At least, however, they'll be easier to install.
Go look, and look hard, at the Apache Portable Runtime. Windows support is, by and by large, provided by actually making correct and proper NT system calls, and only emulating POSIX where absolutely necessary. They provide a whole new API that's the rough intersection of "features trivally implementable on UNIX" & "features trivally implementable on Windows NT" with an API that's not necessarily very close to either.
C is a terrible language for cross-platform portability, because the standard library lacks so much. The only way to get cross-platform, portable C, in any real sense, is to write/use something like APR, which has honestly been reinvented about a thousand times now.
i thought the same when i dived into reprap some time ago, and came to the conclusion one doesn't need any of the java stuff.
just use any 3d cad which allows exporting stl or gts. use skeinforge to generate gcode from the model. Then send that to the reprap via serial if its a full reprap (e.g. with a simple python script).
We just built a extruder and mounted it on some 3 axis mill (they call that repstrap then) which is driven by emc2 (linuxcnc.org). that we feed with gcode from skeinforge.
means no java involved if you do not want to. also no proprietary code (all opensource) in the whole toolchain. (we use heekscad for an oss 3d cad).
btw: same goes for arduino, its just an avr, a bootloader and some 'special libc' (and the makefile isn't really maintained). the java is 'just gui'