No. I am one of the primary authors of what might be fairly described as a Photoshop-class application -- one with far more layer modes and built-in filters than Photoshop, as well as a full-bore built-in ray tracer and texturing facility. It is also considerably smaller and faster than Photoshop in the identical system environment. I am also the author of multiple realtime video and arcade games, etc. I'm telling you flat out that matrices are not required. Period.
Matrices may be the only way you know how to do these kinds of graphics; but they definitely aren't the only way to do it.
Just to take your example: "if you have 3-vectors (i.e. points relative to the origin in 3-space), any global linear transformation is represented by a matrix multiplying each vectors"
The correct way to state this is: "if you have 3-vectors (i.e. points relative to the origin in 3-space), any global linear transformation can be represented by a matrix multiplying each vectors." Here is the non-matrix approach (and of course, there's always polar, which can also be easily handled.) This is for 2D points; 2D vectors and 3D points and vectors are all just a further (and trivial) generalizations of the following:
Translation: X += deltaX; Y += DeltaY
Rotation: X = X * cos(theta) - Y * sin(theta); Y = Y * cos(theta) + Y * sin(theta);
Scaling: X *= Xfactor; Y *= Yfactor
Shadows and reflections can be trivially accomplished with more of the same. Basically: R = 2(V dot N)N - V
"dot" is just the dot product, which again is a trivial combination of the lowest math primitives.
You are confusing the fact that matrices can be used to do something with the idea that matrices are the something.
With algebra, trig, and basic math in hand, the programmer's doors to 2D and 3D graphics are wide open.
The government doesn't obey the law.
Your phone is always awake, or can be, which is to say, the CPU running, albeit in a lower power state. From there, it takes very little energy to simply record what the mic is picking up. It doesn't need to be translated, and it can be sent, compressed, at widely spaced intervals in terms of battery load. It could be sent while you are otherwise connected. You'd be unlikely to notice a difference in power consumption.
Funny. Also precisely on target.
When speech recognition gets "decent", as TFS inaccurately states, which is to say, when it's good enough to understand me as well as a human does, then a lot of things will change. For instance, I wouldn't be typing this on a keyboard. I'd be speaking, which is quite a bit faster than typing. Probably never touch my phone other than to slip it into a pocket. Especially after there's a decent, power-efficient wearable display, or an in-eye projection, in front of face hologram, etc.
Right now, what the author calls "decent", I would describe as not even close to acceptable, with a grace note of "better than nothing."
I think it'll be a white yet, based on the crappy stuff available right now.
On the other hand, speech synthesis is actually decent at this point in time.
I'm sorry, I tried to read your post, and Culture20's post, with your reasoning in mind, but everything that was written reduced to "words", and then to letters, and then to dots on my display, all the same thing, no meaning remaining at all.
So I think I'll stay with "coding" and "programming" taken to mean making computers do things for us. Yes, "coding" applies to a markup language. "Programming" does not. From TFS: "Olga Khazan writes in The Atlantic that learning to program involves a lot of Googling, logic, and trial-and-error—but almost nothing beyond fourth-grade arithmetic."
Now. Let's say you are ejected from school on the first day of fifth grade. You passed 4th grade with flying colors, though. Now you are sent to a desert island with a computer. Alone. No network. No books. No communications. No reference materials on the computer. Just you, an abundance of tropical fruit and fish, your grass hut and a computer, let's say solar-powered. You are not going to be able to program it until, or unless, you figure out a great deal more than "fourth-grade arithmetic."
Programming. It actually means something more than piddling about with markup language and 4th grade math.
Linear algebra (matrices) and trig are essential for doing 3D graphics.
Trig is. Matrices aren't. Translation, rotation, scaling, texturing, light and shadow simulation -- all can be done without matrices. Matrices have nothing inherently linked to 3D about them. They are simply a neat way to concatenate operations and/or factors that can be, but don't have to be, used.
For conversation above the trivial level, context is relevant.
So while you may hate it, you certainly aren't going to stop it.
The author doesn't seem to understand what math IS, how and why programming IS math. The author writes that you don't do a lot of algebra and such in typical web pages. Does your PHP script use SQL? That's algebra, relational algebra. It's not that you need to remember mathematical formulas; it's that have a half decent design for your software, you need mathematical THINKING. If your high school algebra homework was wrong, your sql is probably wrong too.
This. Math isn't a set of knowledge to be memorized, it's a way of thinking, and programming is pretty much the same. Studying math will help you think more clearly about a problem, even if you never use the specific math tools.
I went back to school to study pure math, and I keep having these a-ha moments when I recognize a programming concept in its classical math formulation. The crucial difference is how precisely they are defined, compared to the usual ways of learning programming from examples. It helps understand why many common things in programming are the way they are, and it also gives higher-level perspectives on things. For example, having studied functional analysis, I'm more comfortable manipulating functions with "higher" functions. I imagine proper CS courses will teach the same things, though (my background is in physics).
OTOH, specific math tools can also be enormously fun and useful, for example complex analysis in image processing (see sig).
Programming -- I don't think that word means what she think it means.
Saying C-level guys don't need to know how their shit works is like saying the people in charge of subways and railroads don't need to know how trains work, and then wondering where the problems are coming from when you get a boss that expects two head-on trains to "move sideways" instead of colliding.
The moon is a planet just like the Earth, only it is even deader.