Cynthia Heimel (plum) Tue 23 Mar 99 14:47
And she has a new book out!
Cynthia Heimel (plum) Tue 23 Mar 99 14:48
Fortunately for some, the book is about Perl. Which is unfortunate for me, because I don't know what Perl is and Laura please tell me before I am reduced to making "before swine" jokes.
ciderpunk (mtrbike) Tue 23 Mar 99 15:56
Hah! Perl is a geek thing; its an astonishingly powerful programming language. Actually, when I first heard about Perl (way way back when), I thought it was a metaphor borrowed from knitting, you know, knit one, perl one. I was really impressed by that metaphor, given that Perl's style weaves together different kinds of programming languages and syntaxes and lets you create useful things without needing to know a lot of technique. I was kind of dissappointed to realize that the knitting thing is *purling*, with a u, and that Perl has absolutely nothing to do with knitting. But anyhow, Perl is actually an acronym; it stands for Practical Extraction and Report Language, although sometimes its Pathologically Eclectic Rubbish Lister and various other things. Its Just Perl. As a programming language, Perl is popular because its used quite a lot on the Web, primarily on the back-end, on the server side, to create what are called CGI scripts. If you're a Web developer, and you've learned everything is to know about how to put together actual Web pages on the browser side, the next step is to start looking at the server side. And on the server, chances are fairly good there's going to be Perl there. Perl's also getting a lot of attention recently because its an Open Source project. Like Linux, the Apache Web server, the GNU tools and the Mozilla web browser, Perl isn't owned by any single company. Its developed communally, by a worldwide group of dedicated volunteers. Anyone can download the source code, fix bugs, make changes, suggest improvements. I won't go into the whole Open Source thing and how it works here; lots of people have reported on it better than I can. Suffice it to say that Perl is really powerful, really robust, and really cool, for those of us who do the computer programming thing. And its free. Teach Yourself Perl in 21 Days is my book; it just came out yesterday. There were actually previous versions of this book not written by me; mine is the third edition and its a total rewrite from scratch. I wrote it because while there are lots and lots of Perl books out there -- many of them excellent -- there aren't a lot of very good beginner books. And I had been asked, repeatedly, by people who had read my previous books on HTML and Java, to do a book on Perl. I was asked! How could I refuse! We have a fairly active Perl conference here on the Well: perl.ind. I spent a lot of time there when I was writing the book, and several of its more active participants helped me with the technical review (for which I am eternally grateful).
ciderpunk (mtrbike) Tue 23 Mar 99 15:57
(brain the size of a small planet? Oh I am *so* flattered.)
Gail Williams (gail) Tue 23 Mar 99 16:14
Wow, time for me to really learn perl! Too bad about the knitting. That would have been elegant. Laura, your first book was about HTML... and a *classic* indeed... at the time of the first book did you already know programming languages such as perl, or was HTML your first mysterious set of codes and incantations?
hoofprints d' (satyr) Tue 23 Mar 99 18:35
Oh, garsh, look WHO's up to bat! Laura, I've been meaning to bring this up in <web.>, but this might be a better place. I've heard about Perl and CGI for as long as I've known about the web, and Java nearly that long, but, not (yet) having had need to learn any of them, I've still only a vague idea what they do, and meanwhile more names keep getting added to the pile -- DHTML, cascading style sheets and such. What's your favorite web site for straightening out this tangle, to help someone who's just getting a handle on HTML to decide what to tackle next?
ciderpunk (mtrbike) Tue 23 Mar 99 18:38
At the time I wrote my HTML book I had been programming, in various languages, for...oooh, for almost eight years. On and off. Some in school, some for my job, some just because it was fun. I'd even written books about programming languages that never saw the light of day, even before I ever wrote about HTML. But I've never been a Real Programmer (boldface, big type). I'm a technical writer, emphasis on the writer. I don't have a comp sci degree and I've never held an actual programming job. But throughout my entire experience with computers, I've always been curious about getting in under the hood, about trying to figure out how things work. Its been getting worse the older I get. Seems like the more I know the more I want to find out. Dangerous path to get into; I could spend all my time learning and none of it writing. Except that the reason that I've stayed a writer -- as opposed to going over to the other side, and becoming a Real Programmer -- is because I also like TEACHING. Its not enough to learn a cool new language or skill or technology. I also want to tell someone else! Look what I just learned! Isn't this the neatest thing! One of these days we will have cloning and I will have time to write about all the things I want to write about. Not that anyone will *publish* all the things I want to write about, but hopefully by then the stock market will have made me independently wealthy (snort) and I will be able to just put it all on the Web. Open Source books.
ciderpunk (mtrbike) Tue 23 Mar 99 18:39
whoops, slip from satyr. I'll be back to reply about that one soon.
dragging in Hyperborea (dbdoty) Tue 23 Mar 99 20:30
>> Brain the size of a small planet And how do the diodes down your left side feel these days?
hoofprints d' (satyr) Tue 23 Mar 99 20:45
(I've a short list of Open Source links up at http://net.indra.com/~jtpayne/mu/lxicn.html#OPENSRC )
Bryan Higgins (bryan) Tue 23 Mar 99 22:31
I'm a programmer but haven't delved into Perl yet. Isn't open source kind of a dangerous thing for a programming language? Seems like you want the language to be stable, not changing all the time, so that you don't have several versions of of the language floating around (Perl 4, Perl 5, etc.) and have to worry about which compiler to use on your program.
impoverished intervallic palette (castle) Tue 23 Mar 99 23:18
That's a good point. Wonder how they do version control? Another communally-developed and maintained extremely cool software product is Persistence of Vision. http://www.povray.org/ since we seem to be doing the URL thing. Hi Laura! Congratulations on the new book! Looking forward to reading this topic...
Cynthia Heimel (plum) Wed 24 Mar 99 02:37
So, what is a programming language? Do you need an operating system first? Is it a way of telling the computer what to do? I am amazed that you can get all this from ones and zeros.
ciderpunk (mtrbike) Wed 24 Mar 99 07:37
satyr: straightening out the jargon tangle: I went browsing through my bookmarks last night, looking for something that would match what you're looking for -- and to be honest, I coulnd't find anything that fit the bill. To be perfectly honest, I haven't been too tightly involved in the web design community for a long time -- there are other people updating my old HTML books now -- so I'm not even sure what the best instructional web sites are out there. The <web> conference would absolutely be the place to go ask that question. Sorry to be so useless. Re: Open Source: Andrew Leonard, of Salon Magazine, is probably my favourite writer talking about Open Source right now. There's a list of his stuff, and all Salon's open source bits (including a small snippet I wrote about mozilla) at http://www.salonmagazine.com/21st/feature/1998/12/11list.html
ciderpunk (mtrbike) Wed 24 Mar 99 07:49
Re: programming languages as Open Source being dangerous as it changes all the time. Perl is open source, but its fairly tightly controlled. (is that an oxymoron? it shoulnd't be). For one thing, Perl was invented by Larry Wall, and Larry is still the Man. Between Larry and a core group of community leaders -- the perl-porters -- they keep control of what goes into the language, feature-wise. (although Perl's syntax is...er... quite inclusive. there's a lot of different ways for doing similar things in perl). A lot of new Perl stuff also gets put into modules -- similar to libraries in other languages -- and not into Perl itself. The modules, in turn, get maintained by thier respective owners, not by the Perl cabal. So its kind of distributed in that way. But, unlike a language like TCL, not ALL of it is in the modules. There's a nice balance there, IMHO. Second, its not like new versions of Perl pop up willy-nilly. I'm admittedly not as tight on my Perl history as I should be having wrote a book on it, but I believe Perl 4 was out in the vicinity of 1992 and was the thing to use until 1996. Except for minor changes and big fixes, it *was* stable. Perl 5 came out that year, and again, except for minor changes, has been pretty much feature-stable since then. Except for a big push this last year to fold the Windows version of Perl into the core source tree, and a parallel project to do multithreading, there hasn't been any enormous movement on to do a Perl 6. There is no Web time in Perl. Perl is pretty darn slow (that's a good thing). Thirdly, "which compiler to use" isn't as much of an issue with Perl as it is with, say, C or Java, because Perl isn't compiled. Well, it is, but it doesn't look like it -- Perl programs are scripts, they run as if they were scripts. You actually run a .pl file. There isn't the intermediate .exe or a.out or whatever. And Perl 5 is backward compatible with Perl 4, so old scripts will pretty much continue to run right up to the present day Which is not minimize the fact that Perl 4 to Perl 5 wasn't a huge leap, and that there aren't still problems with Perl 4 still being around. But it isn't as much as a problem as you might initially think. I've had far more problems with upgrading Linux and Emacs -- both open source -- than I have had Perl.
ciderpunk (mtrbike) Wed 24 Mar 99 07:51
Re: what is a programming language? Is it like an OS? (I should mark these posts! Geek level = high. This one has an extrememly low geek level.) Well, "its all just ones and zeroes" is sort of like saying people are 90% water and 10% soluable minerals (or whatever the percetnage is). Ones and zeros are there, but boiling it doesn't doesn't really explain what it is. What is a programming language? Ellen Ullman is really doing a good job of explaining these sorts of things in her recent books and articles, and I like how she describes it, so forgive me if my description sounds a lot like hers. Bascially, computers talk in a certain way, very specifically, very logically. Its like those jokes in old movies and kids shows about the robot that doesn't understand idioms and takes everything literally. But its worse, not only doesn't the computer understand idomatic expressions, you also have to tell it *everything* -- you can't just say "go down to the store." You have to say "pick up left foot, move left foot forward, put down left foot, shift weight to left foot, pick up right foot..." ad infinitum until you got to the store. You'd go nuts if you had to talk like the computer does in order to get it to do anything. Fortunately, there are translators. There probably won't ever be working translators directly between english and computer, because human languages are really kind of fluid and mushy and vague, and computers are logical and specific (although lots of people have tried so called natural language programming languages, and some of them are quite cool, but none of them are actually *english*). Most programming languages are a kind of intermediate language, closer to computer than english, that make it easier for humans to talk to computers. Humans still have to learn to speak the language -- in the same way that you'd have to learn to speak french -- but once you learn the basics, getting the computer to do things is pretty easy. (also like the french, the computer will also refuse to speak to you until you get it right, but at least the computer will sometimes give you hints about what you're doing wrong). Now. The end result of a progamming language -- the "book" of a programming language, is the program. Everything you're using on your computer right now is a program someone else has written. An operating system is a program. A web browser is a program. This conferencing thing you're looking at right now is a program. But the OS, in particular, is an important program, because its the one that tells the computer how to behave. The OS is like the stuff inside your brain that tells you how to blink and move your arms and talk. No OS, you're just mush. So yes, you'll need an OS to use a programming language -- but you'll need an OS to do just about everything with a computer except dust it. But if you're the sort of person who just turns on a computer, reads some email, plays some games or writes fabulously funny books, then you probably don't need a programming language, Perl or otherwise, any more than someone who drives a car needs to build one. Programming languages are for people who want the computer to do things for which there aren't already programs to do what they want, or for which the programs out there don't do what they want in the way they want them to. Or, more typically, programming languages are a way for businesses to get the computer to do what they want, and they hire programmers to actually do the talking.
ciderpunk (mtrbike) Wed 24 Mar 99 09:15
ciderpunk (mtrbike) Wed 24 Mar 99 09:42
OK, I take it back about not knowing any good web sites about keeping up with web technology. I used to use CNet's builder.com a lot for the general overview/design tech stuff: http://www.builder.com I seem to run across good stuff on Netscape's DevEdge occasionally, particularly Danny Goodman's stuff, although I'm not sure how the overall site is for overall development issues. http://developer.netscape.com/ Microsoft used to have good sections on web development, but they've been focussing on MS-specific features and either burying anything remotely cross-browser or deleting it altogether. Since I'm a big proponent of cross-browser design I don't like that. But thier site builder network is there and has lots of stuff: http://www.microsoft.com/sitebuilder/ For general geek-related news and stuff: slashdot.org. Amazing, but you need a fairly high geek level to digest it. Not so much web-related as programmer/unixy/anti-microsoft-related.
Cynthia Heimel (plum) Wed 24 Mar 99 11:54
I am so offended that my question is low geek level! I am going to flounce! (flounce, flounce) Although I have a secret feeling that if I hadn't grown up in one of the most insane families in the western world I would now be a perfectly happy big ole geek because I spent most of my school years as a MATH WHIZ! Once I even stumped Bruce Koball on the question: WHich came first, the chicken or the egg? He didn't know! And he's a fucking genius! Okay, so the OS is before everything. But you sort of implied that there is ONE language for speaking to the computer. SO is there an underlying language that comes even before the operating system? Does that question even make any sense? ANd sorry, but can I ask this: I realize it's way past ones and zeros, but could you give me a baby metapor (Laura, you are the trenchant metaphor queen of life!) that will explain to me like the very first tiny little basic thing that was used to translate the ones and zeros into action?
Sharon Lynne Fisher (slf) Wed 24 Mar 99 12:17
J. Eric Townsend (jet) Wed 24 Mar 99 12:49
<scribbled by jet Wed 24 Mar 99 12:50>
i'm confusing my heart dying with murderous rage (jet) Wed 24 Mar 99 12:51
"It's turtles, all the way down." CPUs understand "assembly", or "machine code". 1's and 0's described in a very tedious way. Not much is written in assembly these days except for bits of games and other super-geeky stuff. It takes forever for humans to write assembly, and longer to debug it and fix problems. Assembly is *very* non-portable: assembly programs can't be moved between Macs, PCs, Suns, etc. Yes, an "assembly program" is an executable, like a .exe file on the PC. So humans invented so called "high level" langauges to make it easier to write programs. (I just covered 20+ years of computer science in that one sentence.) These languages come in two major forms: compiled and interpreted. To the average human, a program written in a compiled language looks a lot like one written in an interpreted language. The difference is in how the program is given to the computer. A compiled language is run thru a program called a "compiler". A programmer writes a program using a text editor, saves the file, then runs the compiler program on the saved file. The compiler reads the file, translates it to assembly, and saves it to disk. Voila! An executable program! But they can only run it on the type of machine that the assembly will run on. Remember? Assembly can't run on different types of machines. If you "compiled for the Mac", the program will only run on a Mac. An interpreted language is handled a bit differently. It starts the same: A programmer writes a program and saves it to disk. What's different is that the program is never compiled into an executable. Instead, someone who wants to run the program first runs an "interpreter". The interpreter then reads the program follows the instructions one at a time, or "interprets" the program. Any computer with an interpreter for the language can run the program. Compiled languages in use today: C, C++, Pascal, FORTRAN, COBOL, ADA Interpreted languages in use today: LISP, PERL, LOGO, Scheme.
ciderpunk (mtrbike) Wed 24 Mar 99 13:23
Jet is HIJACKING MY TOPIC, but that's a better explanation than the one I was working on anyhow. Computers are boring. Ask me about something interesting, like my motorcycles.
Gail Williams (gail) Wed 24 Mar 99 13:24
Have you or do you secretly wish to do a motorcycle book?
Bryan Higgins (bryan) Wed 24 Mar 99 13:28
Whether it's compiler or interpreted is not really relevant to my point about which "compiler" to use. If you have a Perl 5 program, it won't work with a Perl 4 compiler, so they might as well be two different languages.
Sharon Lynne Fisher (slf) Wed 24 Mar 99 13:57
How to Drop a Motorcycle in 21 Days. :-)
Members: Enter the conference to participate