Getting rid of ALL scripting would be one modest step toward getting the digital world under control.
This means every form of interactivity on the Web that cannot be efficiently performed through form submission and full page reloads would have to move to a native app, and native apps are specific to one operating system. Good luck running a native Mac app on anything that's not a Mac.
it's pure FUD to bitch that the Java license didn't allow you to call your product 'Java' unless it provided a defined base of stuff. Would you foam at the mouth about Larry Wall if he reacted negatively to a company releasing a language that was only half like perl but named 'perl 4'?
It's not that the license didn't let you call it Java. It's that the license didn't let you distribute it at all under any name.
In the very early days other vendors (OK, mostly IBM) created their versions of Java and they're still at it.
A company as big as IBM can afford to do the entire reimplementation in-house. A group of hobbyist developers, like those who started the Wine project, isn't in quite the position to do so.
One approach is to release the program as free software (users purchase the program and get a copy of the program licensed such that they may run, inspect, share, and modify the software) and users may help port the program to other systems and architectures.
For one thing, in the case of a computer program released as free software, how can the developer recoup the cost of feeding and housing himself over the course of development if the first person to purchase a copy goes on to exercise his rights under the license to share that copy with every single other prospective customer?
For another, many programs are for an audience who are not developers and would have no idea how to begin to build from source code a program that is already ported to his platform, let alone port it to a brand new platform.
But ultimately your business needs are not more important than society's needs for not running any arbitrary program their browser is instructed to download and run. That's the model we have now and it's highly unsafe.
Nor are my business needs "more important than society's needs for not running any arbitrary" native "program their" operating system's package manager "is instructed to download and run." What makes web applications any less safe than native applications in this respect, other than that a user is presumed safe from native applications that happen to have been designed for a different operating system?
I think there are clearly cases where the government should be involved in providing public goods
In your opinion, would "public goods" include being the seller of last resort of essential products and services to citizens who are victims of discrimination, as opposed to letting citizens die due to not being able to procure them because of discrimination?
Patents are also stronger than copyrights in two ways that some believe compensates for their shorter term.
First, a patent encumbers everybody, not just persons who have had access to the subject of the exclusive right. A successful claim of copyright infringement requires the alleged infringer to have had access to the plaintiff's work. A successful claim of patent infringement, by contrast, does not require the alleged infringer to have had access to the plaintiff's invention.
Second, a patent covers a process no matter how it is expressed. A copyright, by contrast, covers only a particular expression of a process.
if the government actually gave a damn about authors, artists, or musicians instead maintaining the publishing industry, they could always write a law mandating (say) that author royalties be at least 25% of the retail price of the work
How would that work for a motion picture, which may have hundreds of contributors? Or would the author's 25% cut all go to a movie's producer?
The MMU doesn't prevent a process from making a syscall that reads all the user's files and opens a socket to disclose them to a computer in a different country with no extradition treaty between the two. Whether to honor such a syscall is entirely up to whatever kernel- or user-level sandbox program is running, and such programs can have defects.
What are the most significant differences in your opinion among Web as interpreted by Gecko, Web as interpreted by Blink, and Web as interpreted by Apple WebKit?
I'm not convinced that client-side calculation is a good thing in the cases you list because what you call "a form submission and a full page reload" doesn't strike me as tedious, too long, or generally bad.
Then good luck clicking point-by-point to trace a path in a web-based drawing application that uses a server-side image map, with the entire image reloading after each click.
If you need form validation, bring up your needs to people who discuss CSS and perhaps you can find a way to do regular expression-based validation with a regex parser that's not as powerful as PCRE but sufficiently powerful to tell if this phone number or credit card number is likely to be valid.
Once you make an input schema language rich enough to handle all possible interdependencies among fields in a form, such as "state/province/region" being required only for certain values of "country", you will probably have almost reinvented JavaScript.
Programmers have always accepted that not every program can run in every environment or be implemented with every programming language. It's time privacy and security get higher priority and people learn to say no due to considered tradeoffs. Technical limitations of this sort can be right and proper to have.
I disagree with your claim that it is "right and proper to have", for example, users of a chat application for Windows be unable to communicate with users of a chat application for macOS.
The common way to improve the user's experience is by sending a short script that prevalidates the entries before the server validates them authoritatively, letting the user fix things before they're submitted.
If you can not secure the code -- and there is no chance whatsoever that you can -- the technology is not suited to an internet used for financial, business, shopping, voting, or command and control applications.
Nothing is perfectly secure. But catching errors early and providing immediate feedback may help make "financial, business, shopping, voting, or command and control applications" easier to use without running the risk of inadvertent incorrect input, as may rich application-specific input controls.
Or you could just code for a mobile app platform and stick to it.
I'll consider it once iOS becomes self-hosting.
Nobody wants web apps.
Speak for yourself, egg.
Everyone is moving away from desktops
The only way I know of to build and package apps for iOS is through the macOS-exclusive app Xcode. So how do you "just code for a mobile app platform" without a desktop Mac or a MacBook, which runs the same applications as a desktop Mac?
Which means that a defect in the verifier that enforces "constraining the assembly language generated" in NaCl or "the final LLVM stage backend" of PNaCl would lead to a sandbox escape.
Virtualization vendors can't manage to keep people from finding new escape vulnerabilities.
Nor can CPU vendors. Despite the engineers' best efforts, some CPUs ship with defects that allow userspace software to lock the physical CPU. Some examples:
F00F bug
Some Intel Pentium processors misinterpret the LOCK CMPXCHG8B EAX instruction.
Cyrix coma bug
Some Cyrix processors misinterpret the XCHGL instruction in a tight loop, blocking interrupts.
The advantage of WebAssembly over Java is that the former isn't owned by One Rich American Called Larry Ellison.
If there's more than one implementation of a particular platform released as free software, these implementations can compete on security. Chromium is free software, supports JavaScript, and will support WebAssembly. Likewise with Firefox.
But we didn't get that opportunity with Java or Flash. Last I checked, the license of the Java Language Specification prohibited publishing an incomplete implementation. This requirement to keep works-in-progress confidential within an organization in turn had the effect of keeping independent free implementations of Java from existing legally, ultimately leading to Oracle v. Google. Likewise, Adobe's SWF spec was intended for developers of tools that output SWF, and its license specifically banned using the spec to make a third-party SWF player until February 2009.
Would you prefer to have to install a separate native executable for each Internet-based application you use, provided it's even available for your operating system? How would something like YouTube work? Would you add the cat videos you want to watch to your cart, fill in your address, and then YouTube would burn them onto a DVD-R for you?
We should be going the opposite direction and eliminating JavaScript altogether.
Though I agree with you and others that JavaScript has been abused, I disagree that the web ought to throw the proverbial baby out with the bathwater. In some cases, JavaScript dramatically improves the user experience in web applications. It makes others possible in the first place.
Say you want to let a user fill out a web form, but you don't want the poor experience associated with having to fill out the entire form and then perform a form submission and full page reload to catch the most common entry errors. The common way to improve the user's experience is by sending a short script that prevalidates the entries before the server validates them authoritatively, letting the user fix things before they're submitted.
Say you want to offer a chat service, where users send short strings of up to 100 characters or so to a channel and other users in the same channel receive them. You might consider putting up an IRC server, but your prospective users lack privileges to permanently install an IRC client on the devices that they use. You might try to do this as a web application without JavaScript, but you'll have to rely on users remembering to repeatedly click a "Check for New Messages" button to reload the iframe containing recent messages sent to a channel, which is a poor experience for users. In this case, the least bad option is a web application with a script that waits for new messages to arrive through a WebSocket and appends them to the list of recent messages.
Say you want to develop a real-time video game and allow members of the public to play it, but Valve, Apple, and the major console makers have turned your game down for one reason or another. So instead, you decide to offer the video game as a web application. The only interactivity possible without script is a form submission followed by a full reload of a page or iframe, but that's not possible for a real-time game. Thus script is again least bad.
That's not what the copyright industry claims. What happened was that the international standard for the copyright term had been the life of the author's grandchildren, with the exception of the United States. In the 1970s, the United States aligned itself with the international standard. But over the course of the twentieth century, health care improvements caused people to live longer and have babies later. This led first the European Union and then the United States to update the details of what "life of grandchildren" is supposed to mean without changing the spirit of the standard. (Source: "The Copyright Term Red Herring" by Leo Lichtman)
The timing between the US joining the international standard and the international standard reflecting human longevity increase is unfortunate but still coincidental, as the Supreme Court in Eldred v. Ashcroft recognized when failing to find "legislative misbehavior" in the 1998 extension. In theory, if the Congress thinks of a good enough excuse for a third successive extension, it could squeeze another one past the Supreme Court. But barring further drastic improvements in longevity, I can't find an excuse that would keep a third extension from appearing as "legislative misbehavior".
Thus the three short films establishing the character Mickey Mouse will enter the public domain in the United States on January 1, 2024, after the end of the 95th Gregorian calendar year after the films' first publication. They will enter the public domain in the European Union on January 1, 2037, after the end of the 70th Gregorian calendar year after the death of Walter Elias Disney.
Having the right to free speech doesn't mean you have the right to have other people promote your speech for you. [...] So you will have to do it yourself.
Let's pretend for a moment that you have produced videos that you want others to see, and you have made them viewable on devices supporting HTML5 video. Now what steps would you take to promote them? I ask because I seek something to recommend to others seeking alternatives to YouTube's right column.
The great thing about doing that in the modern world is that just about everyone can play HTML5 videos on just about any device.
Except web browsers on iPod touch, iPhone, and iPad, until Apple adds WebM support to WebKit.
The "mighty businessman" is an individual deciding what to do with his or her own time and labor. I have absolutely no right to force the barber to cut my hair contrary to his will. I have no right to have him jailed for declining to cut my hair. It's not that he's "more important," it's that it's his time and his effort. It doesn't matter whether any other barber feels differently. It doesn't matter if he's the only barber on the continent. I don't have any right to demand his services any more than I have a right to enslave him.
One significant difference is that laws requiring having short hair are not nearly as widespread as sit-lie laws requiring having housing.
Unless some other factor changes valuations, economic discrimination is an unstable situation - the demand curve your business sees is higher if you are open to all customers, so businesses have an incentive not to discriminate, and if they ignore those incentives, they'll likely face competitors that don't.
Say for every 100 people in a particular market, 20 are of an ethnic minority, 60 bigots of the ethnic majority who refuse to eat in the same room as a minority, and 20 neutral people of the ethnic majority. A restaurant admitting no minorities could sell meals to 80 people, the bigots and the neutrals, while a non-racist restaurant could sell meals to only 40 people, the minorities and the neutrals. Without regulation protecting minorities from a majority of bigots, whom would a rational restaurateur admit?
When the barber declines to give me a haircut based on my eye color he has done me no favor but he has done me no wrong. That's true even if I live in a place where he's the only barber within a thousand miles. My desire to have "an opportunity for a good haircut" does not give me a right to force him to cut my hair or to force him out of business.
Ideally, if you're going for a consistent light-touch minarchist legal code, there'd also be no law against "practicing barbering without a license" and therefore no "only barber within a thousand miles".
The issue is that a lot of these AirBnB "hosts" are actually slumlords or wannabe hoteliers who are doing it as a business rather than to rent out spare rooms
Then change the law to phase in accessibility requirements for a property owner at a particular number of unit-days per year.
A classified ad offering goods for pickup would appear to satisfy accessibility regulations if the buyer can arrange to meet the seller outside the seller's door at a particular time. This outdoor workaround doesn't apply so well to an Airbnb listing.
Getting rid of ALL scripting would be one modest step toward getting the digital world under control.
This means every form of interactivity on the Web that cannot be efficiently performed through form submission and full page reloads would have to move to a native app, and native apps are specific to one operating system. Good luck running a native Mac app on anything that's not a Mac.
it's pure FUD to bitch that the Java license didn't allow you to call your product 'Java' unless it provided a defined base of stuff. Would you foam at the mouth about Larry Wall if he reacted negatively to a company releasing a language that was only half like perl but named 'perl 4'?
It's not that the license didn't let you call it Java. It's that the license didn't let you distribute it at all under any name.
In the very early days other vendors (OK, mostly IBM) created their versions of Java and they're still at it.
A company as big as IBM can afford to do the entire reimplementation in-house. A group of hobbyist developers, like those who started the Wine project, isn't in quite the position to do so.
They support H.264, though and there's always ffmpeg for encoding.
What patent license is required for a U.S. resident to use FFmpeg internally?
One approach is to release the program as free software (users purchase the program and get a copy of the program licensed such that they may run, inspect, share, and modify the software) and users may help port the program to other systems and architectures.
For one thing, in the case of a computer program released as free software, how can the developer recoup the cost of feeding and housing himself over the course of development if the first person to purchase a copy goes on to exercise his rights under the license to share that copy with every single other prospective customer?
For another, many programs are for an audience who are not developers and would have no idea how to begin to build from source code a program that is already ported to his platform, let alone port it to a brand new platform.
But ultimately your business needs are not more important than society's needs for not running any arbitrary program their browser is instructed to download and run. That's the model we have now and it's highly unsafe.
Nor are my business needs "more important than society's needs for not running any arbitrary" native "program their" operating system's package manager "is instructed to download and run." What makes web applications any less safe than native applications in this respect, other than that a user is presumed safe from native applications that happen to have been designed for a different operating system?
I think there are clearly cases where the government should be involved in providing public goods
In your opinion, would "public goods" include being the seller of last resort of essential products and services to citizens who are victims of discrimination, as opposed to letting citizens die due to not being able to procure them because of discrimination?
This isn't about IP
Correct: it isn't about Internet Protocol, and patents and copyrights differ too much to be usefully lumped into a discussion of "intellectual property" in the abstract.
patents expire infinitely sooner
Patents are also stronger than copyrights in two ways that some believe compensates for their shorter term.
First, a patent encumbers everybody, not just persons who have had access to the subject of the exclusive right. A successful claim of copyright infringement requires the alleged infringer to have had access to the plaintiff's work. A successful claim of patent infringement, by contrast, does not require the alleged infringer to have had access to the plaintiff's invention.
Second, a patent covers a process no matter how it is expressed. A copyright, by contrast, covers only a particular expression of a process.
if the government actually gave a damn about authors, artists, or musicians instead maintaining the publishing industry, they could always write a law mandating (say) that author royalties be at least 25% of the retail price of the work
How would that work for a motion picture, which may have hundreds of contributors? Or would the author's 25% cut all go to a movie's producer?
The MMU doesn't prevent a process from making a syscall that reads all the user's files and opens a socket to disclose them to a computer in a different country with no extradition treaty between the two. Whether to honor such a syscall is entirely up to whatever kernel- or user-level sandbox program is running, and such programs can have defects.
What are the most significant differences in your opinion among Web as interpreted by Gecko, Web as interpreted by Blink, and Web as interpreted by Apple WebKit?
I'm not convinced that client-side calculation is a good thing in the cases you list because what you call "a form submission and a full page reload" doesn't strike me as tedious, too long, or generally bad.
Then good luck clicking point-by-point to trace a path in a web-based drawing application that uses a server-side image map, with the entire image reloading after each click.
If you need form validation, bring up your needs to people who discuss CSS and perhaps you can find a way to do regular expression-based validation with a regex parser that's not as powerful as PCRE but sufficiently powerful to tell if this phone number or credit card number is likely to be valid.
Once you make an input schema language rich enough to handle all possible interdependencies among fields in a form, such as "state/province/region" being required only for certain values of "country", you will probably have almost reinvented JavaScript.
Programmers have always accepted that not every program can run in every environment or be implemented with every programming language. It's time privacy and security get higher priority and people learn to say no due to considered tradeoffs. Technical limitations of this sort can be right and proper to have.
I disagree with your claim that it is "right and proper to have", for example, users of a chat application for Windows be unable to communicate with users of a chat application for macOS.
The common way to improve the user's experience is by sending a short script that prevalidates the entries before the server validates them authoritatively, letting the user fix things before they're submitted.
If you can not secure the code -- and there is no chance whatsoever that you can -- the technology is not suited to an internet used for financial, business, shopping, voting, or command and control applications.
Nothing is perfectly secure. But catching errors early and providing immediate feedback may help make "financial, business, shopping, voting, or command and control applications" easier to use without running the risk of inadvertent incorrect input, as may rich application-specific input controls.
The real solution is to get 5G up and running.
What price per gigabyte or per device-month should we expect?
The 'best' browser apps run literally thousands of times slower than what the native hardware is capable of.
If your computer happens to be something other than a Mac, a Mac app runs at zero speed.
If I lack the funding to develop my application for more than one platform, which of the following would reach the most users?
Or you could just code for a mobile app platform and stick to it.
I'll consider it once iOS becomes self-hosting.
Nobody wants web apps.
Speak for yourself, egg.
Everyone is moving away from desktops
The only way I know of to build and package apps for iOS is through the macOS-exclusive app Xcode. So how do you "just code for a mobile app platform" without a desktop Mac or a MacBook, which runs the same applications as a desktop Mac?
Which means that a defect in the verifier that enforces "constraining the assembly language generated" in NaCl or "the final LLVM stage backend" of PNaCl would lead to a sandbox escape.
Virtualization vendors can't manage to keep people from finding new escape vulnerabilities.
Nor can CPU vendors. Despite the engineers' best efforts, some CPUs ship with defects that allow userspace software to lock the physical CPU. Some examples:
F00F bug Some Intel Pentium processors misinterpret the LOCK CMPXCHG8B EAX instruction. Cyrix coma bug Some Cyrix processors misinterpret the XCHGL instruction in a tight loop, blocking interrupts.The advantage of WebAssembly over Java is that the former isn't owned by One Rich American Called Larry Ellison.
If there's more than one implementation of a particular platform released as free software, these implementations can compete on security. Chromium is free software, supports JavaScript, and will support WebAssembly. Likewise with Firefox.
But we didn't get that opportunity with Java or Flash. Last I checked, the license of the Java Language Specification prohibited publishing an incomplete implementation. This requirement to keep works-in-progress confidential within an organization in turn had the effect of keeping independent free implementations of Java from existing legally, ultimately leading to Oracle v. Google. Likewise, Adobe's SWF spec was intended for developers of tools that output SWF, and its license specifically banned using the spec to make a third-party SWF player until February 2009.
Would you prefer to have to install a separate native executable for each Internet-based application you use, provided it's even available for your operating system? How would something like YouTube work? Would you add the cat videos you want to watch to your cart, fill in your address, and then YouTube would burn them onto a DVD-R for you?
We should be going the opposite direction and eliminating JavaScript altogether.
Though I agree with you and others that JavaScript has been abused, I disagree that the web ought to throw the proverbial baby out with the bathwater. In some cases, JavaScript dramatically improves the user experience in web applications. It makes others possible in the first place.
Say you want to let a user fill out a web form, but you don't want the poor experience associated with having to fill out the entire form and then perform a form submission and full page reload to catch the most common entry errors. The common way to improve the user's experience is by sending a short script that prevalidates the entries before the server validates them authoritatively, letting the user fix things before they're submitted.
Say you want to offer a chat service, where users send short strings of up to 100 characters or so to a channel and other users in the same channel receive them. You might consider putting up an IRC server, but your prospective users lack privileges to permanently install an IRC client on the devices that they use. You might try to do this as a web application without JavaScript, but you'll have to rely on users remembering to repeatedly click a "Check for New Messages" button to reload the iframe containing recent messages sent to a channel, which is a poor experience for users. In this case, the least bad option is a web application with a script that waits for new messages to arrive through a WebSocket and appends them to the list of recent messages.
Say you want to develop a real-time video game and allow members of the public to play it, but Valve, Apple, and the major console makers have turned your game down for one reason or another. So instead, you decide to offer the video game as a web application. The only interactivity possible without script is a form submission followed by a full reload of a page or iframe, but that's not possible for a real-time game. Thus script is again least bad.
If you're not convinced, I have more examples.
That's not what the copyright industry claims. What happened was that the international standard for the copyright term had been the life of the author's grandchildren, with the exception of the United States. In the 1970s, the United States aligned itself with the international standard. But over the course of the twentieth century, health care improvements caused people to live longer and have babies later. This led first the European Union and then the United States to update the details of what "life of grandchildren" is supposed to mean without changing the spirit of the standard. (Source: "The Copyright Term Red Herring" by Leo Lichtman)
The timing between the US joining the international standard and the international standard reflecting human longevity increase is unfortunate but still coincidental, as the Supreme Court in Eldred v. Ashcroft recognized when failing to find "legislative misbehavior" in the 1998 extension. In theory, if the Congress thinks of a good enough excuse for a third successive extension, it could squeeze another one past the Supreme Court. But barring further drastic improvements in longevity, I can't find an excuse that would keep a third extension from appearing as "legislative misbehavior".
Thus the three short films establishing the character Mickey Mouse will enter the public domain in the United States on January 1, 2024, after the end of the 95th Gregorian calendar year after the films' first publication. They will enter the public domain in the European Union on January 1, 2037, after the end of the 70th Gregorian calendar year after the death of Walter Elias Disney.
Having the right to free speech doesn't mean you have the right to have other people promote your speech for you. [...] So you will have to do it yourself.
Let's pretend for a moment that you have produced videos that you want others to see, and you have made them viewable on devices supporting HTML5 video. Now what steps would you take to promote them? I ask because I seek something to recommend to others seeking alternatives to YouTube's right column.
The great thing about doing that in the modern world is that just about everyone can play HTML5 videos on just about any device.
Except web browsers on iPod touch, iPhone, and iPad, until Apple adds WebM support to WebKit.
The "mighty businessman" is an individual deciding what to do with his or her own time and labor. I have absolutely no right to force the barber to cut my hair contrary to his will. I have no right to have him jailed for declining to cut my hair. It's not that he's "more important," it's that it's his time and his effort. It doesn't matter whether any other barber feels differently. It doesn't matter if he's the only barber on the continent. I don't have any right to demand his services any more than I have a right to enslave him.
One significant difference is that laws requiring having short hair are not nearly as widespread as sit-lie laws requiring having housing.
Unless some other factor changes valuations, economic discrimination is an unstable situation - the demand curve your business sees is higher if you are open to all customers, so businesses have an incentive not to discriminate, and if they ignore those incentives, they'll likely face competitors that don't.
Say for every 100 people in a particular market, 20 are of an ethnic minority, 60 bigots of the ethnic majority who refuse to eat in the same room as a minority, and 20 neutral people of the ethnic majority. A restaurant admitting no minorities could sell meals to 80 people, the bigots and the neutrals, while a non-racist restaurant could sell meals to only 40 people, the minorities and the neutrals. Without regulation protecting minorities from a majority of bigots, whom would a rational restaurateur admit?
When the barber declines to give me a haircut based on my eye color he has done me no favor but he has done me no wrong. That's true even if I live in a place where he's the only barber within a thousand miles. My desire to have "an opportunity for a good haircut" does not give me a right to force him to cut my hair or to force him out of business.
Ideally, if you're going for a consistent light-touch minarchist legal code, there'd also be no law against "practicing barbering without a license" and therefore no "only barber within a thousand miles".
The issue is that a lot of these AirBnB "hosts" are actually slumlords or wannabe hoteliers who are doing it as a business rather than to rent out spare rooms
Then change the law to phase in accessibility requirements for a property owner at a particular number of unit-days per year.
A classified ad offering goods for pickup would appear to satisfy accessibility regulations if the buyer can arrange to meet the seller outside the seller's door at a particular time. This outdoor workaround doesn't apply so well to an Airbnb listing.