Indeed, but this is like bad spoken language teaching too. "What is the first-person singular subjunctive present suffix of third conjugation verbs?" may get the right answer, but the skill the learner really needs is to be able to say "I ask" in Latin. Any teaching that focuses on structure without meaning is hopelessly lost. The reason that coding should be considered a fundamental skill is that the alternative is to have a specialist class of coders who have no subject knowledge. How do you learn a language if you don't have anything to say?
There were a lot of computer concepts that didn't make sense to me until I found a real-world problem they modelled. I hated OO with a passion at university, because the examples and tasks we were given were contrived, rather than demonstrating a real-world need. As such, I think coding would be far better taught within the context of a content subject -- engineers have different problems from biologists, who have different problems from linguistics researchers. That also leads us down the road to declarative programming, because our beginners' programming skills courses are currently dominated by various fiddly technical details of the imperative language we're using that we have to deal with before we get to deal with our first problem.
All my life, the perennial story has been that kids are stupid. American kids aren't measuring up to any other country. We're always last in lists of how educated people are. Regardless of how much we spend. The education industry perpetuates this perennial stupidity to get more money. Kids will NEVER be smart. What's the most difficult thing anyone can ever try to do? Write working code that adequately solves a problem. Let's teach it to kids! So they'll be stupid. Kids will NEVER measure up with coding.
Your argument is akin to suggesting that we shouldn't teach reading and writing because most kids will never be able to write an internationally best-selling trilogy of crime novels. There are many day-to-day tasks that can be improved with a little bit of coding knowledge. If every kid learned a modest amount of coding in school, the curse of the corporate world, Excel, would finally be redundant. Spreadsheets have survived this long because they allow people to do data manipulation that they wouldn't otherwise be able to do; but in an inefficient way that also ends up producing unmaintainable code. Yes, Excel is a programming language, and people spend a heck of a lot of time trying to work out how to program in it. Let's put that time into something more useful.
I think that was his point. As long as our interaction with data is mediated by a weak direct-manipulation metaphor, we restrict ourselves unnecessarily. Everyone should be able to talk to their CSV files with a batch script and grep etc.
I believe basic "coding" should be a part of general education. The kind you would do in BASIC or a spreadsheet. Everybody has a computer, they could be using them more effectively if they knew how to automate stuff.
In my office, I sometimes get called in to split CSV files of addresses into street and streetnumbers; everybody should be able to do that in any spreadsheet. Nobody should have to call in a professional developer for such tasks.
Exactly. Even when working in an IT company, I was given tasks that involved manually looking through users one by one to check group memberships, and manually make a list. Instead I did an export from Active Directory and spent a morning learning enough about.BAT scripting to extract the information I needed. Three days' work in my bosses' estimation, and I did it in less than an hour with a scrappy, imperfect script and manual checking of failed cases only. Everyone should be able to do that.
But in order for that to happen, we have to start moving away from strictly imperative programming and more towards declarative programming. People keep telling me that declarative is inefficient... but for scheduling one-off tasks, the computational efficiency is irrelevant as long as it's quicker than doing it manually. The complexity of imperative code is only efficient through scale -- a production system serving millions of users for years needs to be efficient. A hacked-up script to process a one-off data extract, not so much.
Besides, how many of you use map, filter and reduce. Are these not declarative statements? Do you know what order map and filter process the list in? No -- you will assume (for reasons of computational efficiency) that it's linear, but you can't be sure if it's head first or tail first. Do you know whether the reduce statement will evaluate every item or skip out for efficiency? eg. if your function is "x or y", will reduce know to stop as soon as false is returned?
These statements are declarative, and in the case of map and filter, they are intuitive -- I can think of no way of modelling these concepts that is more intuitive, and without map and filter, you're left writing unnecessary sequences of statements until you can't see the woods for the trees. My first reaction to map/reduce type programming was that it obscured the program logic, but as I got used to it, I started loving the way you just told the computer what to do and it did it. In fact, I realised that I had been programming that way ever since I started programming, but reinventing tiny variations of the wheel for each different task.
Developers will still need a high degree of control over execution, so "serious" programming will always stay mostly at the "imperative" end of the scale, but casual coding should be avaiable to all, and it needs to be far more declarative. The many obstacle to this happening is that computer languages are written by developers, and they forget that development is not the only use for coding.
Indeed. Part of the allure of the modern smart phone was that it could replace many of the various existing devices. It's a phone, camera, music player, and game machine all rolled into one. Never mind that there are plenty of other, more niche devices that it can replace as well.
That depends on your usage. I don't use my phone as a cycle satnav due to battery life worries. When I go on a cycling holiday, I have (at the very least) my phone, my GPS, and an ebook reader. When I camp for the night, I have a very narrow window to get some charge into the devices while reception is still open, or I have to use the razor sockets in the washrooms and risk stuff getting nicked. Because of that, I also like to take a high-capacity USB battery pack, so I might have 4 devices that could do with a simultaneous charge. If I want music on my next trip, I'll probably buy a separate (keyring sized) MP3 player, which means possibly having 5 devices that I might want to simultaneously charge.
I will always try to avoid that situation (and now that I have a solar panel, that should be easier) but topping up the phone and GPS daily is a must, so I think what I need is at least a 3-port charger.
"Timothy was the only Slashdot person working CES, so it's shocking that he managed to cover as many (hopefully interesting) products as he did, considering that even the biggest IT journo mills don't come close to total coverage of the overwhelming muddle CES has become in recent years"
Isn't it a bit much to start telling all of/. how wonderful/. is in TFS? It's kind of preaching to the choir, but in such a way as to make the choir think the preacher's actually a bit full of himself, and make them want to give up the choir....
But why say something that has happened can never happen?
Mustard gas in WWI was delivered in artillery barrages. Multiple large shells delivered over a large area. Mustard gas cannot be delivered in sufficient quantity by Hubsan quadcopter to cause any real harm whatsoever. Claiming the two situations are at all comparable is like suggesting because the first nuclear bombs used hydrogen, we should be afraid of terrorists using dihydrogen monoxide....
You wouldn't scout the defences, because that risks giving the game away. You just try it. Either it works, and causes panic; or it gets blown up, reported in the press, and causes panic. Terrorist attacks don't have to hit their target to be successful. The USA is a terrorist's dreamland, because the reaction to attacks is so extreme (like calling the CIA because you see "pressure cooker" in someone's search history).
I guess the guys behind SpaceX's last landing attempt weren't halfway competent, then? Obviously they should have made sure a crash couldn't happen before attempting a landing. What a bunch of idiots.
Ah yes, because a brand-new experimental test craft is exactly the same as an off-the-shelf remote controlled vehicle owned and tested by thousands of hobbyists across the world.
Or do you think that the unusual flatness of the White House lawn makes it a uniquely difficult environment to fly over....?
The fact that no one saw it coming in. It all fun and games until someone rigs it with explosives and damages something or someone. This could have been a proof of concept attempt.
Could have been... but probably wasn't. I'm guessing it was a $50 Walmart toy. Why? Because it ran out of batteries without warning while over the White House lawn and the owner couldn't reclaim it because of the security fence. Larger drones have battery warnings and some even have GPS-guided return-to-base functions on low battery.
Using a micro-quad is no proof-of-concept at all, as it wouldn't be able to carry a sufficient payload, and your goal would be to verify that a copter large enough to deliver a considerable amount of explosives could approach without being detected. Such a model would also be equipped with autonomous GPS guidance (so the operator can escape before it does the deed) and wouldn't land on the lawn. Even if the operator chose to abandon the test vehicle, it would be programmed to ditch outside the security cordon, specifically to avoid the current situation, because they are now trying to determine how to prevent repeat occurrences. (ie a proof of concept that alerts the target to the possibility is no use at all. It's as stupid as shining a laser sight through someone's window the day before the assassination attempt, telling the target to hide.)
Representative democracy is called a republic in other places because it does not allow the population to elect its officials directly like a democracy
Errm... representative democracy is where the population elects its officials (aka "representatives"). The only other type of democracy I know of is direct democracy, where the people vote directly on everything (which is impractical).
I think what you're trying to get at is more something about federal or supra-national systems where elected representatives for your local block vote on your behalf for someone to represent them at the next level up.
For example, it seems very odd to me that the member-states of the EU send directly-elected MEPs to the European Parliament. Surely the government should be negotiating on our behalf at the international level? I mean, we don't vote on our NATO and UN representatives. How can MEPs further the interests of their country if they don't represent the government of the country?
Something can be described in multiple ways simultaneously. You, for example, are an Anonymous Coward, but that doesn't mean you're not a human being. "The sun" is also "a star".
Or indeed "The Declaration of Arbroath" where the nobles and church in Scotland made clear that the king was answerable to the country. The UK isn't just England, after all.
That's not quite what I meant. Lisp can act as a metalanguage, so you can write your own languages in it, but then every single program ends up with its own language.
I'm thinking or a language that consists of multiple "variations on a theme" to allow multiparadigm programming. The problem with most "functional" languages is that they compromise the core concepts of functional programming in order to be useful -- side-effects and monads mean that the "function" is not a mathematical function (provides the same answer for the same input every time) so caching to avoid repeat evaluation is impossible, and there's lots of human optimisation required to avoid wasted cycles.
But if we took all that useful stuff out of FP, what can FP usefully do? Sit as inner code servicing requests by the main code outside. You could therefore have a language with two distinct types of code units: proc and fun. A proc can call a fun, but a fun can't call a proc, because procs allow mutability and side-effects, but funs don't. The body of a proc is a series of statements, but a fun contains only a single expression.
A higher-order function given a proc would return a proc, but if given a fun it would return a fun. Notice that passing a procedure to higher-order function does not break the mathematical integrity of the higher-order function, because it will always return the same procedure for a given input procedure.
Indeed -- a multiparadigm "language" doesn't have to actually be a single language at all. It can be multiple languages with a single datatype system and call mechanism. (I'm personally more interested in this as a way to combine functional programming with procedural programming, but it would work just as well for OO with non-OO.)
The problem is, drug companies don't "invent" antibiotics at all -- they isolate them from naturally occurring sources. There is a slump in the discovery of new antibiotics at the moment, so for the pharmaceutical industry, antibiotic resistance is a Very Bad Thing -- it means there's no market for the drugs they can already make cheaply and easily, and it means they have to increase their R&D to find other treatment options.
Nope. He is doing things quicker than before, by doing things wirelessly. His previous tool was a USB numeric keypad, because the software he uses is designed to operate from a small number of buttons. The layout and size of the buttons makes the most frequent actions easy for him to find, whereas if he was using a full bluetooth minikeyboard, as per xlsior's suggestion, he'd have more buttons than he needed, and he'd constantly be hunting for the right key.
The only potential inefficiency is in the fact that the Power Glove goes on the right hand, so he's pushing all the buttons with his left, but the cost in time of using your weak hand is in the order of milliseconds, so it's hardly a big problem.
Two test pilots died flying Branson's last spacecraft, and people commented that it was a waste of life that all they were pioneering was a roller-coaster for rich people. As Virgin Galactic gears up to restart test flights, they need to build up a media narrative that suggests some progress and benefit to humanity as a whole. Plus the fact that Branson does genuinely want to make a better world. Like most rich philanthropists, he rationalises his wealth as a reward for all the good work he's done, thus avoiding ever having to recognise his own hyposcrisy.
Oh, and as for competing with Elon Musk -- Richard Branson was doing publicity stunts long before anyone knew the name Elon Musk. In the 80s he was commissioning massive high altitude hot air balloons for round-the-world record attempts. In the 80s he rode through New York on top of a tank. Elon Musk is a bit of a Johnny-come-lately in comparison to Branson, and Musk doesn't get anywhere near as involved in his own publicity machine as Branson.
With crude oil price per barrel price Plummeting to $30 and the Swiss Franc Re-valuation, i.e. Euro wont buy 83 cents in August 2015, Branson's Virgin Galactic Empire is UP IN SMOKE!
Hmmm... I would have thought that the oil crash would be good news for the Euro. None of the world's major fields is situated in Eurozone countries, and as your message indicates, global trade in petroleum is managed in dollars. A drop in the price of oil means a significant drop in the number of dollars being traded internationally and will reduce the cost of trade and other economic activity within Europe, so the Euro will probably buy a lot more than 83 cents in August if things keep going the way they are now.
Indeed, but this is like bad spoken language teaching too. "What is the first-person singular subjunctive present suffix of third conjugation verbs?" may get the right answer, but the skill the learner really needs is to be able to say "I ask" in Latin. Any teaching that focuses on structure without meaning is hopelessly lost. The reason that coding should be considered a fundamental skill is that the alternative is to have a specialist class of coders who have no subject knowledge. How do you learn a language if you don't have anything to say?
There were a lot of computer concepts that didn't make sense to me until I found a real-world problem they modelled. I hated OO with a passion at university, because the examples and tasks we were given were contrived, rather than demonstrating a real-world need. As such, I think coding would be far better taught within the context of a content subject -- engineers have different problems from biologists, who have different problems from linguistics researchers. That also leads us down the road to declarative programming, because our beginners' programming skills courses are currently dominated by various fiddly technical details of the imperative language we're using that we have to deal with before we get to deal with our first problem.
All my life, the perennial story has been that kids are stupid. American kids aren't measuring up to any other country. We're always last in lists of how educated people are. Regardless of how much we spend. The education industry perpetuates this perennial stupidity to get more money. Kids will NEVER be smart. What's the most difficult thing anyone can ever try to do? Write working code that adequately solves a problem. Let's teach it to kids! So they'll be stupid. Kids will NEVER measure up with coding.
Your argument is akin to suggesting that we shouldn't teach reading and writing because most kids will never be able to write an internationally best-selling trilogy of crime novels. There are many day-to-day tasks that can be improved with a little bit of coding knowledge. If every kid learned a modest amount of coding in school, the curse of the corporate world, Excel, would finally be redundant. Spreadsheets have survived this long because they allow people to do data manipulation that they wouldn't otherwise be able to do; but in an inefficient way that also ends up producing unmaintainable code. Yes, Excel is a programming language, and people spend a heck of a lot of time trying to work out how to program in it. Let's put that time into something more useful.
I think that was his point. As long as our interaction with data is mediated by a weak direct-manipulation metaphor, we restrict ourselves unnecessarily. Everyone should be able to talk to their CSV files with a batch script and grep etc.
I believe basic "coding" should be a part of general education. The kind you would do in BASIC or a spreadsheet. Everybody has a computer, they could be using them more effectively if they knew how to automate stuff.
In my office, I sometimes get called in to split CSV files of addresses into street and streetnumbers; everybody should be able to do that in any spreadsheet. Nobody should have to call in a professional developer for such tasks.
Exactly. Even when working in an IT company, I was given tasks that involved manually looking through users one by one to check group memberships, and manually make a list. Instead I did an export from Active Directory and spent a morning learning enough about .BAT scripting to extract the information I needed. Three days' work in my bosses' estimation, and I did it in less than an hour with a scrappy, imperfect script and manual checking of failed cases only. Everyone should be able to do that.
But in order for that to happen, we have to start moving away from strictly imperative programming and more towards declarative programming. People keep telling me that declarative is inefficient... but for scheduling one-off tasks, the computational efficiency is irrelevant as long as it's quicker than doing it manually. The complexity of imperative code is only efficient through scale -- a production system serving millions of users for years needs to be efficient. A hacked-up script to process a one-off data extract, not so much.
Besides, how many of you use map, filter and reduce. Are these not declarative statements? Do you know what order map and filter process the list in? No -- you will assume (for reasons of computational efficiency) that it's linear, but you can't be sure if it's head first or tail first. Do you know whether the reduce statement will evaluate every item or skip out for efficiency? eg. if your function is "x or y", will reduce know to stop as soon as false is returned?
These statements are declarative, and in the case of map and filter, they are intuitive -- I can think of no way of modelling these concepts that is more intuitive, and without map and filter, you're left writing unnecessary sequences of statements until you can't see the woods for the trees. My first reaction to map/reduce type programming was that it obscured the program logic, but as I got used to it, I started loving the way you just told the computer what to do and it did it. In fact, I realised that I had been programming that way ever since I started programming, but reinventing tiny variations of the wheel for each different task.
Developers will still need a high degree of control over execution, so "serious" programming will always stay mostly at the "imperative" end of the scale, but casual coding should be avaiable to all, and it needs to be far more declarative. The many obstacle to this happening is that computer languages are written by developers, and they forget that development is not the only use for coding.
Indeed. Part of the allure of the modern smart phone was that it could replace many of the various existing devices. It's a phone, camera, music player, and game machine all rolled into one. Never mind that there are plenty of other, more niche devices that it can replace as well.
That depends on your usage. I don't use my phone as a cycle satnav due to battery life worries. When I go on a cycling holiday, I have (at the very least) my phone, my GPS, and an ebook reader. When I camp for the night, I have a very narrow window to get some charge into the devices while reception is still open, or I have to use the razor sockets in the washrooms and risk stuff getting nicked. Because of that, I also like to take a high-capacity USB battery pack, so I might have 4 devices that could do with a simultaneous charge. If I want music on my next trip, I'll probably buy a separate (keyring sized) MP3 player, which means possibly having 5 devices that I might want to simultaneously charge.
I will always try to avoid that situation (and now that I have a solar panel, that should be easier) but topping up the phone and GPS daily is a must, so I think what I need is at least a 3-port charger.
"Timothy was the only Slashdot person working CES, so it's shocking that he managed to cover as many (hopefully interesting) products as he did, considering that even the biggest IT journo mills don't come close to total coverage of the overwhelming muddle CES has become in recent years"
Isn't it a bit much to start telling all of /. how wonderful /. is in TFS? It's kind of preaching to the choir, but in such a way as to make the choir think the preacher's actually a bit full of himself, and make them want to give up the choir....
But why say something that has happened can never happen?
Mustard gas in WWI was delivered in artillery barrages. Multiple large shells delivered over a large area. Mustard gas cannot be delivered in sufficient quantity by Hubsan quadcopter to cause any real harm whatsoever. Claiming the two situations are at all comparable is like suggesting because the first nuclear bombs used hydrogen, we should be afraid of terrorists using dihydrogen monoxide....
You wouldn't scout the defences, because that risks giving the game away. You just try it. Either it works, and causes panic; or it gets blown up, reported in the press, and causes panic. Terrorist attacks don't have to hit their target to be successful. The USA is a terrorist's dreamland, because the reaction to attacks is so extreme (like calling the CIA because you see "pressure cooker" in someone's search history).
I guess the guys behind SpaceX's last landing attempt weren't halfway competent, then? Obviously they should have made sure a crash couldn't happen before attempting a landing. What a bunch of idiots.
Ah yes, because a brand-new experimental test craft is exactly the same as an off-the-shelf remote controlled vehicle owned and tested by thousands of hobbyists across the world.
Or do you think that the unusual flatness of the White House lawn makes it a uniquely difficult environment to fly over....?
Degausser small enough to be carried by a quadcopter small enough to sneak in: Only degausses itself.
Also fritzes the magnetic field running the rotor motors, causing the quadcopter to crash.
The fact that no one saw it coming in. It all fun and games until someone rigs it with explosives and damages something or someone. This could have been a proof of concept attempt.
Could have been... but probably wasn't. I'm guessing it was a $50 Walmart toy. Why? Because it ran out of batteries without warning while over the White House lawn and the owner couldn't reclaim it because of the security fence. Larger drones have battery warnings and some even have GPS-guided return-to-base functions on low battery.
Using a micro-quad is no proof-of-concept at all, as it wouldn't be able to carry a sufficient payload, and your goal would be to verify that a copter large enough to deliver a considerable amount of explosives could approach without being detected. Such a model would also be equipped with autonomous GPS guidance (so the operator can escape before it does the deed) and wouldn't land on the lawn. Even if the operator chose to abandon the test vehicle, it would be programmed to ditch outside the security cordon, specifically to avoid the current situation, because they are now trying to determine how to prevent repeat occurrences. (ie a proof of concept that alerts the target to the possibility is no use at all. It's as stupid as shining a laser sight through someone's window the day before the assassination attempt, telling the target to hide.)
No it's not. A true republic must be democratic, but it can employ any model (ie type) of democracy it wants.
Representative democracy is called a republic in other places because it does not allow the population to elect its officials directly like a democracy
Errm... representative democracy is where the population elects its officials (aka "representatives"). The only other type of democracy I know of is direct democracy, where the people vote directly on everything (which is impractical).
I think what you're trying to get at is more something about federal or supra-national systems where elected representatives for your local block vote on your behalf for someone to represent them at the next level up.
For example, it seems very odd to me that the member-states of the EU send directly-elected MEPs to the European Parliament. Surely the government should be negotiating on our behalf at the international level? I mean, we don't vote on our NATO and UN representatives. How can MEPs further the interests of their country if they don't represent the government of the country?
In CauseBy's example, the electorate elect representatives.
The technical term for which is "representative democracy". Other than "direct democracy", it's the only recognised form of democracy.
Something can be described in multiple ways simultaneously. You, for example, are an Anonymous Coward, but that doesn't mean you're not a human being. "The sun" is also "a star".
Not all unemployed people are "welfare bums". Unemployment exists.
Or indeed "The Declaration of Arbroath" where the nobles and church in Scotland made clear that the king was answerable to the country. The UK isn't just England, after all.
Like Common Lisp, e.g.
That's not quite what I meant. Lisp can act as a metalanguage, so you can write your own languages in it, but then every single program ends up with its own language.
I'm thinking or a language that consists of multiple "variations on a theme" to allow multiparadigm programming. The problem with most "functional" languages is that they compromise the core concepts of functional programming in order to be useful -- side-effects and monads mean that the "function" is not a mathematical function (provides the same answer for the same input every time) so caching to avoid repeat evaluation is impossible, and there's lots of human optimisation required to avoid wasted cycles.
But if we took all that useful stuff out of FP, what can FP usefully do? Sit as inner code servicing requests by the main code outside. You could therefore have a language with two distinct types of code units: proc and fun. A proc can call a fun, but a fun can't call a proc, because procs allow mutability and side-effects, but funs don't. The body of a proc is a series of statements, but a fun contains only a single expression.
A higher-order function given a proc would return a proc, but if given a fun it would return a fun. Notice that passing a procedure to higher-order function does not break the mathematical integrity of the higher-order function, because it will always return the same procedure for a given input procedure.
Indeed -- a multiparadigm "language" doesn't have to actually be a single language at all. It can be multiple languages with a single datatype system and call mechanism. (I'm personally more interested in this as a way to combine functional programming with procedural programming, but it would work just as well for OO with non-OO.)
The problem is, drug companies don't "invent" antibiotics at all -- they isolate them from naturally occurring sources. There is a slump in the discovery of new antibiotics at the moment, so for the pharmaceutical industry, antibiotic resistance is a Very Bad Thing -- it means there's no market for the drugs they can already make cheaply and easily, and it means they have to increase their R&D to find other treatment options.
Nope. He is doing things quicker than before, by doing things wirelessly. His previous tool was a USB numeric keypad, because the software he uses is designed to operate from a small number of buttons. The layout and size of the buttons makes the most frequent actions easy for him to find, whereas if he was using a full bluetooth minikeyboard, as per xlsior's suggestion, he'd have more buttons than he needed, and he'd constantly be hunting for the right key.
The only potential inefficiency is in the fact that the Power Glove goes on the right hand, so he's pushing all the buttons with his left, but the cost in time of using your weak hand is in the order of milliseconds, so it's hardly a big problem.
+1 troll. :-)
*shrug* That doesn't change its value as a marketing line....
Two test pilots died flying Branson's last spacecraft, and people commented that it was a waste of life that all they were pioneering was a roller-coaster for rich people. As Virgin Galactic gears up to restart test flights, they need to build up a media narrative that suggests some progress and benefit to humanity as a whole. Plus the fact that Branson does genuinely want to make a better world. Like most rich philanthropists, he rationalises his wealth as a reward for all the good work he's done, thus avoiding ever having to recognise his own hyposcrisy.
Oh, and as for competing with Elon Musk -- Richard Branson was doing publicity stunts long before anyone knew the name Elon Musk. In the 80s he was commissioning massive high altitude hot air balloons for round-the-world record attempts. In the 80s he rode through New York on top of a tank. Elon Musk is a bit of a Johnny-come-lately in comparison to Branson, and Musk doesn't get anywhere near as involved in his own publicity machine as Branson.
Ha ha.
With crude oil price per barrel price Plummeting to $30 and the Swiss Franc Re-valuation, i.e. Euro wont buy 83 cents in August 2015, Branson's Virgin Galactic Empire is UP IN SMOKE!
Hmmm... I would have thought that the oil crash would be good news for the Euro. None of the world's major fields is situated in Eurozone countries, and as your message indicates, global trade in petroleum is managed in dollars. A drop in the price of oil means a significant drop in the number of dollars being traded internationally and will reduce the cost of trade and other economic activity within Europe, so the Euro will probably buy a lot more than 83 cents in August if things keep going the way they are now.