Coding Lab
Clojure 2
Time: | Thu 17th Feb 2011 15:00-17:00 |
Location: | Guru / Panel / Longer Talks/ Labs |
Session type: | Coding Lab - #dev8d #lab |
This can either be a repeat of the previous session or the possibility to do a more advanced session. I will take a show of hands and then take it from there.
Introduction to Erlang 1
The session, even if fun, will be very intensive with lots of material to cover in a short time. To get the most out of the session, you are strongly advised to have a laptop with you, with Erlang installed.
Introduction to Python
An introductory journey into python. See: http://infodev.oucs.ox.ac.uk/python-training/ . Break 1045 - 1100
- Alexander Dutton: Information Wrangler at Computing Services, University of Oxford, Semantic Web Citation Data Manager at Department of Zoology, University of Oxford.
Introduction to Erlang 2
The session, even if fun, will be very intensive with lots of material to cover in a short time. To get the most out of the session, you are strongly advised to have a laptop with you, with Erlang installed.
Root-finding Dojo: A beginner's introduction to functional programming with Clojure
Time: | Wed 16th Feb 2011 14:00-16:00 |
Location: | Guru / Panel / Longer Talks/ Labs |
Session type: | Coding Lab - #dev8d #lab |
Clojure is a dynamic programming language that targets the Java Virtual Machine (and the CLR ). It is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language - it compiles directly to JVM bytecode, yet remains completely dynamic. Every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection.
Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system. Clojure is predominantly a functional programming language, and features a rich set of immutable, persistent data structures. When mutable state is needed, Clojure offers a software transactional memory system and reactive Agent system that ensure clean, correct, multithreaded designs. See what I did last year http://www.learningclojure.com/2010/01/clojure-dojo-method-of-heron-of.html
Scala
Scala is a general purpose, practical, object-oriented/functional-hybrid programming language that runs on the JVM. It's type-safe and has a performance profile very similar to Java, but has the expressiveness of dynamic languages like Ruby and Python. Some Java users are treating it as a "power Java", some are using it as a scalable back-end for other applications (Twitter), some are using it as a half-way house between Java and Python/Ruby. In the workshop, we will look at some of the features of the language, learn the syntax and start using it to build something in a Coding Dojo.
To participate, it is strongly recommended that you download a recent version of the Scala compiler/runtime - 2.7 or 2.8 branch (the version installed by apt-get on Ubuntu or Debian Sid/Squeeze is fine). Familiarity with Java is useful; I've included code sample comparisons to Java, C#, Python and Ruby. For the Coding Dojo, we will be using SciTE on a Linux machine.