--> If you are a real JAVA programmer, learning C or C++ is not much of a stretch. Pick up one of those "learn C in 10 minutes" books. <--
I WAS a Java programmer professionally for 2 yrs, and I worked inside a big project, so I think I'm pretty real as a Java programmer. And the first language I learned to program in was C. I mean Java is a fluff language because its so easy to use even a doofus like myself can use it.
What I meant in the first post was, reading through UNIX source is often an indecipherable experience. Since I don't have any source code in front of me, stuff of the top of my head:
* I remember trying to compile something on my box, and I got a message like "unistd.h not found." Okay, so I find it on my OS X box, and then include it in my include file search path. Then it complains about how some function has duplicate definition, but the two defs have different return types. ?? Question, how to learn about what to do then?
* How does one decipher all those #ifdef stuff?
* I have no clue how variable visibility across separate source files work in C. In Java, anything "public" is visible everywhere. In C, theres all this static, extern, etc. etc. VERY VERY confusing.
I hope to never program professionally again, but I still want to be able to program for fun, and maybe one day learn enough to contribute to open source. But the more I read through UNIX source code, the more I have no clue wtf is going on???
--> Back to the original question: you're right, Unix C programs can and do run on virtually every platform, are usually written by several people (speaking several languages) via CVS, and have astronomically complex makefiles and such. They aren't meant to be read by Mere Humans. I think you find your documentation for most of them by taking computer science courses at MIT. <--
I guess that's what makes the world of UNIX so diverse, mysterious, contradictory and attractive to me.
