Is Elan a compiled language?

Yes. Elan source is compiled to JavaScript and runs very fast. As with most modern languages the compilation process is invisible to the user.

Can an Elan program be run without the Elan IDE?

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.

Can I install Elan on my school server?

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.

Why learn (or teach) a programming language that isn't used in industry?

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).

Learning to program in a language used in industry isn't as useful as many people imagine. There are many languages used in industry: so what are the chances that the one you have learned happens to be the one used in the organisation you want to join?

More important than 'Is [the language I am going to learn] used in industry?' is the question, 'Will this language make it easy for me to switch to another language in future?' and, even more important, 'Will this language help me to learn to program well?'.

Elan is designed to lay a far better foundation than you are going to get from learning Python, VB, C#, Java, or any other language widely used in education today. Elan directly prevents you from learning bad habits that those languages can encourage. To pick just one of many examples: why start off writing 'global' variables only to have to learn, later on, not to use them at all? Elan doesn't allow you to define any global variables in the first place.

If you pursue programming beyond your current educational level, then you can expect to learn 'functional programming' in a language such as Haskell. The hard part isn't learning the different syntax of Haskell: the hard part is learning how to build systems entirely from pure, side-effect free functions. But if you have learned Elan first, the transition is going to be much easier, because in Elan you could never have learned to create side-effects or system dependencies in functions. Elan prevents them. And while, for most professional programmers, it takes years to get into the habit of writing unit tests for all your functions, Elan encourages that from the very beginning of programming by making it an integral feature of the language and very simple to use.

Is Elan compatible with GCSE / A-level exams?

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.

Can we trust that Elan will remain free to use?

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 '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 - only because that way you will automatically be using the latest version.

How stable is the Elan language?

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: