Languages and Frameworks I Know

#3 - Array?, Declarative and Functional Languages

Posted by Solan Manivannan on September 5, 2016

Some wacky names to describe the type of these languages, and I haven’t even heard of the phrase Array programming until writing this post. These languages have special purposes and, at least for me personally, require a different way of thinking.

Matlab: is an 'array' programming language that I have used in mathematics courses. I have used it for numerical analysis, matrix calculations and graph plotting. Not much to say apart from using Google to find out how to do things - don't see the point in reading a textbook.

R: is another 'array' programming language, again used for mathemtaical purposes, especially statistics. You can do a lot with this language in very few lines of code. Requires a lot more time investment googling to find out how to do things, but at the end of the day, it turns out to be very few lines of code to write. I remember using this for regression plots and multivariate distributions.

Prolog: is a 'declarative' language, again something that I did not know until writing this post. However, the first thing that does come to mind is that this language is closely associated with logic. Not a lot to say here as I haven't done enough programming with this language to require further knowledge other than the basics.

Haskell: is the first language I 'officially' learnt, and I've been told that this language is one of the last languages people learn. Why is this? Haskell is a functional language that has a different style of thinking to object oriented languages, and it takes a lot of time and practice to get used to this. I attempted reading some textbooks, most notably Haskell: the craft of functional programming, however, I didn't really feel comfortable with it. A year on from learning the language, the compilers code generation exercise was required to be done using Haskell, and it was a refreshingly new experience compared to my recent acquisition of object oriented programming knowledge. In fact, the majority of the compilers course was taught using Haskell, yet the big compilers project was done using Java. Hopefully, if I get the chance to become an undergraduate teaching assistant, I can sharpen my skills in this language in the near future.