Applied selectively, the ideology of ease is both a wonderful thing and completely unavoidable. Here are some of its uses in my life:
It's easy for me to get food. I can pop something frozen into the microwave, or order a meal at a restaurant. I could move beyond this ease if I wanted to and get more control -- buy hundreds of dollars worth of decent kitchen supplies, take cooking classes, scour local markets for an eggplant of the perfect ripeness. But I have no intention to, nor any moral obligation to.
It's easy for me to drive. I can operate my automatic transmission car safely to get from point A to point B, and I take it into a shop when it acts up. I could move beyond this ease if I wanted to -- learn to drive a stick-shift, buy hundreds of dollars worth of tools, learn to rebuild my own transmission. I have no intention to, nor any moral obligation to.
It's easy for me to build up my pension fund. The government and my employer take a chunk off my paycheque and they do whatever they do with it. I don't even think about it. I could move beyond this ease if I wanted to -- start a self-directed plan, hire my personal stockbroker, spend the entire day combing the financial pages for information that might allow me to squeeze out a couple more percentage points in my returns. I have no intention to, nor any moral obligation to.
I could keep adding to this list for a long time.
There are a few areas -- computing is one of them -- where I have decided to take more direct control over my life, but there are dozens of areas where I have decided not to and I take the easy way. It's unavoidable. I have barely enough time to manage those few areas I do the hard way -- I would need a few dozen more hours in a day if I did all of them the hard way.
So most people (including the article-writer's students) feel about computers the same way I feel about cooking, cars, and pension plans. They have chosen to devote their time to doing things the hard way in other fields. The easy way in computing accomplishes everything they really need accomplished.
Yet for some reason, we think they have the moral obligation to do more. Why? Why should computing be any different from food, cars, and pension plans? Why are you a worse person if you use Windows than if you use a microwave or an automatic transmission? (In fact, you'll probably live longer if you devote your time to cooking your own food instead of hacking Linux.) How are you caving in any more to the ideology of ease?
I agree with the article writer that it's a good idea to make students aware of the ideology of ease and to explore some of its consequences. But I worry that all it will accomplish is to make students feel inadequate for having made different choices than their teacher.
You really have to have opposable
thumbs to hit that front-mounted down-button
Hmmm. I was given two of those when I was born. So were all my friends and family. How did you manage to miss out?:-)
I do agree that the down-button is damned awkward for reading. I sometimes rotate the text ninety degrees just so the button's off to one side, but then the screen refreshes agonizingly slowly.:-(
Still, it's way better than lugging ten different heavy books around.
My personal opinion is that maybe you could have a "general fund tax" type of donation system. If a
company wants to help fund the research of a certain project, the company donates X amount of
dollars. Say 75% of that money goes to the project they want to work on, and %25 goes into a
general fund where other projects could be funded (decided upon by some independent group). This
would provide a way to pay for the glamorous research and allow the other research to be funded as
well.
It's almost happening now -- or at least the mechanism's there. Universities usually charge "overhead" or "indirect cost recovery" ranging somewhere between 20% to 50% on privately funded research (and government-funded research too, though the rates are usually lower).
Technically it's supposed to be the company's contribution to the infrastructure that their research relies on. The main grant pays a scientist's salary, for example; the overhead pays for the electricity, the payroll clerk who cuts the scientist's paycheque, the roofer who makes sure the lab doesn't leak, etc. Most people I've talked to agree the usual overhead rates under-estimate what it really costs the university. There's no good reason universities couldn't just raise their overhead rates and expand the concept of "infrastructure" to include a community of people doing interesting but not immediately profitable research.
Unfortunately, it's far more likely that universities will start getting into "race to the bottom" bidding wars with their overhead, the way municipal governments are with business taxes.
I guess I am too used to being able to do something like
if(!(fp = fopen("afile.txt","r"))) exit(1);
while(fgets(s, sizeof(s), fp)) printf("%s\n", s);
fclose(fp);
One of the things I have in the general utilities module I import into almost every program I write is a "File" class that reads lines lazily (only when it's subscripted, as it implicitly is in a for...in loop). Your three lines would turn into:
for line in File("afile.txt"): print line
Of course, if you actually prefer to type all that extra punctuation...:-)
In my experience, if you're using in-line evaluation for its most common tasks, something you've done hundreds of times before, there's already a Python idiom that will do the same thing with comparable simplicity. If you're using in-line evaluation to do something rare and different, something you've almost never done before, you're asking for trouble. But if you're determined to be a masochist in Python, there's always the "eval" function.
Young married couples report that they work an average 26 per cent more hours each year than they did 30 years ago.
I can vouch for this. Thirty years ago I worked about a minute per week, cleaning my bedroom only when my parents threatened to take away my dessert if I didn't. Now I work one minute and 16 seconds per week. The extra work-load is killing me!
Re:C++ as a teaching language/programming obscure?
on
Who's Afraid Of C++?
·
· Score: 1
I agree completely that understanding algorithmic complexity and what goes on inside the processor and even a bit of discrete math are necessary for -- ultimately -- becoming a good programmer. (Well, I might disagree a little, if you think these are the be-all-and-end-all. I think they're just a few necessities among many, including the ability to create decent human interfaces, the ability to understand what it is the user needs your program to do, and the ability to document the bloody thing. I'd be hard pressed to choose just one as the most important.)
So I agree with you about the end-point of programming education. But the question is about beginning programmers. Do you really have to understand all this stuff before you even start?
Mathematics in general imposes no interpretation on coordinate axes. (Think fast: on a Mercator map, is east-west the independent variable, or is north-south?) You're thinking specifically of statistics, maybe?
Even so, you're being pretty self-centred about what you consider to be the indepedent variable. The independent variable is simply what the person has control over. Hate to break it to you, but that person isn't always you.
Sure, from the point of view of a learner, what they have direct control over is the amount of time they spend on it, and what they don't have direct control over is how much they learn. But take another point of view, say a manager trying to hire. What the manager has control over is the level of proficiency of the person they hire (if one candidate doesn't have the level they want, they'll just choose another one). They don't have control over how much time the candidates had to spend to get that level of proficiency.
So maybe the phrase really was popularized by bone-headed managers. It makes perfect sense from their point of view. (Ohmigod, I just defended managers. Must go flagellate myself with a parallel port cable...)
In slashdot, like in all other primate communities, picking nits is the social glue that bonds the group together.
Forget dependent and independent variables. Think of proficiency on the X-axis and cumulative effort on the Y-axis.
Or better yet, think of a real you in a real landscape. You want to move ten feet to the east. Would you rather do that on a prairie or when there's a cliff two feet to your east?
Re:C++ as a teaching language/programming obscure?
on
Who's Afraid Of C++?
·
· Score: 3
Personally, I think C++ is a bad teaching language because computers don't think in objects. They think in memory locations and in blocks of code
Computers "think" in both. They also think in registers and opcodes. They also think in electrons.
All of these are abstractions at some level of what's really going on. There's no inherent reason why your favourite level of abstraction (memory locations and code blocks) is any better a place to start learning than the object level -- and a few reasons why it's worse. The way people think is closer to the object level (though still quite far).
And discrete math?! Honestly, I think you could make a better case for cooking classes. The practical experience of trying to follow well-written and poorly-written recipes will help a novice programmer out a heck of a lot more than a detailed understanding of set theory ever could.
For me, it's not so much the useful things I can do with my Palm, but the utterly useless fun I can have with it.
Sure, I use it for the boring time-management stuff. I used to have this pound-and-a-half Daytimer book that I lugged around with me everywhere. I dutifully wrote down every appointment in it -- problem was I never read it again and still ended up missing stuff. Now when I turn my Palm on in the morning to do something fun, it reminds me that I have a meeting with my boss at one o'clock.
But the thing that makes me turn it on in the first place is the fun stuff. I can play Kyle's Quest. I can play about half the interactive-fiction games that have ever been written. I can read War and Peace (OK, so maybe I have a weird idea of fun). I can use the infrared to change channels on the TV in my local bar without anyone knowing it was me.
On the other hand, it's completely useless for many things you'd use a desktop or laptop for (not that that stops people from trying). I'd never try to surf the net on it, even if it had a modem. I'd never try to program on it.
I think how much you like a PDA depends on what expectations you come to it with. If you expect it to be a boring time-management tool, you'll be amazed at all the other fun stuff it can do. If you expect it to be a tiny laptop, you'll be disappointed with all the stuff it can't do. I agree with you that the risk of a Linux PDA is pretty big -- it raises the expectations that the PDA will be as functional as a laptop, and unfortunately those expectations will still be frustrated. A lot more people will end up as disappointed as your friend. Hopefully, they won't blame it on Linux.
The concept of taxing internet sales to "level" the playing field is crap. Alot of people still use and will continue to use meatspace shopping. I for one like to look at something with my own eyes before I buy it. I only buy things online if I already know exactly what I want, and I can find it cheaper. So what if meatspace stores have to pay more taxes?
You're misunderstanding the proposal. It's not to level the playing field between web businesses and non-web businesses, but between European web businesses and non-European web businesses.
As it is now, if a shopper in the EU bought something over the web from a company based down the street from them, they'd pay VAT on the purchase. But if they made the same purchase from a company based in North Dakota, it'd be VAT-free. In effect, citizens are being encouraged to spend outside their own country. That's a pretty skewed playing field.
The governments can fix it either by getting rid of the VAT for everyone or trying to apply it to everyone. Why be surprised which choice a government would make?:-)
The "Boy-I-can-hardly-wait" gossip I've been hearing for a month or so predisposed me to expect extravagant claims. The original/. poster and the earlier comments tipped me over the edge. Re-reading the press release more closely, I see Borland itself is only claiming to make porting easier (with a long legalese statement at the bottom saying "But don't blame us if we don't manage it"). The interview with Chuck Jazdzewski that Casshan pointed out seems downright balanced. (That Chuck guy seems to be a techie in good standing, even if "chief architect" does sound awfully close to "pointy-haired boss".)
I hope Borland will continue to be able to keep their PR department on this short a leash. I've been a happy customer since I was running Turbo Pascal [Insert-a-version-number-so-absurdly-low-I-can't-e ven-remember-it] on the CPM card in my Apple ][. I've been a little dismayed to see it knocked off the tracks lately by its Dilbertesque overlords. I'd love to believe it was back.
Sorry, but I won't trust anything written by Borland marketting.
I'm one of the ones who got burned (actually just a bit singed) with JBuilder. The box and ads for JBuilder Professional said it had "comprehensive printed documentation" -- which I rely on greatly, despite occasional bouts of tree-killing guilt. The actual box had two slim booklets, and most of the documentation was available only on the CD. You had to buy the $1000-plus Client/Server edition to get real the books.
There was a big kerfuffle over this on the Borland support news-groups. The Borland technical staff who hung out on the support boards (mostly on their own time, I think) were amazingly sensible and helpful. Even the customer support people were helpful -- once you got past the drones who man the phone banks. They eventually shipped me the missing documentation for free. I was happy. Life went on. But when the next version of JBuilder came out, and I couldn't help noticing the ads and the box had exactly the same false claim of "comprehensive printed documentation".
Now, I was very impressed with the product. I was impressed with the documentation (once I got it). I was impressed with the technical staff and the senior customer service people I interacted with. But the disconnect between these impressive people and the polyester suits in the marketting department seems to be growing rather than shrinking. Now the marketting flaks are promising "100% Windows compatibility" for Kylix. I can imagine the techies cringing and dreading the next deluge on the support news-groups.
I'm sure Kylix will be an impressive product. But I'm afraid I'll have to wait for reviews by neutral third parties to find out what it actually does and what actually comes in the box.
[I wish to] find or develop a cost-effective e-mail solution that'll support Microsoft Outlook.
Why in the nine circles of heck would anybody want this? Is the company worried they'll miss out on the fun of the next e-mail virus if they don't stay Outlook compatible?
As many have pointed out already, the Word suite is overkill for most work in most offices. But the extra flab usually doesn't work for the rest of the users -- it mostly just adds to the instability of the product. Here's some made-up statistics (what fun is/. if you can't make up statistics?:-)). 90% of office word processing is basic enough that they don't need anything beyond WordPerfect 4, and maybe 80% could be done just fine in WordPad. (There was a time when *100%* of office word processing was done in WP4 and comparable systems. Remember? Was it really that horrible back then?) Maybe 9% of office word processing is so involved that it would be better off with a serious application like PageMaker or even TeX. That leaves about 1% of uses where Microsoft Word strikes the right balance between simplicity and power. In return for serving that 1%, everybody else has to put up with clogging their RAM, losing half a gig of their hard drive, having to buy bigger and faster hardware every two years, well-timed BSODs, and security holes that can cripple you for days. (Remember macro viruses?)
Security is one of the things I'd worry about the most. Microsoft likes to make important decisions on behalf of its customers (Which is more important, decent international character support or dancing paperclips?) Unfortunately, they usually make the wrong ones, and then don't bother telling anybody about the consequences. The attitude seems to be "You poor users are too dumb to understand the trade-offs between the convenience of automatically starting a program from your mailbox and the dangers of having your hard drive wiped out by a virus. Let us worry about those trade-offs for you." I don't care if it's done by Microsoft or by someone else, but the sooner we get a popular office suite that's not built on that attitude, the better.
Could we possibly be thinking of the same CLIPS here? The slightly wacky expert systems language with the slightly uglified Lispish syntax? I see almost nothing similar between CLIPS and Pike -- in data structures, in intended purpose, in syntax, in anything.
One of the distinguishing features of CLIPS is that a lot of control flow is implicit, in the sense that interesting stuff happens for free without the programmer spelling out the steps. Like the way Prolog does backtracking depth-first search without having its hand held all the way. From the material on the Pike web-page, it looks like Pike is just like every other imperative language in requiring the programmer to spell out the algorithm in detail. Less excruciating detail than in C, maybe, but still more excruciating that plenty of other existing scripting languages.
- It's easy for me to get food. I can pop something frozen into the microwave, or order a meal at a restaurant. I could move beyond this ease if I wanted to and get more control -- buy hundreds of dollars worth of decent kitchen supplies, take cooking classes, scour local markets for an eggplant of the perfect ripeness. But I have no intention to, nor any moral obligation to.
- It's easy for me to drive. I can operate my automatic transmission car safely to get from point A to point B, and I take it into a shop when it acts up. I could move beyond this ease if I wanted to -- learn to drive a stick-shift, buy hundreds of dollars worth of tools, learn to rebuild my own transmission. I have no intention to, nor any moral obligation to.
- It's easy for me to build up my pension fund. The government and my employer take a chunk off my paycheque and they do whatever they do with it. I don't even think about it. I could move beyond this ease if I wanted to -- start a self-directed plan, hire my personal stockbroker, spend the entire day combing the financial pages for information that might allow me to squeeze out a couple more percentage points in my returns. I have no intention to, nor any moral obligation to.
I could keep adding to this list for a long time. There are a few areas -- computing is one of them -- where I have decided to take more direct control over my life, but there are dozens of areas where I have decided not to and I take the easy way. It's unavoidable. I have barely enough time to manage those few areas I do the hard way -- I would need a few dozen more hours in a day if I did all of them the hard way.So most people (including the article-writer's students) feel about computers the same way I feel about cooking, cars, and pension plans. They have chosen to devote their time to doing things the hard way in other fields. The easy way in computing accomplishes everything they really need accomplished.
Yet for some reason, we think they have the moral obligation to do more. Why? Why should computing be any different from food, cars, and pension plans? Why are you a worse person if you use Windows than if you use a microwave or an automatic transmission? (In fact, you'll probably live longer if you devote your time to cooking your own food instead of hacking Linux.) How are you caving in any more to the ideology of ease?
I agree with the article writer that it's a good idea to make students aware of the ideology of ease and to explore some of its consequences. But I worry that all it will accomplish is to make students feel inadequate for having made different choices than their teacher.
I do agree that the down-button is damned awkward for reading. I sometimes rotate the text ninety degrees just so the button's off to one side, but then the screen refreshes agonizingly slowly. :-(
Still, it's way better than lugging ten different heavy books around.
a general entity in search of character
Technically it's supposed to be the company's contribution to the infrastructure that their research relies on. The main grant pays a scientist's salary, for example; the overhead pays for the electricity, the payroll clerk who cuts the scientist's paycheque, the roofer who makes sure the lab doesn't leak, etc. Most people I've talked to agree the usual overhead rates under-estimate what it really costs the university. There's no good reason universities couldn't just raise their overhead rates and expand the concept of "infrastructure" to include a community of people doing interesting but not immediately profitable research.
Unfortunately, it's far more likely that universities will start getting into "race to the bottom" bidding wars with their overhead, the way municipal governments are with business taxes.
for line in File("afile.txt"): print line
Of course, if you actually prefer to type all that extra punctuation... :-)
In my experience, if you're using in-line evaluation for its most common tasks, something you've done hundreds of times before, there's already a Python idiom that will do the same thing with comparable simplicity. If you're using in-line evaluation to do something rare and different, something you've almost never done before, you're asking for trouble. But if you're determined to be a masochist in Python, there's always the "eval" function.
So I agree with you about the end-point of programming education. But the question is about beginning programmers. Do you really have to understand all this stuff before you even start?
Even so, you're being pretty self-centred about what you consider to be the indepedent variable. The independent variable is simply what the person has control over. Hate to break it to you, but that person isn't always you.
Sure, from the point of view of a learner, what they have direct control over is the amount of time they spend on it, and what they don't have direct control over is how much they learn. But take another point of view, say a manager trying to hire. What the manager has control over is the level of proficiency of the person they hire (if one candidate doesn't have the level they want, they'll just choose another one). They don't have control over how much time the candidates had to spend to get that level of proficiency.
So maybe the phrase really was popularized by bone-headed managers. It makes perfect sense from their point of view. (Ohmigod, I just defended managers. Must go flagellate myself with a parallel port cable...)
In slashdot, like in all other primate communities, picking nits is the social glue that bonds the group together.
Or better yet, think of a real you in a real landscape. You want to move ten feet to the east. Would you rather do that on a prairie or when there's a cliff two feet to your east?
All of these are abstractions at some level of what's really going on. There's no inherent reason why your favourite level of abstraction (memory locations and code blocks) is any better a place to start learning than the object level -- and a few reasons why it's worse. The way people think is closer to the object level (though still quite far).
And discrete math?! Honestly, I think you could make a better case for cooking classes. The practical experience of trying to follow well-written and poorly-written recipes will help a novice programmer out a heck of a lot more than a detailed understanding of set theory ever could.
Sure, I use it for the boring time-management stuff. I used to have this pound-and-a-half Daytimer book that I lugged around with me everywhere. I dutifully wrote down every appointment in it -- problem was I never read it again and still ended up missing stuff. Now when I turn my Palm on in the morning to do something fun, it reminds me that I have a meeting with my boss at one o'clock.
But the thing that makes me turn it on in the first place is the fun stuff. I can play Kyle's Quest. I can play about half the interactive-fiction games that have ever been written. I can read War and Peace (OK, so maybe I have a weird idea of fun). I can use the infrared to change channels on the TV in my local bar without anyone knowing it was me.
On the other hand, it's completely useless for many things you'd use a desktop or laptop for (not that that stops people from trying). I'd never try to surf the net on it, even if it had a modem. I'd never try to program on it.
I think how much you like a PDA depends on what expectations you come to it with. If you expect it to be a boring time-management tool, you'll be amazed at all the other fun stuff it can do. If you expect it to be a tiny laptop, you'll be disappointed with all the stuff it can't do. I agree with you that the risk of a Linux PDA is pretty big -- it raises the expectations that the PDA will be as functional as a laptop, and unfortunately those expectations will still be frustrated. A lot more people will end up as disappointed as your friend. Hopefully, they won't blame it on Linux.
As it is now, if a shopper in the EU bought something over the web from a company based down the street from them, they'd pay VAT on the purchase. But if they made the same purchase from a company based in North Dakota, it'd be VAT-free. In effect, citizens are being encouraged to spend outside their own country. That's a pretty skewed playing field.
The governments can fix it either by getting rid of the VAT for everyone or trying to apply it to everyone. Why be surprised which choice a government would make? :-)
The "Boy-I-can-hardly-wait" gossip I've been hearing for a month or so predisposed me to expect extravagant claims. The original /. poster and the earlier comments tipped me over the edge. Re-reading the press release more closely, I see Borland itself is only claiming to make porting easier (with a long legalese statement at the bottom saying "But don't blame us if we don't manage it"). The interview with Chuck Jazdzewski that Casshan pointed out seems downright balanced. (That Chuck guy seems to be a techie in good standing, even if "chief architect" does sound awfully close to "pointy-haired boss".)
I hope Borland will continue to be able to keep their PR department on this short a leash. I've been a happy customer since I was running Turbo Pascal [Insert-a-version-number-so-absurdly-low-I-can't-e ven-remember-it] on the CPM card in my Apple ][. I've been a little dismayed to see it knocked off the tracks lately by its Dilbertesque overlords. I'd love to believe it was back.
Death to Inprise! Long live Borland!
I'm one of the ones who got burned (actually just a bit singed) with JBuilder. The box and ads for JBuilder Professional said it had "comprehensive printed documentation" -- which I rely on greatly, despite occasional bouts of tree-killing guilt. The actual box had two slim booklets, and most of the documentation was available only on the CD. You had to buy the $1000-plus Client/Server edition to get real the books.
There was a big kerfuffle over this on the Borland support news-groups. The Borland technical staff who hung out on the support boards (mostly on their own time, I think) were amazingly sensible and helpful. Even the customer support people were helpful -- once you got past the drones who man the phone banks. They eventually shipped me the missing documentation for free. I was happy. Life went on. But when the next version of JBuilder came out, and I couldn't help noticing the ads and the box had exactly the same false claim of "comprehensive printed documentation".
Now, I was very impressed with the product. I was impressed with the documentation (once I got it). I was impressed with the technical staff and the senior customer service people I interacted with. But the disconnect between these impressive people and the polyester suits in the marketting department seems to be growing rather than shrinking. Now the marketting flaks are promising "100% Windows compatibility" for Kylix. I can imagine the techies cringing and dreading the next deluge on the support news-groups.
I'm sure Kylix will be an impressive product. But I'm afraid I'll have to wait for reviews by neutral third parties to find out what it actually does and what actually comes in the box.
As many have pointed out already, the Word suite is overkill for most work in most offices. But the extra flab usually doesn't work for the rest of the users -- it mostly just adds to the instability of the product. Here's some made-up statistics (what fun is /. if you can't make up statistics? :-)). 90% of office word processing is basic enough that they don't need anything beyond WordPerfect 4, and maybe 80% could be done just fine in WordPad. (There was a time when *100%* of office word processing was done in WP4 and comparable systems. Remember? Was it really that horrible back then?) Maybe 9% of office word processing is so involved that it would be better off with a serious application like PageMaker or even TeX. That leaves about 1% of uses where Microsoft Word strikes the right balance between simplicity and power. In return for serving that 1%, everybody else has to put up with clogging their RAM, losing half a gig of their hard drive, having to buy bigger and faster hardware every two years, well-timed BSODs, and security holes that can cripple you for days. (Remember macro viruses?)
Security is one of the things I'd worry about the most. Microsoft likes to make important decisions on behalf of its customers (Which is more important, decent international character support or dancing paperclips?) Unfortunately, they usually make the wrong ones, and then don't bother telling anybody about the consequences. The attitude seems to be "You poor users are too dumb to understand the trade-offs between the convenience of automatically starting a program from your mailbox and the dangers of having your hard drive wiped out by a virus. Let us worry about those trade-offs for you." I don't care if it's done by Microsoft or by someone else, but the sooner we get a popular office suite that's not built on that attitude, the better.
Could we possibly be thinking of the same CLIPS here? The slightly wacky expert systems language with the slightly uglified Lispish syntax? I see almost nothing similar between CLIPS and Pike -- in data structures, in intended purpose, in syntax, in anything.
One of the distinguishing features of CLIPS is that a lot of control flow is implicit, in the sense that interesting stuff happens for free without the programmer spelling out the steps. Like the way Prolog does backtracking depth-first search without having its hand held all the way. From the material on the Pike web-page, it looks like Pike is just like every other imperative language in requiring the programmer to spell out the algorithm in detail. Less excruciating detail than in C, maybe, but still more excruciating that plenty of other existing scripting languages.
Perhaps it's not the same Pike we're thinking of?