Dobb's Programming Awards
NullPointer
writes "Dr. Dobb's has given their 1999 Excellence in
Programming Awards to Guido Van Rossum and Donald Becker"
Congrats to both of you. For those in the dark, Guido is
our favorite Python god, and Becker is our favorite Linux Ethernet
god (besides fixing my broken laptop X key at ALS :)
Congratulations, Mr. Guido van Rossum.
It's about time Python started getting some props
on slashdot.
perl + eiffel, perhaps?
eiffel's alright, so's perl - but when you look
at your python code, it just seems so much clearer. the way indentation is an integral part of the language syntax is (ahem) different, but certainly makes for readable code.
And scheme/guile looks almost deliberately confusing, although it's very powerful once it "clicks" (It's a shame it isn't more widespread - anyone remember how cool ARexx was on the Amiga (and rexx on os/2) for system-wide application integration + automation? - any MUI ( an amiga gui api) program automatically had an arexx port for scripted operation...)
Donald Becker is DA MAN! GO DONALD!
Me three! My 3c905B rocks under Linux - the driver can even "wake it up" after Windoze has put it to sleep. Congrats Donald, on an award well earned!
Python - yech - the language with extreme whitespace sensitivity. It's totally unusable by anyone who doesn't have a pole up their bum.
I'd even prefer Tcl over Python.
'nuff said. Either you code for free and get geeks patting you on the back, or you code as a professional and get rich. I choose the latter.
I have no problem with Perl or Perl coders. I think it's just poor form for someone who obviously knows little or nothing about Python to being slamming it. Perl has its place and so does Python. I personally perfer Python, but that's my choice and I don't feel that I have to slam Perl either.
Man, this thread is hardly old and it is already threatening to devolve into a language war. Seems like no-one can say anything good about language X before the kiddies come out and starting dissin' it.
It seems that it's not enough for some folks to be a fan of or to champion a language -- NO -- they have to feel that THEIR choice is superior to others'.
Too bad that the real world intolerance has infected the geek world.
This is half-true. There is a number of languages (interpreted, with type declarations), where it is as easy as Perl to get something to work quickly: Lisps [Common Lisp, Scheme], Smalltalk, Python, Dylan (ML-type of langagues are on the borderline), many other interpreted languages.
Now the problem is that Perl is one of the worse languages ; there are lots of things in the language that are totally unncessary crappy. A bit little FORTRAN, is much better than raw assembler of those days, but is unnecessary crappy compared to other structured languages.
This drives the users of the "better" languages crazy (at least Lisp, Smalltalk, Python), because a huge number of people come and say "Wow! Perl really rules, this is a revolution, nothing is even close", while they have been using better languages for years (well, not Python users :-) ). Same phenomenon for Java, recently discovered by C++ users, whose amazement amazes Smalltalk users.
There's more than one way to do it, and it's easy to find a style that suits you in Perl. It's practical, rather than built on theoretically pure principles of the Right Way To Do It.
The problem is that there are two separated aspects of Perl:
Can you compile Dylan into Java bytecode? I didn't think so!
Is Dylan Open Source? Bzzzt.
Try Again. Python kicks Dylans Ass.
I said nothing about writing "randomly indented" code. My code is always indented in an orderly fashion.
However, I do not like a language dictating identation for me.
The "language war" isn't as bad as many of the posts in the past have been. I'm trying to decide whether to go with python, eiffel, or perl for various projects and I find these "wars" userful.
How many different ways are there to indent code?
All of the disagreement I've seen among c programmers on the subject has been about what to do with the braces. Well, Python doesn't have braces. AFAIK Python doesn't care if you indent by one space or eight, or if you use tabs or whatever. What defines a "block" is two or more lines being indented to the same depth, which they should be anyway. I'm not going to snarl too much at anybody who uses three spaces or anything (though it does personally irritate me a bit), as long as it's consistent. Consistency is what Python enforces.
Different styles for different folks, as long as you pick one and stick with it, who cares.
Not Python, last I checked.
who was claiming that "Perl rules and everything else sucks?"
. . .
What's your beef?
My beef is with the people who say "Perl rules and everything else sucks". It's a sad fact that there are Perl zealots out there who say just that. It's a hilarious fact that a lot of these people think that "there's more than one way to do it" means "there can be only one language", which is just plain funny.
. . . but if I need to FTP download some reports, parse their headers, archive them and FTP upload them to their proper recipients...
True. I'd imagine that the "c sucks" crowd have either never gotten comfortable with c (some have probably never even learned it properly), or at best have only done trivial things with it.
That guy was raving about all this Larry Wall propaganda about how all languages should be high-level and incoherent, which looks awful damn silly to anybody (Wall, writer of interpreters, comes to mind
Perl provides a convenient way to glue together a vast number of optimized c routines written to address very specific tasks. If you stray outside of what's been done for you, you're in a tar pit. This is nothing which is at all comparable to c. They're vastly different in conception and execution.
I'm not arguing against Perl, I'm arguing against monolanguagism and and Perl bigotry. That, IMHO, is implicitly an argument in favor of Perl, if and when it fits the job at hand.
I said nothing about writing "randomly indented" code. My code is always indented in an orderly fashion.
However, I do not like a language dictating identation for me.
An interesting statement. So you don't like a language to force you not to do something brain-damaged.
You may also not like a language dictating any random single syntax rule. Let's do something about it! Let's authorize '+=-\$/!?.' anywhere in the variable names, let's let variables names to beginning with numbers or better allow them to be entirely composed with numbers! And why should a "a" be written always as a "a" ? Let's change the parser to consider "a", "i" and "p" as completly equivalent. Several ways to write the same statement ("vopd mpin(ant prgc, chir** irgv) { exat(0); }")! Great! A phenomenal improvement of standard languages! Freedom! Liberty! Hooray!!!!
Take this small test:
Can your language do client and server COM?
Yes.
Can your language do client and server CORBA?
Yes.
Can your language be extended and embedded with ease?
It is much more extensible than Python because of a powerful macro system. It is probably not easily embedded.
Does your language have an amazingly deep library of utility classes?
Not nearly as many user-contributed libraries as Python because there are many less users at the present, but the standard libraries are quite powerful.
Does your language have a superbly-civilzed newgroup? (Hi Tim Peters, MA
Lemburg, Fredik Lundh, Andrew Kuchling. You guys are awesome)
Yes.
How about these questions:
Is the language implementation and libraries for it written in the language itself?
Dylan: yes
Python: no
Does code written in the language peform on par with C and C++ code?
Dylan: yes
Python: no
Dylan also has a lot of powerful language features which Python lacks. Python is cool though.
. . . where I work. We do c/c++ development, and we have occasional people who write unreadable, randomly-indented code. We have a special job title for these people. We call them "fired". Since they're too cool to do their jobs properly, we figure they're too cool to need references, too.
God help the people who have to maintain your code. indent is cool but it doesn't help the diffs much. What python enforces is what any competent programmer does anyway. If that's the case, then braces are, arguably, redundant.
When you drive, you probably insist on changing lanes randomly without looking first. Grow up.
In my (educated?) opinion, Perl gets a lot of converts because people can sit down, try something, and get it to work a _lot_ quicker than most other languages.
Ha ha. The first time I tried to learn Perl, I started reading the docs, and the author (Wall?) started rambling on about "vector" and "scalar" variables. Maybe my experience was atypical, but that stuff didn't tell me anything meaningful or useful about the language. It did, however, lead me to suspect that the guy who wrote the docs was either trying to scare people away, or tell them how smart he was. I got the hint and stuck with C. I guess Kernighan and Ritchie weren't "smart" enough to try to prevent people from learning C.
It's practical, rather than built on theoretically pure principles of the Right Way To Do It.
Viewpoints differ, and we all do different things with code, but you could argue that moving bits and bytes around is about as practical as you can get with a programming language. Pointer arithmetic and register operators strike me as enormously practical things. You're telling the processor what to do, in very blunt and clear terms. That's cool. Perl programming is a matter of slowly and ponderously setting into motion thousands of lines of somebody else's code, which is boring. The "ease" of programming in Perl is made possible by the hard work of a real, honest to god programmer out there doing your work for you in C.
I'm not sure why being practical so often takes a backseat to pushing the agenda of the designers
The "agenda"? What "agenda"? No, it's not an "agenda". It's just that competent and intelligent people like to see things done in competent and intelligent ways: Elegantly, efficiently, and with a minimum of effort.
Furthermore: If it's good for Perl to have n ways of doing foo, how could it be bad to throw in C and have n+2 ways? I mean, I'm assuming that you're being honest with yourself. All of you people use "There's more than one way to do it!" as an excuse to use only one language. This is called "zealotry", or "fanaticism". God knows where it comes from.
What I think distinguishes Perl from C is the fact that C tries to provide the greatest possible power with the fewest possible rules. It's a sort of a RISC language, so to speak. I don't have an "agenda" that I'm trying to impose on anybody. I just like good engineering, which is mostly a matter of simplicity, clarity, and efficiency. My car does not need a bathtub. I don't care to work with an incoherent, bloated language (nor OS; Perl is the NT of languages, or the VB of UNIX. Take your pick).
The bottom line, of course, is that C programmers find C useful, and Perl programmers find Perl useful . . . and, not surprisingly, they're generally doing very different things. Everybody's happy, except of course the Perl programmers, because they can't stand the thought that there is, in fact, more than one way to do it. The whole thing looks like insecurity to me.
And scheme/guile looks almost deliberately confusing, although it's very powerful once it "clicks" (It's a shame it isn't more widespread - anyone remember how cool ARexx was on the Amiga (and rexx on os/2) for system-wide application integration + automation? - any MUI ( an amiga gui api) program automatically had an arexx port for scripted operation...)
I was a Scheme lover who disliked non-functional languages when I started programming in Python. I'm still a Scheme lover, but thanks to Python I no longer believe that imperative languages are intrinsically worse than functional ones.
Python is just so damn well-designed. There are no traps, no gotchas, almost everything follows the principle of least surprise. The thing I like best about Python is how much it improved my critical judgement about computer languages in general.
I'm trying to decide whether to go with python, eiffel, or perl for various projects
Eiffel sucks because it was designed by a macrocephalic circus midget while he was in prison for molesting frogs. He had a giant steel sphere embedded in his brain, with antennae coming out of his ears. They weren't just for reception, either. He could transmit on several popular military wavelengths, as well as use the antennae as "feelers" to find his way around in the dark.
So, for that reason, Eiffel is used only by pederasts and swine. It's a great favorite of the American Revolutionary Communist Party as well, so I guess a snivelling liberal like you would feel a real attraction to a thing like that. You are, no doubt, a hermaphrodite as well.
Any programming language which arbitrarily dictates matters of style, content, syntax, or anything else is TYRRANICAL, and is implicitly in direct opposition to the Second Amendment. As a FREE MAN I have a God-given right and obligation to use whatever syntax God in his infinite wisdom commands me to use, without unlawful interference or coercion on the part of my compiler.
Python is mind-bogglingly useful and its source is so clean as to make you cry. Extending it to do supercomputer applications, embedding it into video games, and other exotic uses have all become common for Python.
Take this small test:
Can your language do client and server COM?
Can your language do client and server CORBA?
Can your language be extended and embedded with ease?
Does your language have an amazingly deep library of utility classes?
Does your language have a superbly-civilzed newgroup? (Hi Tim Peters, MA Lemburg, Fredik Lundh, Andrew Kuchling. You guys are awesome)
If you can't claim these things, try python.
I heard Donald speak at ALS on Beowolf clusters at ALS. All the ethernet cards I own work under his drivers. I would send him money but considering he works for NASA and I work for a grocery store and I'm a high school student I don't think what I could send him would amount to much. But I think he reads slashdot, and I would just like him to know how much he has helped us all out.
Several months ago I tried my hand at writing a driver for the Winbond 840, a very inexpensive 10/100 netcard chipset.
After an embarassingly long time spent trying to debug some rather confusing results from the card, I sent Don an email requesting help.
He asked for my datasheets -- getting them was rather a trick, and he'd had less luck than I -- and had a semi-functional driver done the next day!
A few days after that he _went out and bought his own_ w840-based netcard for debugging purposes. I'm impressed not only with Don's coding skills but his dedication to his work.
At the end of the day, 99% of the best code in the world is going to be GPL'ed, as anything less is a lame attempt to keep some form of control on the code.
Just pointing out that "not closed source" doesn't always mean "GPL." Python is distributed with the Python license, which is of the "use, copy, modify, and distribute" type. The README specifically says:
The Python distribution is *not* affected by the GNU Public Licence (GPL). There are interfaces to some GNU code but these are entirely optional and no GNU code is distributed with Python.
Hi,
:)
I just want to mention The Linux Token Ring Project. Here you may find the latest and greatest TR drivers and related information
-- Jochen
Happiness is a network card that works 100% of the time. :)
Another one to the Hall of Fame. David Becker really deserves this award. He wrote the driver to my card also.
That raises a question. Has a Microsoft programmer ever won this award? Or do they only have armies of anonymous programmers?
Donald Becker is as good of a guy as he is a programmer. I haven't had much interaction with him, but he did assist me in solving a REALLY stupid RTFM type of problem that I was having (I didn't have the most recent driver). He showed me step-by-step what I needed to do to fix it, and was really nice about it. My hat is off to him! I also enjoy reading his work on Beowulf.
Engineering and the Ultimate
hmm, yes, he has contributed many good drivers :)
to linux. Thanks
I don't know much about Python, but I do know that it will run on any OS that I ever need to use. I do, however, know that Donald Becker has done some amazing work for Linux with his collection of Ethernet drivers. Just imagine where we'd be today without the work of these Open Source pioneers!
--
.-.--
I've talked to him via e-mail a few times.. he may have all these awards, but he's still helpful. I had some problems with his tulip.c driver .. I'm working with him to fix the problem right now.
Congratulations man, you deserve it!
--
MAN, I wish I were a moderator so I could lower your post a notch. Then again, this post deserves the same fate, I suppose.
Yup.
--
I think the problem with Python is that much
of the population is conditioned to loathe snakes.
The Xtians have that Adam&Eve&S@t@n thing to overcome.
People don't have this problem with Coffee, or with Oysters, Monumental French Towers, etc.
"Scheme" and "Guile" might be suffering the same
fate. Don't understimate the power of people's
perceptions to affect a marketplace.
-fb Everything not expressly forbidden is now mandatory.
I must say the Donald's contributions to the Linux world are amazing! I don't think there's a piece of hardware networking code I've come across that he hasn't touched. :)
I'd especially like to thank him for the driver for my PnP PCI 3com card-- it works *really* well.
Good job guys... you've earned the awards.
æeee!
Thankyou very much, Donald--and thank you also for resetting my adapter {grin}.
Cheers,
Joshua.
--jon. Postel is dead. May we all mourn his, and our, loss.
What has it been used for, besides its own compiler?
Which, pray tell, languages are named after oysters and French towers?
cpeterso
Both of these guys are very very deserving of an award like this. Linux wouldn't be where it is without Don Becker, and without Guido, there would be no Python! (I'm a Python fan :)
CJK
hi,
How do closed source programmers get evaluated?
Surely these awards could only be given to programmers whose work is open sourced? How else could you evaluate their code?
It's worth making the point that the free software movement has been great for the 'glorifying' of the coder/programmer. The art of programming really enters a new phase if everyone can see your work. This is compounded further if the code is GPL'ed, as anyone who is 'better' than you can fork the project and improve it. Only the best people end up leading projects, no-one is held captive by one vendor - whether that is microsoft or some closed source shareware author whose product you need.
This is a great thing, the best people end up in the best jobs. I hope the free software movement can keep growing as is. (ie: GPL all the way).
It's ironic, that with the GPL you give the code freedom to exist independent of the vendor/coder. But this in turn ends up bringing attention (glory/fame etc) to the programmer if the code is sufficiently good and useful.
At the end of the day, 99% of the best code in the world is going to be GPL'ed, as anything less is a lame attempt to keep some form of control on the code. Whereas the genius programmer has no need for such low self-esteem tactics.
I wonder if Dr Dobb's journal is picking up on these ideas. I don't really see how you could publish a decent programming magazine in a world where everything is closed-source.
ta
wayne
I second that. I have one, and it rocks. Congrats!
It's nice to see Python getting (a small fraction of) the recognition it deserves compared to other scripting languages, and Guido getting credit for one of the best-written pieces of free software out there.
It's also nice to see systems folks like DB getting recognition. We do most of the heavy lifting, and most of the world only sees the people who create widgets and eye candy.
Slashdot - News for Herds. Stuff that Splatters.