1. The file system has the power to brick your machine because of a clock setting 2. You immediately assume GP didn't read the error message 3. You wonder why casual users stay far away from Linux?
4 year colleges are not the problem, only a symptom.
Here's the problem, the way I see it:
- Schools before college only teach how to read, write, and (hopefully) basic math - No Child Left Behind: everyone can pass anything, just by marking every answer "C". - Fixed length school system: you can be a grand master in chess, but you're not allowed to learn cursive yet (before you point out the exceptions, the whole problem is that they're the exception)
In short: fresh out of high school, the only thing you're qualified for is asking "Do you want fries with that?". We might as well just teach 5 year olds to flip burgers and save them a decade. At least they'd have some motivation to learn, then.
creating the impression that their products are unique and must-have devices.
In a sense, they are unique. While I've never owned an Apple device, there's still this myth about their products, quality and usability.
Who cares if there existed mp3 players before, if the iPod is the only one with a button that still works after a year of use? And who cares if this is actually true, as long as it's shiny enough?
But just because some exhibit great programming skills w/o having been exposed (at least cursorily) to C, that does not mean that extends to the rest.
On a related note, some people think the real value of early exposure to C is that it weeds out the chaff.
TL;DR:
But beyond the prima-facie importance of pointers and recursion, their real value is that building big systems requires the kind of mental flexibility you get from learning about them, and the mental aptitude you need to avoid being weeded out of the courses in which they are taught. Pointers and recursion require a certain ability to reason, to think in abstractions, and, most importantly, to view a problem at several levels of abstraction simultaneously. And thus, the ability to understand pointers and recursion is directly correlated with the ability to be a great programmer.
Nothing about an all-Java CS degree really weeds out the students who lack the mental agility to deal with these concepts.
but we have some bright young programmers who have only seen Pascal (from early training), Java, Python, and C#
Are they bright in terms of Get Shit Done(tm) or in terms of Understand The Cost Of Your Code? While C may no longer be the lowest common denominator between languages, frameworks, etc., it's still basically structured assembly, thus ideal for learning the hardware model, and all its implications on higher level software. Interpreted/JIT languages provide a useful abstraction over the hardware, but it's by no means perfect. And when the abstraction breaks, you won't know while your simple little script takes too long. StringBuilder is the idiomatic example, I believe.
As with all software development magic bullets, it only works as advertised if you already know what you'd do without it.
And this is not only difficult, but also expensive and an entry barrier for new technology movers and inventors.
While that is true, please consider the following scenario:
1. Create office with power, without responsibility, and without anyone in the bureaucratic machine who can question their decisions 2. Install own people (did I mention it's not an elected body?) 3. WELCOME BACK SOFTWARE PATENTS
At least the national patent offices have clearly defined authorities they report to. Do we really need more red tape to sync databases?
Why don't new tabs get focus when you click a link? Chances are you didn't want to have to move the mouse to the tab bar and click again to see the page that you just told the browser you want to see.
Same problem with the staring-at-a-blank-screen thing. And if your browsing habits are even remotely close to mine, 80% of the links you click are either in the middle of a sentence you want to continue reading, or one link out of many equally interesting. And I've certainly never seen a page with the layout "interesting content link boring content".
Great usability comes from eliminating all those minor annoyances that you don't even notice consciously, but add up in the long run.
I'd suggest improving usability then. The shiny only works until you start to use it. You know, like how the CLI completely wipes the floor with any GUI when it comes to power users' needs.
Just for starters, why isn't "Open in background tab" the default when clicking a link? Chances are you didn't mean to watch a blank fucking screen while it's loading.
Transparent, as in not visible. Or at least buried deep in license agreements no one reads.
Those who care, will read it. And they'll make a big fuss about it, to which hopefully Google will respond some day...
Google needs your data, just like how you need Google. Search is their core business, after all. What we need to make sure is that those TOS and agreements are not just some legal stuff to make the whiners go away, and it's in their enlightened self-interest to make sure we can verify it. Google is not Microsoft: it won't cost you days of work and months of learning to move away from their products if they piss you off, and they know it.
That said, always keep in mind that for a company like Google, you are not the customer. You are the product.
Don't apply sound business techniques to the open source discussion.
Doesn't matter, the open source model only shines when there's an extremely small barrier to entry. Not many users will build their own factory to patch a chip, I'd imagine.
30 years ago, most of these issues were pretty much solved. Evolution wasn't questioned, everyone was vaccinated.
Well, the internet is a relatively new phenomenon. Twitter-level information spreading (aka. Swine Flu Panic) is even newer. It'll take some time to develop filters, both technical, social, and intellectual.
However, the Slashdot model does work fairly well: it's not credible because of the article itself, but because hundreds of people are discussing it. If half the comments are questioning the validity of the facts presented, you'll know there's something fishy.
The same applies to the comments as well: by reading the discussion, you'll not only verify the information, but also learn about related things, like better alternatives, subtle pitfalls, etc. This is also why StackOverflow works out so nicely.
Ultimately, there is no Truth, just levels of certainty, and we as a society should embrace that. Boolean logic does not apply to reality.
it would be easy to get the information people are seeking from credible, reliable sources
Nope. The man who has a watch always knows the time. A man who has two is never sure.
Information won't be credible ever again, and that's a good thing: while there certainly will be propaganda from those who have the power to spread it, it'll be merely a drop in the bucket.
Agreed. Open Source is not a magic bullet.
People are egotistic, as always. You ask them if they're qualified to pick a president and they respond with what they're entitled to.
I guess it's a natural consequence of allowing everyone to think they're special.
And there's a difference between malice and having so many devices it's practically impossible to turn them off all at once.
Let me get this straight:
1. The file system has the power to brick your machine because of a clock setting
2. You immediately assume GP didn't read the error message
3. You wonder why casual users stay far away from Linux?
4 year colleges are not the problem, only a symptom.
Here's the problem, the way I see it:
- Schools before college only teach how to read, write, and (hopefully) basic math
- No Child Left Behind: everyone can pass anything, just by marking every answer "C".
- Fixed length school system: you can be a grand master in chess, but you're not allowed to learn cursive yet (before you point out the exceptions, the whole problem is that they're the exception)
In short: fresh out of high school, the only thing you're qualified for is asking "Do you want fries with that?". We might as well just teach 5 year olds to flip burgers and save them a decade. At least they'd have some motivation to learn, then.
In peak time, if your web page takes 50ms longer to load, you don't even notice.
Buffering... yes.
creating the impression that their products are unique and must-have devices.
In a sense, they are unique. While I've never owned an Apple device, there's still this myth about their products, quality and usability.
Who cares if there existed mp3 players before, if the iPod is the only one with a button that still works after a year of use? And who cares if this is actually true, as long as it's shiny enough?
But just because some exhibit great programming skills w/o having been exposed (at least cursorily) to C, that does not mean that extends to the rest.
On a related note, some people think the real value of early exposure to C is that it weeds out the chaff.
TL;DR:
But beyond the prima-facie importance of pointers and recursion, their real value is that building big systems requires the kind of mental flexibility you get from learning about them, and the mental aptitude you need to avoid being weeded out of the courses in which they are taught. Pointers and recursion require a certain ability to reason, to think in abstractions, and, most importantly, to view a problem at several levels of abstraction simultaneously. And thus, the ability to understand pointers and recursion is directly correlated with the ability to be a great programmer.
Nothing about an all-Java CS degree really weeds out the students who lack the mental agility to deal with these concepts.
Yes, and you'll growa beard.
Everyone who agrees with parent, please read this article NOW.
You don't learn C for the syntax, you learn it for the side effects.
but we have some bright young programmers who have only seen Pascal (from early training), Java, Python, and C#
Are they bright in terms of Get Shit Done(tm) or in terms of Understand The Cost Of Your Code? While C may no longer be the lowest common denominator between languages, frameworks, etc., it's still basically structured assembly, thus ideal for learning the hardware model, and all its implications on higher level software. Interpreted/JIT languages provide a useful abstraction over the hardware, but it's by no means perfect. And when the abstraction breaks, you won't know while your simple little script takes too long. StringBuilder is the idiomatic example, I believe.
As with all software development magic bullets, it only works as advertised if you already know what you'd do without it.
-1, Most Predictable Joke Ever
And this is not only difficult, but also expensive and an entry barrier for new technology movers and inventors.
While that is true, please consider the following scenario:
1. Create office with power, without responsibility, and without anyone in the bureaucratic machine who can question their decisions
2. Install own people (did I mention it's not an elected body?)
3. WELCOME BACK SOFTWARE PATENTS
At least the national patent offices have clearly defined authorities they report to. Do we really need more red tape to sync databases?
Aside from that, how often do you use the wheel to click on things? Honestly.
Why don't new tabs get focus when you click a link? Chances are you didn't want to have to move the mouse to the tab bar and click again to see the page that you just told the browser you want to see.
Same problem with the staring-at-a-blank-screen thing. And if your browsing habits are even remotely close to mine, 80% of the links you click are either in the middle of a sentence you want to continue reading, or one link out of many equally interesting. And I've certainly never seen a page with the layout "interesting content link boring content".
Great usability comes from eliminating all those minor annoyances that you don't even notice consciously, but add up in the long run.
increasing user satisfaction
I'd suggest improving usability then. The shiny only works until you start to use it. You know, like how the CLI completely wipes the floor with any GUI when it comes to power users' needs.
Just for starters, why isn't "Open in background tab" the default when clicking a link? Chances are you didn't mean to watch a blank fucking screen while it's loading.
Why do we need to follow some arbitrary numbering scheme?
Because it allows major rewrites to be marked as such, allowing you to stick with the stable branch? Just look at KDE 3.5 and KDE 4.0.
Prove it ;)
I'm fairly sure :)
Transparent, as in not visible. Or at least buried deep in license agreements no one reads.
Those who care, will read it. And they'll make a big fuss about it, to which hopefully Google will respond some day...
Google needs your data, just like how you need Google. Search is their core business, after all. What we need to make sure is that those TOS and agreements are not just some legal stuff to make the whiners go away, and it's in their enlightened self-interest to make sure we can verify it. Google is not Microsoft: it won't cost you days of work and months of learning to move away from their products if they piss you off, and they know it.
That said, always keep in mind that for a company like Google, you are not the customer. You are the product.
Don't apply sound business techniques to the open source discussion.
Doesn't matter, the open source model only shines when there's an extremely small barrier to entry. Not many users will build their own factory to patch a chip, I'd imagine.
There is only one moral in there: Never, ever, ever give out your real info on places you don't want linked to you.
Being Hungarian, I find 'weem' most natural.
30 years ago, most of these issues were pretty much solved. Evolution wasn't questioned, everyone was vaccinated.
Well, the internet is a relatively new phenomenon. Twitter-level information spreading (aka. Swine Flu Panic) is even newer. It'll take some time to develop filters, both technical, social, and intellectual.
However, the Slashdot model does work fairly well: it's not credible because of the article itself, but because hundreds of people are discussing it. If half the comments are questioning the validity of the facts presented, you'll know there's something fishy.
The same applies to the comments as well: by reading the discussion, you'll not only verify the information, but also learn about related things, like better alternatives, subtle pitfalls, etc. This is also why StackOverflow works out so nicely.
Ultimately, there is no Truth, just levels of certainty, and we as a society should embrace that. Boolean logic does not apply to reality.
it would be easy to get the information people are seeking from credible, reliable sources
Nope. The man who has a watch always knows the time. A man who has two is never sure.
Information won't be credible ever again, and that's a good thing: while there certainly will be propaganda from those who have the power to spread it, it'll be merely a drop in the bucket.
I wish they would start a department of truth in the government to tell me what I should be thinking.
I'm assuming you've read 1984?