{"id":225,"date":"2008-02-25T13:15:58","date_gmt":"2008-02-25T20:15:58","guid":{"rendered":"http:\/\/gregbaker.ca\/blog\/2008\/02\/25\/programming-language-study-group\/"},"modified":"2008-02-25T13:37:04","modified_gmt":"2008-02-25T20:37:04","slug":"programming-language-study-group","status":"publish","type":"post","link":"http:\/\/gregbaker.ca\/blog\/2008\/02\/25\/programming-language-study-group\/","title":{"rendered":"Programming Language Study Group"},"content":{"rendered":"<p>As some of you know, I&#8217;m starting a one year sabbatical in September.  There&#8217;s a lot to say about that, but for today, I&#8217;m going to limit myself to one of the plans.<\/p>\n<p>I&#8217;d like to get to a point that I can teach CMPT 383 (Comparative Programming Languages).  One of the things I&#8217;d like to do for that is expand my own breadth of experience with programming languages.  I have worked with a bunch, but there are a lot more out there, and most programmers don&#8217;t give them enough thought.  My goal for the year is to learn one language per month.<\/p>\n<p>Of course, I wouldn&#8217;t have time to do a huge project in each.  I&#8217;d like to get to the point that I could write some small (but functional) programs and know &#8220;the way&#8221; of the language.  Here are some of the languages that come immediately to mind:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.haskell.org\/\">Haskell<\/a>:  I have used Miranda (which is similar), and took a functional programming course at SFU that used Haskell, but that was all a long time ago.  I&#8217;d like to go through for a refresher.<\/li>\n<li><a href=\"http:\/\/en.wikipedia.org\/wiki\/Prolog\">Prolog<\/a>:  Again, I used Prolog back in the 383-like course I took in my undergrad, but it has been a long time.<\/li>\n<li><a href=\"http:\/\/caml.inria.fr\/ocaml\/\">OCaml<\/a>: People who like OCaml <em>really<\/em> like it.  That&#8217;s the kind of thinking that brought me to Python a few years ago, so it might be worth a look.<\/li>\n<li><a href=\"http:\/\/www.lua.org\/\">Lua<\/a>: A lightweight scripting language that also seems to have some rabid fans.<\/li>\n<li><a href=\"http:\/\/en.wikipedia.org\/wiki\/Lisp_programming_language\">Lisp<\/a>: I find it a little odd that I&#8217;ve gotten this far in life and never written any Lisp.  Time to right that wrong.<\/li>\n<li><a href=\"http:\/\/en.wikipedia.org\/wiki\/C_Sharp_%28programming_language%29\">C#<\/a>: The only language on the list that&#8217;s widely considered &#8220;practical&#8221;.  I know it&#8217;s kind of just MS Java, but there might be something good in there.  Plus, the <a href=\"http:\/\/www.mono-project.com\/Main_Page\">Mono<\/a> implementation seems to be working now, so I wouldn&#8217;t have to use Windows to do it.<\/li>\n<li><a href=\"http:\/\/www.mathworks.com\/products\/matlab\/\">Matlab<\/a> or <a href=\"http:\/\/www.gnu.org\/software\/octave\/\">Octave<\/a>:  I like the array-based thing, and want to try some real <em>stuff<\/em> with it.<\/li>\n<li><a href=\"http:\/\/en.wikipedia.org\/wiki\/Erlang_programming_language\">Erlang<\/a>: You could say that Erlang is Just Another Functional Language, but it was developed by Ericsson for real practical stuff.  That distinguishes it as interesting.<\/li>\n<li><a href=\"http:\/\/en.wikipedia.org\/wiki\/D_programming_language\">D<\/a>:  People like it, and it comes after C, right?  That&#8217;s some good marketing.<\/li>\n<li>Some  <a href=\"http:\/\/en.wikipedia.org\/wiki\/Esoteric_programming_language\">esoteric programming language<\/a>.  These are mostly conceived as jokes, but that doesn&#8217;t mean there isn&#8217;t something to learn from them.<\/li>\n<\/ul>\n<p>That&#8217;s ten without even thinking too hard.  There&#8217;s a really great list of <a href=\"http:\/\/en.wikipedia.org\/wiki\/List_of_programming_languages_by_category\">programming languages by category<\/a> in Wikipedia. <\/p>\n<p>I think the way to go about this is to create something like an informal <strong>Programming Language Study Group<\/strong>.  That way, there would be other people hounding me to keep going (and vice versa).  We could have a few little exercises for each language, maybe.<\/p>\n<p>Who&#8217;s with me?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As some of you know, I&#8217;m starting a one year sabbatical in September. There&#8217;s a lot to say about that, but for today, I&#8217;m going to limit myself to one of the plans. I&#8217;d like to get to a point that I can teach CMPT 383 (Comparative Programming Languages). One of the things I&#8217;d like [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,10,12],"tags":[],"class_list":["post-225","post","type-post","status-publish","format-standard","hentry","category-teaching","category-tech","category-work"],"_links":{"self":[{"href":"http:\/\/gregbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/225","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/gregbaker.ca\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/gregbaker.ca\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/gregbaker.ca\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/gregbaker.ca\/blog\/wp-json\/wp\/v2\/comments?post=225"}],"version-history":[{"count":0,"href":"http:\/\/gregbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/225\/revisions"}],"wp:attachment":[{"href":"http:\/\/gregbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=225"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/gregbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=225"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/gregbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}