BCS is a registered charity: No 292786
A 16 year old school boy has developed a powerful new programming language for Web and general applications using a PowerBook G4 running Mac OS X.
Patrick Collison, from Limerick, was given the title of Irish Young Scientist of the Year in 2005 beating off over a hundred other entrants, and taking second place in the European Union Young Scientist of the Year Awards, which took place in Moscow late last year. He is now being head-hunted by IT companies and academics from around the world.
Patrick had always programmed in Linux on desktop computers until he decided he needed a laptop computer to complete his first entry in the Irish Young Scientist of the Year Awards. 'A lot of what I was doing required UNIX so I bought a 17–inch PowerBook G4', he explains. His project was Croma, a new high–level programming language for creating Web applications. Its success has made Patrick a Mac convert.
Patrick's motivation came from his work on a number of local business Web sites in his home town. After encountering numerous problems with many Web programming languages frustration drove him to create something to do the job more efficiently and effectively.
'I was spending a lot of time writing similar code for different projects', he explains. 'I thought this was an opportunity to make something better.'
'Macs are very much in the dominant position when it comes to development work and it's not hard to see why. From every point of view, they are the best platform available. The smart developers are using Macs'.
Patrick, who has had no formal training in programming at school, has been creating applications with the help of text books since the age of ten. 'In recent years, there's been a resurgence of interest in programming languages as a study in itself', says Patrick. 'That's mainly due to processors getting faster, which means you can use more complex programming techniques'.
Taking List Processor (LISP) as his first inspiration, Patrick incorporated ideas and elements from other languages to create Croma. Running Mac OS X v10.3 Panther at the time, his PowerBook was crucial for the development of the new language because of the tools it enabled him to access at no further expense.
'When it comes to programming, UNIX is the best option', says Patrick. 'So the fact that the Mac is UNIX-based is an advantage. The Mac also comes with Xcode, which is easily one of the best integrated development environments available for any software writing task'.
Patrick used Carbon Emacs as his text editor, together with the SBCL compiler and Xcode came as standard with his computer. These highly functional development tools are freely available for download from the Mac development community or from www.sbcl.org.
The resulting programming language offers the same functionality of other languages but with fewer lines of programming code. A simple log-in page and user–management system, for example, can take upwards of 80 lines of PHP, while a similar Croma program will take just 10 lines.
By using an integrated Web server, Croma also enables programmers to develop their sites intuitively and with complete control over the final product. 'Not all of the techniques I've incorporated are new', notes Patrick, 'but with Croma, I wanted to ensure all these features were integrated into the language from the start rather than being tacked on as an afterthought'.
Just as Croma has benefited from free development applications available on the Internet, Patrick wants to see his creation join other open source languages to be taken up and developed by the online community. 'Once I've created the documentation, I hope I will be able to put Croma out there so other people can contribute to the code', he says.
Getting this online presence is essential for Croma's continued growth and use. Since Patrick does not have a big team of developers working for him, it is impossible otherwise to keep up–to–date with new challenges for the language, or to ensure everyone has the most up–to–date version.
Croma may have a clear part to play in the Web design arena, but Patrick is confident it will be taken up for other purposes. 'From the outset, I've tried to design a language that is applicable to any problem', he says. 'Unlike existing LISP dialects, I've tried to make it inter–operate with everyday environments. But it will still do day–to–day programming work'.