User:MattOates

From Rosetta Code
My Favorite Languages
Language Proficiency
Assembly Beginner
BASIC 20 GOTO 10
C++ Beginner
C Intermediate
C sharp Beginner
Fortran Read Only
HTML Expert
Icon Beginner
Java Intermediate
JavaScript Beginner
Maple Beginner
MATLAB Beginner
Pascal Beginner
Perl Intermediate
PHP Intermediate
Prolog Beginner
Python Beginner
R Beginner
SQL Intermediate
Unicon Beginner
UNIX Shell Intermediate

Who Am I

Postgrad student working on Swarm Robotics in Bristol, UK. Love all things computing, and enjoy messing around with different languages.

Why Am I Here?

I'm a big fan of Icon... for no real reason other than I think it is a very unsung but powerful language, especially for people just starting out. My first program in Icon and one of my early full programs in general used graphics and GUI widgets to create HTML image maps, it was that easy to get started with! Once you get over how much is built in to the language however you realise you have picked up some odd habits that don't port to other languages because they are just too nifty to become mainstream, like 8-track and Betamax tapes. Being able to use the keyword "every" to iterate and permute all possible realisations of an expression is incredibly cool, and makes you start to think in a very strange way about programming.. you start to express what you want, not how to get there: goal directed programming. Imagine the first time you get recursion (assuming you didn't start out in LISP or PROLOG) its the same feeling, but instead of making iterating over trees and lists easy it makes building complex expressions easy and simple to read. Every one on Rosetta should give it a try, and yes I know other languages have similar features, but none imho are as clean as (Un)Icon for the non technocrat.

Language Use

I've decided to not put "Expert" for any language use, as I just don't use a single language exclusively enough to become a foo master. I'd rather just use the best tool for the job and Google for some library functions rather than commit to memory (I live in fear of pay per search Google). However if you have some questions about Perl, Java or PHP I can probably help beyond Google :)

Links