Rewriting Java in Scala & Making Code Lovely 1 - Case Classes

This is the first in a series of posts for people who know Java and are learning Scala. Apart from teaching Scala I hope these posts show how Scala makes your code lovely... What does more lovely mean? Lovely covers several things: More concise More readable Easier to debug Easier ... Read more

Introducing Gleam

Over the past few months I have been working on a new programming language for the JVM. It's called Gleam and its purpose is to make view layer programming for web applications easier. You can read more on the approach taken and the problems it is trying to solve here ... Read more

Language Wish-List: Add Information to Exceptions

Following a discussion over on David MacIver's blog. I have a piece of functionality I'd like to see in more languages. The ability to easily add information to exceptions try { // ... } catch (Exception e) { e.addInformation("serverName", serverName); throw e; } Or, even better, a way to annotate ... Read more

Type Burdened

I've been trying to collect my thoughts on why I prefer Scala's type system to any other that I've come across. To summarise: it has type safety and just the right amount of type burdening. What is type burdening? Type burdening is a consequence of type safety. The more you ... Read more

Benefits of Working in a Higher Level for Web Pages

In my previous post I discussed how working in a higher level of semantics than HTML can be beneficial when writing web pages. To summarise, suppose you write pages like this: section(name="Contents") { The contents go here.   We use an empty blank line for paragraph spacing. } button(link="somelink", label="Click me!") ... Read more

HTML - Machine code for web pages

Writing web applications using HTML is like writing business logic in machine code. When you write your web application using HTML directly you lose most of the benefits that the software development world has worked hard for: No re-use No compile time safety (type checking, validity of names, valid use ... Read more

My Ubuntu Eclipse Development Environment

I spent some time a few months ago getting my development environment set up just right for development. I think I've got it cracked now so thought I'd share :) Ubuntu 9.10 First up, put Ubuntu 9.10 on your box. I've learnt to love Ubuntu for development as it has ... Read more

Why val and var rock

When discussing val and var in Scala they are often seen as the alternative to Java's more long winded way of declaring variables, e.g. Employee bob = new Employee("Bob"); vs var bob = new Employee("Bob") The latter is clearly more succinct and has less repetition. This is normally where the ... Read more

Fun - The undersold benefit of Scala

I've seen a lot of arguments lately comparing Scala to [insert any language here]. The arguments are normally based on some mix of conciseness, static typing, functional programming and the actor model. However, I've yet to see anyone arguing for the main reason I'm drawn to Scala: it's fun to ... Read more

How Great Developers Rebel

Having now had the pleasure of working with several people who I count as great developers I believe I have spotted a trend. This trend is what helps them become great. The trend: great developers rebel They rebel in a very specific and secretive way. When a great developer is ... Read more

Colin Howe

I'm Colin. I like coding, ultimate frisbee and startups. I am VP of engineering at Conversocial