Entry tags:
- books,
- gerunds,
- haskell,
- j,
- languages,
- lisp,
- molesworth,
- perl,
- programming
The private life of the gerund
The relationship between human languages and programming languages is interesting to me. In general, programming languages are a lot simpler (which is great, because it makes it easier to learn lots of them): they also have rather less vocabulary (but that's OK, because you're actively encouraged to make up your own). We talk about programming "idiomatically": while it's often possible to use one language's idioms in another, they can look almost as odd as, say, Japanese idioms used in English. In the evolution of programming languages, you can see a super-compressed version of the evolution of human languages: ideas, grammatical forms, and vocabulary transfer from one language to another where there's contact between the two communities, and languages split into mutually-unintelligible descendants when the communities fracture. There's at least one example of creolization that I'm aware of: the programming language Perl can be considered a creole of C, shell, sed and awk (and has since absorbed features from many other languages). Perl's also been heavily influenced by that other notable creole, English, and incorporates several features from human languages (like topicalization). It's no coincidence that Larry Wall, the original creator of Perl, studied linguistics at graduate school. In the opposite direction, you'll sometimes hear hackers describing human languages in terms derived from programming languages: Japanese is sometimes said to use reverse Polish notation.
But as I said, programming languages tend to be a lot simpler than human languages. In fact, so-called object-oriented languages (like, say, Java) have been described (perhaps "derided" is a better term) as languages in which everything is a noun: dually, so-called functional languages (like Haskell) could be described as languages in which everything is a verb. Actually, verbs and nouns cover pretty much everything in most programming languages. Perl has pronouns and conjunctions, and pronouns can be added to Lisp with sufficient cleverness; a couple of languages have something vaguely resembling adverbs.
So you can imagine my pleasure at learning yesterday that the language called J has gerunds :-)
*downloads J interpreter*

Fig. 1: The gerund attacks some peaceful pronouns (image courtesy n. molesworth)
But as I said, programming languages tend to be a lot simpler than human languages. In fact, so-called object-oriented languages (like, say, Java) have been described (perhaps "derided" is a better term) as languages in which everything is a noun: dually, so-called functional languages (like Haskell) could be described as languages in which everything is a verb. Actually, verbs and nouns cover pretty much everything in most programming languages. Perl has pronouns and conjunctions, and pronouns can be added to Lisp with sufficient cleverness; a couple of languages have something vaguely resembling adverbs.
So you can imagine my pleasure at learning yesterday that the language called J has gerunds :-)
*downloads J interpreter*

Fig. 1: The gerund attacks some peaceful pronouns (image courtesy n. molesworth)
In Dulci Jubilo..
Personally, I find this both awe-inspiring, and incredibly scary. But it's nice to see some of our school latin can come in useful.
Re: In Dulci Jubilo..
[Another way to make Perl macaronic would be via the Inline::* modules, which allow you to embed C/Python/Java/etc code in your Perl. ]
"Both awe-inspiring, and incredibly scary" is a good description of a lot of Damian Conway's work, I think :-)
no subject
Am I a very sad person?
no subject
no subject
no subject
Although I don't know... I'm trying to get my head round programming slightly at the moment (our inhosue programmers are making a brand new database for us librarians, so they keep asking us to come along to brainstorming sessions on it (it's in Java, if that means anything), and I wish I knew a bit more about it all so I wouldn't feel like a fule for asking silly questions.
no subject
So, are they expecting you to comment on the code architecture, or even the code itself? That seems a bit strange. On the other hand, it's a very good idea for you to be involved with specifying it - ask lots of questions on the lines of "would I be able to do X?" and "how does that help me with Y?" If you can, try using early versions, to see how it feels and if it's what you need. At the end of the day, whether or not it uses a Model-View-Controller architecture is only relevant to the people who have to maintain it: you should be able to use it to get your job done, ideally without having to understand too much of the architecture.
And use the phrase "use case" a lot. Java people like that one, IIRC.
That said, if you've got any computery questions, feel free to drop me a line.
no subject
So I don't really need to know how it all works, but when I do say things like "how does that help me with Y?" or (which is the most common thing at the moment) "but won't that mean that X happens?" sometimes I wish I knew a bit more about the architecture side so I wouldn't make the programmer wince when he knows how much work (and thus, company money) what I or another person have just asked for will involve.
As for using early versions - we've been basically doing that for months. The original Excel prototype was designed by a guy (who has a background in computery things) who actually started out as a librarian the same time as me, and then he and another more experienced librarian have basically gone on to design the actual working thing, which we're now testing. So it's interesting in that it was actually desinged by people who know what it actually means to do the job.
The most interesting bit about it to be honest now is all the little things that have come up in testing, and how I know the two guys who orignally designed it had this idea of it as the UBER Library database, and how they have to keep scaling back their ambitions due to time and money... for someone like me, who's never been involved with anything like it, it's kind of a weird insight into it all.
anyway, that comment was almost a post in itself. But thanks. I might. :)
no subject