Friday, 13 July 2001
1/1 - [Std View]
Professional Linux Programming with Neil and Rick
Ever take a beginning programming class but not know how to advance
your knowledge after that? Want to learn how to do some nifty programming with Linux? Well, this is the book for you. We had the coauthors of Professional Linux Programming come in and talk with us about their experiences, the book they've published and what future plans they have. Miss the event? Not a problem. The log's right here so that you can read over it and find out what you missed.
<Wintersun> Okay, let's go ahead and start up this event...
<Wintersun> I would like to thank everyone for coming to this event today
<Wintersun> I'm sure we'll be getting a few more people in as we start up the event
<Wintersun> Today, we're going to be talking to Neil Matthew and Rick Stone, authors of "Professional Linu Programming"
<Wintersun> During the event, if you have any questions, please /msg lcModerator and he will ask them for you.
<Wintersun> Now, I would like to start off the event with Neil and Rick telling us a little bit about themselves and their book.
<Wintersun> Neil? Rick?
<ricks> Hi, Well the whole think with Wrox got started by accident, when a friend of ours gave a talk
<ricks> at which one of the Wrox editors was present.
<ricks> They were looking for someone to review a book, Rev guide to C++ and OOP or something
<ricks> a little unlikely.
<ricks> They needed it reviewing in 48 hours. Sounded like a fun idea and a way of making some money, so
<ricks> we took the day of work, started early and finished _very_ late, and presto,
<ricks> one book reviewed in < 48 hours. Probably not the most extensive review ever,
<ricks> but it got there, and we got paid.
<neilm> Since then we've reviewed and written for Wrox a few times.
<neilm> Professional Linux Programming (PLiP) is a sequel to Beginning L.P (BLP)
<neilm> that we wrote with some help from others last year.
<neilm> We hope to encourage developers to adopt Linux, and come to love it as much as we do.
<neilm> We've been hacking with Linux since about 1993, having used UNIX many years before that.
<neilm> Our day jobs are working as systems architects, designing IT systems for the major
<neilm> drug (legal!) distributor in Europe, GEHE.
<ricks> We were surprised at how successful Beg Linux Prog was,
<ricks> basically we wrote the book that we would have liked to have read
<ricks> when we first started programming.
<ricks> Books like W Richard Stevens are fantastic books,
<ricks> but not perhaps the most easy to read for beginners.
<lcModerator> Tell us a little about the book... What does it cover?
<ricks> I think Wrox ere surprised as well, at the time they were very much a M$
<ricks> programming book house, and it took us a while to persuade them
<ricks> that they should let us write Beg Linux Prog.
<neilm> PLiP tries to cover the development of an application from start to finish
<neilm> We begin with some idea about application design and move through
<neilm> things like using CVS to control source code, and cover all sorts
<neilm> of programming interfaces.
<neilm> There are sections on databases, including PostgreSQL, how to program GUIs,
<neilm> how to test and track down bugs, how to use PHP to make a web front end,
<neilm> plus some information on alternative languages for Linux programming.
<neilm> We develop an application, a DVD rental store system
<neilm> throughout the book, which provides a nice thread for introducing new
<neilm> features and techniques. Most of the material of course applies eqully well
<neilm> to UNIX, FreeBSD and other work-alikes. There are also side topics
<lcModerator> Is the book about programming the Linux kernel, or about programming the GNU/Linux system?
<neilm> like using Flex and Bison that introduce less well known tools.
<ricks> There is a chapter on device drivers, which is probably the closest
<ricks> most people come to programming 'the kernel', but primarily it's
<ricks> about writing application level code.
<lcModerator> What diffrent languages do you know how to program in?
<neilm> Well, I have to admit to being a bit of a language collector. I have
<neilm> used C, C++, lisp, prolog, perl, python, fp, icon, pascal, bcpl
<neilm> some of which have by now been consigned to history. Now I generally work
<neilm> in C, Perl and Java. Jave especially seems to be the coming 'big thing' in
<neilm> our business, but I still think C hs a place.
<lcModerator> You mentioned GUI programming. How do you address the Qt vs. GTK debate?
<ricks> I'm not such a linguist, I mostly write in C, I find it 'still works' :)
<ricks> I also use Java a lot, which is a very elegant language. Also used C++, some Perl,
<ricks> used to do a lot with shell script (bash and Korn). I keep intending to learn
<neilm> We sit pretty much on the fence in the QT/GTK debate. PLiP has chapters
<ricks> Python, but somehow there doesn't seem to be quite enough hours in the day
<neilm> on both frameworks. On the user side I prefer KDE and Rick prefers Gnome
<neilm> honors are about even!
<neilm> I think it's important that the Linux GUI frameworks remain free, so I was
<neilm> very glad to see QT become so.
<ricks> Interesting that a lot of the 'commercial' people seem to be following Gnome,
<ricks> but the KDE apoplications seem to be progressing faster, for example Konceror (?sp)
<ricks> is advancing very fast as a great web browser, and I see today someone has started
<ricks> to get ActiveX controls to work. Scary! *
<lcModerator> You mentioned that PHP is touched on somewhat in the book. With the boon in E-commerce, of late being the rage. Does the book cover that in anyway, and perhpas how to programe your own Custom shopping-cart interface as some out of the box solutions just are to cumbersome to adapt?
<ricks> Given the wide range of topics we covered, there wasn't that much room
<ricks> for indepth stuff.
<ricks> Mostly we were trying to give people a good flavor of how to program stuff
<ricks> in a particular way, the good bits (and bad occasionally) then they can either
<ricks> go ahead and learn it from the web,
<ricks> or maybe buy a single topic book that has the space to
<ricks> cover stuff in more detail.
<ricks> Even with a 'framework' you still have to understabd the basics I think.*
<lcModerator> In your book, do you support and/or encourage the use of the GPL and possibly describe its positive/negative effects on current business models?
<neilm> All of the code that we develop in the book is made available under the GPL
<neilm> and encourage readers to develope and release their code in that way too. We
<neilm> did the same with BLP and had reports that the code was being used in
<neilm> projects all over the place.
<neilm> We believe that Open Source in general
<neilm> can form part of a valid business model. And it makes
<neilm> for some great software, like Linux and PostgreSQL. At a
<neilm> conference in India last year, a guy from SCO claimed that even giants
<neilm> such as Oracle could make a decent living even if they made Oracle free!*
<lcModerator> what is your opinion on the bsd license?
<ricks> I think that the people who write the code have a perfect
<ricks> right to release it under whichever licence they choose.
<ricks> If they want to give away the S/W and allow people to use it commercially
<ricks> without re-releasing the modifications then use BSD, if you want to force
<ricks> people who sell stuff based on your work to re-release the modifications, use GPL.
<ricks> It's a matter for the code author what license they choose.*
<neilm> I prefer the GPL though
<neilm> as it ensures that freedoms cannot get lost.
<lcModerator> How much of a place do you think that assembly language should hold in today's computer industry?
<neilm> These days it seems that computers as so fast they make up for poor programming.
<neilm> If you need to make a program run faster, buy a faster machine.
<neilm> Even hardware guys these days are learnig C instead of assembler, but
<neilm> I think that it is often useful for a high-level programmer to understand the
<neilm> consequences of their programming choices, like sort algorithms and multiple
<neilm> indirections. Learning the instruction set of a CPU and studying compiler
<neilm> output used to be agood way to do that. Perhaps I'm living in the past, but
<neilm> I think it is a shame that we do need to get close to the metal any more.*
<ricks> I used to be a wizz at Z80 assembler, but not much call for it these days...:( *
<lcModerator> But PostgreSQL isn't GPL'd. Why would you use it instead of MySQL and the lGPL?
<ricks> Use the tool that is most suitable for the job in hand.
<ricks> I don't mind if the authors of PostgreSQL didn't use GPL, that was their choosing.
<ricks> They have a _great_ database there, and the source code is freely available
<ricks> so - hey - use it.
<ricks> In fact (plug coming up) our next book is about PostgreSQL. ISBN 1861005156 :)
<ricks> MySQL also has it's uses - it's very quick so behind a web server
<ricks> a good solution.
<ricks> I think it's great that there are competing products in the Open Source space,
<ricks> they compete, learn of each other and the users have more choice.*
<lcModerator> you mentioned perl and python, do you have any feelings about the newish language ruby which has appeared on the scene?
<ricks> Afraid I don't know that much about it, one of our friends is a bit of a fan though.
<ricks> I can't help thinking that occasionally too much competition isn't always necessary.
<ricks> I know BASH very well, can get buy in Perl, would like to be more proficient
<ricks> in Python - how many more scripting langauges do I need to solve problems?
<ricks> If people like it, and it offers advantages it will grow, if not :( *
<lcModerator> What do you think about the condept of mentorship or apprenticeship as a way of learning how to be a programmer?
<neilm> This is an excellent idea, we are
<neilm> starting to do this in our work, especially when introducing new
<neilm> technologies. In our case Oracle and Java. We use
<neilm> a specialist to mentor application development teams in the
<neilm> language, but more importantly how to design systems in those
<neilm> languages. We haven't gone as far as Kent Beck in Extreme Programming
<neilm> in which he advocates using programmers in pairs, but we think the mentor
<neilm> approach has great merit. As for apprenticeship, I'm not in
<neilm> favour of too much certification for the discipline, except for particular
<neilm> skills like cisco configuration that can be dangerous if done poorly. *
<lcModerator> You mentioned you both used Java, yet many people point out that it is quite slow for some applications. How long do you think it will be until Java can compete with other languages for speed?
<ricks> I think that for a lot of applications the latest JVMs are already up there with
<ricks> 'inefficient' C style code.
<ricks> The performance in things like HotSpot it crucially dependant on the application
<ricks> having a reasonable runtime, so the optimisers get time to do the job.
<ricks> Just look at the huge growth in Java Server Pages, the programming
<ricks> model is so elegant, that the programmer productivity gains are easily
<ricks> offset by spenign some of the money saved on a faster machine.
<ricks> There are some applications where it's still too slow, such as comms work and some
<ricks> GUI applications, but overall I think the speed is not such a big issue these days.*
<neilm> Don't forget that there are now some native compilers
<neilm> that get the speed right back up there. *
<lcModerator> how come most new languages are usually interpreted and don't have a binary compiler?
<neilm> I think it's a combination of factors.
<neilm> It is easier to create an interpreted language than a compiler for a specific
<neilm> processor. Staying interpreted keeps you independent of any particular CPU or
<neilm> operating system. And, as machines get faster there just isn't the driver to
<neilm> get every last drop of performance.*
<lcModerator> re: mentorship, what do you think a new programmer should do if he/she wants to find a mentor (outside the confines of a particular company)?
<neilm> Tricky. I'd
<neilm> look for user groups as a source of expertise.
<neilm> If you are trying to learn a new language that can often be a good way to start.
<neilm> In the UK we have the BCS (British Computer Society) that hold
<neilm> local meetings that are open to non-members. That's a good
<neilm> way to meet folk with similar interests. I'm sure there must be similar
<neilm> groups in the US. Oh, and buy a good book :-) *
<lcModerator> it's obvious that you understand the ambiguity between free software and free (as in no-cost) software, but this difference is not intuitive to the gernal public, do you explicitly try to make this disctinction to your readers, since they are beginners to GNU?
<ricks> We do try and explain it, but in a general way.
<ricks> We have done some talks about Linux, both for local user groups and at work,
<ricks> and it's a topic that comes up a lot.
<ricks> Clearly people think the GPL is _more_ restrictive than it actually is,
<ricks> but mostly we stick to writing about programming.
<ricks> There are a lot of other people doing the Evangalist thing, better than I could.*
<Wintersun> Well, I think that that was the last question.
<Wintersun> I would really like to thank Rick Stone and Neil Matthew for coming out and talking to us today.
<Wintersun> It was a great event and we had some really excellent questions.
<Wintersun> I would also like to thank your audience for such great questions.
<Wintersun> I'm going to unmoderate the channel now, so if you would like to stick around and talk, please feel free to.