Anger Management
Programming and the Gender "Gap"
Something's rotten in the state of [web] Devmark...
I've got a Django review in the pipe, and it's generally positive. It's still cooking both so I can gather more experience, and while some fact-checking occurs.
But there's something still missing that I can't put my finger on. I think cutting away even more of the general cruft of making web apps is bringing it out. I've been programming on the web for nearly ten years now, and something's not right. Despite the fact that I have gotten generally good at programming, and I keep refactoring and refactoring, I keep writing the same web page over and over again: I've got a tree of heterogeneous objects that I need to render, which itself a view of a graph-like structure, I allow the user to manipulate it somehow, and I have to propagate those changes back to the database. And for some damn reason, no matter what I do, there's always something super-special about this form that requires special treatment and requires further extension of the frameworks or libraries I'm using.
(Note this programming post meanders a lot; part of the point is that I don't entirely know where I'm going with this.)
Practical Closures
The problem I see with most introduction to closures is they choose examples that can be done easily with a standard for loop, or some other standard construct, leading a student to ask (with great justification!) what the point is and why (s)he should bother. In my opinion, the best place to start understanding them practically is to look at their ability to decouple logic, because there they have benefits that are difficult or even impossible to replicate without them.
So despite the huge amount of verbiage on the net about closures, I thought I'd take another crack at explaining it with examples that actually do something that is much harder to do without closures.
After a bit more thought about my previous post, I'm pretty sure this is going to be a disaster for Microsoft.
Microsoft has two goals here:
- Become the dominant distributor of video content, and probably eventually leverage that into dethroning iTunes and becoming the dominant distributor of content, period. By that I mean they will own the platform, not necessarily the stores themselves.
- Destroy open source by making it borderline illegal, if not actually illegal, to have drivers that open source software can use.
I wouldn't even care to guess which is more important to them. I'm sure they really, really want #1, but if they had to choose only one I wouldn't be surprised they'd rather have #2.
But this entire plan is predicated on two very strong assumptions:
- People are so desperate to experience high-quality video on their computers that they are willing to put up with all the other continuous degradation of their computer's performance to do it.
- The Windows monopoly is so entrenched that no matter how they screw with your computer, you have no choice but to buy Windows, and hardware vendors have no choice but to sell hardware for Windows only, completely snubbing Linux and quite possible Macs as well
If either of these fail, Microsoft loses, and both are highly questionable.