LLVM Clang Compiler Now C++11 Feature Complete
An anonymous reader writes "With the latest development work on Clang ahead of the release of LLVM version 3.3, Clang is now C++11 feature complete. The last remaining features of the ISO C++11 feature specification have been implemented. C++11 support for GCC is also more or less complete."
Regardless of what you may personally think about Apple, they have made some very valuable contributions to LLVM and Clang. So I just want to say, thank you, Apple. Your generosity has touched my heart, and made C++11 a reality.
I noticed that "minimal support for garbage collection" had a conspicuous "no" (support) on gcc's C++11 feature list.
At the risk of sounding like Bill Gates ("640K should be..."), I don't see why C++ needs language-based or standardized garbage collection support. That's a huge can of worms for both compiler vendors and app developers. If you want that, you probably want a higher level language for your application anyway.
One of the great things about Clang and LLVM are they are BSD licensed rather than GPL.
GCC has served us well over the years. Much of the open source community's success can be attributed to GCC. But times change, and we must change with the times.
It is now time for GCC to go. LLVM and Clang are clearly the future. While GCC will linger for some time, it is obvious that LLVM and Clang are the technologically-superior choices. They offer better, freer licensing. Their code is much cleaner. They offer a path to the future. The community has a vibrancy that we just don't see in the GCC community.
FreeBSD, which has always been a leader among the major open source projects, has done the right thing and adopted LLVM and Clang. Now it's time for the major Linux distributions to do the same.
The LLVM and Clang future is bright. It is much, much, much brighter than the GCC future, in my opinion.
It would be so nice if they added OpenMp support. It's an awesome compiler, but due to lackin OpenMp currently not so suitable for cross-platoform number-crunching.
How can something be more Complete? I can understand less complete. Does this imply knowledge of the future?
Some drink at the fountain of knowledge. Others just gargle.
Well it's not surprising as the GCC maintainers are becoming completely impossible to work with. Each new version of GCC becomes less compatible with 3rd-party linkers and less popular runtime libraries (e.g. Solaris). It also becomes harder to build a working compiler for anything other than Linux. Often you need to hack stuff up to get it to build at all on SPARC, and even then it won't necessarily produce working executables. Red Hat GCC usually has fewer issues than FSF GCC, but by the time Red Hat fixes make it upstream, even more bugs will have been introduced. I think it comes down to lack of competition. GCC just became too popular for its own good, and that inflated the egos of the maintainers to the point where they don't give a shit about users. CLANG is still in the state where it's fighting for market share, so they have to care about users to get any traction, but if it becomes popular enough, it will probably go the same way as GCC.
Going slightly off-topic, Apple (principal CLANG contributor) is a lot like GCC. Back when they had almost no market share, they actually cared about users and did awesome shit. But now they have some traction they're a bunch of cunts. Tiger was a questionable update, and every OSX update since has been a load of shit. Mountain Lion makes the UI really annoying, and OSX Server is now completely useless. Final Cut Pro X is a steaming turd when the old Final Cut Pro was best in class software. Old iMovie wasn't great but it was usable. New iMovie has destructive editing, no proper timeline, and is completely useless for any half serious work. And they've made it so you can't run old iMovie or Final Cut on new versions of OSX, and you can't run old OSX on new machines. I'm waiting for them to do the same thing to Logic.
Even Microsoft kind of cared about users back when they were the underdog. They developed customised BASIC implementations for all the microcomputer manufacturers, DOS was for the most part better than CP/M '86, and Office for Mac kickstarted the platform. Everyone knows where market domination led them.
TLDR: market domination is the worst thing that can happen to anyone.
I'm not so concerned about C++11, or compiling speed - which is what most people tout about LLLVM as its big feature. I'm concerned about the quality of the binaries produced. LLVM produces generally inferior code to GCC, which itself is already quite inferior to MSVC. I just wish there was an open source compiler where binary performance was a primary concern, not an afterthought.
The phenomenon is not just restricted to IT companies. It's the borken part of human nature. Te Greeks calledit 'hubris'.
I'm having a hard time sorting the bs from the gems here. Every post is questionable. Thanks /.
Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
How on earth are you going to have threads in DOS?
The same way you always have the same way its done on every embed platform. A private to your application threading model. There is nothing to stop you from implementing any kind of scheduling your want on top of DOS as it does not do any, and nothing that will stop you from doing whatever you like with interrupts, software or otherwise.
You also have the long long int type, where if you need to use that on a 32bit system, it will need emulated
yes. Just like what used to be done for floats and 32-bit values on x86 DOS platforms.
Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
It also becomes harder to build a working compiler for anything other than Linux
Now, it is even less possible. I like to bring up DOS as an example that can't even fit the paradigm of the C++11 specification. How on earth are you going to have threads in DOS?
This can be done with user space threads
You also have the long long int type, where if you need to use that on a 32bit system, it will need emulated
long long int existed as for quite some time, gcc and msvc support in on 32 bit platforms.
IF YOU NEED threads in DOS you can have them, although the only legitimate use for DOS I can think of is to support legacy libraries and old architectures. I have ONE example; I worked for a company that had to use libraries built with Borland C (and not CodeWarrior, I'm talking old-school Borland C, 4.5 I think was the release)), the libraries were required to access a proprietary hardware bus, and the licensing company wasn't updating. But other than scenarios like that, I don't see a good reason for using DOS. If you think you need DOS as a platform for your wizbang neato device, you need to re-think your idea. Even that company was getting ready to release 32 bit shared-libs (yes, moving to a unix-ish architecture) for access to their stupid bus by the time I left. Even if your device idea for some reason requires using a 16 bit processor there are better embedded solutions that you can use now than DOS.
Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
Like, has a new edition of The C++ Programming Language come out to reflect C++11, and all of its changes? Or are the only complete specifications purely online?
File under 'M' for 'Manic ranting'
So a large company with lots of resources has made some very helpful contributions to an open source project.
That open source project has prospered, providing extreme benefit to users far beyond the company that made the significant contributions.
Projects as diverse as FreeBSD and Rust, among many others, have benefited hugely from Clang and LLVM.
The end result is so useful that it even threatens a long-time, well-established incumbent like GCC.
Yet somehow a Slashdot poster who merely acknowledges these contributions ends up modded down to -1? It's absurd.
The OSS community has been desiring more contributions for decades. When people and organizations with the deepest pockets do contribute, those who recognize this and express gratitude are shunned. It's just so absurd.
Can Torvalds also evaluate using a non-GNU userland, and instead use something like BusyBox and other Unix like utilities, either from BSD or SVR? Something not tied down by GPL3 and whatever RMS decides is the new sin in the church of St iGNUcius? Stuff that is either GPL2 or earlier, or BSD, CDDL, X11, or some such OSS license? So that people can stop whining about the OS being GNU/Linux, and instead become something else?
32 bit shared-libs (yes, moving to a unix-ish architecture)
What part of shared libs is related to UNIX other than 'yes, it supports it'. What OS doesn't support shared libs? Since it doesn't have to be a function of the OS any more than threading does, I don't see how such a statement is relevant. DOS supports DLLs too you know.
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
Well, it is GPL software and it is effectively being redistributed to 3rd parties.
Oh good, we've devolved into petty name-calling already!
I'm sorry, since when did it become such a noble cause to want to defy the spirit of the GPL, and then whine and gripe when it goes from spirit to legal fact? Again, you have to know the license of the software you're modifying before you go and do so, otherwise you're a damned fool.
The next version will be NP-complete.
Torvalds only cares about the kernel, and some diving app. A distribution can chose any userland it wants.
AGPL is GNU banditry of the ultimate order. If you don't buy software to use on your own computer, but simply run the services that they offer on their servers, this license would mean that you get to see, use and distribute their source code.
It's not "their" source code, it's the source code of whoever originally wrote the software and decided to release it under the AGPL. If the companies hosting the software don't like that, they're perfectly welcome to stop being freeloaders and write their own.
Added to this, we're talking about implemented algorithms here. Personally, if I'm going to host something using someone else's services, I'd like to know what those services are. I'm paying for the service, not some "secret sauce" knowledge. I'm the type of person that likes to know what I'm getting. Just like I expect to see a list of ingredients in order of most used to least used, plus a nutritional breakout, on the side of processed food I buy, I'd like to have a description of what goes in to the processed services I buy. Of course, I'd also like to know security and privacy policies for how the service handles my information, similar to how I like to know how the foods and people are treated that create the food I buy.
Some people may not care about all this, and are fine with black box consumerism. That's fine. But I'm not in that market segment, I'm in the other one. So I'll buy services from companies who use the AGPL or equivalent (including closed source where they give me access for review). Remember: once you move into SaaS, you can't really guarantee that what they let you look at is what they're running anyway; there has to be some level of trust.
Well it's not surprising as the GCC maintainers are becoming completely impossible to work with. Each new version of GCC becomes less compatible with 3rd-party linkers and less popular runtime libraries (e.g. Solaris). It also becomes harder to build a working compiler for anything other than Linux. Often you need to hack stuff up to get it to build at all on SPARC, and even then it won't necessarily produce working executables. Red Hat GCC usually has fewer issues than FSF GCC, but by the time Red Hat fixes make it upstream, even more bugs will have been introduced. I think it comes down to lack of competition.
Or maybe it's just another sign of Sparc/Solaris' slide into... well, not irrelevancy but a hardware/software niche that neither developers or maintainers actually have. OpenSolaris is gone, Oracle is probably not doing much if anything to support GCC so how much of it is added hubris and how much of it is increasing obscurity? I just tried a search for SPARC on eBay and ignoring parts there's maybe 150 servers for sale. That's somewhat more than Commodore 64 and Amiga 500, but it's still rare/vintage. Yes, I know it's not dead yet and some huge enterprises use it but 99.9% of people have never seen one and never will.
Live today, because you never know what tomorrow brings
What freedom would that be?
After reading posts like these, I can't help but wonder if the GCC folks have to deal with a swamp pile of bug reports written this way. The kind of writing that makes developers close up into a clamshell. If the GPL is that horrible to you, just don't use it. You as might as well go around yelling at vegetarians not eating meat, children for being dirty, or feminists standing up for their rights.
I hate feeding worthless trolls, but here goes anyway:
As a GPL supporter, I must protest that your arrogance does not reflect the views of all of us.
You aren't forced to give away your source.
That's pretty much the whole point of the GPL. Source changes you make MUST be contributed back. Yes it's nice for the ecosystem but it's an onerous legal burden that you can easily get wrong if you forget something. Why have that kind of legal exposure if you don't have to? That's what companies are thinking when looking at both licenses. You are writing as if companies and even individual coders are operating in the legal climate of 20 years ago; we are not.
And? Don't enter a contract if you don't want to be bound by its terms.
AND that is the reason why so many are choosing BSD now. Because they don't.
Are you the sole arbiter of such things?
How is pointing out plain fact being an "arbiter" of anything? He is pointing out quite accurately how changing code in a BSD code base gives you more options than changing code in a GPL code base. If you claim otherwise you do not even understand the point of the GPL, never mind the exact legal conditions it adds.
On the contrary, the GPL guarantees freedom
I have been a member of the FSF for decades now. I fully support RMS in any discussion that arises. You are wrong. It does NOT guarantee freedom for people actually writing code. It binds them in specific ways.
Now those ways are practically helpful for future users, but in no sense is anyone getting "more freedom" from a license that is specifically restrictive. Even though future users technically gain some freedom to use code from people who contributed (which is what you really mean but obscure by trying to change the definition of freedom to your own), they give back any gains they had because (a) people who would have written code not being able to contribute to that project because of the license, and (b) they lose any freedom to make further changes without contributing back.
Oh good, you preserved this little lie.
That was the only part I really agree with. You can easily make money using open source software and contributing back. It just happens to be much easier to do so using code with BSD licenses (even when you are giving back in either case). As a consultant MOST companies (nearing 100%) will not let me use GPL code when writing for them, but they will let me use BSD without issue - even though I explicitly add in any consulting contract that any modifications I make must be contributed back to any open source code I modify. The companies don't care about library changes going back, I've not had one company care about that. What they ALL care about is the legal danger of having all code they have worked on having to be released because any component is GPL, or possibly just being sued because of any change made to a GPL module by some later low-level maintainer. THAT is the REALITY on the ground of where the GPL is today.
Typical trolling AC, leading on for a while and blow it with a personal attack.
I'm not posting AC, I'm posting with the weight of being a full-time software developer for decades who has worked with, and contributed code to open source code with all kinds of licenses for years.
Just to warn you I have no intention of reading anything further you write as I'm sure it will simply be more insults directed at me. I just wanted an impressionable younger generation to realize that your nonsense, arrogance and general ugliness does not reflect the views of all FSF and GPL supporters. Really you CAN support the GPL without some kind of maniacal world-view wherein restrictions are really freedom.
There is still a valid point to the GPL, it was especially useful many years ago top open up people to the idea of open source. But that works is done and we are in a new phase where to spread TRUE freedom the GPL has to sit back for a while and let the BSD soften up ground it cannot reach. At some point in the future it will be possible to layer back in more GPL use, but that time has not yet come.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
LLVM is one of their key tools in trying to leverage that. This is done for profit, mostly by taking money out of the pockets of people like Slashdotters. It is a tool in ensuring they will be able to build developer environments where they take your source code and hide it from you.
Nothing could be further from the truth. By basing XCode on LLWM, it makes it EASIER to write third-party tools that can properly work over the source true with the same rich understanding of context.
Prior to LLVM, when XCode was based more on GCC, XCode was the only thing that understood why it was parsing code the way it was for display and code completion. Now that any tool can have access to the same AST for the code that XCode is seeing, other software can act in ways that make sense for the code. More advanced re-factoring tools are now possible, thanks in large part to LLVM... Apple could have easily just built something like LLVM into XCode and left it totally proprietary.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
If only there was a company whose job was to make gcc/gdb ports to every platform on earth, with contracted deals with the platform makers (Intel, Sun, Sega, Sony, Hitachi, etc.) ... such that gcc provided C, C++, and even some Objective-C support, uniformly across platforms, with as much platform specific optimization as possible.
Oh... wait. There was such a company. Until Redhat bought them and killed them. (Cygnus Support / Cygnus Solutions, purchased by Redhat in very late 1999/ early 2000 because RH was afraid Cygnus would go into the business of having their own Linux distro and compete with RH...)
The GPL was not created for developers, it was made for the people after the developers.
Speaking as someone who actually attempted to hack on GCC in the past (and who actually has a copyright assignment on file with the FSF) I concur with your statements about how crap GCC development has become. I wanted to add Windows thread-local-storage support to GCC (the OS-level logic behind the Visual C++ __declspec(thread) keyword) and even understanding the mess that is the GCC codebase was annoying, let alone trying to find out the right way to get the code to output the necessary assembler into the assembler file (the one that is then compiled with gas). Never did get the feature working and never could get anyone in the GCC development community to point me in the right direction either.
You are not a GPL supporter you are an astroturfing troll. Go away.
I have supported free software, and RMS specifically, on Slashdot for years.
If I am astroturfing, for who? And why would I do that for decades?
Instead I am exactly what I say - a long-time software developer, currently an iOS consultant but before that an IT developer for over a decade and also a computer science graduate, who has cared deeply about the programming industry as a whole for a long, long time.
I will not go away because other people need to know practical realities that all too many people on Slashdot want to ignore. I am here to help inform and guide those that people stuck in their ways would mislead.
I would insult you in return at this point but the topic is too profoundly important for insult.
Nobody is forcing you to benefit from my work. If you want to use my work in your product without obeying the GPL
Why are you overlooking the many points I made?
1) I don't want to benefit from your work without obeying the GPL. As I said in all my contracts I explicitly state that any code changes I make to open source libraries I am allowed to send those changes back in. In summary to be very clear, I WANT to send you back changes and obey the GPL. That is 100% not the problem in anything I've ever run across.
2) As I stated the real problem is that a company or client does not want the legal exposure - even if they INTEND to give you back all changes, mistakes happen and they may simply forget. Far more likely is that in five years, someone maintaining the code base will not realize they are in a GPL protected portion of code (because it is VERY easy to stop in a debugger and change a line of code without looking at the header) and then also they have made a change they were supposed to contribute back and now have not. So there is an endless source of potential liability that they simply do not have with BSD code, where the expectation is that code will be given back but nothing will happen if you don't or forget.
3) Some changes never make it back but they are not from people who would have used your GPL code anyway; in the meantime you DO get many changes back from people who also would not have used your GPL code but like to contribute changes.
4) Nobody is forcing me to use your work. But you are forcing me to take on legal responsibility if I choose to use your GPL'ed work, beyond the mere technical effort needed to integrate your code. In my own code for my own company I do not mind at all using GPL code but for many other companies that is simply a non-starter, so your code just does not get used. You need to think about it from your side; are you producing the code to help people or not? I BSD license my own code because the reason I share is only to help others, not for the drive to have others grow my project. I don't care if parts of my code get folded into other things, or enhanced beyond all recognition into a thing of beauty that I will never see. The important part is that I helped in some way to make that possible; to for a brief time stand against entropy and for progress.
Basically the problem is less with the GPL, and more with the legal climate in the U.S. especially (but really the whole world now) that is making the GPL less practical to use. Under such conditions the BSD works better as an explicit promise that you want other people to enjoy code and you have no intent or (much more importantly) CAUSE to sue someone who likes your code. It still communicates the desire that people send changes back; it just does not impose a non-technical and therefore unwelcome burden on the user. In fact it specifically relieves them of that unwelcome burden that is present in almost any other case!
"There is more worth loving than we have strength to love." - Brian Jay Stanley
If you consider Tivoisation to be a freedom you need to get your head examined.
CodeSourcery would be another such company until it was bought by Mentor Graphics.
The standard specifies compiler behavior and the run-time library behavior. I know GCC has been pretty up to date with respect to the language features, but there are still some "Partial" and "No" entries in the run-time library implementation's C++11 status. Is Clang's library implementation complete with respect to the C++11 standard?
Dos is EOL and obsolete. Get over it.
Yes Freedos is available and some companies still use it. My point is it should not be used for new software nor software development as it is a dead platform in a different era just like XP should be avoided by this time next year.
DOS really is not an OS anyway and it can't even handle I/O. It uses the bios for keyboard import because it is so so braindead crippled. What a piece of garbage. My ant MS zealotry started from DOS way before I knew what Linux was.
http://saveie6.com/
Banditry? How is it "banditry"? People offer you software under some license. It's your choice whether you use it or not.
Tiger was a questionable update, and every OSX update since has been a load of shit.
Point of order: Snow Leopard was actually pretty good. It may be the best OS/X of all of them, in fact.
I don't care if it's 90,000 hectares. That lake was not my doing.
Keep talking out your ass with setting up a statement solely to bad mouth Apple products. One big rambling pile of shit rant that is easily refuted.
Final Cut Pro X is a steaming turd when the old Final Cut Pro was best in class software.
Honestly, I know a lot of video editors (I'm not one of them) who would not consider Final Cut Pro best in class. They complained about it constantly. Strangely enough, those are the same people who complained about FCPX.
Most of the people who are complaining FCPX switched to Premiere a years ago, and complain constantly even though they're not using FCPX. It's mostly to continue justifying their transition to Premiere when FCS got long in the tooth. "Well of course I made the right choice in switching to Adobe! FCPX is crap!"
That's not to say FCPX doesn't have downgrades. But they are the sort of downgrades that probably aren't all that important (like no tape workflow, who still REALLY needs a tape workflow out there built into the editor?), but are the sort of features that people say they might possibly use someday for nitpicking purposes.
Again, not that FCPX doesn't have it's issues, but a lot of the stuff these days is wildly overblown, and usually from the same corners that didn't like FCPS either.
I use "__thread" in gcc. Did that not work for you?
If it makes sense that the GPL should apply regardless of the particular core a piece of GPL'd software runs on, then it makes sense that the GPL should apply regardless of the particular server a piece of GPL'd software runs on, too.
The GPL allows free modification of the software, which is valuable to developers.
The GPL allows non-developers to engage (hire or convince) any developer of their choice to modify the software for them.
For example, take a game like SimCity, which has had all sorts of braindead problems. If this game had been released under the GPL instead, then any slashdotter who can program could have fixed a couple of the more glaring issues and made the game playable for lots of people. Alternatively, any gamer (non-programmer) who had a lot of experience with the gameplay and who figured out some improvements could post a message on a forum calling on programmers to make that *exact* change for him.
As it is, SimCity isn't GPL licensed, so anyone with a suggestion has to email EA with an idea, which may or may not be responded to, and may or may not fit with the plans EA has for monetizing the game.
It seems you're really arguing that some of the releases had some deprecations that you didn't like (nothing you listed affected our company at all--I applauded deprecation of AppleTalk!) and some that effected a relatively small number of users (I'd never heard of anything you mentioned). Every Apple point release I've ever used has had some bugs--hardly unique to post-Tiger.
I would argue that OSX 10.0, 10.1, and 10.2 were effectively betas that lacked critical features and were not usable in production environments. 10.3 is the first version I felt comfortable rolling out to our users in even a trial basis. By your standards, 10.3 was the pinnacle of OSX?
I disagree!
Exactly -- understanding the purpose of the GPL requires nothing more than reading RMS' very old rant about printer drivers.
- Michael T. Babcock (Yes, I blog)
I do, incidentally, feel that 10.4 was the pinnacle of OSX GUI. We still have one PPC 10.4 (dual 1.25ghz G4--tells you how old the machine is!) running 24/7 for a server app that has some PPC-only extensions -- so no rosetta. I VNCed in the other day and it has such a pleasant appearance compared to flat monochrome grey crap in post-Lion OSX.
The advantage for Apple was that the GPL was making them choose between integrating not only the compiler but also the syntax parser into Xcode and virally making Xcode GPL as well or continue having a substandard experience of calling gcc as a command line tool. Xcode is much much better since ditching gcc as Apple now has the ability to modularize components and call methods directly. The code completion and static analysis are first rate, and they'd have gotten neither of those from gcc, not to mention taking full control over the direction of Objective-C with things like blocks, ARC and more types of literals.
At the time the specific Windows OS-level functionality related to thread local storage wasn't supported by GCC so __thread (if it existed at the time, I forget if it id) didn't work the way it should.
Ok conformity cop. Shared libs in dos can be made, but statically linked are more common. That's what I meant. Now go play.
Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
The internal version number for Visual Studio 2012 is 11, just as the version number for Visual Studio 2010 is 10. It has no connection with C++ version support.
The standard library has the right to throw an exception if threading is not available and you try to create a thread. It actually happens like that on Linux if you forget to link to pthread. For the concurrent memory model it is just hardware specific.
A thread-local variable resolves to a single instruction on x86 and 3 instructions each on ARM and PPC. Using the pthread thread-specific API requires a function call (at the minimum, potentially an OS call at worst case) and all save/restore instructions that this implies. In an application that is vulnerable to performance issues and one has to make multiple references to function-global, thread-specific variables then using pthread thread-specific data is murder on timing characteristics. Your general Windows/Linux/MacOS application may not need this level of performance but an embedded, real-time app requires this level of detail.
The benefits of that are clear but unattainable without an effective business model.
Some people may not care about all this, and are fine with black box consumerism. That's fine. But I'm not in that market segment, I'm in the other one.
So you don't use a phone, drive a car, ride a bus, go on boats or airplanes, use internet banking or stock/currency trading? This is just an extremely short list of exactly the things you don't inspect the source code of but are a *lot* more relevant to your livelihood than the things you do look at.
I'm sure you didn't mean that to be a straw man, but the only items in your list that really apply are (smart)phone, internet banking, and online trading. We're talking about people entrusting others with their data. My car doesn't have GPS; my phone is not a smartphone (I've got a fully rootable tablet for that stuff). I actually have the advantage to know what's happening in my internet banking software, and I don't touch online trading (primarily because it's such a black box).
I'm talking about trusting your data to someone else's services; not "black box" as in "do I know how everything I use works, and can I build it myself in a pinch?" Really, a better comparison would be using a credit card, as that's essentially trusting your data to someone else's services --- all that usage data goes who-knows where (whether you're a consumer or a merchant).
So no, source code inspection isn't as much of an issue as source code for services inspection. You can have some level of trust for source code via certification -- but when you're not the one using the source code, you'd need certification for the implementation and operation as well, and because of the human factor, you're unlikely to get certification in either of these areas that is robus (at least in the next decade).
I'm sure you didn't mean that to be a straw man
pointing out that you are indeed ok with blackbox consumerism is not a strawman at all, unless you want to constrain yourself to one specific area? it's ok if you want to do that though but your sweeping statement is clearly incorrect.
but the only items in your list that really apply are (smart)phone, internet banking, and online trading. We're talking about people entrusting others with their data. My car doesn't have GPS; my phone is not a smartphone (I've got a fully rootable tablet for that stuff).
so you are quite happy with blackbox consumerism when that blackbox is the ECU in your car? it's ok if you are, i'm just wondering to what level you become willfully ignorant in your consumerism. you entrust your data to the software in cell phone towers that you don't inspect, to the operating system of your phone, to isps, to routers, to banks, to ATMs, etc... and these are exactly examples of blackbox consumerism that you do indeed use, and that's ok. people like to think they are in control of every aspect of their data and claim they oppose blackbox consumerism but really they aren't. if it makes you feel better to inspect *some* aspects of data services that's great, whatever helps you sleep, but the *fact* is you use plenty of them that you don't inspect that can track your location, eavesdrop on you and control potentially dangerous elements of your travel.
I'm quite happy with blackbox consumerism when it's the ECU in my car or the trusses on the bridge I drive over -- those are industry regulated and have engineering structures in place. Hence, *I* might not know exactly what's going on inside, but I am fully aware of the rules and guidelines (and QA processes) being used to ensure proper behaviour. That's about the level to which I become willfully ignorant -- by knowing what I'm ignorant of and what I'm trusting to others to regulate for me.
I don't entrust my data to cellphone towers; they're pretty weak, are used for tracking and data gathering purposes. I pretty much assume that any time I call a cell phone (or land line for that matter) that anything I say is quite possibly being recorded, and behave appropriately (which isn't to say I don't use them, just that I do so with full understanding that I am broadcasting information, not having a personal conversation). This trend continues with your other examples. If I know what's going in to the black box, what's coming out, and am satisfied with the processes in place to validate the integrity of the box, I don't worry too much; the probability levels of something bad happening end up lower than those for me being struck by a car crossing the street.
However, my original (and my current) point is that this isn't the issue we're discussing -- when you host all your own stuff on someone else's service, the black box is no longer static. The black box is no longer in your possession. Without being able to analyse what's going on inside, you have no idea what it's really doing or who it's doing it for. You have no idea when things are being changed, or how that change process works. This is due to their being very few engineering processes for online services currently.
I like to know when I'm potentially being tracked and how; I like to know the weaknesses in my car's design so I can anticipate them. Likewise, I like to know similar information about services I use online. When this information is not available, I am unable to make intelligent decisions based upon what information IS provided. Hence my original posts.
There's a difference between willfuly ignorant consumerism and informed consumerism; I have no problems with the second. My point is that when you hit SaaS, there's an extra level of disassociation that people normally don't identify, instead putting it at the same level as the ECU in your car, the routing system for your phone/internet/etc. It's not.