Tag Archives: links

blog link: the inferiority of blackness as a subject

I don’t do nearly enough (or any) linking to other inspiring blog posts. Today that will change. I came across an eloquent and inspiring (not to mention blood-pressure-raising) post today critiquing a Chronicle of Higher Education blog post that clearly should never have been published – which attacked doctoral students’ dissertation titles as a statement on the illegitimacy of black studies departments as a whole. Seriously. Picking on PhD students, by someone with no graduate education, as though black studies is a complete waste of time because it doesn’t meet the writer’s standards of legitimate, relevant topics. By the way, did you know that racism is dead? We’ve got a black president! Clearly studies that focus on race are no longer relevant. Especially topics in black studies that are written on by, you know, black scholars.

Anyway, what I will link to is not that offensive and – hey – less than worthwhile post. I link to a much better one.

“The Inferiority of Blackness as a Subject” at Tressiemc <– Click that link; read and weep for humanity. Get mad. Sign the petition. Share to your own audience. Let’s not put up with this kind of thing being posted at Chronicle of Higher Ed.

and thinking about object-oriented programming

I may be enamored with functional programming right now, but I do remember that the first languages I really learned were C and C++. That ++ is one big difference. I was fortunate enough to be learning them at exactly the same time, and so “object oriented programming” meant a lot more to me than a buzzword.

I’ll share another link tonight, and this one is more of a read, but it’s an opportunity to ask something you don’t every day: how does object oriented programming work, and how is it implemented? For example, in ANSI-C?

Object-Oriented Programming with ANSI-C (Axel-Tobias Schreiner, English translation, PDF)

thinking in functional programming

My internship this summer gives me the opportunity to get acquainted with and even use some XSLT – misleadingly the “stylesheets” of XML.

XSLT has been hard to wrap my head around, not least because “stylesheets” and “used to format XML” make me think of CSS, not – well, functional programming. It’s been a good many years since I got to play around in Lisp, let alone make something with it, and this has brought me back to those two great semesters of AI electives that introduced me to this way of thinking. It took a few weeks to get into it, but once I “got” how Lisp worked at a more intuitive level, I remember my impression: I am thinking in a different way. It wasn’t just about programming, it was about problem solving, and about a way of looking at the world.

Diving into a functional programming language again has got me thinking about that experience. Learning how XSLT works has of course made me remember a time when Lisp made sense, because XSLT is functional programming. If I had been introduced to it in that way at the outset, it would have clicked much sooner. Now it makes me yearn a little for the time when I didn’t just know that I was working in a different way, but when that way came to make sense and I was able to start going somewhere with it.

But when I learned Lisp in the context of an AI (artificial intelligence) class, I didn’t learn it as “functional programming” then either. I wasn’t introduced to it in the context of lambda calculus, which I came to find much later – last semester – in a natural language processing course. I knew it was different, but I didn’t know how on a bigger picture level.

Now that I have that bigger picture, I am appreciating this way of thinking more and more.

Why is functional programming “hard”? Why is it something that I had to get used to for a time before it clicked? I have an answer this time – because I have been doing imperative programming for so long, because that’s how I was introduced to programming (I didn’t attend MIT after all), and because that has become the natural and intuitive way for me to solve a problem. But imperative programming isn’t a more natural way of thinking about things. It’s a different way. Obviously, these two ways of approaching problems have different applications, but the elegant and concise ways of approaching problems that functional programming offers are perhaps even more appealing to me now.

Because I am not an expert, I write this not to make a profound statement about how to approach problem solving, but to share a great article about where functional programming came from, why it’s so appealing, and the things it makes possible. I give you,

“Functional Programming For the Rest of Us.”

Take the 10 minutes to read this and enjoy!