On Thursday, 2 November 2017 at 05:13:42 UTC, H. S. Teoh wrote:
On Thu, Nov 02, 2017 at 04:13:39AM +0000, codephantom via Digitalmars-d wrote:
On Wednesday, 1 November 2017 at 18:42:07 UTC, Bo wrote:
> /Signed: A pissed off Windows user

I think you've summed it all up right there ;-)

But seriously, Windows rightly has its place... and for good reasons.

Most importantly, it provided the ease of installation along with a easy to use and easy to understand GUI, that simply could not be provided by open source alternatives.

It's a matter of opinion. *I*, personally, find Windows atrociously hard to do anything useful in. I get an aneurysm trying to click through countless nested menus just to find that one button I need, when I could have typed the right command in 3 seconds in a Bash shell. But OTOH, I also know that my opinion is in the minority (by far!). :-P I think it just boils down to personal preference and habit built from past familiarity. As they say, there is no accounting for taste.

One thing is clear, though: claiming that Windows is "dead" is, frankly, ridiculous. Even a non-Windows person like me who rarely has any reason to notice things Windows-related, can see enough circumstantial evidence around me that Windows is still very much alive and kicking. (Even if in my ideal world there would be no Windows... but then, if the world were my ideal, 90% of computer users out there would probably be very angry about being forced to use obscure text-only interfaces that I'm completely comfortable in. So it's probably not a bad thing the real world doesn't match my ideal one. :-D)


[...]
But software is for the user, not the vendor. A user should be able to adapt software to meet their own requirements. Closed source prevents that.

I think open-source really is the future, and Windows will fade into obscurity - but only if open source continues to deliver the benefits that Windows has always been able to deliver. If that keeps occuring, then there is little justification for having a closed source operating system - whether you call it Windows or whatever.

And I think trust will become a bigger issue in the near future too...i.e. how can you trust code you can't view? You can barely even trust code you can view ;-)
[...]

There is another side to this argument, though. How many times have *you* reviewed the source code of the software that you use on a daily basis? Do you really *trust* the code that you theoretically *can* review, but haven't actually reviewed? Do you trust the code just because some random strangers on the internet say they've reviewed it and it looks OK?

Yes, yes, yes, so true.


It is a common argument among open source proponents that having more eyes will reduce the number of bugs... It sounds convincing, but the problem with that, is that this only works when there is a relatively small amount of code and a very large pool of potential reviewers. Unfortunately, the hard reality today is that there is so much open source code out there, and the rate at which open source code is being written far exceeds the rate of growth of the number of open source reviewers, that I'd venture to say 80-90% of open source code out there has never seen more than a very small number of reviewers. Probably not more than 1 or 2 for a significant fraction of it, if even that. I have seen open source code that probably has *never* been reviewed, because any review would have instantly brought to light the blatantly-obvious bugs and problems that riddle just about every page of code. And some of that code is so ugly that even if I had personally reviewed it to death, I still wouldn't trust anything that depends on it, sorry to say.

And that's a nice argument for D (dmd, phobos) as it is quite compact and relatively well written so that it can be reviewed by mere mortals. Ever tried to read gcc or glibc ? Forget about it if you're not an astronaut. Even when not knowing D all to well I could understand what was going on in phobos and check some of the common pitfalls (file copy functions are hilariously often buggy in books and code samples, half the time they forget the O_TRUNC in open() or the ftruncate() to delete the old content on overwrites).



And among the scant few projects that do get above average contributors (and thus code reviewers), we *still* have bugs like Heartbleed that go undetected for *years*. And this is in cryptographic code that, ostensibly, undergoes far more careful scrutiny than more "ordinary" code. Where does that leave the trust level of said ordinary code? Especially code that comes from lesser projects that don't enjoy the same level of review as high-visibility projects like OpenSSL?

That's not to say that proprietary code is any better, though. Having worked in proprietary software development ("enterprise" software development) for the past 2 decades or so, I can say that the code quality isn't any better. Just because you pay somebody to do the job doesn't guarantee they'll do a *good* job, let's just put it that way. There's a widespread mentality of "not my problem" that goes around in proprietary software development. You don't want to touch some ugly code that isn't directly your responsibility, because it could break and the blame would fall on you. You often don't know why something was written a certain way -- it could be part of an elaborate bugfix for a critical customer bug, so you really don't want to touch it and break things. So you just work around it in the code you *are* responsible for, and let whoever it is figure out what to do with *their* code. Unfortunately, often this "whoever" is actually "nobody", because said persons have moved on. So things end up never getting fixed. Also, sometimes bad designs are left untouched because of office politics, and code quality can greatly suffer because of that.

So true. When I worked in embedded industrial appliances, we had to be able to reproduce exactly the same code (i.e. eprom's) years out. Even if the code had been fixed of some other bugs, when we had to correct a specific bug from one client, it was only that one bug that could be fixed. Any other bug or enhancement was off limit. The hardware and the software were required to behave exactly the same. There was one time when one of our controller blocked the production line at Opel Rüsselsheim for a morning, I wish no one that days stress level to anyone.


At least with open source code disinterested 3rd parties can review the code without undue bias and notice problems (and ostensibly, fix them). But let's not kid ourselves that open source is *necessarily* better. It *can* be better in some cases, but it depends. Trust is a far more complex issue than "proprietary is bad, open source is good", as certain open source zealots would have us believe. It takes more than just being open source; other factors also play a critical role, so just because something is open source guarantees nothing.

There's also some open source projects are also maintained by dicks and working with them make the whole experience nasty.

Reply via email to