Topic Guides

There are four major Alan Language Topics:

  • A general overview about Alan
  • The Syntax and File Structure of the Alan source files that you as the developer would directly write
  • The Module System that Alan uses to link your various source files and dependencies together which influences how you structure and reason about your codebase.
  • The Compiler Internals explains how Alan code is compiled into a custom bytecode format for the Alan VM, or transpiled to Javascript.

The explanation to these topics assumes this isn't your first introduction to programming. With the exception of the Module System, as that brings in something new, there won't be any explanations for why something is useful or when to use one particular construct versus another. There are many excellent Intro to Programming tutorials out there that have been refined for years for more popular programming languages, and we as the authors of Alan would recommend that you learn to program with one of these well-thought-out tutorials:

  • Structure and Interpretation of Computer Programs, a classic that is available in both Python and Scheme. Using both at the same time is great for separating the concepts from the specific syntax of any given language.
  • Why's Poignant Guide to Ruby is excellent for those who want a more conversational style or have had problems with the "Professorial" style of other intro to programming books.
  • Eloquent Javascript is the quickest way to be introduced to event-driven programming, which Javascript is the most well-known example of a language built on that foundation, and also for those who want to pair programming skills with artistic skills due to Javascript's special place within web browsers.
  • Introduction to Programming Using Java is good for those who want to get immediately-employable skills and those who want to better understand what exactly their computer is doing, as this is the first typed and compiled language on the list, though that makes it much stricter and requires the learner to have more patience.

We would also highly recommend that anyone wishing to learn how to program become a programming language "polyglot." Not only will you better understand the fundamental concepts better, but you'll appreciate which programming languages are more appropriate for particular tasks than other programming languages.

We believe in Alan and we believe that it can handle more use-cases better than most languages most of the time, but we also know that Alan is very young and if you are just starting to program, we are not ready to support you, yet. But do come back once you've grown as a developer, and you start to get frustrated at the complexity needed to take full advantage of your computing resources. That's what Alan is here for. :)