Computerworld is undertaking a series of investigations into the most widely-used programming languages. Previously we have spoken to Alfred v. Aho of AWK fame, S. Tucker Taft on the Ada 1995 and 2005 revisions, Microsoft about its server-side script engine ASP, Chet Ramey about his experiences maintaining Bash, Bjarne Stroustrup of C++ fame, and Charles H. Moore about the design and development of Forth. We’ve also had a chat with the irreverent Don Woods about the development and uses of INTERCAL, as well as Stephen C. Johnson on YACC, Luca Cardelli on Modula-3, Walter Bright on D, Brendan Eich on JavaScript, Guido van Rossum about Python and most recently Prof. Roberto Ierusalimschy about the design and development of Lua.
In this in-depth interview, we chat with Simon Peyton-Jones about the development of Haskell. Peyton-Jones is particularly interested in the design, implementation, and application of lazy functional languages, and speaks in detail of his desire to ‘do one thing well’, as well as his current research projects being undertaken at Microsoft Research in Cambridge, UK.
Please note that due to popular demand we are no longer following alphabetical order for this series. If you wish to submit any suggestions for programming languages or language authors you would like to see covered, please email editor@computerworld.com.au.
Was Haskell created simply as an open standard for purely functional programming languages?
Haskell isn’t a standard in the ISO standard sense – it’s not formally standardized at all. It started as a group of people each wanting to use a common language, rather than having their own languages that were different in minor ways. So if that’s an open standard, then yes, that’s what we were trying to do.
In the late 1980’s, we formed a committee, and we invited all of the relevant researchers in the world, as at that stage the project was purely academic. There were no companies using lazy functional programming, or at least not many of them. We invited all of the researchers we knew who were working on basic functional programming to join in.
Most of the researchers we approached said yes; I think at that stage probably the only one who said no was David Turner, who had a language called Miranda, and Rinus Plasmeijer, who had a language called Clean. He was initially in the committee but he then dropped out. The committee was entirely by consensus – there wasn’t a mechanism whereby any one person decided who should be in and who should be out. Anybody who wanted could join.
How did the name come about?
We sat in a room which had a big blackboard where we all wrote down what we thought could be possible candidates for names. We then all crossed out the names that we didn’t like. By the time we were finished we didn’t have many!
Do you remember any of the names that you threw up there?
I’m sure there was Fun and Curry. Curry was Haskell Curry’s last name. He’d already given his name to a process called ‘currying’ and we ended up using Haskell instead of Curry, as we thought that there were too many jokes you could end up making about it!
So what made you settle on Haskell?
It was kind of a process of elimination really, and we liked that it was distinctively different. Paul Hudak went to see Curry’s widow who kindly gave us permission to use his name. The only disadvantage is that people can think you mean ‘Pascal’ rather than ‘Haskell’. It depends on the pronunciation – and it doesn’t take long to de-confuse people.
Did you come across any big problems in the early stages of development?
The Haskell project was meant to gather together a consensus that we thought existed about lazy functional programming languages. There weren’t any major issues about anything much, as we had previously agreed on the main issues and focus. There were also some things that we deliberately decided not to tackle: notably modules. Haskell has a basic module system but it’s not a state of the art module system.
Why did you decide not to tackle this?
Because it’s complicated and we wanted to solve one problem well, rather than three problems badly. We thought for the bits that weren’t the main focus, we’d do something straightforward that was known to work, even if it wasn’t as sophisticated as it could get. You only have so much brain capacity when you’re designing a language, and you have to use it – you only have so much oxygen to get to the top of the mountain. If you spend it on too many things, you don’t get to the top!
References
- The A-Z of Programming Languages: AWK
- The A-Z of Programming Languages: Ada
- The A-Z of Programming Languages: ASP
- The A-Z of Programming Languages: BASH/Bourne-Again Shell
- The A-Z of Programming Languages: C++
- The A-Z of Programming Languages: Forth
- The A-Z of Programming Languages: INTERCAL
- The A-Z of Programming Languages: YACC
- The A-Z of Programming Languages: Modula-3
- The A-Z of Programming Languages: D
- The A-Z of Programming Languages: JavaScript
- The A-Z of Programming Languages: Python
- The A-Z of Programming Languages: Lua
Latest on Development
- OOXML not suitable for Norwegian government, says study
- IETF turns introspective with new wiki
- Android apps for developers and IT pros, at a glance
- Danish parliament sets rules for open document formats
- Agile software development is now mainstream
- Smarter Linux file structure aims to ease software management
- Amazon invites developers to make Kindle software
- MashupAustralia competition winners announced
- Nokia adds Ovi Store to N900 via firmware update
- Apache mulls end of 1.3, 2.0 releases
Development Essentials
- Security experts name top 25 programming screw-ups
- Top 10 wicked cool algorithms
- Facebook app verification fee draws criticism
- Microsoft's openness stressed
- Yahoo's developer platform to launch this week
- Microsoft starts new developer portal
- Google API allows creating apps that can track laptops
- PHP, JavaScript, Ruby, Perl, Python, and Tcl Today: The State of the Scripting Universe
- Analyst: In-house app development fraught with waste
- Is unit testing doomed?
- Instructional Designer (Training Developer) (s15)10/02/2010
Other
I.T. & T
Instructional Designer (Training Developer) (s15) - BUSINESS DEVELOPMENT MANAGER - CONTENT MANAGEMENT SYSTEMS, INTRANETS,10/02/2010
Other
I.T. & T
BUSINESS DEVELOPMENT MANAGER - CONTENT MANAGEMENT SYSTEMS, INTRANETS, - Informatica PowerCenter Consultants10/02/2010
Other
I.T. & T
Informatica PowerCenter Consultants - WEB CONTENT MANAGEMENT SYSTEMS - BUSINESS DEVELOPMENT MANAGER10/02/2010
Other
I.T. & T
WEB CONTENT MANAGEMENT SYSTEMS - BUSINESS DEVELOPMENT MANAGER - Senior Tester9/02/2010
Other
I.T. & T
Senior Tester
Whitepapers
-
Best Practices for Pipeline Management -
Video Case Study | Unified Communications for Small Business -
Business Continuity: A Guide to Choosing the Right Technology Solution -
A Fundamental Failure | The legal risks of neglecting an IT security assessment -
The Pathways ICT Leadership Development Program | Turning today’s ICT professionals into tomorrow’s business leaders
TechWorld Blogs
Recent blog posts
- Talk about mobile computing
- iPad arrives: can Apple crack the tablet?
- Linux.conf.au 2010 kicks off in New Zealand
- VMware jumps further into SaaS with Zimbra
- Amarok 2.2.2 released – rock on!
- Happy Nexus Year
- So long 2009, and thanks for another decade in tech
- KDE 4.4 enters beta, bring on mainstream computing
- Chromium OS source released: another way of thinking
- Dell goes Android for mobile market entrance
Recent comments
- Buy 2 get 1 free: Apple iphone 3gs 32gb,Nokia N97,BB Bold,HTC HD
5 hours 16 min ago - My Take:
5 hours 32 min ago - PDA Smart phone users
14 hours 45 min ago - Touch Phone Accessories
14 hours 52 min ago - joo joo
15 hours 44 min ago - Thanks!
1 day 11 hours ago - Transcription mistake
2 days 12 hours ago - Freeway is hardly Australian
2 days 13 hours ago - Great Business Initiative
3 days 9 hours ago - www.mintfly.com
3 days 13 hours ago - also creating unemployment
4 days 5 hours ago - How to save in one page???
5 days 7 hours ago - Well it's 2010 now...
5 days 17 hours ago - Man, catch up. You're being
6 days 17 hours ago - Rhapsody in Australia
6 days 18 hours ago - ipad reaction
1 week 9 hours ago - Capacity Bollenecks
1 week 23 hours ago - not only for "young folks"
1 week 1 day ago - Take action now
1 week 2 days ago - u guys are a idiots. i have
1 week 2 days ago







Comments
How to save in one page???
Hello,
can you tell me how can i save whole article only in one page? I tried everything but it was all useless.
There's a print view on Computerworld
Read the article here instead and there's a single-page print view:
http://www.computerworld.com.au/index.php?id=1974033854
a pdf download of articles will help
a pdf download of articles will help. a print option will do this with pdf printers printing to file. Thanks in anticipation
multiple pages suck
I am getting corporal tunnel syndrom from having to click sooo much to get to the next segment. The very least you could do is offer a print view for those of us who spend more time waiting for the page to refresh then reading your short segments. That really does not inspire me to buy anything from you or your advertisers.
Don't split articles into pages!
It's not a newspaper. You can have long pages!
and registration process is horrible. My tax forms are shorter than that!
Post new comment