Elan is a new programming language integrated into a unique development environment, both running as a single page app within a browser (Chrome is recommended). The language, environment, and associated teaching resources, are all free and open-source. It may be run from the public site (recommended – so you are always using the latest version), or installed on your school/college web server.
Elan is specifically designed for teaching programming in secondary schools and colleges, or first year of university. It places emphasis not just on learning how to program, but learning how to program well.
Elan supports the three most widely recognised programming paradigms:
Elan was conceived by Richard Pawson in May 2023. The original design & development team consisted of Richard, Stefano Cascarini (lead technical developer), and John Stout. From the outset we have sought regular input and feedback from recognised experts in computer science education including: Michael Kölling and Simon Peyton Jones. We are also reliant on volunteers to test the prototypes, write example programs, and assist with documentation and resources. In particular, we would like to thank: Nela Brockington, Charles Wicksteed, and Bernard Boase for regular help of this kind. If you are willing to assist in any way please get in touch...
The Elan language source code is managed on GitHub here.
If you have questions not answered in the documentation, can offer feedback, or would like to help, please post a new thread on our Discussion forum here.
Yes. Elan source is compiled to JavaScript and runs very fast. As with most modern languages the compilation process is invisible to the user.
Yes. When you've written and tested your Elan program, you can simply use File > Save as standalone to save the program (compiled to JavaScript) embedded within a standalone .html page. You can email this .html file to anyone else. They can open it in their browser and the program will run automatically. All they see is a larger version of the Display pane. They don't need to know anything about Elan to use the program.
Yes. If you go to Help > Version history you can download a .zip file for the current or previous releases of Elan. These can unzipped into any web server for private access. However, unless you have a reason to do this we recommend that you use the online version, as this will ensure that you are always using the latest release.
Elan is designed specifically for teaching and learning programming, at high-school (KS3—KS5) and in first year university/college. It is not designed for professional developers, nor will we let it evolve into a professional language, which has been the fate of many educational languages - usually to the detriment of their educational merits.
There are very good arguments as to why the requirements for a good educational language are different to those for a good professional language. See, for example, Principles of Educational Programming Language Design by Michael Kölling, Informatics in Education Volume 23, Issue 4 (2024). In addition to those arguments, we suggest:
As it stands, Elan is fully compatible with OCR GCSE and A-level Computer Science, because the OCR specifications explicitly state that you may answer programming questions in any high-level language. Moreover, because Elan syntax is very close to the OCR 'pseudo code' specification – at least for all the coding constructs expected by OCR – answers given in Elan will be easily comprehensible to any OCR examiner. We hope that other boards will support Elan in future.
Yes. We are committed to this on principle and we have a governance board to ensure that continues. It is also worth pointing out that Elan is just a 'single page app' – once you have accessed the page, your code is edited, compiled, and run entirely within your browser, and Elan files are saved locally. This means that we have no complex server infrastructure to host, maintain, or fund. Moreover, since Elan, its documentation, and associated teaching resources, are all open source, there is nothing to stop you from serving up this same page and resources from your own server. We recommend that you use our online version (at https://elan-lang.org) if you can, simply because that way you will automatically be using the latest version.
We will continue to extend and improve Elan – with frequent new, non-breaking releases. A non-breaking release means that any programs you have written previously will still load and run correctly. Elan is committed to semantic versioning: