I am a programmer interested in tools and programming languages.
I really like the UNIX philosophy of having each program "do one thing and do it well", but only if those programs can be composed into more specialized programs. With p data producers, t data transformers and c data consumers, you can string n data transformers together in order to obtain an exponential number of behaviours! p×tn×c behaviours, to be exact. As you can tell, I also like math.
I keep coming up with new projects, but a project would need to be really short for me to actually complete it, otherwise a newer idea will steal my attention away. Many of those ideas are programming language features. For instance, after writing the previous paragraph I immediately decided that I had to explore the semantics of a shell-like language where more than one producer or more than one consumer could be composed.
I really wish I could test those ideas, but alas, creating a programming language takes way too much time. The next best thing, for me, is to learn programming languages with unique features. Agda, for example, is a variant of Haskell which is even more "bondage and discipline", if you can imagine such a thing. You can write proofs using it, but writing those proofs still feels like programming. Really!
I should also mention that I have an M.Sc. in Computer Science from McGill University. I showed how commutativity could help solving conflicts in aspect-oriented programs. That was an interesting experience, combining the down-to-earth practicality of aspect-oriented programming with the theory and proofs required to ensure that conflicts would indeed not arise. Best of all, the result was the outline of a new programming language feature! Like everything else, it's a great idea that I don't have the time to polish, but who knows, one day perhaps!
You can reach me at [...]@gmail.com, where the omitted fragment is "gelisam".
No comments:
Post a Comment