update .gitignore
[lambda.git] / how_to_get_the_programming_languages_running_on_your_computer.mdwn
index 345e6ae..0cb4f78 100644 (file)
@@ -1 +1,240 @@
-Test
+## Identifying your system ##
+
+We'll assume you're using either Mac OS X, or Windows, or Linux.
+
+If you're using **Mac OS X**, take note of what version of the Mac OS you're
+running: "Tiger" 10.4, or "Leopard" 10.5, or "Snow Leopard" 10.6. Furthermore,
+you'll be in one of two subgroups:
+
+*      You'll have Apple's Xcode and the independent MacPorts system
+       installed.
+
+       Xcode is available at
+       <http://developer.apple.com/technologies/tools/xcode.html>.
+       You have to register as an Apple Developer to download it. This
+       is free but requires you to accept a legal agreement with Apple.
+       The latest version of Xcode to work with Leopard is 3.14; more
+       recent versions require Snow Leopard.
+
+       The MacPorts system is available at
+       <http://www.macports.org/>.
+       This automates the building of Unix-type software on your Mac; it
+       makes it a lot easier to check for dependencies, use more-recent
+       versions of things, and so on.
+
+*      Or you won't have those installed. (Most Mac users will be in this group.)
+       Then you'll need pre-packaged (and usually pretty GUI) installers for
+       everything. These are great when they're available and kept up-to-date;
+       however those conditions aren't always met.
+
+
+If you're using **Windows**, you'll be in one of two subgroups:
+
+*      You'll have the Cygwin system
+       <http://www.cygwin.com/> installed.
+       This puts a Unix-like layer on top of your Windows system,
+       and makes it easier for you to use the same software everybody
+       else will be using, without its needing as much special-for-Windows
+       treatment. However, many of you won't have this installed.
+
+*      You won't have Cygwin installed. You might in theory have
+       a different group of compilers installed (Microsoft Visual C++) but
+       we'll assume that the overwhelming majority of users in this group
+       don't have access to a compiler and need pre-packaged installers
+       for everything.
+
+If you're using **Linux**, you could be using any one of numerous packaging
+systems.
+
+*      We'll give examples using the packaging system shared by Debian and Ubuntu,
+       and we'll assume that those of you using different packaging systems will know
+       how to make the relevant substitutions. You may also want to take note of the
+       output of the "uname -srm" command. On my machine this tells me "Linux
+       2.6.35-ARCH x86\_64". That tells me I'm running the x86\_64 (as opposed to the
+       i686 or i386 or whatever) version of Linux, and that I'm running kernel
+       version 2.6.35.
+
+
+
+## PLEASE REPORT PROBLEMS (AND SOLUTIONS!) ##
+
+We haven't tested these instructions ourselves, and they're not explicit
+step-by-step instructions in any case. If you encounter troubles, please email
+to let us know so that we can amend the instructions to help others. If you
+figure out how to fix the problem youself (and please do), please also write
+with suggestions how we can change these instructions to make the process
+easier and more straightforward for others.
+
+
+## Getting Scheme ##
+
+**Scheme** is one of two major dialects of *Lisp*, which is a large family of
+programming languages. The other dialect is called "Common Lisp." Scheme is the
+more clean and minimalistic dialect, and is what's mostly used in academic
+circles.
+
+Scheme itself has umpteen different "implementations", which share most of
+their fundamentals, but have slightly different extensions and interact with
+the operating system differently. One major implementation used to be called
+PLT Scheme, and has just in the past few weeks changed their name to Racket.
+This is what we recommend you use. (If you're already using or comfortable with
+another Scheme implementation, though, there's no compelling reason to switch.)
+
+Since the name change is so recent, you're likely to run across both sets of names.
+
+PLT/Racket stands to Scheme in something like the relation Firefox stands to HTML. It's one program among others for working with the language; and many of those programs (or web browsers) permit different extensions, have small variations, and so on.
+
+PLT Scheme had several components. The two most visible components for us
+were the command-line interpreter "mzscheme" and a teaching-friendly editor/front-end "DrScheme". In
+Racket these have been renamed "racket" and "DrRacket",
+respectively.
+
+*      In your web browser:
+
+       There is a (slow, bare-bones) version of Scheme available for online use at <http://tryscheme.sourceforge.net/>.
+
+
+*      **To install in Windows**
+
+       Go to <http://racket-lang.org/download/>. Download and install the "Windows x86" version.
+
+*      **To install on Mac without MacPorts**
+
+       Go to <http://racket-lang.org/download/>. Download and install the option for your system, most likely "Macintosh
+       OS X (Intel)"
+
+*      **To install on Mac with MacPorts**
+
+       You can install a command-line version of
+       PLT Scheme (dating from early 2009) by opening a Terminal
+       and typing:
+
+                sudo port install mzscheme
+
+       If you want the GUI components, I think you'll need to use the
+       "Mac/without MacPorts" installation options above.
+
+       I recommend also typing:
+
+               sudo port install rlwrap
+
+       then if you ever use the command-line program `mzscheme` (or `racket`), you should start it by typing `rlwrap mzscheme`. This gives
+       you a nice history of the commands you've already typed, which you can scroll up and down in with your
+       keyboard arrows.
+
+*      **To install on Linux**
+
+       Use your packaging system, for example, open a Terminal and
+       type:
+
+                sudo apt-get install plt-scheme
+
+       It's very likely that your packaging system has some version of
+       PLT Scheme (or Racket) available, so look for it. However, if you can't find it you
+       can also install a pre-packaged binary from the Racket website at <http://racket-lang.org/download/>.
+       Choose the option for your version of Linux (Ubuntu, Debian, and two
+       varieties of Fedora are available).
+
+       As above, I recommend you also type:
+
+               sudo apt-get rlwrap
+
+       then if you ever use the command-line program `mzscheme` (or `racket`), you should start it by typing `rlwrap mzscheme`. This gives
+       you a nice history of the commands you've already typed, which you can scroll up and down in with your
+       keyboard arrows.
+
+
+## Getting OCaml ##
+
+**Caml** is one of two major dialects of *ML*, which is another large family of
+programming languages. The other dialect is called "SML" and has several
+implementations. But Caml has only one active implementation, OCaml or
+Objective Caml, developed by the INRIA academic group in France.
+
+It's helpful if in addition to OCaml you also install the Findlib add-on.
+This will make it easier to install additional add-ons further down the road.
+However, if you're not able to get that working, don't worry about it much.
+
+
+*      **To install in Windows**
+
+       Go to <http://caml.inria.fr/download.en.html>.
+       You can probably download and install the
+       "Self installer for the port based on the MinGW toolchain"
+       even if you don't know what MinGW or Cygwin are.
+       Some features of this require Cygwin, but it looks like
+       it should mostly work even for users without Cygwin.
+       At the time of this writing, only an installer for the previous
+       version of OCaml (3.11.0, from January 2010) is available.
+
+       To install the Findlib add-on, you must have the
+       Cygwin system installed. We assume few of you do,
+       so we're not going to try to explain how to do this.
+       If you want to figure it out yourself, go to the
+       Findlib website at <http://projects.camlcity.org/projects/findlib.html>.
+
+*      **To install on Mac without MacPorts**
+
+       To install OCaml 3.12 (just released this summer), go to
+       <http://caml.inria.fr/download.en.html>
+       and download and install the "Binary distribution for Mac OS X"
+
+       To install the Findlib add-on, you'll need the Xcode development tools
+       to compile it yourself. Once you get that far, it's probably easiest
+       for you to install MacPorts and just install things using the MacPorts
+       instructions. (Use the MacPorts version of OCaml, instead of installing
+       the package from the caml.inria.fr website, as described above)
+       However, if you do have Xcode, and want to do without MacPorts, then
+       what you need to do is download Findlib from
+       <http://download.camlcity.org/download/findlib-1.2.6.tar.gz>.
+       Unpack the download, open a Terminal and go into the folder you just
+       unpacked, and type:
+
+               ./configure
+               make package-macosx
+
+       This will build an installer package which you should be able to
+       double-click and install.
+
+*      **To install on Mac with MacPorts**
+
+       You can install the previous version of OCaml (3.11.2,
+       from January 2010), together with the Findlib add-on, by opening a Terminal
+       and typing:
+
+               sudo port install ocaml caml-findlib
+
+       As with Scheme, it's helpful to also have rlwrap installed, and to start OCaml as `rlwrap ocaml`. This gives
+       you a nice history of the commands you've already typed, which you can scroll up and down in with your
+       keyboard arrows.
+       
+
+*      [More details about installing OCaml on Macs, if needed](http://cocan.org/getting_started_with_ocaml_on_mac_os_x)
+
+*      **To install on Linux**
+
+       Use your packaging system, for example, open a Terminal and
+       type:
+
+               sudo apt-get install ocaml ocaml-findlib
+
+       That will install a version of OCaml (probably 3.11.2, from January 2010)
+       and the Findlib add-on.
+
+       If for some reason you can't get OCaml through your
+       packaging system, you can go to
+       <http://caml.inria.fr/download.en.html>.
+       Pre-packaged binary installers are available for several Linux systems.
+
+       If you can't get findlib through your packaging system, you'll
+       need to download it from
+       <http://download.camlcity.org/download/findlib-1.2.6.tar.gz>.
+       and use gcc to compile it yourself. If you don't know how to
+       do that, you probably don't want to attempt this.
+       Here are the INSTALL notes:
+       <https://godirepo.camlcity.org/svn/lib-findlib/trunk/INSTALL>.
+
+       As with Scheme, it's helpful to also have rlwrap installed, and to start OCaml as `rlwrap ocaml`. This gives
+       you a nice history of the commands you've already typed, which you can scroll up and down in with your
+       keyboard arrows.
+