Hey,
A quick thread (non-flame, preferably) to discuss the best language for a beginner. I will represent the "Scheme" side.
Apart from the most obvious and awesome benefit of Scheme (It's a Lisp!), there are other specific reasons to choose this particular language, not to do actual work, but to learn how programming works.
1) The language has a clear, consistent syntax. No exceptions.
Everything is written like
(function arg1 arg2 arg3).
No exceptions.
2) The language core is small enough to be understood
Unlike other languages, you won't have to memorize a big standard library to get coding. You can do very much with very little, and the language is small enough to understand bottom-up.
3) Rapid prototyping
As with other Lisp's, you only need a few lines to make something work. This is what a beginner want's, who doesn't care about classes and includes just to write code.
4) Lots of academic, and beginner-oriented material
You can say this for every language, of course, but Scheme is specifically used as a teaching language, so everything from "Hello world" to very advanced concepts (recursion, functional/logical programming, AI, etc) has been though it Scheme. Most of these materials are available for free online (but this goes for every other language as well).
5) The REPL
The REPL allows you to execute functions directly from the code, without having to recompile the entire program. This makes it *much* easier to understand what's happening.
Fx.
(defun hello-world ()
(format t "Hello world"))
can be compiled and called as (hello-world) from the REPL. It's like a python console, but nicer.
5) Scheme is very simple
And because the language is so simple, you can focus on concepts rather than on code. People don't have to actually use Scheme (I wouldn't) but it's great for understanding concepts, thus good for teaching.
6) You can learn Lisp easy afterwards
While you could also go out and learn C/C++/Java/Whatever, you'd know how Lisp worked, and learning it in the future wouldn't be as hard.
Just my 2 cents.
ever since I first started programming I have wanted to learn Lisp. Only problem is, I can't find a good free Lisp compiler.
I'm working on lisp right now (using GNU clisp), among other things.
One issue with lisp/clojure/scheme that I can see is they don't introduce you to the constructs that are most used in "traditional" languages like Java, .NET, C, C++, etc. I can see a student feeling a lot of frustration when they lose the power of scheme, and get straight-jacketed with some of the other languages.
Yes, this is true. You do have to worry about silly things that Lisp's lets you ignore. But fear not! There is always Perl for a weakly-typed C-like language.![]()
I don't see this as an issue though. Once you understand what programming is all about, converting to differentiating between numbers/strings/longs/chars/whatever C tells you to care about, will only be *mildly* painful. But hey, C is pretty painful.
try cmucl, clisp or one of the others. Any should be good to start, but I recommend cmucl (clisp gives plenty of new error messages).
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks