OCaml non orthogonal featrures (was Simplification of OCaml as a design goal?)

Can I just say, quite to the contrary. I’ve written a ton, and I. Mean. A. Ton. of perl5 code. The 1996 Atlanta Olympics app-server was 100% O-O perl5. I wrote an object-relational mapper for Java<->DB2, in Perl. I wrote a significant part of an aspect-oriented code-injection toolkit in Perl5. And tons of other stuff, all over the place. Systematically, I think about Perl as dynamically-typed Scheme, and I am always aware of the types. So why don’t I write in OCaml? Because Perl’s support for strings and regular expressions is wildly superior. That, and I don’t have to write down types. I have a dream of writing a “progressive typing” system for Perl, that would take in Perl, and output OCaml. And again, I’m a massive Perl bigot, always choosing Perl first when I have a problem to solve.

I really do feel strongly: don’t assume that you can’t use strongly-type languages for these tasks; instead, ask why strongly-typed languages aren’t as labor-efficient, and how to change that.

This is another way of saying the same thing I said in my other note: when we decide that OCaml is unsuited for some particular application, that’s a self-fulfilling prophecy. Please, don’t let yourself get caught up in that.

Most of the people using Python are using Python in the same way that accountants use Excel: as an application that runs some commands to give them a way to structure some kind of task.

This is exactly right! Somebody, a long time ago, wrote tools like numpy and scipy, and because they required little up-front learning to use, they were able to teach lots of newbies how to use them. This, by the way, is how Javascript got so pervasive: I remember in 2001, that people in the industry were talking about how JS was the way in for newbies with little CS knowledge. Similarly, I’ve heard a story that the guy who started Node.JS, started it because he knew JS, and wanted to write servers. From small beginnings, is what I’m saying.

4 Likes