I mean the classical WIMP scheme does everything people want and designs have been refined fairly well on essentially every GUI out there. It's just that recent developments from all GUI makers (from Gnome to Windows) derive from that, putting design over usability.
I don't think it's worth chasing the "mobile user" as they will have Android (or IOS) anyhow. Getting rid of useful features in order to chase people who won't look at your product anyhow isn't worth it.
"The average professional developer of the 80's was probably better at their job than the average one today."
Even if that wasn't the case, programmers now have it harder. Back in the 1980s you had sensible terminal standards, either via directly accessing textmode RAM, or via serial terminals. Every bit of your environment was focussed at dealing with that. For example you didn't have to worry about "sessions" as every session was implicit.
Today people have to some make due with HTML and HTTP to develop applications. Even something as trivial as a "session" becomes something you can only get by abstractions with frameworks. The problem with non-standard frameworks is that they typically are buggy and/or badly designed.
I mean seriously, you are running PCI-E over some external port. Of course you can easily access everything, you are on the system bus you have virtually the same rights as the CPU.
... you have a piece of software that doesn't work. You call in the highly expensive support from the vendor and they won't be able to do much more than shrug at it. It's something I have seen at large companies and very large vendors.
"Free Software" means that you can change the software if you please. That implies that the software is simple enough for you to make meaningful changes to it. The simpler the software the more reliable and secure it usually becomes, that's why when hardening a system you throw out stuff you don't need. If you don't have your own staff understanding vital systems, you have done something severely wrong.
It even requires JavaScript to load. In the 1990s that would have mean that nobody saw your page. Today it increasingly means that people won't see your pages as virtually everybody who is able to uses NoScript or some other form of disabling Javascript.
Just having the sourcecode of software doesn't mean much. Quite some governments have access to source code of proprietary software. What is more important is the freedom of software to be used and changed by anybody for their own purposes.
You might as well have no copy at all. Fortunately DVDs and BluRays are easy to rip. Funny enough lots of people seem to share that opinion if you look at sales figures which go up once simple ways to rip became available.
So far we've only been applying insane amounts of CPU power and data to machine learning algorithms which haven't changed a lot in the last decades. We are now seeing such ML applications getting slowly as good as conventional ones, but at a much higher computational effort. Essentially machine learning boils down to statistics. However unlike normal statistics, ML does not provide you with insights. This may be perfectly OK for finding out what fruit is in front of a camera, however whenever you have accountability involved you need to know what's going on.
Just imagine the fraud detection system of a bank denying a transaction, this causes a company to fold and the owners sue the bank. If you don't know what your system is doing, you have no way to estimate risks.
So "AI" or machine learning as it's actually called, is currently just mostly hype. Yes there are some areas where it can find its uses, but much of what's done now is just hype. The current hype will fade, just like the 1980s "AI"-hype did.
First of all Linux has this great thing called a Distribution where all the software you'll likely ever need is just included and can be installed via a package manager.You don't need snap to install VLC as it's already included in the repositories.
Secondly Linux isn't application centric, it's data centric. You exchange data and operate on it via programs you already have. Your set of programs is fairly fixed. It's not like mobile OSes where every external service requires its own app.
Thirdly sandboxes don't work. At best they only keep you from having functionality you want, at worst people will rely on it somehow protecting their system which will give rise to malware exploiting loopholes in the sandboxes. (i.e. Cryptominers, Rowhammer, Spectre, Meltdown, etc)
In short it's a fairly bad idea. It tries to reproduce one of the worst aspects of Windows, namely that you ship around self-contained exe files which get executed on a double click.
Web sites don't load badly because of some problems of TCP, but because a) existing features of HTTP/HTML are not used (like request pipeliuning) b) Web design has evolved into utter crap with layers upon layers of needless waste.
The last thing we want is Google owning yet another layer of the Web stack!
It is a public open standard. Nobody "owns" it.
No RFCs are like opinions, however instead of having a proper open debate about this, large companies like Google, Cloudflare or Mozilla will just stuff it down our throats. The process simply isn't democratic.
Considering that we probably have gotten most of the problematic TCP/TLS/HTTP bugs out, having a completely new stack will mean several new decades of new security problems. Secret services are probably rejoicing right now as more complexity will mean more bugs which will make the attack surface much bigger again.
... your data would not be collected and you wouldn't have ads.
Netflix is one of the best examples that this is not true. They get money from their viewers, but gladly take more money through targeted product placement, in part enabled by detailed user data.
Rowhammer, Spectre, Meltdown and all of their variants didn't just disappear. In fact they will likely get replaced by new versions of themselves in new operating systems. Each one of those can be used by malevolent software to break out of a sandbox.
Also the Windows API is vast and was not meant to have security in mind. For example usually every application can fill out forms in every other application. That way you can inject code. The timer message, which everyone can send, includes a "callback" field, which contains an address your software will very likely ignore all the security warnings around it and just call that address. If you put the address of the data of the input field you have just overwritten in, you get clean and simple code execution by seemingly harmless features.
First of all there's a significant difference between "Open Source" and "Free Software". The first only saying that the source code is publicly available, the later saying that your are actively invited to engage in the development process.
Unfortunately people forget that "The freedom to improve the program" means that the program needs to be simple enough that individuals can have a decent chance of understanding it and making meaningful changes. We see a dangerous trend towards more complex and integrated software.
Now if you have simple software which can be understood easily, you will have the eyeballs looking at it. There are some semi-free projects like the Linux kernel which have strict code reviews trying to main some level of control by always having a second set of eyeballs looking at it.
What we tend to forget is that the emergency of mostly competently written Free Software in the 1990s raising in popularity in the early 2000s has caused many closed source software companies to try and get their act cleaned up. Microsoft, for example, had a program in which they tried to fix _all_ bugs. It used to be normal for computers to crash, now every crash is seen as a reason to stop using software from that company.
The whole idea behind WebAssembly was to make surfing the web insecure by downloading and executing code which is only shielded from the rest of the system by some magical concept called the sandbox.
Now since Rowhammer, Spectre, Meltdown and possible future problems, we should know that sandboxes don't work. Any form of turing complete code can be used as an attack vector. Even with a hypothetical perfect sandbox you can still abuse it for crypto-mining.
If your code is so complex that you need significant amounts of work just to maintain it, you have done something wrong. Free Software means that your users are able to use and change that software, if it's to complex you're robbing your users of that possibility as maintaining a fork would be to expensive for them. This makes your software just "Open Source", but not truly "Free" (as in speech).
Taking money is of course OK, but as with every software project, it should have a fairly well defined "end" after which the rate of changes drops rapidly as no new features are being added and the only changes are bug-fixes.
Competitors to JPEG so far have only reached 30% less data under laboratory conditions compared to the standard JPEG encoder. That amount of improvement can however also be experienced by using more sophisticated JPEG encoders. Even if we'd reach half the file size for a realistic set of images, I doubt we would switch, as JPEG is largely good enough.
We might see a successor to JPEG for moving images yet, as those codecs slowly get good enough that the key frames matter and can even take up most of the storage space for some videos.
that it's a single vendor standard. Should Oracle get bust or loose interest, you have a problem. Even if Oracle doesn't loose interest there are already widely diverging versions of Java. For example a Java 8 compiler won't even compile Java 2k code.
Javascript is used for many Terabytes of completely needless code for Websites. Java is in large part popular because many universities teach it to their students. Essentially it's similar to the question what language you know.
What would be more interesting would be to ask the same question for different uses.
Well most recent changes in the Windows world are bad. The IP-settings are just one example.
I mean the classical WIMP scheme does everything people want and designs have been refined fairly well on essentially every GUI out there. It's just that recent developments from all GUI makers (from Gnome to Windows) derive from that, putting design over usability.
I don't think it's worth chasing the "mobile user" as they will have Android (or IOS) anyhow. Getting rid of useful features in order to chase people who won't look at your product anyhow isn't worth it.
"The average professional developer of the 80's was probably better at their job than the average one today."
Even if that wasn't the case, programmers now have it harder. Back in the 1980s you had sensible terminal standards, either via directly accessing textmode RAM, or via serial terminals. Every bit of your environment was focussed at dealing with that. For example you didn't have to worry about "sessions" as every session was implicit.
Today people have to some make due with HTML and HTTP to develop applications. Even something as trivial as a "session" becomes something you can only get by abstractions with frameworks. The problem with non-standard frameworks is that they typically are buggy and/or badly designed.
It just appears to us as we've all experienced software from the 1990s a time when software was _really_ bad.
I mean why should I pay for a TV from a company that sees me as its product?
I mean seriously, you are running PCI-E over some external port. Of course you can easily access everything, you are on the system bus you have virtually the same rights as the CPU.
... you have a piece of software that doesn't work. You call in the highly expensive support from the vendor and they won't be able to do much more than shrug at it. It's something I have seen at large companies and very large vendors.
"Free Software" means that you can change the software if you please. That implies that the software is simple enough for you to make meaningful changes to it. The simpler the software the more reliable and secure it usually becomes, that's why when hardening a system you throw out stuff you don't need. If you don't have your own staff understanding vital systems, you have done something severely wrong.
It even requires JavaScript to load. In the 1990s that would have mean that nobody saw your page. Today it increasingly means that people won't see your pages as virtually everybody who is able to uses NoScript or some other form of disabling Javascript.
Just having the sourcecode of software doesn't mean much. Quite some governments have access to source code of proprietary software. What is more important is the freedom of software to be used and changed by anybody for their own purposes.
Back then virtually every error message (particularly with networking) said "Contact your Administrator". See, problem fixed.
You might as well have no copy at all. Fortunately DVDs and BluRays are easy to rip. Funny enough lots of people seem to share that opinion if you look at sales figures which go up once simple ways to rip became available.
So far we've only been applying insane amounts of CPU power and data to machine learning algorithms which haven't changed a lot in the last decades.
We are now seeing such ML applications getting slowly as good as conventional ones, but at a much higher computational effort. Essentially machine learning boils down to statistics. However unlike normal statistics, ML does not provide you with insights. This may be perfectly OK for finding out what fruit is in front of a camera, however whenever you have accountability involved you need to know what's going on.
Just imagine the fraud detection system of a bank denying a transaction, this causes a company to fold and the owners sue the bank. If you don't know what your system is doing, you have no way to estimate risks.
So "AI" or machine learning as it's actually called, is currently just mostly hype. Yes there are some areas where it can find its uses, but much of what's done now is just hype. The current hype will fade, just like the 1980s "AI"-hype did.
First of all Linux has this great thing called a Distribution where all the software you'll likely ever need is just included and can be installed via a package manager.You don't need snap to install VLC as it's already included in the repositories.
Secondly Linux isn't application centric, it's data centric. You exchange data and operate on it via programs you already have. Your set of programs is fairly fixed. It's not like mobile OSes where every external service requires its own app.
Thirdly sandboxes don't work. At best they only keep you from having functionality you want, at worst people will rely on it somehow protecting their system which will give rise to malware exploiting loopholes in the sandboxes. (i.e. Cryptominers, Rowhammer, Spectre, Meltdown, etc)
In short it's a fairly bad idea. It tries to reproduce one of the worst aspects of Windows, namely that you ship around self-contained exe files which get executed on a double click.
Web sites don't load badly because of some problems of TCP, but because
a) existing features of HTTP/HTML are not used (like request pipeliuning)
b) Web design has evolved into utter crap with layers upon layers of needless waste.
The last thing we want is Google owning yet another layer of the Web stack!
It is a public open standard. Nobody "owns" it.
No RFCs are like opinions, however instead of having a proper open debate about this, large companies like Google, Cloudflare or Mozilla will just stuff it down our throats. The process simply isn't democratic.
Considering that we probably have gotten most of the problematic TCP/TLS/HTTP bugs out, having a completely new stack will mean several new decades of new security problems. Secret services are probably rejoicing right now as more complexity will mean more bugs which will make the attack surface much bigger again.
I mean you essentially downgrade your laptop to a tablet by throwing away your most important input device, the keyboard.
... your data would not be collected and you wouldn't have ads.
Netflix is one of the best examples that this is not true. They get money from their viewers, but gladly take more money through targeted product placement, in part enabled by detailed user data.
Rowhammer, Spectre, Meltdown and all of their variants didn't just disappear. In fact they will likely get replaced by new versions of themselves in new operating systems. Each one of those can be used by malevolent software to break out of a sandbox.
Also the Windows API is vast and was not meant to have security in mind. For example usually every application can fill out forms in every other application. That way you can inject code. The timer message, which everyone can send, includes a "callback" field, which contains an address your software will very likely ignore all the security warnings around it and just call that address. If you put the address of the data of the input field you have just overwritten in, you get clean and simple code execution by seemingly harmless features.
First of all there's a significant difference between "Open Source" and "Free Software". The first only saying that the source code is publicly available, the later saying that your are actively invited to engage in the development process.
Unfortunately people forget that "The freedom to improve the program" means that the program needs to be simple enough that individuals can have a decent chance of understanding it and making meaningful changes. We see a dangerous trend towards more complex and integrated software.
Now if you have simple software which can be understood easily, you will have the eyeballs looking at it. There are some semi-free projects like the Linux kernel which have strict code reviews trying to main some level of control by always having a second set of eyeballs looking at it.
What we tend to forget is that the emergency of mostly competently written Free Software in the 1990s raising in popularity in the early 2000s has caused many closed source software companies to try and get their act cleaned up. Microsoft, for example, had a program in which they tried to fix _all_ bugs. It used to be normal for computers to crash, now every crash is seen as a reason to stop using software from that company.
The whole idea behind WebAssembly was to make surfing the web insecure by downloading and executing code which is only shielded from the rest of the system by some magical concept called the sandbox.
Now since Rowhammer, Spectre, Meltdown and possible future problems, we should know that sandboxes don't work. Any form of turing complete code can be used as an attack vector. Even with a hypothetical perfect sandbox you can still abuse it for crypto-mining.
If your code is so complex that you need significant amounts of work just to maintain it, you have done something wrong.
Free Software means that your users are able to use and change that software, if it's to complex you're robbing your users of that possibility as maintaining a fork would be to expensive for them. This makes your software just "Open Source", but not truly "Free" (as in speech).
Taking money is of course OK, but as with every software project, it should have a fairly well defined "end" after which the rate of changes drops rapidly as no new features are being added and the only changes are bug-fixes.
Competitors to JPEG so far have only reached 30% less data under laboratory conditions compared to the standard JPEG encoder. That amount of improvement can however also be experienced by using more sophisticated JPEG encoders. Even if we'd reach half the file size for a realistic set of images, I doubt we would switch, as JPEG is largely good enough.
We might see a successor to JPEG for moving images yet, as those codecs slowly get good enough that the key frames matter and can even take up most of the storage space for some videos.
Well I'd put all the many Java dialects into that category.
that it's a single vendor standard. Should Oracle get bust or loose interest, you have a problem. Even if Oracle doesn't loose interest there are already widely diverging versions of Java. For example a Java 8 compiler won't even compile Java 2k code.
Javascript is used for many Terabytes of completely needless code for Websites.
Java is in large part popular because many universities teach it to their students. Essentially it's similar to the question what language you know.
What would be more interesting would be to ask the same question for different uses.