Dobb's Programming Awards 51
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 :)
Re:Python (Score:1)
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.
We have a job title you might fit . . . (Score:1)
. . . 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.
I don't wanna start a flamewar here, but . . . (Score:1)
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.
Re:Scheme and Python (Score:1)
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.
Eiffel considered harmful. (Score:1)
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.
Read the Constitution (Score:1)
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 (Score:2)
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.
Donald Becker (Score:1)
Don's Da Man! [tired rambling] (Score:2)
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.
Re:Simple. They get paid (Score:1)
(No, I'm not Canadian
Re:Programming awards and the art of programming (Score:1)
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.
Re:Well said! (Score:1)
I just want to mention The Linux Token Ring Project [linuxtr.net]. Here you may find the latest and greatest TR drivers and related information
-- Jochen
Re:3Com PCI PnP Card (Score:1)
Re:Mr. Becker's contributions (Score:1)
That raises a question. Has a Microsoft programmer ever won this award? Or do they only have armies of anonymous programmers?
Becker is also a good guy (Score:1)
Re:Mr. Becker's contributions (Score:1)
to linux. Thanks
Glad to see credit given to those who deserve it! (Score:1)
--
Re:I don't wanna start a flamewar here, but . . . (Score:1)
I don't know what caused you to go off on such a rant... who was claiming that "Perl rules and everything else sucks?"
I find Perl very useful for text file manipulation and generation. That's what it was built for, and it does it much more easily and clearly than C, IMHO.
If I need to do lots of pointer math I'll use C. If I need quick performance I'll use C... but if I need to FTP download some reports, parse their headers, archive them and FTP upload them to their proper recipients... dammit, I'm gonna use Perl because I don't have time to mess with C for something that is so simple with Perl.
OK, it might be simple with C if you have the right libraries, but Perl works just fine...
What's your beef?
Way to Go Donald! (Score:1)
Congratulations man, you deserve it!
--
Re:Moron (Score:3)
Yup.
--
Python's Public Perception Problem. (Score:2)
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.
Re:Eiffel considered harmful. (Score:1)
Mr. Becker's contributions (Score:1)
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.
Well said! (Score:1)
Thankyou very much, Donald--and thank you also for resetting my adapter {grin}.
Cheers,
Joshua.
Re:We have a job title you might fit . . . (Score:1)
Different styles for different folks, as long as you pick one and stick with it, who cares.
Toy Language? (Score:1)
Oysters and French towers? (Score:1)
Re:Oysters and French towers? (Score:3)
Perl's success is very interesting, and nearly completely ignored by other language designers. 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. 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.
I'm not sure why being practical so often takes a backseat to pushing the agenda of the designers - maybe most people just have a difficult time seeing more than one way things could be done without thinking that one is automatically better.
Well deserved props! (Score:1)
CJK
Programming awards and the art of programming (Score:5)
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
3Com PCI PnP Card (Score:1)
Me too (Score:1)
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.
Re:Python? give me Perl anyday. (Score:1)
Here's another clue: not everyone who likes Python likes the enforced indentation. It was certainly a big turnoff for me at first, even though like any responsible programmer I indent anyway (Python is actually very forgiving of different indentation styles, as long as you're consistent and even sometimes when you're not). Some people who use Python like this feature, most have learned to live with it, and a few outright hate it but use the language anyway. Why? Because that _one_ wart is outweighed by all of the many things Python did right (or at least nearly right). Real objects, plus metaprogramming. Understandable scope rules. Good control structures, including robust exception handling. Extension/embedding. And if all these still aren't enough for you, the source is about as clearly written as the source for a language implementation can be. Maybe perl or Tcl don't have this one wart, but they have all sorts of other cancers to make up for that.
Re:Python (Score:1)
>>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.
Powerful macro system? Sorry, that's no substitute at all for extension and embedding. I interpret your answer here as a "no".
>Is the language implementation and libraries for it written in the language itself?
Dylan: yes
Python: no
And this is a good thing for Dylan? Most of the libraries for both languages are implemented within the language. The difference is that Python gives you an option to implement a library using native code if you feel the need - e.g. for performance - and Dylan doesn't. As for implementing Dylan in Dylan or Python in Python...well, that's just an academic exercise of little interest or value to anyone actually trying to write an application.
>Does code written in the language peform on par with C and C++ code?
Dylan: yes
Python: no
You're using a pretty loose definition of "on par with" there. In any case, this question misses the point of Python. Guido very specifically made Python easy to extend because he doesn't buy the "one language fits all" dogma. The idea is not necessarily to write everything in Python, although you usually can and not notice any performance problem; the idea is to write the vast bulk of your application in Python to take advantage of its high-level features, and optimize very small parts by converting them to native-language extensions if necessary. This keeps the language definition and implementation simple and clean, while still allowing an application (not a microbenchmark) to perform every bit as well as it needs to. I personally think it's a good design choice, though the debate is still ongoing.
BTW, some of the best rationales for languages that allow easy integration with other languages instead of trying to do absolutely everything themselves have been offered by John Ousterhout, even though Python has fulfilled that dream better than his own Tcl.
>Dylan also has a lot of powerful language features which Python lacks. Python is cool though.
Python has a lot of powerful language features which Dylan lacks. Dylan is cool, though.