Was object-oriented programming a failure? – Quora

From the discussions in my Quora digest recently, a brilliantly simple and cheeky question:

 “Was object-oriented programming a failure?”
( free signup required to see the whole thread)

Note the use of the past tense. You gotta love trolling for Java apologists.

To be fair, you gotta love trolling for Python believers too. The difference, of course, is that the Python believers are usually right. 🙂

If you read the Answers, there are some very thoughtful critiques . The best of them seem (my favorite is by Joe Wezorek) to conclude that Object Orientation is a useful way of thinking about certain things – but maybe is a relic of the past, developed as a good response to the specific kinds of software problems that were prevalent in the 1980s, and probably gets used too abstractly and too blindly to be called good practice.

Another good response (by John Colagioia) appreciates the fact that Object Orientation provides some useful scaffolding: “You might not end with a great design, but you can have a passable design if you ‘implement every noun as an object, every verb as a method, every adjective and adverb as a condition.'” I can get behind that.

But the over-abstraction that we see in some languages–and really, this may just be because it’s being poorly understood and taught–is a real stumbling block to having more people become coders, and having our existing coders be expressive with their work.

My own opinion is that the over-abstraction may just be a natural interaction that happens when engineering meets the corporate business world. You end up with people who think a certain way about process and content and how they should work in the world, and before you know it, you’ve got a gospel that turns an otherwise creative, dynamic act (programming) into an exercise in over-architecture and bloat.

But my favorite bits are still the ones where the Java folks get teased.

Learn To Code, Learn To Think : 13.7: Cosmos And Culture : NPR

It may be that learning to code is the best way to develop those very thinking skills.

Programming languages come and go. And it doesn’t much matter whether most people master the subtleties of semicolon use in Python versus C. But the basic abilities to think a problem through carefully, clearly and thoroughly are essential for just about all people in just about all fields.

The analogy to cursive handwriting turns out to be an instructive one, though perhaps not for the reasons intended. New research, summarized in a June 2nd article by Maria Konnikova at The New York Times, suggests that the process of learning to write cursive may itself be important for learning to read, to write and, perhaps, even to generate ideas — no matter that the resulting ability is often replaced by a keyboard and decent typing proficiency.

Similarly, it may be that programming is a skill that makes us the kinds of thinkers that we need to be, even if we ultimately have the option of outsourcing our coding to clever machines.

via Learn To Code, Learn To Think : 13.7: Cosmos And Culture : NPR.

RIP ad hoc research

I recently caught up with two colleague/friends of mine from McGill University, who are about to revisit and repeat some analysis we did together on Course Evaluations at the university level.

At the time we did the original analysis in 2009-10, I was the data provider. I helped orient them to their data set, as we defined it together, and I gave them some help getting their analysis off the ground. Then they took that and ran with some really interesting research questions.

They turned it into a published paper, and it (gleefully) upended some old assumptions about which students respond to end-of-semester course evaluation surveys, and what you can learn from that. It even caused some waves on campus when the findings were shared locally. Great for them, all around. 🙂

I’m not an expert in the meta-issues of doing research on an educational institution (as opposed to doing research at an educational instutition). I would have assumed, and maybe they did too, back in 2010, that this kind of analysis could easily jump the barrier between behind-the-scenes Higher Ed Administration and Educational Research.

But it looks like that transition is not as easy to pull off as it once was.

 

Take this in the direction of:

LW and LdG saying that the era of ad hoc research is over. Nowadays with Big Data, the assumption in peer review is not just that your results will be reproducible elsewhere, but that other researchers will be able to review and re-analyze your very own data. That certainly changes how you go into a project–you have to begin with the end in mind. Plan for anonymization, etc.

 

Maybe it worked after all

See my previous post on how all the previous teach-kids-to-program cycles petered out.

I get pretty cynical when I hear things like “This time we’ll change everything” or “This time it’ll stick” or “Technology is the wave of the future”. We were going to change everything the last time, and the time before that. And computers have been the wave of the future for 40 years, but we haven’t managed to make computing part of the school world.

Or maybe we have.

Maybe all those previous waves did work.

Maybe the kids of the 80s became the first dot-com entrepreneurial generation (think: Napster and Yahoo and Netscape).

Maybe the kids of the 90s became the second generation, the ones who conceived of Web 2.0 (think: Facebook, MySpace, YouTube).

And if that’s true, maybe the software world we see today, with open & participatory communities, adult boot camps, lower barriers to entry, and an overall more egalitarian tone, really is the cumulative effect of these waves of teaching-kids-to-program.

Maybe those waves really did change the landscape and increase everyone’s exposure to programming—but the right place to measure that is the world around, not in the schools.

And maybe this next wave is already poised to stick better than the ones before.

Huh.

I’m feeling optimistic already.

Ooh, tough crowd

Just for fun, while I have Part II of Why, Exactly, Teach Coding? simmering on the back burner:

A few years ago I helped a couple of colleague friends do some really interesting analysis of university Course Evaluations. I caught up with them today as they were gearing up to revisit that project and relaunch it with some changes.

In the spirit of that, and Jimmy Kimmel’s “Celebrities Read Mean Tweets”, here’s a great little clip from Lehigh University: profs reading mean reviews from Rate My Professors.

Enjoy. 🙂