July 31, 2006
Stiff recently asked a few programmers a series of open-ended questions:
- How did you learn programming? Were schools of any use?
- What's the most important skill every programmer should have?
- Are math and physics important skills for a programmer?
- What will be the next big thing in computer programming?
- If you had three months to learn one relatively new technology, which one would you choose?
- What are your favorite tools and why?
- What's your favorite programming book?
- What's your favorite non-programming book?
- What music do you listen to?
The participants are all quite notable:
- Linus Torvalds (Linux)
- Dave Thomas (Pragmatic Programmer)
- David Heinemeier Hansson (Ruby/Rails)
- Steve Yegge (Google/Amazon)
- Peter Norvig (Google Research Director)
- Guido Van Rossum (Python)
- James Gosling (Java)
- Tim Bray (XML)
The interesting thing about open-ended questions is that the answers often reveal more about the person answering the question than they do about the question. Guido Van Rossum, for example, comes across as kind of a jerk. But the questions generally provoked some very thoughtful responses.
The most surprising response, however, was from Linus Torvalds. When asked what the "next big thing" would be in computer programming, here's part of his reply:
For example, I personally believe that Visual Basic did more for programming than Object-Oriented Languages did. Yet people laugh at VB and say it's a bad language, and they've been talking about OO languages for decades.
And no, Visual Basic wasn't a great language, but I think the easy database interfaces in VB were fundamentally more important than object orientation is, for example.
Evidently we have another inductee into the he-man object hater's club.
Maybe the moral of this story is that we should value practical aspects of a language far more heavily than relatively meaningless technical merits. Or maybe I just get a kick out of hearing Linus Torvalds, the king of hard-core C geeks, compliment Visual Basic.
(via John Lam)
Posted by Jeff Atwood
"Guido Van Rossum, for example, comes across as kind of a jerk."
Well, that tells me something about you.
Looking at his answers I can't see how you would think that. Lack of "thoughtful responses"? Some guy sends him 10 questions from outta nowhere. You can't really expect something specific.
I was mostly surprised by how different the answers were.
Linus is talking about VB 3! I myself was a firm C coder until VB added database capabilities with version 3. We used to say that there was only one C program ever written in Windows because from that point on everyone just copied the message loop and modified it. VB made the loop implicit but that was not enough to kill the database languages (FoxPro, DBase, and a host of others.) Version 3 drove a stake in all those languages and systems (where are they now?) And that was the biggest advancement I've seen in practical terms, databases for the masses, the programming equivalent of Lotus 1-2-3.
"Maybe the moral of this story is that we should value practical aspects of a language far more heavily than relatively meaningless technical merits."
Maybe? Of course we should. The more I talk to other developers, the more I tire of their childish one-upmanship and snobbery. So you write everything in LISP and have memorised lots of algorithms? Great, but you take months to write buggy code which no-one else can read, no-one's sure whether you understood the spec correctly (you didn't) because you're unable to talk to humans and yes, it does look like you shaved 10 microseconds off a 3 hour process by spending 2 days rewriting part of the compiler. Congratulations.
I think the moral of a story is this: every language has its positive and negative aspects. VB is only a bad language if it has a bad programmer behind it. C is only a good language if it has a good programmer behind it. Use the right tool for the right job.
If even Linus can find positives about VB, why not the rest of the "elite" Slashdot-type crowd?
If every developer always used what the market had available for him, the field wouldn't have advanced at all. Even Visual Basic wouldn't have been created.
It takes someone inspired like Linus Torvalds to advance the field. Some go the proprietary and niche routes, while others go the open source and mainstream routes.
Never underestimate an inspired person, even if you think you know him well. Motivation is everything.
Guess! VB was copied from Delphi, so dont c anything original in VB. But must agree the next level of programming that caught the imagination of young wannabe developers..
Ajo, VB was released in 1991, Delphi - in 1994.
And 'basic' was before visual basic... Without those languages DOS and the Commodore 64, Tandy, and IBM ATs and XTs, thousands of future developers would not have had anything to learn on. Those developers went on to implement the IT explosion in the nineties. I remeber when DOS 3.0 came out... we were STOKED about all the 'new' functionality. And we didn't need $30,000 to get a machine to run it on!
Not quite. Delphi's informal code name during development was "VB Killer". :-)
Having read the referenced posting, I have no idea where your "kind of a jerk" assessment came from regarding Van Rossum. I don't know him, but I would have guessed just the opposite -- I detected a hint of self-deprecation.
I'll hold my hand up as another VB basher.
Then again, I've long held that the popularity (and percieved strength) of a language is only as good as it's most visible users.
RoR - DHH
Java - Gosling, enterprise
C - KR, 'nix
Lisp - Graham, ESR
VB - every joe blow trying to get his/her MSCE teens coming to code for the first time (like I did)
Great people, writing great code, making great things, drives a language forward and into the strong-languages-arena. Not so good people, not so good code... well, enough said. But that isn't to say all the languages have their respective strengths and weaknesses - including VB.
I didn't necessarily think Van Rossum was being a jerk. His responses seemed like the typical fare of people who generally prefer not to mince words, and particularly those who are engineering-minded. They desire specificity, simplicity, and economy... Often even in conversation.
Whether this is accurate to say of Van Rossum, I don't know, because I've never met himi or seen him speak.
The latter of those two can be remedied with little effort, however, since he is a Googlite now. He has given a Google TechTalk about Python, available for free on Google Video:
"Your questions are rather general and hard to answer. :-) I guess being able to cook an egg for breakfast is invaluable."
-- Guido Van Rossum
And all of his responses are one or two sentences at most. The other participants gave thoughtful, interesting answers to the same questions.
Add me to the list of people who doesn't understand why you thought poor, maligned Guido was such a "jerk" for being brief. I went there expecting him to go on some sort of emotional tirade!! Even the stuff you have highlighted doesn't sound too jerkish at all. Different strokes for different folks?
Well, he comes off slightly jerkish because while he takes the time to respond, he seems mocking in some responses. If he wasn't interested, maybe he should have declined. If someone told me my words were going to be publicly posted as an interview, I'd have chosen them more carefully or declined.
But he did respond and I'm guessing Stiff isn't complaining.
Chuck it up to him being Dutch. He's got a sense of humor that's great if you get it, but might come across as a bit of a jerk if you don't share his kind of humor.
(And yeah, I'm Dutch too, so I dig his answers ;-))
I know that many consider VB to beneath them... and it *is* beneath the speaker, usually. However, VB allowed a whole now class of programmer. Bad programmers, I admit, but they were able to solve useful problems after a fashion.
The data binding capabilities of VB's environment made it possible to do data driven screens with ease. The language was brain dead but easy enough for even a non programmer to pick up.
Most business problems are nothing more than data collection and reporting... so VB and Crystal Reports made it possible for junior grade programmers to solve real world business problems. It was to data collection and reporting what spreadsheets were to financial computation: an abstraction that didn't require an "expert".
The downside to not requiring an expert is you get amateurish results. In many cases for businesses, that was OK. VB added to the problem by not allowing advanced programmers to use the algorithms they were comfortable with due to language limitations. (You could write linked lists and such via references to objects, but it wasn't... clean.) Today, such concerns evaporate with VB.NET, although I prefer C#'s syntax, being an old C jockey myself.
So at the end of the day "real" programmers scorned VB because of the limitations and the awful wrecks the amatures created. Yet, I can't count the number of times those awful wrecks were *better* than the manual system that they replaced. When it was time for the solution to scale: well, that's what the professionals are for... creating a "real" program that is designed correctly. What I find interesting is that for every program that a professional gets called in for, there are several that he never hears about that continue to chug along in their awful glory, solving a problem.
I get the impression that Torvald's overall point is that there's productivity in abstraction, which VB has offered to those who, er, don't care to know the underlying details.
Have to agree with Jeff. Guido did come across as a jerk. If you're going to answer a couple of questions, don't waste the interviewer's time with nonsensical answers. The questions were obviously programming related. If he was going to answer the questions, he should have given it more thought then the 2 seconds he gave trying to be obtuse.
Guido Van Rossum's responses are funny, insightful, and concise. I don't see them as rude.
The egg comment obviously means that the most important skill for a programmer is to be able to take good care of himself or herself, versus paying others to make breakfast. It may also mean that Van Rossum thinks there isn't a single most important programming skill, which is obvious but doesn't stop bloggers from speculating.
And the snowboarding comment probably just means that he thinks snowboarding is interesting.
"Have to agree with Jeff. Guido did come across as a jerk."
Dude gave me the stink-eye just for walking past him at OSCON (I guess). I saw his name badge, never heard of him before. I recognized him as a fashion disaster, shorts pulled up to his arm pits, black socks pulled up to mid-shin with sandals. Wearing a black Google t-shirt. I thought, "Damn brudda, you got all that Google money and that's the best you can dress yourself. Sad.". Check the Flckr tag OSCON and see for yourself.
The point Linus is trying to make is that VB was one of the first popular languages that actually attempted to simplify common operations related to disconnected data, among other things. This has "inspired" other languages such as *gasp* Ruby.
And ADO.NET isn't any less abstract that VB's database access is.
Guido? A jerk? I've never met the guy, so I don't know, but he seemed like he was using the sort of brevity that comes from a lack of time and undertrained English-speaking skills.
Anybody know if that's true? Is Guido weak in the English department?
Guido is intereviewed in this week's FLOSS podcast. I don't know, but he certainly doesn't come across as a jerk to me.
I don't particulary like VB. That said, I'm reminded of an old saying: If it looks stupid and works, it isn't stupid.
you can't underestimate the usefulness of VB in microsoft office: especially excel. I agree it produces some ameaturish results, but then who cares - the programmers that are bothered are doing far greater and better things
None of them seemed anywhere near a "jerk" IMHO. If anything, I'd go with humorous.
With the questions set out, it is easy to see how one could be a little confused by the responses as the questions themselves were too open ended (with the exception of the books questions of course, and even then, there were no specifics (i.e. "What is your favourite book related to computer programming?" - the answer would depend on the programmer and his/her choice of language))
How the hell do you people think that VB predates Delphi? Are you insane. VB is a relatively modern programming language. Delphi, however, is a city of Phocis in mainland Greece that lies in the vale of the river Pleistus, and is shut on one side by Mount Parnassus.
Guido doesn't come across as a jerk! He comes across as a level-headed uber-geek who doesn't play the hype game! And good for him, too! Andy Hunt and David Thomas, on the other hand, come across as the wanabees they are. Go Python!
My utmost sympathy to posters above who aim at Mr van Rossum's fashion sense and yet have absolutely no idea how Python powers the most popular search engines and yet schoolchildren find easier to learn than VB. I feel very sorry for you lot, very, very sorry.
What most programmers who are passionate about their language of choice forget is that ultimately it does not matter what is used. They are all ultimately compiled down to the microcodes that actually run on the final processor. It is, as Torvalds understands, the final product that is important. The end user does not care, as long as the job gets done. In my years of programming it is ease of use of the interface that is king, not the tape and string that holds it together.
One final thing, FORTRAN pretty much predates the lot. It is why every programmer uses i, j, k etc, as loop variables.
I have used VB6 as a non-programmer entering the software development industry, for my postgraduate projects. I can tell you that "ease of use of the interface" was definitely not one of VB6's strong points. Heck, it was scary to use the cluttered interface and I had to scale my windows every now and then just to see the hidden parts of the IDE.
BTW, Linus' quote on "easy database interfaces in VB" is not true. I've had nightmares with just copying VB code from one Windows machine to another (for student project presentations) and getting it to connect to Access. I think the problems were largely MDAC connections. If "easy database interfaces" was the point Linus was trying to make, I'd disagree and say that PHP/MySQL development on a Knoppix CD saving files to a USB drive (or a XAMPP installation in Windows) would top VB development any day, because it's true.
However, the thing that VB (v6, in my experience) really excels (ha, Excel, geddit :P) at--to paraphrase Joel Spolsky--is the relative speed one can get a desktop app prototype interface (for useability purposes) out of the door for a manager who doesn't care about how the underlying code works. I can say the same about Flash (via Components), but for cross-browser (meaning IE/Firefox) XHTML, JS and CSS, it takes a lot longer to get the same effect.
Simon, just a point of clarification, I was not talking about the VB IDE, which as you point out has some major shortcomings. I was talking about the final application's user interface.
Are you insane.
Funniest thing I've read this week.. ;)
"Maybe? Of course we should. The more I talk to other developers, the more I tire of their childish one-upmanship and snobbery. So you write everything in LISP and have memorised lots of algorithms? Great, but you take months to write buggy code which no-one else can read, no-one's sure whether you understood the spec correctly (you didn't) because you're unable to talk to humans and yes, it does look like you shaved 10 microseconds off a 3 hour process by spending 2 days rewriting part of the compiler. Congratulations."
This is the writing of a non-programmer, of that I'm pretty certain.
This person fits somewhere along the line between the security guard and the buzzwordy project manager - you know, non-technical staff, maybe a bit intellectually insecure, maybe paid too much to be a burden at their company (ie middle-management).
Another point, if people don't even know what database interfaces are, why the hell are they publicly criticising Mr Torvalds' comments on them?
What the heck have VB's database interfaces got to do with any User Interface?
are you insane...
I have always loved the Borland naming humor (as I understand it).
AIUI "123" was named so accountants could locate the keys to enter the program name. So Borland picked Quattro Pro (qp.exe) - letters at each end of top alpha row. That must have been too hard, so it was later shortened to q.exe.
Delphi - Why did one go to Delphi? To consult an Oracle.
To consult an Oracle.
Who pointed at the Sun and offered an Apple.
"Linus Torvalds, Visual Basic Fan"
Ummm, stretching much? Yeah, I would say so. Just because there is something good to say about a subject doesn't make the entire subject good. If someone wrote a terrible program that wouldn't even compile and another person complimented their use of white space that still doesn't mean the program works.
As far as Guido's answers go, I think they answer the questions very well. The problem is that the questions themselves are very inspecific. I suspect that under circumstances like these if he had been asked what time it was he would likely say "Where?". I honestly think he was being nice when he didn't say "breathing" in response to the second question.
Now I'm going to go ahead and not read any more of this blog. It is, as far as I have seen, invariably uninformed, illogical, and poorly written.
I would really hate to see any code you write.
~Mazid the Raider
I think it's important to remember that VB predates PHP by a long shot.
Also, I'd be more inclined to think that your problems were related not to MDAC, which was fairly good at breakless-upgrades, but the fact that a DSN alias existed on one machine that didn't exist on the other.
Frankly, if you can't get VB to connect to a database, you really shouldn't be developing software in any language. It's about as easy as it gets.
Coming from India, and exposed to US markets, seeing the number of persons trained on VB - basics, i agree. VB made 'learning software programming' a household phrase. It is altogether a different matter where all those 'trained programmers' went later.
And, .Net training is catching up again. Why ? Ease of programming in the initial stages.
To rebut those who deemed Guido an arrogant, terse, pedantic idiot, this link manifestly shows the opposite.
To rebut those who think Visual Basic is not a "real" language, I created an inventory system that can pull up an item in less than a second with a bar code reader against a database with 2 million records. Now if I had created this in C would that have trimmed it down THAT much?
The whole purpose of programming is to provide a solution. If you are going to create drivers or a game, obviously don't use Visual Basic. But if you want your business to count beans or inventory, Visual Basic can get you there.
And I made a program that can send intelligable signals though the time barrier using VB6 (with a bit of hardware plugged in the USB port.) I can program in VC++6.0/MFC and Delphi but advanced mathematics and logic are quite enough without additional layers of complexity-it would have taken ten times as long in C/C++.
From: John Dow@shortsalebuyer.net : I have the same problem that the undersigned has. The only difference is that I can not interpret the answer/formula as I am not familiar with V. B.; thus the final outcome is failure. Any possible chance that I could e-mail you or ??? an Excel Spread sheet of six cells as an attachment and ??? could send me back the results I am looking for?
I have copied a web page into EXCEL that contains numerous hyperlinks
labeled "e-mail". When I click on the hyperlink Outlook opens and
the e-mail address is populated on the "to:" line. I want copy the
underlying e-mail address in the adjacent cell, but can not find a
way to do it (all I get is another cell labeled "e-mail"). I can do
it by right clicking on the cell and selecting "edit hyperlink" and
do a copy/paste w/ the e-mail address. However, I have a ton to do
and was hoping to find a quick way to copy the email address, Thanks
for your help.
You can use this UDF I found on www.ozgrid.com:
Function GetAddress(HyperlinkCell As Range)
GetAddress = Replace _
(HyperlinkCell.Hyperlinks(1).Address, "mailto:", "")
where is the motherfucking article at bitches?
nunya, looks like it's been eaten by a grue. I can't find any mirrors... can anyone else?
I Find it Funny that Nobody here has said a thing a about VB 2005 which a Complete OOP lang. Bash it all you want but more programs are written in vb* than any other programing lang.