On Tue, Apr 22, 2014 at 8:05 PM, Derek Smithies <[email protected]> wrote: > Hi, > Not sure if I would call it beginners Linux programming. > > python is a language commonly taught in computer science schools, and then > combined with all the python bindings > for the various widgets - this is a good beginners language - easy to start > with.
As much as I like Python, and as good as it is for beginners, it's not a 'linux programming' language. This book is clearly about Linux programming: learning how to bugger about with processes and threads and IPC and /proc and low level I/O and such. It's not a book about how to write a particular language (like Python) with stuff like "this is an if-statement in Python" or even "this is what an if-statement means" because that wouldn't be very Linux-specific now, would it? Arguably something like C is 'easier' to start with than Python. I've certainly seen lots of students in courses I have taken in the last couple of years treat Python like a 'magical black box' where you put in code and you get output, without actually putting any thought into what is happening 'behind the scenes' so to speak. Whereas as soon as those students got into courses teaching C using microcontrollers they all seemed to very quickly gain a much higher appreciation both for how computers work and how nice Python is. > They have a whole chapter devoted to inline assembly code. Please. Not > beginner material. Plenty of people programmed first in assembly. I didn't, but plenty of people quite some time ago did. Assembly isn't actually particularly complicated in and of itself in my opinion, if anything it's a simpler model to program than C or god forbid C++. The only real complexities come from the god-awfulness of x86-64 and its various extensions. It's not even a particularly big chapter. Fun fact: x86-64 has instructions specifically for AES. > Autotools are "universal". Every project is supposed to use them, and every > user hates them. They are regarded as so > complicated that they are usually written incorrectly, and so their wrong > operation is "wrong". Try cross compiling > with autotools. Urgh. The book does not mention them. Given their > complexity - better to keep it away from beginners. Perhaps autotools aren't mentioned because they're not actually all that relevant to Linux programming specifically? I'm not sure 'every project is supposed to use them' either, lots of projects use CMake or equivalents. > Yes - maybe this a book for Linux C/C++ beginners. As far as I can tell: "beginners Linux programming" != "Linux programming for people that are beginners to programming" "beginners Linux programming" == "Linux programming for people that are beginners to programming specifically on Linux" _______________________________________________ Linux-users mailing list [email protected] http://lists.canterbury.ac.nz/mailman/listinfo/linux-users
