When I first read your post, I seriously thought you were joking. Then I realized you weren't. You're crazy. Rewrite an app the size of OO.org (in any language)? Are you serious?
Then maybe OO.org devs should learn how to write proper C++ code. It doesn't have to be that way. And if you think that CLASS INHERITANCE is the only reason to use C++, then you don't know C++.
One need not be an expert on knives - you'll note that I did say that common sense was required.
Except that I disagree with your statement that it takes only common sense is required. The evidence is not in your favor. If common sense were all that was required, then most folks wouldn't have a problem with this. The reality is the a lot of people *DO* have problems with this. "Common Sense" means that the vast majority of people get it. And they obviously don't in this case.
A good pocketknife can be found at virtually any hardware or sportsmens store. No license or background check is required. There are no restrictions on their ownership.
What does that have to do with it? No where on these packages does it say I need a good pocketknife to open these things. I own a good pocketknife, and opening some of these packages isn't much easier with it.
says much about you
If you're going to insult me, then you might as well go ahead and do it. What does this say about me that is so bad? That I'm concerned about the welfare of the general public? That I concerned that some new "technology" is causing elevated injury rates, regardless of the reason? Just look at the data: People are getting hurt If it was a few random incidents, then fine, blame the injured. But it isn't just a few random incidents, it's a serious problem.
Use a *good* knife, a little common sense, and a little patience and you'll have the contents of the package out in no time with no injury and no damage to the product.
None of which is ever explained or printed on the package. That's the problem. I shouldn't have to be an expert in knives in order to open a package a ink cartidges. Packages sold to the general public should be openable by the GENERAL PUBLIC. Your type of condesending attitude is simply unreasonable and rude.
but they'll still at some point have to transition from
What point will that be if they're so intimidated by the language that they don't learn how to program in the first place? Kids don't "have" to do anything. They're kids. They're supposed to be playing. A "Kid's Programming Language" should look and feel like play, not work.
And I'm glad you mentioned PERL. They don't need to know all that crap for PERL. In PERL, god bless it, they can write exactly my example (save for a semicolon at the end), and get "Hello World!" on the screen.
The problem with KPL is that it doesn't succeed at "simplify programming to that kids can learn the structure and basic syntax".
applications for BASIC are very limited
That is a total lie and shows your lack understanding of the subject. BASIC applications can be quite advanced.
Many others are morons who don't have actual kids. If a kid has to learn all that structure before they can put "Hello World!" on the screen, then they're not going to be interested. I know I would have been lost at 7, when I learned to program my dad's Commodore 64. Why did I catch on? Because it was a linear programming language, BASIC. I've since graduated to other more structured languages like LISP and C++. But I got my start on BASIC.
And isn't what the whole article is all about? The fact that the only languages out there have some much structure that kids just aren't going to be interested.
At least make that structure a little simpler. I mean come on, they require use of a METHOD keyword for Hello World!?
Okay, so I bit. I looked at your link there. Conclusion: Kid's Programming Language is not for Kids.
Here is the Hello World! example:
Program HelloWorld
Method Main()
PrintLine ("Hello, World!")
End Method End Program
Is that supposed to be, well, for KIDS? Five lines to print one? Shouldn't the Hello World! example in a kids programming lanuage be more like:
print "hello world!"
I don't even like the fact that I have to type the quotes. No, KPL is crap. It's a poorly rehashed version of Visual Basic. And it has too much java/C# nasty in there. Just cause you have a semi-decent graphics library, doesn't make it for kids.
hope the files are in a format that I can watch.. Myth still uses mplayer for playback right?
I am unfamiliar with MythTV but am I misunderstanding or are you implying that mplayer is somehow lacking in its format support? That doesn't make alsmost ANY sense. mplayer is probably the most compatible linux video player out there. I have yet to find something that it *doesn't* play. Whereas WMP/Quicktime/(insert windows player here) barfs on many of the files I try to play.
Wikipedia, just like many other community sites, has some elements of a game.
True. However, I imagine that the people who work at Encyclopedia Britannica aren't only interested in the veracity of their work, they're also trying to do better than their coworkers so they can get the raise, or the promotion. They too, are playing a "game". Just like the folks of wikipedia.
The difference is that if that the fighting is fairly transparent on Wikipedia, whereas we'll never know about who hates who at Encyclopedia Britannica.
This decision isn't about a right to openness for developers, it's about dollars and business sense, first and foremost as it relates to shareholders who have a financial stake in the company.
And the shareholders should be concerned when the company is making decisions which are causing a major developer to stop supporting their product.
Therefore, if you don't know quite what you're doing and you don't know if you're about to blow something up, you can cancel. That's why it is the way it is. If you don't like it, that's fine, but now you can't say you don't understand why its in place.
Actually, that's not the reason that OK/Cancel exists. It's a legacy from the old days, when just changing some settings might take more than a couple seconds. And if those settings were applied as soon as you click the button, then users would be very unhappy as the dialog froze every time they toggled a check-box. That just isn't true anymore for the most part.
Problem is, most windows programmers (of which I count myself) are so used to the OK/Cancel concept, they don't even know why they do it. They think it's for the very reason that you mention. Yes, your reason has some logic to it, but don't go around claiming that it's the real one.
walk into Costco and immediately compute the per ounce cost of a particular brand of beef compared to the other without having to whip out a calculator
Because pulling a calculator out of your pocket takes much more effort than the years it took to learn how to do it in your head. That just doesn't make sense from purely effort based reasoning.
There's an Asimov short story out there - "The Feeling of Power", detailing a society where no human remembers how to perform basic math but carries a pocket calculator. A technician who rediscovers the process of hand mathematics is hailed as a genius, and work begins on a missile with a human 'computer' inside to calculate trajectories. Read it in your spare time.
It isn't the number-crunching-fu that's valuable, but the ability to reason about hard problems.
Then give them harder problems that require use of the calculator *and* their brain. Isn't this the whole point of progress? That students over time can be taught more advanced things earlier in their education? If we can get students learning Calculus in elementary school, wouldn't that be great?
Math is a different matter. No student should be allowed to bring a calculator into a math class. Ever.
This is when I stopped reading TFA. So, pray tell, master of what is wrong with education, when exactly should our intrepid students learn to use a calculator, one of the most useful inventions since we got rid of the slide rule?
This a falicious argument that when taken to its logical conclusion implies that all students should understand particle physics in order to use the web. While it may be true that learning how to do long division gives a student some greater insight into how math works, that doesn't mean that it is useful to them. I know how to do long division, and I think I understand division a little better because I do, but was the three years it took to learn in elementary school worth it? I've used this "greater understanding" maybe 4 or 5 times in my life. I don't think it was worth 3 years of my young life, when I could've been learning something more relevant to modern life.
There are lots of things that are useful to know, but we're not going to learn all of them. And teaching kids things we learned just because we had to, has more to do with bitterness about things like long division and less to do with their success in life.
I though we invented the internet so we wouldn't have to use FedEx to send files?
Or better yet FTP and GNUGP or SSH?
He probably has, but his client may not and he's not about to force it down their throats. The client usually wants (and gets) "push button, go". Because they paid out the nose for "push button, go". WTF, you really think anyone outside of your little clan cares about GNUGP?
Surely it would have been cheaper to take that CD, drive home, and send it from your own broadband internet connection (just changing the From: header to that of your work address)? Even if your ISP charges you per MB I doubt it would have cost anything like $4000 - and it would have been quicker than flying.
Sure it would. BUT THAT ISN'T THE POINT. Draconian policies and CYA thinking are far too common in IT departments. Instead of whitelisting only known safe file types (which is easier for them), surely they could blacklist known dangerous file types (which is harder). It's for them because it requires them to update the list on their own. IOW, do something productive. Wow, IT doing work that helps the company, that's rare.
Google maps finds the address, but USPS's site doesn't
Well, what you're doing (coverting from an address to a map location) is called geocoding and it isn't quite an exact science. local.live.com points the same address to a location a ways south on the same road. So the house you're seeing is quite possibly not his at all. Oftentimes, the only data to go on is a start address and end address for a long section of road. Then interpolation is used in the middle. So take that stuff with a grain of salt.
Most linux distros (Red Hat/Fedora, Suse, Debian, Gentoo, etc.. off the top of my head) provide a central repository that will update everything on your system for you. This appears to be a much more optimal method of applying updates. If nothing else, these results show that not just core functionality, but also supporting functionalities must be kept up to date and are just as much of a security problem, if not more so. Linux distributions support such update methodolgies natively, Windows does not.
And he certainly knows why he put something into the language.
Again, I don't care why he put it in the language. I care about how it can be best used in reality. I don't think that current use of templates was envisioned when it was designed, but it seemed like a good idea, so it was added. Your original statement used Bjarne's approval as proof of correctness. That's the false logic that I disagree with. Sure, he has a lot of good ideas. That doesn't mean he's right, not even close.
Pass by pointer makes for easier to understand code
Your entire argument logically follows from this statement. However, I don't agree with this statement, so I don't agree with the rest of your argument.
I don't think it makes for easier to understand code. The presence of pass-by-reference should be obvious from the name of the function, not the requirement to pass a pointer.
Do you use expressive variable and function names? Or is your code riddled with X(a) + Y(b) zz ? After all, the first thing someone should do is look up what X, Y, a, b, and zz are, and then everything will be clear from then on! Or do you helpfully clue people in to what all these things are and what they are for by giving them descriptive names?
Don't be ridiculous. Of course I use descriptive variable names. That's why I don't need to use pointers to pass-by-reference. Because my function names are good. And no, I don't expect my maintainers to understand every last function before they read my code. But I do expect them to go look at the header if they want any more than a basic understanding of what the function does. I don't include comments in my function names, I put them in the header, where they belong.
Yes, they can and should understand what the function does but having the usage of the function implied by it's name, it's parameters, and the way those parameters are used at the calling place makes the code easier to understand, both at initial bring up and when coming back to it in the future.
Ok, so your logic is that the more information is included at the call point, the better. Ok, then why don't we include all kinds of other information there too. How about including a cast to the true parameter type so that I know the true type of each of the parameters? How about adding a little comment for each parameter that gives the name of the parameter local to the function? Or any number of things that might help our plucky maintainer? Because it's all in the header file.
void someFunc(int* foo) {
assert(foo);// How is this difficult? This argument is a non-starter.
Because if I use pass by reference, I don't need to do it at all. I don't need to even worry about the assert firing in all those rare cases I didn't think about, or know about.
When I first read your post, I seriously thought you were joking. Then I realized you weren't. You're crazy. Rewrite an app the size of OO.org (in any language)? Are you serious?
Then maybe OO.org devs should learn how to write proper C++ code. It doesn't have to be that way. And if you think that CLASS INHERITANCE is the only reason to use C++, then you don't know C++.
One need not be an expert on knives - you'll note that I did say that common sense was required.
Except that I disagree with your statement that it takes only common sense is required. The evidence is not in your favor. If common sense were all that was required, then most folks wouldn't have a problem with this. The reality is the a lot of people *DO* have problems with this. "Common Sense" means that the vast majority of people get it. And they obviously don't in this case.
A good pocketknife can be found at virtually any hardware or sportsmens store. No license or background check is required. There are no restrictions on their ownership.
What does that have to do with it? No where on these packages does it say I need a good pocketknife to open these things. I own a good pocketknife, and opening some of these packages isn't much easier with it.
says much about you
If you're going to insult me, then you might as well go ahead and do it. What does this say about me that is so bad? That I'm concerned about the welfare of the general public? That I concerned that some new "technology" is causing elevated injury rates, regardless of the reason? Just look at the data: People are getting hurt If it was a few random incidents, then fine, blame the injured. But it isn't just a few random incidents, it's a serious problem.
Use a *good* knife, a little common sense, and a little patience and you'll have the contents of the package out in no time with no injury and no damage to the product.
None of which is ever explained or printed on the package. That's the problem. I shouldn't have to be an expert in knives in order to open a package a ink cartidges. Packages sold to the general public should be openable by the GENERAL PUBLIC. Your type of condesending attitude is simply unreasonable and rude.
but they'll still at some point have to transition from
What point will that be if they're so intimidated by the language that they don't learn how to program in the first place? Kids don't "have" to do anything. They're kids. They're supposed to be playing. A "Kid's Programming Language" should look and feel like play, not work.
And I'm glad you mentioned PERL. They don't need to know all that crap for PERL. In PERL, god bless it, they can write exactly my example (save for a semicolon at the end), and get "Hello World!" on the screen.
The problem with KPL is that it doesn't succeed at "simplify programming to that kids can learn the structure and basic syntax".
applications for BASIC are very limited
That is a total lie and shows your lack understanding of the subject. BASIC applications can be quite advanced.
Many others are morons who don't have actual kids. If a kid has to learn all that structure before they can put "Hello World!" on the screen, then they're not going to be interested. I know I would have been lost at 7, when I learned to program my dad's Commodore 64. Why did I catch on? Because it was a linear programming language, BASIC. I've since graduated to other more structured languages like LISP and C++. But I got my start on BASIC.
And isn't what the whole article is all about? The fact that the only languages out there have some much structure that kids just aren't going to be interested.
At least make that structure a little simpler. I mean come on, they require use of a METHOD keyword for Hello World!?
Okay, so I bit. I looked at your link there. Conclusion: Kid's Programming Language is not for Kids.
Here is the Hello World! example:
Program HelloWorld
Method Main()
PrintLine ("Hello, World!")
End Method
End Program
Is that supposed to be, well, for KIDS? Five lines to print one? Shouldn't the Hello World! example in a kids programming lanuage be more like:
print "hello world!"
I don't even like the fact that I have to type the quotes. No, KPL is crap. It's a poorly rehashed version of Visual Basic. And it has too much java/C# nasty in there. Just cause you have a semi-decent graphics library, doesn't make it for kids.
hope the files are in a format that I can watch.. Myth still uses mplayer for playback right?
I am unfamiliar with MythTV but am I misunderstanding or are you implying that mplayer is somehow lacking in its format support? That doesn't make alsmost ANY sense. mplayer is probably the most compatible linux video player out there. I have yet to find something that it *doesn't* play. Whereas WMP/Quicktime/(insert windows player here) barfs on many of the files I try to play.
Wikipedia, just like many other community sites, has some elements of a game.
True. However, I imagine that the people who work at Encyclopedia Britannica aren't only interested in the veracity of their work, they're also trying to do better than their coworkers so they can get the raise, or the promotion. They too, are playing a "game". Just like the folks of wikipedia.
The difference is that if that the fighting is fairly transparent on Wikipedia, whereas we'll never know about who hates who at Encyclopedia Britannica.
This decision isn't about a right to openness for developers, it's about dollars and business sense, first and foremost as it relates to shareholders who have a financial stake in the company.
And the shareholders should be concerned when the company is making decisions which are causing a major developer to stop supporting their product.
That's a simulator. It doesn't create a netlist.
Therefore, if you don't know quite what you're doing and you don't know if you're about to blow something up, you can cancel. That's why it is the way it is. If you don't like it, that's fine, but now you can't say you don't understand why its in place.
Actually, that's not the reason that OK/Cancel exists. It's a legacy from the old days, when just changing some settings might take more than a couple seconds. And if those settings were applied as soon as you click the button, then users would be very unhappy as the dialog froze every time they toggled a check-box. That just isn't true anymore for the most part.
Problem is, most windows programmers (of which I count myself) are so used to the OK/Cancel concept, they don't even know why they do it. They think it's for the very reason that you mention. Yes, your reason has some logic to it, but don't go around claiming that it's the real one.
Then play on an RP server
walk into Costco and immediately compute the per ounce cost of a particular brand of beef compared to the other without having to whip out a calculator
Because pulling a calculator out of your pocket takes much more effort than the years it took to learn how to do it in your head. That just doesn't make sense from purely effort based reasoning.
There's an Asimov short story out there - "The Feeling of Power", detailing a society where no human remembers how to perform basic math but carries a pocket calculator. A technician who rediscovers the process of hand mathematics is hailed as a genius, and work begins on a missile with a human 'computer' inside to calculate trajectories. Read it in your spare time.
I have. Good story, bad premise.
It isn't the number-crunching-fu that's valuable, but the ability to reason about hard problems.
Then give them harder problems that require use of the calculator *and* their brain. Isn't this the whole point of progress? That students over time can be taught more advanced things earlier in their education? If we can get students learning Calculus in elementary school, wouldn't that be great?
Math is a different matter. No student should be allowed to bring a calculator into a math class. Ever.
This is when I stopped reading TFA. So, pray tell, master of what is wrong with education, when exactly should our intrepid students learn to use a calculator, one of the most useful inventions since we got rid of the slide rule?
This a falicious argument that when taken to its logical conclusion implies that all students should understand particle physics in order to use the web. While it may be true that learning how to do long division gives a student some greater insight into how math works, that doesn't mean that it is useful to them. I know how to do long division, and I think I understand division a little better because I do, but was the three years it took to learn in elementary school worth it? I've used this "greater understanding" maybe 4 or 5 times in my life. I don't think it was worth 3 years of my young life, when I could've been learning something more relevant to modern life.
There are lots of things that are useful to know, but we're not going to learn all of them. And teaching kids things we learned just because we had to, has more to do with bitterness about things like long division and less to do with their success in life.
You might. That's why it's called "involuntary" manslaughter.
MOD PARENT UP.
I wish I could moderate in this discussion because that is a great idea.
You never heard of Fed Ex?
I though we invented the internet so we wouldn't have to use FedEx to send files?
Or better yet FTP and GNUGP or SSH?
He probably has, but his client may not and he's not about to force it down their throats. The client usually wants (and gets) "push button, go". Because they paid out the nose for "push button, go". WTF, you really think anyone outside of your little clan cares about GNUGP?
Surely it would have been cheaper to take that CD, drive home, and send it from your own broadband internet connection (just changing the From: header to that of your work address)? Even if your ISP charges you per MB I doubt it would have cost anything like $4000 - and it would have been quicker than flying.
Sure it would. BUT THAT ISN'T THE POINT. Draconian policies and CYA thinking are far too common in IT departments. Instead of whitelisting only known safe file types (which is easier for them), surely they could blacklist known dangerous file types (which is harder). It's for them because it requires them to update the list on their own. IOW, do something productive. Wow, IT doing work that helps the company, that's rare.
Hurd
Yea, cause the Hurd has really made a big impact...
Google maps finds the address, but USPS's site doesn't
Well, what you're doing (coverting from an address to a map location) is called geocoding and it isn't quite an exact science. local.live.com points the same address to a location a ways south on the same road. So the house you're seeing is quite possibly not his at all. Oftentimes, the only data to go on is a start address and end address for a long section of road. Then interpolation is used in the middle. So take that stuff with a grain of salt.
Gotta love the rocket scientists Microsoft is hiring these days.
Rockets! Awesome. Some real money finally being invested in space.
Most linux distros (Red Hat/Fedora, Suse, Debian, Gentoo, etc.. off the top of my head) provide a central repository that will update everything on your system for you. This appears to be a much more optimal method of applying updates. If nothing else, these results show that not just core functionality, but also supporting functionalities must be kept up to date and are just as much of a security problem, if not more so. Linux distributions support such update methodolgies natively, Windows does not.
So what would you call this exactly?
I've heard Bjarne himself utter
This is religion, not logic.
And he certainly knows why he put something into the language.
// How is this difficult? This argument is a non-starter.
Again, I don't care why he put it in the language. I care about how it can be best used in reality. I don't think that current use of templates was envisioned when it was designed, but it seemed like a good idea, so it was added. Your original statement used Bjarne's approval as proof of correctness. That's the false logic that I disagree with. Sure, he has a lot of good ideas. That doesn't mean he's right, not even close.
Pass by pointer makes for easier to understand code
Your entire argument logically follows from this statement. However, I don't agree with this statement, so I don't agree with the rest of your argument.
I don't think it makes for easier to understand code. The presence of pass-by-reference should be obvious from the name of the function, not the requirement to pass a pointer.
Do you use expressive variable and function names? Or is your code riddled with X(a) + Y(b) zz ? After all, the first thing someone should do is look up what X, Y, a, b, and zz are, and then everything will be clear from then on! Or do you helpfully clue people in to what all these things are and what they are for by giving them descriptive names?
Don't be ridiculous. Of course I use descriptive variable names. That's why I don't need to use pointers to pass-by-reference. Because my function names are good. And no, I don't expect my maintainers to understand every last function before they read my code. But I do expect them to go look at the header if they want any more than a basic understanding of what the function does. I don't include comments in my function names, I put them in the header, where they belong.
Yes, they can and should understand what the function does but having the usage of the function implied by it's name, it's parameters, and the way those parameters are used at the calling place makes the code easier to understand, both at initial bring up and when coming back to it in the future.
Ok, so your logic is that the more information is included at the call point, the better. Ok, then why don't we include all kinds of other information there too. How about including a cast to the true parameter type so that I know the true type of each of the parameters? How about adding a little comment for each parameter that gives the name of the parameter local to the function? Or any number of things that might help our plucky maintainer? Because it's all in the header file.
void someFunc(int* foo) {
assert(foo);
Because if I use pass by reference, I don't need to do it at all. I don't need to even worry about the assert firing in all those rare cases I didn't think about, or know about.