Easily fixed with libraries like Eigen ( http://eigen.tuxfamily.org/ind... ) and many others.
That's the problem. There's no one way to represent a multidimensional array in C++. There are many ways. Which means math libraries using different ones are incompatible with each other. The last time I did a big number-crunching job in C++, I had four different array representations forced on me by different libraries.
Because the compiler has no clue what those array libraries are doing, you don't get basic loop optimizations that FORTRAN has had for 50 years.
Because your finger is too fat. No, I'm not insulting you, I'm just pointing out there's a difference between a UI designed for a relatively "accurate" mouse pointer (also with buttons), and one that involves a half inch oval of flesh-covered-bone pushing on glass.
Also, you know, size. As in either the font is going to be tiny, or the fact that the UI is designed for the full height of a 14" (if you're lucky) screen is going to mean you can't see most of any dialog boxes that come up on your 4" touchphone.
What I would like, and regret not seeing ever make the light of day, is that Ubuntu for Android thing. There you can compile your desktop app to run on your phone - it's just to use it, you need to plug a mouse, keyboard, and screen in, so that you have, y'know, a desktop.
A big problem is that C and C++ don't have real multidimensional arrays. There are arrays of arrays, and fixed-sized multidimensional arrays, but not general multidimensional arrays.
FORTRAN was designed from the beginning to support multidimensional arrays efficiently. They can be declared, passed to subroutines, and iterated over efficiently along any axis. The compilers know a lot about the properties of arrays, allowing efficient vectorization, parallization, and subscript optimization.
C people do not get this. There have been a few attempts to bolt multidimensional arrays as parameters or local variables onto C, (mostly in C99) but they were incompatible with C++, Microsoft refused to implement them, and they're deprecated in the latest revision of C.
Go isn't any better. I spent some time trying to convince the Go crowd to support multdimensional arrays properly. But the idea got talked to death and lost under a pile of little-used nice features.
Although a popular use of nginx is as a reverse proxy. We don't have any nginx hosted websites here, but Netcraft thinks they are all nginx because they only get to find out what the reverse proxy is running. In reality the actual webservers themselves are mostly Apache (with a couple of specialist things, like an embedded Jetty instance). But to anyone outside it looks like nginx.
Most of them. The headline is very misleading. The next sentence in TFA is:
"Apache's position is much stronger when considering only Active Sites — it retains an absolute majority of 52.3%, and second place is held by nginx (14.4%), rather than Microsoft (11.3%). By excluding much of the automatically-generated content present on the internet, the Active Sites metric better reflects web server market share amongst human-maintained web sites."
In other words, most of IIS's "catchup" is really just parked domains and the like. In reality, I bet Apache is nearer 60% because most of the "nginx sites" will be reverse proxies in front of an Apache server. We have four domains that are hosted by Apache for example, but Netcraft thinks they are nginx because of the reverse proxy.
Well, this is Slashdot, so I believe the definition you are looking for is "The right to make the CHOICE to copy something despite the attempts of the copyright cartels to prevent us from sharing what we paid for already and calling it stealiing which it totally is not because (continued page 94...)"
The US Government doesn't want, and doesn't buy the item that Walmart sells.
The problem is, sometimes they do. There are some situations where you need something with exactly known parts and quality that can be replaced with an identical one in ten years (guaranteed by the vendor) if required. There are some situations where you need something that works now and if you have to throw it away in 3 years, that's fine because your next upgrade cycle is in two years anyway. The government doesn't differentiate these in the procurement rules, so even when all you want is a generic white-box PC for a secretary's desk that will only ever run MS Word and a web browser for the intranet, you still go through almost the same procurement process as for parts for a stealth fighter and end up buying a machine from Dell that is guaranteed to have specific parts, at an increase in price that's more than just buying two or three identical machines from another vendor (or even from Dell's consumer lines) and throwing them away when they break.
I don't think it's quite that clear cut. When I worked as a consultant (I still do sometimes, but I'm mostly an academic these days), I wasn't paid except when I was doing work for my customers. Uber fills the same role for drivers as a recruitment agency does for consultants: they are not employing you, they're putting you in contact with customers in exchange for a cut of your fee. In the case of Uber, they are also handling the QA and payment processing.
In your shop analogy, it's more akin to a shop allowing non-employees to get a commission for sales. The shop wouldn't put them on the payroll, but would pay them a percentage for everything that they sold. This isn't common for shops, but happens in a lot of other sales. I only see a problem with it if the people working this way have a particularly bad deal and the employer has a sufficiently strong bargaining position that they can't get anything better.
Programmers used to batch environments may find it hard to live without giant listings; we would find it hard to use them. -- D.M. Ritchie