THIS. I deal with sloppy coding convention all the time but at least when the code is commented I can get a mile-high view of what each section is doing w/o having to spend time carefully piecing the work apart to figure out what happened.
// TODO: fix this
Not all comments give you a mile high view. Some are just pointless wastes of disk space...
All of the above are useless comments, yet they seem to sneak into everything. Worse still are comments that are meaningless to anyone who did not write them, or comments that make reference to undocumented conversations (e.g. "This is the implementation we spoke about on Tuesday").
Don't waste time writing useless comments. If you do not have time to fix a function, the comment should explain what needs fixing so that someone else can do it without first spending half a day debugging.
You already can run your own web server free of any corporate oversight. Guess how many people do.
So? The web is still decentralized, and is one of the most popular and successful decentralized software systems ever developed. We don't need the average Joe running his own web server, we just need enough so that no single organization actually controls the system. The fact that the operator of a web server might have oversight over the sites on that specific server is not nearly as relevant as the fact that they do not have any oversight when it comes to the sites that link to that server's sites.
You can already run your own mail server free of any corporate monitoring. Guess how many people do.
This is not just a "same as above" answer, because with email, we can do better: we can encrypt our mail so that the people running the system cannot read it, and we can send it through the anonymous remailer system to thwart traffic analysis. Email is a case in point when it comes to distributed social networking; it is a bit dated in terms of features ("tagging" photos is not exactly easy to do), but it was not that long ago that people exchanged email addresses when they met each other (and in fact, people still do; it is just that now, some people don't bother, and only go on Facebook).
What we really need is a standard for social networking messages, so that different systems can interoperate. Sadly, the days when that would have been considered a cool or heroic thing to do are long gone; now everyone just wants to amass collections of data on their users, and allowing competitors to have a glimpse of that data is a mortal sin. The reason email, the web, Usenet, IRC, and other highly successful distributed systems were so highly successful was because anyone could extend the system, and any use could then make use of that extension. Anyone with a browser can connect to a website, anyone with an email client can receive mail from a mail server, anyone with an IRC client can chat through an IRC server, and if you use serverA and want to switch to serverB, you can do so at no loss. Yet if you use Facebook and decide you like Google+ instead, you have to either sacrifice all your Facebook friends / contacts / data, or else you have to have and maintain two separate accounts.
In short, what we need is not a new system, but a standard message format for social networks and a standard protocol for connecting to a social networking system -- in other words, we need to unify the world's social networking systems, and decouple the user interface from the system itself. Once we have that, this becomes a matter of getting at least two social networking systems to make use of that format and protocol; the rest would then be forced to do the same, for fear of being left out of the global social networking system. Of course, that is a hard sell -- what reason does Facebook have to allow its users to exchange messages/tags/etc. with Google+ users, and why would they ever commit any developers to such a project?
The UK is not the USA; here in the US, we can point to our constitution and say, "We are supposed to have these rights, so what's up with this snooping by the government?!" In the UK, there is no such guarantee of a right to privacy.
It is interesting to refer to this as a "threat" -- what exactly is being threatened here? There is nothing illegal about using cryptography in the UK, and the UK has a key disclosure law. It is only logical for people to use cryptography when they have good reason to suspect that untrusted third parties might be reading their traffic, and frankly, we should have been encrypting our communications from the start.
You are not so free if you live in a place where your TLS connections are being tampered with -- which is, unfortunately, quite a lot of places. The App Store gives you a digitally signed program, so you have at least some assurance that it was not tampered with (there are no CAs involved; Apple's key is built in). That is the benefit of the App Store; the problem is that the key holder (Apple) has absurd, far-right policies banning applications that might offend anyone or which criticize politicians (and don't think for a moment that this is anything less than an enforcement of conservative values; yes, Democrats are conservative).
It isn't like this is 1984 with Big Apple telling you that you must buy an iPhone
No, this is more like Brave New World, where you are a social outcast if you do not choose to participate in the attacks on your freedom. I do not have Facebook, I do not have a smart phone and I do not even carry my dumb phone around, and I have to keep reminding people to email me if they want to invite me to something. Now, I am in a position where not being invited to parties is OK (grad school can really take up one's life) and I have little time for gossip, but I can understand that to be part of the mainstream of modern society, one must have certain online accounts / electronics / etc.
The problem is that we have not yet acknowledged that Apple's control over iOS requires them to behave ethically and responsibly; we are still clinging to the "greed is good" fantasy that says, "Well if they are making money, all is well with the world!" If Apple is going to control an important communications tool that the mainstream of society relies on, they are going to have to stop censoring political uses of that tool, period.
There is also the security model of the app store: the app is digitally signed by Apple, which helps provide some confidence that it was not tampered with by a third party. For someone living under a repressive government (or even in some American high schools), having your TLS connection be tampered with is common -- so how could such a person know that they are seeing the real locations of those strikes, and not the picture that their government wanted them to see?
Of course, this whole situation could be avoided by allowing users to download software from other app stores. Not that Apple is willing to give up on the vice grip it has on iOS users.
Well, I am flattered that you have faith in me, so let me defend what I said.
Yes, this can abused; however, the Internet is already being used to spread malware written by governments, which are being used in some cases to spy on dissidents and suppress free speech. If I saw something like FinFisher or Stuxnet on a network I control, you can bet that I would disconnect that system. If there was, in fact, a good reason for that software to be running, the person running it can take a few minutes to explain what they are doing, and I can reconnect them.
Sure, a government could silence dissidents by sending them malware and getting their ISP to disconnect them, but that is not the direction that we are seeing. Governments tend to prefer to spy on dissidents, then use that insider knowledge to shape their own propaganda. We have also started to see governments "desynchronize" communication, so that dissidents are only communicating with other dissidents, thus reducing the chance that they will become aware that they are not actually getting their message out.
Now, if you are concerned about your packets being inspected, you should encrypt your traffic and possibly route it through Tor or I2P. I would prefer to see that become more widely deployed than to say that we should allow botnet nodes that are actually being used for harm (say, to run a denial of service attack) to remain connected to the Internet, or that the FBI should be maintaining DNS servers for people who are not even aware that they have some worm installed. I already assume that anything I do online is being monitored, because everything I do online is actually being monitored (I am at a university that has little respect for privacy).
Look, we already block spammers with this sort of thing, and there are few who would really complain about it. We can still protect our privacy by encrypting our mail and using anonymous remailers, and we are not stuck relying on the services of large corporations. Yes, spammers still find a way, and I am sure that malware writers will still find a way; but the freedoms you care about are not going to be threatened by having ISPs stop malicious systems from connecting, any more than spam greylisting and filtering has threatened your freedom (and if FinFisher mail was dropped by the mail server, a lot of dissidents in Bahrain and Turkmenistan would be safer).
It is not as though you will be shot in the head if malware is detected. You call up your ISP and ask to know what happened, they explain, and then you tell them that you were running some application that is not actually malware, and you should get reconnected, at least in theory. In practice, things are probably going to be a bit different, but again, this is not permanent.
If it does, we have bigger problems to solve first.
Newsflash: We have big problems when it comes to Internet security. The network was designed by and for people who all trust each other, and it is being used by people who are not trustworthy.
Wouldn't it be great if nobody who criticized the government could send their message to anyone who is not already a dissident? Let's write a worm that checks what people are writing, then hides from them the fact that only fellow dissidents are seeing their emails/usenet posts/facebook feeds!
The problem is that allowing infected machines to remain connected also has the potential to be abused. Governments are already releasing malware onto the Internet to further their political aims, and they are able to do so because machines that have malware running are not being denied access.
The problem is that we took a network designed by and for people who all trust each other, and allowed a bunch of untrustworthy, greedy, and politically ambitious people to run wild with it. I would like to say we need a new approach, but the people in control now seem to think that "security" means "making sure dinosaur business tactics remain profitable," so any effort to retool the network would easily be hijacked by the people whose abuse we wish to stop.
The fee also has the effect of preventing people from participating in open source development, except for those professionals who have little difficulty paying. Open source development means more than just putting your source code out there (licensing issues with the app store aside), it means "treating users as developers" (see CATB) and being able to fork projects whose developers are making decisions you do not like. It is not the case that only professional developers do such things, nor is it the case that the iPad's users could not be expected to engage in such participation (even if it would only be a minority of those users). This is not a spam filter; it is a gated suburban community that won't allow "undesirable people" to wander in.
This need not be an "either-or" situation; there is a third option here, which is to allow users to install software from sources other than the app store if they choose to do so. Apple could make a "jailbreak switch" that requires enough effort to find that most users will not be socially engineered into installing malware, but which allows unsigned software to be installed (or perhaps just allows the user to install their own certificates, so that they can sign software themselves).
The problem is that Apple will not even allow any other option, except for those who pay them: everything must be through the app store, or else you need to attack your computer until it allows you to violate Apple's restrictions. That is not necessary, at least if we accept the argument that the app store model really does add value to the platform (and I think there is certainly something to that argument; I almost never install software outside of my Linux distro's repositories). Perhaps Apple does not have much confidence in the value of the App Store, or more likely they are concerned that they will lose money if they ever lose control over their products.
There is no shortage of mathematicians, so why do we bother with math education? There is an overabundance of people who can read and write, so why bother with English classes? Let's just have the bare minimum vocational training, right?
The last thing we need to do is to teach kids that they should just mind their own business and focus on the things their superiors tell them are important. Telling kids that they are not allowed to hack is telling them that programming is just a day job, with rules set by their superiors, and that they should only be doing it during their assigned work hours. That is precisely the wrong message to send, it is as bad as telling them that they shouldn't read unless it is part of their job.
IBM, a participant in the market, gave us PCs. Before that, other participants in the market gave us 8-bit home microcomputers.
No, people like Ed Roberts, Lee Felsenstein, and Steve Wozniak gave us PCs. IBM was late to the game; before IBM finally made the decision to pursue PCs, they were trying to sell mainframes and computation utility products, which is exactly what PCs were meant to thwart. IBM did not invent the personal computer, and it took them years to even realize that computation utilities were not even coming close to competing with PCs.
As computer technology continues to develop, the definition of what is called a "high level" or "macro" language changes.
So what? VBA is not a Windows development system, it is a macro language for a system that happens to run on Windows.
Is there a solid dividing line between "macro systems" and proper interpreted programming languages such as JavaScript, PHP, and Python? Or are JavaScript, PHP, and Python, in which high-profile home-user-facing applications are implemented, likewise "not a substitute"?
Well, if you have a tool that allows someone to use one of the above languages to develop Windows applications i.e. to actually use the Windows abstractions, APIs, etc., then sure, you have a development tool for Windows. If, on the other hand, you happen to be running your browser on a Windows system, the browser's Javascript interpreter is not an environment for developing Windows applications by any stretch of the imagination.
Sure, "macro language" is not a particularly well defined term, but I was using it to indicate the difference between a development environment that is constrained to one application and an environment that exposes the abstractions of the operating system. It is not that these languages are somehow less valid than others, but rather that these are not languages for an operating system. You are not writing Windows programs if you are writing VBA code; you are writing software that will run inside of a program that happens to run on Windows. Yes, this can get fuzzy sometimes (see, for example, what happens when GNU CLisp exports a standalone executable), but I do not think that VBA or this iOS scripting environment are such fuzzy cases.
OK, but why should we rely on "the market" to dictate reason to us? The market is not what gave us PCs, the Internet, or the World Wide Web -- in fact, that market was trying to get us to accept restricted, tightly controlled alternatives.
No sane person can claim that VBA is a system for developing Windows applications. It is a macro system, one that is complete enough to allow for the creation of commercially viable applications, but a macro system nonetheless. VBA is not a substitute or competitor for Visual Studio or other Windows development systems.
OK, great, and the DMCA does not restrict anyone from ripping DVDs, it only prevents people from distributing their method of doing that. That argument is crap and you know it. That argument is a direct attack on open source development (which depends on the ability of others to run your code, including people who are not developers), and it is based on the notion that having Apple approve the software that people install and use is somehow acceptable (and nevermind that they are not just refusing to allow malware, but also any political cartoons, and that developers are at Apple's mercy).
Yeah, and some teenager working on his hobby program late at night might actually want to send his code to other people, so that they can run it and possibly work with him. Do you think that a teenager finds $100 easy to come by?
Sure, iOS and Android will be "fine" without hobbyist teenagers or college students. That does not mean that excluding them is a good thing for users or developers.
the high school's computer lab, the city library's computer lab
I was suspended for programming a computer in middle school (OK, I'll admit, the program I wrote was not exactly in line with school rules, but what do you think 13 year old boys do?), and my city's libraries do not allow people to run any software that was not installed by the IT staff. I would not bank on CS classes being the savior here either; kids don't become hackers who can breeze through their CS course if they only get to program 90 minutes each day, and only those who can breeze through their class assignments have time to practice programming during class. When I took APCS in high school, our computers were locked down to stop us from even getting access to a terminal (yes, really -- only the approved Java IDE was allowed), and so any in-class "practice" involved either defeating the lock down (which was not all that hard) or just writing Java code.
a user account on the family PC,
Is there any guarantee that the family would have a PC? Things seem to be moving away from that sort of scenario. The only real hope one would have is that a family member is a hacker, or that a family member sees that the kid would benefit from having access to a PC. I do not think it is terribly far fetched to say that in 5-10 years, there will be people who only have "walled garden" computers in their homes.
or at least an Android tablet owned by another family member on which to run AIDE.
Perhaps, but by that point, you are no longer talking about an "edge case," you are talking about a large fraction of people who will not fall into the group. Right now, there are households that only have Apple products i.e. all laptops/desktops, tablets, and phones are Apple. If your only access to a programmable computer is Aunt Sally's Android tablet, you have pretty limited access.
Look, I get what you are saying -- kids will find their way to programmable computers. The problem is that, unless their parents can recognize that their children really do need a PC to hack on, the kids will only be getting access to other people's computers, and those other people may not be very understanding about having some teenager turn their computer into a development system.
In other words, you first need to jailbreak your device (also known as attacking your own computer). That is not an answer until Apple makes jailbreaking a built-in feature rather than an exploit.
Which is enough to keep people away. If I had an iPad in high school, and no other computer access, I would not have been to afford that fee.
Apple has never required the purchase of a high-end desktop or workstation.
No, they have only required a system running Mac OS X, and now it is starting to look like Mac OS X is going to be locked down as well, or that Apple is going to start installing iOS on their consumer laptop / desktop lines.
Wrong. Outside of games it is in fact common.
Hm...what are the most popular apps in the App Store...
Well, if we delete the games from that list, what do we see? Google, Facebook, Skype, Microsoft, and a smaller company called TapTapTap. Where are these popular apps from individual developers? I guess maybe they are just not popular enough to make it into the top ten, but here is the top 100 for free apps, and I am not seeing too many individuals even when games are excluded:
So, let me reiterate my question for you: where are those individuals who supposedly write all of this popular software?
Users have that freedom if they want it.
...by attacking their own computers.
If they want to be in the App store they must pay the App Store owner, one way or another.
...and if they want to distribute their software without going through the app store, they can only give it to people who are also willing to attack their own systems. Nice choice.
You are envisioning some odd world were Apple is making tons of money on DEVELOPERS.
No, I am envisioning a world where Apple makes tons of money by controlling their products long after those products were purchased. That would be called "the world as it exists today."
THIS. I deal with sloppy coding convention all the time but at least when the code is commented I can get a mile-high view of what each section is doing w/o having to spend time carefully piecing the work apart to figure out what happened.
Not all comments give you a mile high view. Some are just pointless wastes of disk space...
"This does not work"
"What the f*** is this doing?"
"TODO: fix"
All of the above are useless comments, yet they seem to sneak into everything. Worse still are comments that are meaningless to anyone who did not write them, or comments that make reference to undocumented conversations (e.g. "This is the implementation we spoke about on Tuesday").
Don't waste time writing useless comments. If you do not have time to fix a function, the comment should explain what needs fixing so that someone else can do it without first spending half a day debugging.
You already can run your own web server free of any corporate oversight. Guess how many people do.
So? The web is still decentralized, and is one of the most popular and successful decentralized software systems ever developed. We don't need the average Joe running his own web server, we just need enough so that no single organization actually controls the system. The fact that the operator of a web server might have oversight over the sites on that specific server is not nearly as relevant as the fact that they do not have any oversight when it comes to the sites that link to that server's sites.
You can already run your own mail server free of any corporate monitoring. Guess how many people do.
This is not just a "same as above" answer, because with email, we can do better: we can encrypt our mail so that the people running the system cannot read it, and we can send it through the anonymous remailer system to thwart traffic analysis. Email is a case in point when it comes to distributed social networking; it is a bit dated in terms of features ("tagging" photos is not exactly easy to do), but it was not that long ago that people exchanged email addresses when they met each other (and in fact, people still do; it is just that now, some people don't bother, and only go on Facebook).
What we really need is a standard for social networking messages, so that different systems can interoperate. Sadly, the days when that would have been considered a cool or heroic thing to do are long gone; now everyone just wants to amass collections of data on their users, and allowing competitors to have a glimpse of that data is a mortal sin. The reason email, the web, Usenet, IRC, and other highly successful distributed systems were so highly successful was because anyone could extend the system, and any use could then make use of that extension. Anyone with a browser can connect to a website, anyone with an email client can receive mail from a mail server, anyone with an IRC client can chat through an IRC server, and if you use serverA and want to switch to serverB, you can do so at no loss. Yet if you use Facebook and decide you like Google+ instead, you have to either sacrifice all your Facebook friends / contacts / data, or else you have to have and maintain two separate accounts.
In short, what we need is not a new system, but a standard message format for social networks and a standard protocol for connecting to a social networking system -- in other words, we need to unify the world's social networking systems, and decouple the user interface from the system itself. Once we have that, this becomes a matter of getting at least two social networking systems to make use of that format and protocol; the rest would then be forced to do the same, for fear of being left out of the global social networking system. Of course, that is a hard sell -- what reason does Facebook have to allow its users to exchange messages/tags/etc. with Google+ users, and why would they ever commit any developers to such a project?
...yet somehow, email remains decentralized...
https://en.wikipedia.org/wiki/Gordon_Kaye_v._Andrew_Robertson_and_Sport_Newspapers_Ltd
https://en.wikipedia.org/wiki/Wainwright_v_Home_Office
The UK is not the USA; here in the US, we can point to our constitution and say, "We are supposed to have these rights, so what's up with this snooping by the government?!" In the UK, there is no such guarantee of a right to privacy.
It is interesting to refer to this as a "threat" -- what exactly is being threatened here? There is nothing illegal about using cryptography in the UK, and the UK has a key disclosure law. It is only logical for people to use cryptography when they have good reason to suspect that untrusted third parties might be reading their traffic, and frankly, we should have been encrypting our communications from the start.
You are not so free if you live in a place where your TLS connections are being tampered with -- which is, unfortunately, quite a lot of places. The App Store gives you a digitally signed program, so you have at least some assurance that it was not tampered with (there are no CAs involved; Apple's key is built in). That is the benefit of the App Store; the problem is that the key holder (Apple) has absurd, far-right policies banning applications that might offend anyone or which criticize politicians (and don't think for a moment that this is anything less than an enforcement of conservative values; yes, Democrats are conservative).
It isn't like this is 1984 with Big Apple telling you that you must buy an iPhone
No, this is more like Brave New World, where you are a social outcast if you do not choose to participate in the attacks on your freedom. I do not have Facebook, I do not have a smart phone and I do not even carry my dumb phone around, and I have to keep reminding people to email me if they want to invite me to something. Now, I am in a position where not being invited to parties is OK (grad school can really take up one's life) and I have little time for gossip, but I can understand that to be part of the mainstream of modern society, one must have certain online accounts / electronics / etc.
The problem is that we have not yet acknowledged that Apple's control over iOS requires them to behave ethically and responsibly; we are still clinging to the "greed is good" fantasy that says, "Well if they are making money, all is well with the world!" If Apple is going to control an important communications tool that the mainstream of society relies on, they are going to have to stop censoring political uses of that tool, period.
There is also the security model of the app store: the app is digitally signed by Apple, which helps provide some confidence that it was not tampered with by a third party. For someone living under a repressive government (or even in some American high schools), having your TLS connection be tampered with is common -- so how could such a person know that they are seeing the real locations of those strikes, and not the picture that their government wanted them to see?
Of course, this whole situation could be avoided by allowing users to download software from other app stores. Not that Apple is willing to give up on the vice grip it has on iOS users.
Well, I am flattered that you have faith in me, so let me defend what I said.
Yes, this can abused; however, the Internet is already being used to spread malware written by governments, which are being used in some cases to spy on dissidents and suppress free speech. If I saw something like FinFisher or Stuxnet on a network I control, you can bet that I would disconnect that system. If there was, in fact, a good reason for that software to be running, the person running it can take a few minutes to explain what they are doing, and I can reconnect them.
Sure, a government could silence dissidents by sending them malware and getting their ISP to disconnect them, but that is not the direction that we are seeing. Governments tend to prefer to spy on dissidents, then use that insider knowledge to shape their own propaganda. We have also started to see governments "desynchronize" communication, so that dissidents are only communicating with other dissidents, thus reducing the chance that they will become aware that they are not actually getting their message out.
Now, if you are concerned about your packets being inspected, you should encrypt your traffic and possibly route it through Tor or I2P. I would prefer to see that become more widely deployed than to say that we should allow botnet nodes that are actually being used for harm (say, to run a denial of service attack) to remain connected to the Internet, or that the FBI should be maintaining DNS servers for people who are not even aware that they have some worm installed. I already assume that anything I do online is being monitored, because everything I do online is actually being monitored (I am at a university that has little respect for privacy).
Look, we already block spammers with this sort of thing, and there are few who would really complain about it. We can still protect our privacy by encrypting our mail and using anonymous remailers, and we are not stuck relying on the services of large corporations. Yes, spammers still find a way, and I am sure that malware writers will still find a way; but the freedoms you care about are not going to be threatened by having ISPs stop malicious systems from connecting, any more than spam greylisting and filtering has threatened your freedom (and if FinFisher mail was dropped by the mail server, a lot of dissidents in Bahrain and Turkmenistan would be safer).
It is not as though you will be shot in the head if malware is detected. You call up your ISP and ask to know what happened, they explain, and then you tell them that you were running some application that is not actually malware, and you should get reconnected, at least in theory. In practice, things are probably going to be a bit different, but again, this is not permanent.
If it does, we have bigger problems to solve first.
Newsflash: We have big problems when it comes to Internet security. The network was designed by and for people who all trust each other, and it is being used by people who are not trustworthy.
Wouldn't it be great if nobody who criticized the government could send their message to anyone who is not already a dissident? Let's write a worm that checks what people are writing, then hides from them the fact that only fellow dissidents are seeing their emails/usenet posts/facebook feeds!
The problem is that allowing infected machines to remain connected also has the potential to be abused. Governments are already releasing malware onto the Internet to further their political aims, and they are able to do so because machines that have malware running are not being denied access.
The problem is that we took a network designed by and for people who all trust each other, and allowed a bunch of untrustworthy, greedy, and politically ambitious people to run wild with it. I would like to say we need a new approach, but the people in control now seem to think that "security" means "making sure dinosaur business tactics remain profitable," so any effort to retool the network would easily be hijacked by the people whose abuse we wish to stop.
The fee also has the effect of preventing people from participating in open source development, except for those professionals who have little difficulty paying. Open source development means more than just putting your source code out there (licensing issues with the app store aside), it means "treating users as developers" (see CATB) and being able to fork projects whose developers are making decisions you do not like. It is not the case that only professional developers do such things, nor is it the case that the iPad's users could not be expected to engage in such participation (even if it would only be a minority of those users). This is not a spam filter; it is a gated suburban community that won't allow "undesirable people" to wander in.
This need not be an "either-or" situation; there is a third option here, which is to allow users to install software from sources other than the app store if they choose to do so. Apple could make a "jailbreak switch" that requires enough effort to find that most users will not be socially engineered into installing malware, but which allows unsigned software to be installed (or perhaps just allows the user to install their own certificates, so that they can sign software themselves).
The problem is that Apple will not even allow any other option, except for those who pay them: everything must be through the app store, or else you need to attack your computer until it allows you to violate Apple's restrictions. That is not necessary, at least if we accept the argument that the app store model really does add value to the platform (and I think there is certainly something to that argument; I almost never install software outside of my Linux distro's repositories). Perhaps Apple does not have much confidence in the value of the App Store, or more likely they are concerned that they will lose money if they ever lose control over their products.
Should have been:
...if they do not have...
How do kids become interested in programming in the first place, if they do have any access to a programmable computer?
There is no shortage of mathematicians, so why do we bother with math education? There is an overabundance of people who can read and write, so why bother with English classes? Let's just have the bare minimum vocational training, right?
The last thing we need to do is to teach kids that they should just mind their own business and focus on the things their superiors tell them are important. Telling kids that they are not allowed to hack is telling them that programming is just a day job, with rules set by their superiors, and that they should only be doing it during their assigned work hours. That is precisely the wrong message to send, it is as bad as telling them that they shouldn't read unless it is part of their job.
IBM, a participant in the market, gave us PCs. Before that, other participants in the market gave us 8-bit home microcomputers.
No, people like Ed Roberts, Lee Felsenstein, and Steve Wozniak gave us PCs. IBM was late to the game; before IBM finally made the decision to pursue PCs, they were trying to sell mainframes and computation utility products, which is exactly what PCs were meant to thwart. IBM did not invent the personal computer, and it took them years to even realize that computation utilities were not even coming close to competing with PCs.
As computer technology continues to develop, the definition of what is called a "high level" or "macro" language changes.
So what? VBA is not a Windows development system, it is a macro language for a system that happens to run on Windows.
Is there a solid dividing line between "macro systems" and proper interpreted programming languages such as JavaScript, PHP, and Python? Or are JavaScript, PHP, and Python, in which high-profile home-user-facing applications are implemented, likewise "not a substitute"?
Well, if you have a tool that allows someone to use one of the above languages to develop Windows applications i.e. to actually use the Windows abstractions, APIs, etc., then sure, you have a development tool for Windows. If, on the other hand, you happen to be running your browser on a Windows system, the browser's Javascript interpreter is not an environment for developing Windows applications by any stretch of the imagination.
Sure, "macro language" is not a particularly well defined term, but I was using it to indicate the difference between a development environment that is constrained to one application and an environment that exposes the abstractions of the operating system. It is not that these languages are somehow less valid than others, but rather that these are not languages for an operating system. You are not writing Windows programs if you are writing VBA code; you are writing software that will run inside of a program that happens to run on Windows. Yes, this can get fuzzy sometimes (see, for example, what happens when GNU CLisp exports a standalone executable), but I do not think that VBA or this iOS scripting environment are such fuzzy cases.
OK, but why should we rely on "the market" to dictate reason to us? The market is not what gave us PCs, the Internet, or the World Wide Web -- in fact, that market was trying to get us to accept restricted, tightly controlled alternatives.
No sane person can claim that VBA is a system for developing Windows applications. It is a macro system, one that is complete enough to allow for the creation of commercially viable applications, but a macro system nonetheless. VBA is not a substitute or competitor for Visual Studio or other Windows development systems.
OK, great, and the DMCA does not restrict anyone from ripping DVDs, it only prevents people from distributing their method of doing that. That argument is crap and you know it. That argument is a direct attack on open source development (which depends on the ability of others to run your code, including people who are not developers), and it is based on the notion that having Apple approve the software that people install and use is somehow acceptable (and nevermind that they are not just refusing to allow malware, but also any political cartoons, and that developers are at Apple's mercy).
Yeah, and some teenager working on his hobby program late at night might actually want to send his code to other people, so that they can run it and possibly work with him. Do you think that a teenager finds $100 easy to come by?
Sure, iOS and Android will be "fine" without hobbyist teenagers or college students. That does not mean that excluding them is a good thing for users or developers.
the high school's computer lab, the city library's computer lab
I was suspended for programming a computer in middle school (OK, I'll admit, the program I wrote was not exactly in line with school rules, but what do you think 13 year old boys do?), and my city's libraries do not allow people to run any software that was not installed by the IT staff. I would not bank on CS classes being the savior here either; kids don't become hackers who can breeze through their CS course if they only get to program 90 minutes each day, and only those who can breeze through their class assignments have time to practice programming during class. When I took APCS in high school, our computers were locked down to stop us from even getting access to a terminal (yes, really -- only the approved Java IDE was allowed), and so any in-class "practice" involved either defeating the lock down (which was not all that hard) or just writing Java code.
a user account on the family PC,
Is there any guarantee that the family would have a PC? Things seem to be moving away from that sort of scenario. The only real hope one would have is that a family member is a hacker, or that a family member sees that the kid would benefit from having access to a PC. I do not think it is terribly far fetched to say that in 5-10 years, there will be people who only have "walled garden" computers in their homes.
or at least an Android tablet owned by another family member on which to run AIDE.
Perhaps, but by that point, you are no longer talking about an "edge case," you are talking about a large fraction of people who will not fall into the group. Right now, there are households that only have Apple products i.e. all laptops/desktops, tablets, and phones are Apple. If your only access to a programmable computer is Aunt Sally's Android tablet, you have pretty limited access.
Look, I get what you are saying -- kids will find their way to programmable computers. The problem is that, unless their parents can recognize that their children really do need a PC to hack on, the kids will only be getting access to other people's computers, and those other people may not be very understanding about having some teenager turn their computer into a development system.
In other words, you first need to jailbreak your device (also known as attacking your own computer). That is not an answer until Apple makes jailbreaking a built-in feature rather than an exploit.
pitifully small development registration fee
Which is enough to keep people away. If I had an iPad in high school, and no other computer access, I would not have been to afford that fee.
Apple has never required the purchase of a high-end desktop or workstation.
No, they have only required a system running Mac OS X, and now it is starting to look like Mac OS X is going to be locked down as well, or that Apple is going to start installing iOS on their consumer laptop / desktop lines.
Wrong. Outside of games it is in fact common.
Hm...what are the most popular apps in the App Store...
http://www.ibtimes.com/articles/311311/20120308/apple-time-popular-ios-apps.htm
Well, if we delete the games from that list, what do we see? Google, Facebook, Skype, Microsoft, and a smaller company called TapTapTap. Where are these popular apps from individual developers? I guess maybe they are just not popular enough to make it into the top ten, but here is the top 100 for free apps, and I am not seeing too many individuals even when games are excluded:
https://www.apple.com/itunes/charts/free-apps/
So, let me reiterate my question for you: where are those individuals who supposedly write all of this popular software?
Users have that freedom if they want it.
If they want to be in the App store they must pay the App Store owner, one way or another.
You are envisioning some odd world were Apple is making tons of money on DEVELOPERS.
No, I am envisioning a world where Apple makes tons of money by controlling their products long after those products were purchased. That would be called "the world as it exists today."