
i'd like to try and compile a small Java app to native bytecode for a specific ARM-Linux board to see what the performance differences is (versus running through the Java SE interpreter). so far no love.
my impression of free open source software...
research this whole cross-compiling idea and Java compilers for a couple days. decide to skip the latest release of GCC and go with a version that is known for sure to cross-compile for arm-elf. download source. follow "known-to-work" steps. run configure. oops doesn't like something. research error. oh great, several workaround but you need to really understand each one in depth to choose. screw it, just see if i can get it to work without a flag for now and come back later. run make all and wait. missing makeinfo, wtf is makeinfo? ok, i need to install the textinfo package on Ubuntu to get makeinfo. make all again. same problem. research. something about cached settings, fine then, just delete it all and start from scratch. same error. look at the offending make file, hand edit it to not point incorrect path. run again. same problem different spot. ah, i see that the root make file is telling all the others this incorrect path, fix that. make all again and wait for a few minutes, lots of pretty text wooo! ah crap, new error and it's now 3am. screw it then!!!! ok i'm going to just get the pre-compiled binaries for a way older version that has gcj included in it. get that, setup path, try arm-elf-gcj and get "no such file or directory exists". try arm-elf-gcc, same errror - all the executables give the same excellent error. try setting PATH to include the lib and include folders, no luck. try passing the paths in with flags to gcc or gcj, same error still. research. oh how lucky for me, everyone else with this error actually got a file name and line number to help them, i'm just getting the error. seems like a dead end. ok, i give up! thank god i don't actually need this for real work!
</ranting>
so am i against open source software? absolutely not. it's great in theory (and sometimes in reality), yet like most things the experience may vary. the more successful open source projects seem to have these common traits:
- a narrow focus of functionality
- strong obvious leadership (be that a single individual, a commited group of average joe's, or one or more companies)
- few dependencies on other projects (helps from a licensing as well as actual implementation perspective)
thought eminently useful and for the most part stable, GCC doesn't really have the above traits. perhaps that's why it's easy to run up against some of its rough edges. also, i freely admit that i'm no C programmer and a also a Linux newbie. but i'm sure there are other people that fit the same description just trying to get something accomplished.