×

Announcing: Slashdot Deals - Explore geek apps, games, gadgets and more. (what is this?)

Thank you!

We are sorry to see you leave - Beta is different and we value the time you took to try it out. Before you decide to go, please take a look at some value-adds for Beta and learn more about it. Thank you for reading Slashdot, and for making the site better!

Land of Lisp

samzenpus posted more than 4 years ago | from the read-all-about-it dept.

Books 330

vsedach writes "Remember the 1980s and BASIC, when programming was simple, brains flew through space, and everyone ate lasers? Computer magazines came with code listings, and classics like David Ahl's BASIC Computer Games offered a fun and easy way to get started in computer programming. Conrad Barski remembers, and with Land of Lisp, he's set out to demystify programming in the 21st century." Keep reading for the rest of Vladimir's review.This is no small feat. Modern computers don't come with anything that looks like BASIC. Getting started with a "real" programming language like Java requires installing and learning hundreds of megabytes worth of compiler and integrated development environment. Barski's thesis is that Lisp is a refreshing alternative - it offers BASIC's ease of getting started (get a prompt, type in code, and it works), while providing a combination of modern features unmatched in other programming languages.

The first thing that immediately jumps out about Land of Lisp is that it has a lot of comics. The book is an outgrowth of Conrad's Casting SPELs in Lisp illustrated online tutorial, which originally appeared in 2004 (incidentally, around the same time as why's (poignant) guide to ruby, probably the most famous and epic programming language comic book). The comics are humorous and irreverent - if you're a C programmer, you might be surprised to know that you're a Cro-Magnon fighting the COBOL dinosaur.

Despite the silly humor and Barski's approach of introducing programming completely from scratch, Land of Lisp builds up to cover topics like graph theory, search algorithms, functional and network programming, and domain-specific languages. All throughout, the book emphasizes various techniques for doing I/O. The topics covered will leave the reader with a solid understanding of what modern programming entails and a good basis from which to explore either application or lower-level systems programming.

The most unintentionally impressive aspect of Land of Lisp is that it manages to completely explain web programming. No more hiding behind complicated software stacks and impenetrable web server packages - chapter 13, titled "Let's Create a Web Server!," does exactly what it promises, in only 15 pages. Later chapters introduce HTML and SVG to build a graphical game as a web application. If nothing else, this book will leave the reader with all the necessary basic skills and total confidence in their understanding to build real-world web applications.

Other introductory programming books use Lisp, but none fall into the same category as Land of Lisp. Abelson, Sussman and Sussman's Structure and Interpretation of Computer Programs, arguably the greatest introductory programming book ever written, requires a solid math background to understand the examples. Felleisen et alia's How to Design Programs offers a much deeper introduction to programming than Land of Lisp, but is an academic textbook, and hence lacks funny cartoons and may be boring. Friedman et alia's The Little Schemer is a favorite of many, but doesn't have LoL's real-world applications.

Land of Lisp is an excellent book for someone who wants to learn how to program, for web programmers who want to move up out of their niche and start learning about CS theory and systems programming, and for anyone who is puzzled about what really goes on behind the web and wants to learn what web programming is really about. Experienced programmers who want to jump into using Lisp are probably better off with Peter Seibel's Practical Common Lisp, though.

Watch Conrad's hilarious promotional music video for the book.

You can purchase Land of Lisp: Learn to Program in Lisp, One Game at a Time! from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

Sorry! There are no comments related to the filter you selected.

Oh Come On! This is a Book Review! (4, Funny)

eldavojohn (898314) | more than 4 years ago | (#34115408)

(incidentally, around the same time as why's (poignant) guide to ruby, probably the most famous and epic programming language comic book)

Hey, take it easy there, this is a book review meant for humans (not some code for an interpreter)!

Oh great, now you've got me doing it too. Do you have any idea how long it took for this to go away the last time I coded Lisp?

*obsessively tallies and double checks to make sure he closed all his parentheses before hitting submit*

Lisp is gay (-1, Troll)

Anonymous Coward | more than 4 years ago | (#34115444)

Get it?

Re:Lisp is gay (-1, Troll)

Anonymous Coward | more than 4 years ago | (#34115456)

Got it. Lithp iz gay! Tee hee!

FOOLISH MODERATOR! (-1, Offtopic)

Anonymous Coward | more than 4 years ago | (#34115696)

Why did you mod parent a troll? Have something against the gays, bigot?

Re:FOOLISH MODERATOR! (4, Funny)

jgtg32a (1173373) | more than 4 years ago | (#34116026)

Because there is no -1 Moron

Re:FOOLISH MODERATOR! (-1, Offtopic)

Anonymous Coward | more than 4 years ago | (#34116270)

Are you referring to yourself?

Re:Oh Come On! This is a Book Review! (1)

TaoPhoenix (980487) | more than 4 years ago | (#34115528)

What do Smileys do to Lisp?

Re:Oh Come On! This is a Book Review! (3, Funny)

Anonymous Coward | more than 4 years ago | (#34115582)

Denote keyword arguments?

(happy :o(sad))

Re:Oh Come On! This is a Book Review! (2, Funny)

mcgrew (92797) | more than 4 years ago | (#34116394)

Thmileys make lithp talk thrange.

Python is the Lisp of the 21st century (1, Informative)

mangu (126918) | more than 4 years ago | (#34116174)

What Lisp promised then is what Python promises now. With one difference, in that Python respects the visual limitations of humans.

Different from parentheses, it's very easy to undo a bunch of indentations, just put the left margin where you want it.

Well, if only the TAB character had never been invented... TAB is a kludge to make a typewriter behave sort of like a spreadsheet but, unfortunately, it fucks up the excellent "Don't mix content with presentation" principle.

Re:Python is the Lisp of the 21st century (4, Insightful)

Urkki (668283) | more than 4 years ago | (#34116482)

What Lisp promised then is what Python promises now. With one difference, in that Python respects the visual limitations of humans.

Different from parentheses, it's very easy to undo a bunch of indentations, just put the left margin where you want it.

Well, if only the TAB character had never been invented... TAB is a kludge to make a typewriter behave sort of like a spreadsheet but, unfortunately, it fucks up the excellent "Don't mix content with presentation" principle.

Saying "Don't mix content with presentation" is pretty rich from a Python advocate, when Python does precisely that. It mixes presentation (what code looks like) with content (what code does).

Besides, don't you know that in Lisp, parentheses are indentation symbols? They tell how the code should be indented, and changing indentation is just a matter of changing parentheses. If anything, adjusting indentation of Lisp code is easier than adjusting indentation of Python code.

Re:Python is the Lisp of the 21st century (2, Insightful)

mangu (126918) | more than 4 years ago | (#34116798)

Python does precisely that. It mixes presentation (what code looks like) with content (what code does).

To some extent, every language does that. What I meant is that the TAB character introduces an arbitrary visual configuration that's not part of the language itself, which can confuse things when tabs and spaces are mixed in the same source file.

However, this does not mean that the presentation of the code is unimportant. For instance, a reason why I once programmed in Pascal but switched to C was that I found braces easier to read than "begin ... end" pairs. Curly braces are clean and small symbols, looking at the source code at a glance they are easier to identify than multi-character keywords.

When you are writing and reading code by the hundreds of thousands of lines, every detail becomes significant. That's something language theorists often fail to understand, but Dennis Ritchie and Guido van Rossum got perfectly right.

Re:Oh Come On! This is a Book Review! (1)

Ksevio (865461) | more than 4 years ago | (#34116800)

*obsessively tallies and double checks to make sure he closed all his parentheses before hitting submit*

If you're using a good editor, you just need to hold shift-zero until it starts getting angry. At least that's how I usually ended up finishing off programs.

Lisp is cool... (2, Interesting)

RocketRabbit (830691) | more than 4 years ago | (#34115472)

But where's our new hyper advanced LISP machines?

Nothing will beat the Symbolics Lisp machine. Clozure is great, but not quite there yet.

Re:Lisp is cool... (4, Interesting)

Animats (122034) | more than 4 years ago | (#34115634)

Nothing will beat the Symbolics Lisp machine.

Ever use one? I've used the refrigerator-sized Symbolics 3600. 45 minute garbage collections. Flaky electronics. An arrogant service organization. Those things lost out to general purpose UNIX workstations for good reasons. Even for running LISP, a SUN 2 was better than a Symbolics 3600.

(Symbolics was also tied in strongly to the 1980s expert systems crowd, the "strong AI Real Soon Now" people", like Ed Feigenbaum. I went through Stanford CS when those guys were running the department, just as it was becoming clear that expert systems really couldn't do all that much. Not a happy time in academic computer science. Stanford had to move computer sciences from Arts and Sciences to Engineering, and put in adult supervision.)

Re:Lisp is cool... (4, Funny)

weav (158099) | more than 4 years ago | (#34115886)

WHO ARE YOU TO JUDGE OUR SERVICE ORGANIZATION, PEASANT?

Sorry, old habits...

The 45 minute GC's ended with the first Generation-scavenging GC which may have come along after you game up on lispms...

Re:Lisp is cool... (2, Interesting)

Anonymous Coward | more than 4 years ago | (#34115906)

I detested programming in Lisp. The endless parentheses tracking and macro soup made it a miserable experience. It seems to be mainly popular with people who don't have to actually write the code.

How about one of these for Python? (0)

Anonymous Coward | more than 4 years ago | (#34115492)

I'd buy that!

I wish I had time to study Lisp, but... (1, Funny)

Anonymous Coward | more than 4 years ago | (#34116266)

I'm a 21 years old software engineering student who is mostly being taught Java (alongside some courses on C/C++). I also have some experience with PHP and very basic experience with Python but that's it. "Lisp" is - alongside "COBOL", "Fortran", etc. - are alien to me. My reaction to them is: "Oh. That was a programming language in the... seventies? Sixties? Eighties? Anyways, I've seen references to it on XKCD."

Delving into this book might be refreshing, interesting and educational at the same time. I'm intrigued by a book that is directed at beginners and yet goes into search algorithms and the like... And the reference to teaching how to create a webserver in 15 papes practically got me drooling. However, is there a reason why all such couldn't be explained with something more modern, like Python? I would love to learn new languages because they're interesting or for personal improvement but I'm a student with two jobs (well, one is very secure and the other pays really well. I don't want to give up either in this economy) and the job market is a tough place. I really don't have time to study things that don't directly relate to the jobs I want to apply to. (This might be why India is kicking our ass. We can't compete in prices when it comes to generic students with limited skillsets but we don't really have a chance to develp wider sets of skills) Using one service to search for open jobs gives me 106 results for "java", 8 results for "python", 200 for "php", 49 for "c++", 19 for "C#"... and 0 for "Lisp".

So... Can anyone suggest me a book like this for some more common language or provide arguments with which I could reason myself to buy this one?

Re:I wish I had time to study Lisp, but... (2, Interesting)

vbraga (228124) | more than 4 years ago | (#34116454)

However, is there a reason why all such couldn't be explained with something more modern, like Python?

<humor>The sound you hear now is the sound of the old timers loading their shotguns.</humor>

I'm only a few years older than you (25, soon to be 26) but learning Lisp was a very, very rewarding experience - at least to me. Even if I'm probably never going to code in Lisp (or Scheme, my personal favorite) it teach me to better think in the way I code. If you have some time in a free Tuesday evening (well, more than one, actually) try take a look at Structure and Interpretation of Computer Programs by Abelson, Sussman and Sussman. It's not in Lisp but in Scheme, a very close language. You probably saw most of the concepts in college but, for me at least once more, it was reading it that I felt a "gotcha" moment and finally understood it.

Those Were The Days My Friends, We Thought... (4, Interesting)

cybrpnk2 (579066) | more than 4 years ago | (#34115500)

...they'd never end... Sigh. I remember David Ahl's Basic Computer Games with such nostalgia, spending my first weeks in late 1974 as a freshman typing in SUPER STAR TREK onto paper punch cards to run on the IBM360 at University of Tennessee. As a county bumpkin coming into the land of Oz where there were Real Actual Computers I could work with for the first time, I though I had Entered The Future. Little did I know that the future had only begun, and continues today. Probably will continue into tomorrow, too.

Re:Those Were The Days My Friends, We Thought... (2, Informative)

cybrpnk2 (579066) | more than 4 years ago | (#34115596)

LOL, I see that Basic Computer Games was printed in 1978. In 1974, I was typing it in directly from an issue of David Ahl's groundbreaking mid-1970s magazine Creative Computing [wikipedia.org] , which he compiled into the book several years later. David Ahl [wikipedia.org] is the reason I became a geek, long before there was even a TRS-80 to play with and I had to IMAGINE what the CC program listings would do becasue I didn't have a computer to run them on. Thanks, Dave!!!

Re:Those Were The Days My Friends, We Thought... (1)

Paul Fernhout (109597) | more than 4 years ago | (#34116418)

Yeah, I remember typing in a long basic game from probably that same book, on a teletype that my school had for a timeshared regional PDP-10 in the late 1970s.

I think you can learn a lot by just retyping stuff.

While I first started learning programming on the KIM-1, in my early teens, it was very confusing (working in assembly).

I think programming really gelled for me by playing with Radio Shack TRS-80 computers in the store and reading and doing the BASIC exercises in the TRS-80 "User's Manual for Level I" by David A. Lien -- with pencil on paper, as I did not have a computer but could afford to get the manual. :-)

I think it did make a difference it had some funny cartoons. Others think so, too:
    http://en.wikipedia.org/wiki/TRS-80 [wikipedia.org]
"Level I Basic was based on Li-Chen Wang's free Tiny BASIC, additional functions added by Radio Shack. It achieved a measure of noteworthiness due in large part to its outstanding manual, written by David Lien, which presented lessons on programming with text and humorous graphics, making the subjects very easy to understand"

But, then typing in a couple of larger basic computer games and figuring out the typos built on that.

I understood assembly better by using a "CARDIAC" cardboard computer later.
    http://en.wikipedia.org/wiki/CARDboard_Illustrative_Aid_to_Computation [wikipedia.org]

I think there is a lot to be said for imagining how the computer is working. It helps better later with design and debugging.

Kids these days... :-)

Although they may just learn to do some different things on another level...

Re:Those Were The Days My Friends, We Thought... (1)

jelizondo (183861) | more than 4 years ago | (#34115684)

Just remember to be buried facedown, nine-edge first

Those were the days!

Any youngsters reading this, GET OFF MY LAWN!

Re:Those Were The Days My Friends, We Thought... (3, Funny)

Rufus Xavier (1221774) | more than 4 years ago | (#34115902)

I happened to look at the bombs away game on that list and it has this wonderful question: "Is this your first Kamikaze Mission (Y or N)"

Re:Those Were The Days My Friends, We Thought... (1)

PRMan (959735) | more than 4 years ago | (#34116192)

I have that book. I was just looking at it the other day. I remember typing the listings in to my Atari computer at home and the Apple in the library at school. Once I typed in Super Star Trek (and changed the characters to look like the ships), everyone wanted a copy.

Quote of the Day Analyzes Article Text Now? (3, Funny)

eldavojohn (898314) | more than 4 years ago | (#34115520)

From the review:

If you're a C programmer, you might be surprised to know that you're a Cro-Magnon fighting the COBOL dinosaur.

From the "random" quote of the day at the bottom right of the page:

COBOL is for morons. -- E.W. Dijkstra

Lisp# (1)

WED Fan (911325) | more than 4 years ago | (#34116548)

I'm waiting for Lisp# to use as my asp.net codebehind.

metaprogramming FTW! (0)

Anonymous Coward | more than 4 years ago | (#34115584)

What I want to know is why, in 2010, most commonly used languages (Java, C++, C#, etc) do not have even a tiny fraction of the metaprogramming ability that LISP provided to us many decades ago. LISP itself isn't so practical, but we could have learned from it, and we didn't.

What happened there? We have lots of *other* things, but somehow it feels like we dropped the ball there. We waste massive amounts of expensive programmer time because of it.

Re:metaprogramming FTW! (2, Interesting)

icebike (68054) | more than 4 years ago | (#34115670)

Perhaps it speaks to the fact that there are so few real world programming tasks that require cool but obtuse capabilities that take longer to master than the much simpler code in other languages?

Re:metaprogramming FTW! (0)

FooAtWFU (699187) | more than 4 years ago | (#34115910)

Perhaps, but it could just speak to the fact that so many real world programmers suck, and probably can't even do a proper FizzBizz without straining themselves.

As with any other programming tool, there are times when it's useful, and times when it's not. A few lines of metaprogramming can save you thousands of acres of massively redundant code (and as I'm sure many of us know all too well, redundant code means redundant bugs. and redundant effort adding new features, for that matter.) Or you can twist it all into a hellish mess that would make Cthulu green with envy. It's up to the skill and discipline of the programmers.

Around these parts, though, we generally prefer having the code do the busy-work, not the (expensive) programmers.

Re:metaprogramming FTW! (2, Insightful)

jandrese (485) | more than 4 years ago | (#34116342)

No, I don't really know of lots of copy and paste style redundant code in my C or C++ applications. Generally functions take care of that. If a problem comes up enough, said function is stripped out and added to a library. These are not new or novel concepts, people have been doing them for decades now.

Sometimes people will add lots of copy and paste code to a codebase. We call these people bad programmers, and they tend to be fired.

Re:metaprogramming FTW! (1, Informative)

Anonymous Coward | more than 4 years ago | (#34116604)

> No, I don't really know of lots of copy and paste style redundant code in my C or C++

If you are using C or C++, I guarantee that you do have large amounts of code duplication.

Really. I guarantee it, absolutely, with no doubt possible.

You may not see it, because you are so used to it that you think that's "just how things are". You are blind to certain things because you know them like the back of your hand. But that doesn't mean it doesn't exist. You DO have code duplication in your C++ program. The language for all practical purposes does not allow you not to.

Further, there are things which are not code duplication, but could be expressed in a far shorter way if you had higher level language features than you have in C/C++.

Re:metaprogramming FTW! (2, Interesting)

jandrese (485) | more than 4 years ago | (#34116768)

What, like for loops? Variable assignments? Could you give an example of code duplication common in C code that would not occur in Lisp?

Re:metaprogramming FTW! (0, Troll)

Raffaello (230287) | more than 4 years ago | (#34115990)

Perhaps it speaks to management's desire to treat programmers like assembly line labor inputs - unskilled and easily replaceable. This approach will always lead to lower quality software, and/or project budget overruns and/or schedule slips, and/or outright project failures.

Programmers are not unskilled labor. Since management insists on treating them as such, management settles on tools that can be mastered by the least skilled programmers. Since that's what the market wants, most schools teach to that low-ball target (i.e., university education in computer science becomes mere java vocational training).

Those wise enough to understand that programmers are highly skilled labor know that they should get out of the way and let the experts choose their own tools. When that happens, such enlightened organizations will frequently choose languages other than C, C++, C#, and Java. They'll sometimes even use languages such as common lisp as ITA software does for its QPX system which powers most of the online travel search business, such as Orbitz, Bing Travel, many large arilines, etc. and which is why Google is trying to acquire ITA...

Re:metaprogramming FTW! (1)

Raenex (947668) | more than 4 years ago | (#34116288)

There are plenty of highly skilled programmers who don't like Lisp. You can't just blame it all on management.

Re:metaprogramming FTW! (3, Informative)

cduffy (652) | more than 4 years ago | (#34116132)

Speaking as someone who does a lot of real-world programming in non-LISPy languages, I don't think so.

I love Python, and it's considerably more capable than Java or C in terms of metaprogramming... but I can't tell you how many times I wish I could add a bit of syntactic sugar to replace an awkward construct built to work around Python's no-sharp-edges syntax. LISP-style macros may be abusable, but they're also beautiful, beautiful things.

Re:metaprogramming FTW! (0)

Anonymous Coward | more than 4 years ago | (#34116430)

> Perhaps it speaks to the fact that there are so few real world programming tasks that require cool but obtuse capabilities that take longer to master than the much simpler code in other languages?

Ah. The low-level language argument. From your POV then, we should be using COBOL, or perhaps even assembly language. We can just pay legions and legions of programmers to duplicate those higher level cool but obtuse features of C++ or Java. COBOL syntax is much easier to master than C++!

Or maybe, since programmer time is expensive, we could pay fewer people to use higher level tools and produce more functionality and quality per unit time. The same applies with metaprogramming. You can get more productivity out of fewer people. Not only that, you get more quality and robustness, because the alternative to metaprogramming is almost always code duplication, which leads to quality and maintenance problems.

Every argument you can make against metaprogramming *also* applies to the use of Java or C# or C++ over lower level languages.

Re:metaprogramming FTW! (1)

jandrese (485) | more than 4 years ago | (#34115724)

I thought the problem with metaprogramming is that using it for more than just some trivial examples can make your program effectively impossible to debug? Its one of those tools that let people be really clever with the code on small projects, but on large projects are nothing but a nightmare. Plus the explosion of external libraries for nearly every function you could want really reduced the justification for metaprogramming in the first place. There are probably a few places where it could still benefit, but nobody wants to open up that huge can of worms for a few corner cases.

Re:metaprogramming FTW! (0)

Anonymous Coward | more than 4 years ago | (#34115916)

One of the reasons I prefer C before C++.

Re:metaprogramming FTW! (1)

Waffle Iron (339739) | more than 4 years ago | (#34115860)

What I want to know is why, in 2010, most commonly used languages (Java, C++, C#, etc) do not have even a tiny fraction of the metaprogramming ability that LISP provided to us many decades ago.

Because metaprogramming is confusing. For example, it allows and encourages every developer to come up with his own personal class system, templating system, and collections framework, along with their own custom language keywords to define novel control constructs. Of course each personal framework is incompatible with anybody else's personal framework. This kind of balkanization has been the story of Lisp ever since it was invented.

Re:metaprogramming FTW! (3, Interesting)

cduffy (652) | more than 4 years ago | (#34116810)

...which is why Clojure (by providing tools to interoperate with its host VM's class system and providing its own collections framework -- the latter tightly integrated with the language and supporting copy-on-write support to ease functional programming with immutable objects) has the potential to pull LISP into widespread, real-world use.

I've actually had a (Fortune 50) employer put Clojure to use for a tool parsing an extremely high-volume data feed in near-real-time; the project was a roaring success, and the choice of tools was no small factor.

Re:metaprogramming FTW! (1)

mad.frog (525085) | more than 4 years ago | (#34116116)

Because, as it turns out, syntax matters, and the majority of programmers find C/Java style code to be easier to deal with than Lisp. (Myself included.)

Re:metaprogramming FTW! (1)

MrEricSir (398214) | more than 4 years ago | (#34116806)

(What (is (so (complicated (about (LISP's (syntax( ? )))))))))

Re:metaprogramming FTW! (2, Insightful)

SuperKendall (25149) | more than 4 years ago | (#34116150)

Because when every programmer is a god, all ends in strife and horror and mutation.

See: Greek Pantheon. Or Bioshock.

Mind you, I love Lisp. But I wouldn't if I were working with anyone else on the same code for any length of time.

Re:metaprogramming FTW! (1)

slapout (93640) | more than 4 years ago | (#34116422)

Perhaps it speaks to the fact that its not very well taught. I've looked at learning LISP but just couldn't understand Abelson and Sussman.

Re:metaprogramming FTW! (0)

Anonymous Coward | more than 4 years ago | (#34116812)

What I want to know is why, in 2010, most commonly used languages (Java, C++, C#, etc) do not have even a tiny fraction of the metaprogramming ability that LISP provided to us many decades ago. LISP itself isn't so practical, but we could have learned from it, and we didn't.

What happened there? We have lots of *other* things, but somehow it feels like we dropped the ball there. We waste massive amounts of expensive programmer time because of it.

Dunno what happened to you poor bastards - I'm over here enjoying coding in a language with real metaprogramming while I laugh at the B&D language enthusiasts who have made their languages so "safe" that now it's OK to ship it to n00bs overseas at 1/10th the cost...

Modern Computers do come with BASIC (1, Informative)

Anonymous Coward | more than 4 years ago | (#34115624)

Every Windows PC comes with VBscript - open a *.vbs file, and just start typing away Visual Basic.

Every PC comes with multiple javascript runtimes - just open a *.html file and start scripting away.

Re:Modern Computers do come with BASIC (1)

Purity Of Essence (1007601) | more than 4 years ago | (#34115958)

True but those are far more complex languages. In important detail that those lack, and what classical microcomputer BASIC has, is an immediate mode interpreter. That instant response to input is a powerful tool for the beginning programmer. Javascript and VBScript also lack the straightforward user I/O that BASIC has.

Re:Modern Computers do come with BASIC (2, Interesting)

Second_Derivative (257815) | more than 4 years ago | (#34116186)

You're kidding about VBScript, right? Short of abusing Scripting.Dictionary in some rather awful ways you can't even define data structures in it, and writing code that spans more than one module involves the use of some obtuse XML crap (.scs files) which most people don't even know about. VBScript has its place but using it for anything other substantially more complex than short straight-line automation scripts is lunacy.

You could write some ephemeral JavaScript programs in an .html file that can't even interact with the filesystem, sure, but these creations would be obvious fourth-class citizens on your shiny 21st century computer, which doesn't yield a particularly satisfying experience for the novice programmer.

No, if a kid with an internet connection wants to start programming stuff then in some senses the ground has never been more fertile. Even if you're not willing to leave Win32 you can quickly and easily download IDLE or a win32 build of Ruby, and the latter has plenty of really gentle tutorials to ease a novice into the world of programming, to the point where the interested reader could probably stumble oneward from there through Wikipedia well enough for most of the intermediate concepts to stick. The sort of things you can easily accomplish with MinGW and a bit of Googling today would have absolutely blown my ten year old mind back when anything above the level of BASIC was a forbidden art unheard of outside of obscure BBSes (which show up on your parents' phone bill) or a university library.

On the other hand, a modern PC environment is a frightfully complicated beast compared to an Amiga or a Spectrum. That I think is far more of a problem than the availability of simple tools and documentation these days... that and a more comfortable consumption-oriented environment on a modern desktop that doesn't force you to make your own fun.

Re:Modern Computers do come with BASIC (1)

clone53421 (1310749) | more than 4 years ago | (#34116518)

You could write some ephemeral JavaScript programs in an .html file that can't even interact with the filesystem, sure

.hta

But be forewarned... you’re using IE. Less importantly, your virus scanner might not like you for it.

Re:Modern Computers do come with BASIC (1)

Bigjeff5 (1143585) | more than 4 years ago | (#34116774)

And it's still extremely limited.

Seriously, have you ever used them?

Re:Modern Computers do come with BASIC (1)

Lennie (16154) | more than 4 years ago | (#34116350)

JavaScript is much, much closer related to LISP than Basic.

http://www.crockford.com/javascript/javascript.html [crockford.com]

It just has C-like syntax, that is all.

"Alice" one of the best learning languages today (3, Informative)

elrous0 (869638) | more than 4 years ago | (#34115662)

I wouldn't recommend BASIC or LISP for someone wanting to learn modern object-oriented programming today. A lot of us started out with a structured languages like this, but you wouldn't want to start out that way if you were doing it for the first time now. My university uses Alice [alice.org] and it works pretty well. Alice teaches much more modern object-oriented principles that would be much more useful than BASIC or LISP to a modern programming student.

Re:"Alice" one of the best learning languages toda (1, Funny)

Anonymous Coward | more than 4 years ago | (#34115746)

Alice, who the fuck is Alice?

Re:"Alice" one of the best learning languages toda (1)

ocdscouter (1922930) | more than 4 years ago | (#34116316)

I think she's a friend of Bob's.

Re:"Alice" one of the best learning languages toda (1)

ChipMonk (711367) | more than 4 years ago | (#34116448)

It took you so much effort to type that, when you could have simply clicked on the provided link? No wonder you're AC.

Re:"Alice" one of the best learning languages toda (0)

Anonymous Coward | more than 4 years ago | (#34116658)

Whoosh [lyricsdownload.com] ... and since you probably didn't get the other joke either [wikipedia.org] ...

Re:"Alice" one of the best learning languages toda (1)

Bigjeff5 (1143585) | more than 4 years ago | (#34116782)

It's a joke, don't get your panties in a bunch.

Re:"Alice" one of the best learning languages toda (1)

dkleinsc (563838) | more than 4 years ago | (#34116752)

She runs Alice's Restaurant [wikipedia.org] in Stockbridge, MA, of course.

Re:"Alice" one of the best learning languages toda (1)

mdf356 (774923) | more than 4 years ago | (#34115770)

What's this "object oriented" thing you speak of? If you can't do it in C or LISP, is it really necessary? :-)

Re:"Alice" one of the best learning languages toda (2, Informative)

Anonymous Coward | more than 4 years ago | (#34115800)

I wouldn't recommend BASIC or LISP for someone wanting to learn modern object-oriented programming today. A lot of us started out with a structured languages like this, but you wouldn't want to start out that way if you were doing it for the first time now. My university uses Alice [alice.org] and it works pretty well. Alice teaches much more modern object-oriented principles that would be much more useful than BASIC or LISP to a modern programming student.

Common Lisp has object oriented techniques that Java-like languages still fail to have, like multiple-dispatch and metaclasses. Read your manuals before speaking lies, Common Lisp has the most advanced OO system among modern programming languages.

Re:"Alice" one of the best learning languages toda (5, Informative)

Raffaello (230287) | more than 4 years ago | (#34116084)

Common Lisp, which is what the book uses, has the first ANSI standard OO programming system, CLOS - short for the "Common Lisp Object System" - which includes multiple inheritance, generic functions, a meta-object protocol, and is in all essentials, a superset of the capabilities of the object systems of mainstream OO languages such as C++, Java, Smalltalk and Objective-C.

No one is advocating entering a time warp to the 1960s to use LISP 1.5 for the teaching of modern OO programming, least of all Conrad Barski, the author of Land of Lisp, which uses ANSI standard Common Lisp.

Re:"Alice" one of the best learning languages toda (4, Informative)

fusiongyro (55524) | more than 4 years ago | (#34116220)

First, Lisp is not an acronym.

Second, Lisp has the CLOS, which is an advanced OOP system in its own right with multiple inheritance, polymorphism, encapsulation, multiple dispatch and all that other groovy nonsense. It's no setback compared to "modern" OOP.

Re:"Alice" one of the best learning languages toda (1)

GlassHeart (579618) | more than 4 years ago | (#34116568)

I wouldn't recommend BASIC or LISP for someone wanting to learn modern object-oriented programming today.

I don't completely agree. A true beginner doesn't really need to understand how to structure a large program, which is what the modern principles are for. The first goal should be to write "linear" programs of the input-process-output model, learn the basic control structures and operators, and how to debug. From that foundation, you could go one way and learn how things work "under the hood" and try C or even assembly, or the other direction to learn how to build large programs (such as OO, patterns, etc).

Thus, I actually think BASIC (not line-numbered BASIC, the modernized ones) sweeps enough of both under the rug so that the beginner can concentrate on dealing with the code logic itself.

3-2-1 Contact (1)

emkyooess (1551693) | more than 4 years ago | (#34115692)

I initially learned to code (BASIC) from 3-2-1 Contact magazines.

computers come with accessible languages (0)

Anonymous Coward | more than 4 years ago | (#34115710)

The premise that modern computers don't provide a language as accessible as BASIC seems questionable.

Macs ship with Python and AppleScript, for example. The former is pretty simple syntactically and provides the "get a prompt, type in code, and it works" behavior. The latter is also (arguably) easy to understand, and is available from a simple IDE just by opening AppleScript Editor.

Re:computers come with accessible languages (1)

SuperKendall (25149) | more than 4 years ago | (#34116022)

Sure, but they don't give you the visual feedback programming did "back then".

I would actually argue that at the moment, an iPod Touch is actually the best programming environment for a kid wanting to learn to program, because the feedback is visual and kind of tactile, and they can easily show off work to friends.

The pure text programming plays are too dry to hook many kids early, I think...

Re:computers come with accessible languages (1)

falzer (224563) | more than 4 years ago | (#34116188)

> Sure, but they don't give you the visual feedback programming did "back then".

Don't they? Explain visual feedback programming differences between running python on today's macs with running basic on, say, the Apple II of old.

To get an idea of where you're coming from, what is your "back then" experience?

Re:computers come with accessible languages (0)

Anonymous Coward | more than 4 years ago | (#34116212)

I started out with TRS-80 Level II BASIC and I don't think I was getting much visual feedback. I suppose simple graphics were better integrated into the BASIC interpreters of the time than they are in Python or AppleScript.

My kids have played with MIT's Scratch a little bit. It's a decent learning environment for some programming concepts and is entirely visual, and it has a sharing mechanism.

Re:computers come with accessible languages (2, Insightful)

fusiongyro (55524) | more than 4 years ago | (#34116248)

AppleScript is much easier to understand than to write. Nearly everyone winds up using it in an autotools-like way, looking for examples online and adapting them, with a lot of superstitious behavior. It's extremely hard to write non-trivial AppleScript, and I'm speaking as a professional programmer with command of plenty of languages.

this FP fro8 GNAA (-1)

Anonymous Coward | more than 4 years ago | (#34115748)

lik3 they are Come long term survival Let's kkep to

David Ahl (1)

slapout (93640) | more than 4 years ago | (#34115814)

I remember David Ahl. I don't think he gets enough respect today for what he did for the industry with his magazines and books. BTW you can get the text of old articles from Creative Computing at: http://www.atarimagazines.com/

Hi- I'm the Author (5, Informative)

smug_lisp_weenie (824771) | more than 4 years ago | (#34115822)

Pay no attention to my user name- I promise to respectfully answer any questions you may have, about Lisp or the book!

Re:Hi- I'm the Author (0)

Anonymous Coward | more than 4 years ago | (#34116016)

will you help me write a book about Lisp?

Re:Hi- I'm the Author (4, Funny)

smug_lisp_weenie (824771) | more than 4 years ago | (#34116216)

I'd be glad to give you some pointers :)

Re:Hi- I'm the Author (3, Funny)

Anonymous Coward | more than 4 years ago | (#34116710)

Some pointers? Surely you mean cons cells!

Re:Hi- I'm the Author (1)

robi5 (1261542) | more than 4 years ago | (#34116104)

Can I buy it as an elecrtonic copy, e.g. Kindle?

Available at O'Reilly in Multiple Formats (2, Informative)

eldavojohn (898314) | more than 4 years ago | (#34116148)

Can I buy it as an elecrtonic copy, e.g. Kindle?

I saw electronic copies available on O'Reilly's site [oreilly.com] . Not exactly a huge cost benefit but that seems to be the norm.

Thanks, was able to buy and read right now (1)

SuperKendall (25149) | more than 4 years ago | (#34116360)

Who cares about a "cost benefit" when you can enjoy a book about Lisp this very instant?

At oreilly.com, I was able to buy the combo package that will send me the physical book, but also let me download the book in ePub or PDF - I just downloaded the PDF and am enjoying it now!

I would have waited for a Kindle version, but honestly I prefer to pay more for an open format like PDF, so I did.

Re:Thanks, was able to buy and read right now (4, Informative)

smug_lisp_weenie (824771) | more than 4 years ago | (#34116384)

My understanding is you'll be able to download the mobi/epub versions for free when they become available if you buy the PDF now.

Re:Hi- I'm the Author (3, Informative)

smug_lisp_weenie (824771) | more than 4 years ago | (#34116236)

For some reason, mopi and epub files take a couple extra weeks to make. They should be appearing on nostarch.com and amazon in a couple of weeks.

Re:Hi- I'm the Author (0)

Anonymous Coward | more than 4 years ago | (#34116632)

I'm not trying to start a Lisp vs Scheme flamewar, but is there any chance you could do a Scheme version?

Lisp web apps? (1, Interesting)

Anonymous Coward | more than 4 years ago | (#34115834)

Can anyone post links to any Lisp web application?
It can be something different then the HTML & SVG web game, though I would be extra keen to see that run...

Source Code Here & a Few Examples (2, Informative)

eldavojohn (898314) | more than 4 years ago | (#34116226)

Can anyone post links to any Lisp web application? It can be something different then the HTML & SVG web game, though I would be extra keen to see that run...

Can't find it hosted but found the code to the book at the homepage [landoflisp.com] that includes both the svg.lisp and webserver.lisp (also check out CL-HTTP [cl-http.org] ). As to your more generic question, I think this year's lisp game expo [cliki.net] competition had a few good Lisp web games [norstrulde.org] .

Re:Lisp web apps? (1)

vbraga (228124) | more than 4 years ago | (#34116488)

Yahoo! Stores, I believe, was built on Lisp.

Land of the Lisp? (1)

scorp1us (235526) | more than 4 years ago | (#34115852)

San Francisco?

Re:Land of the Lisp? (1)

khallow (566160) | more than 4 years ago | (#34116272)

Lisp is an East Coast thing. Blame MIT. The Snowbol/Pike/Perl progression was so much more open to the San Francisco lifestyle.

Re:Land of the Lisp? (1)

the_hellspawn (908071) | more than 4 years ago | (#34116608)

lol I got it.

LISP a bad choice as a starter language. (4, Insightful)

Junta (36770) | more than 4 years ago | (#34116038)

To get the most out of LISP, you really have to approach it with a mindset particularly distinct from most programming. It also happens to be distinct in nearly requiring recursion that is generally not part of an 'easy' getting started with programming. That and most people will club themselves over the head trying to sort out how many close parentheses are needed when they write something *particularly* 'clever'.

If in modern Windows, Powershell is a good starting point, if in Linux, Python. Unlike LISP, both yield immediately marketable skills and are easy to start toying with basics and do not require a lot of knowledge of where to go to get it running, it already exists on your platform (almost certainly).

I do agree that 'web frameworks' have mutated the relatively straightforward nature of underlying http into a frightening looking mystery to the uninitiated, but at least some in the industry are swinging back to the basics and discarding some of the oddly complex schemes over HTTP.

Re:LISP a bad choice as a starter language. (4, Insightful)

fusiongyro (55524) | more than 4 years ago | (#34116280)

Your information about Lisp is about 30 years out of date. It's not an acronym, Common Lisp has many looping constructs that are much more widely used than recursion, and closing parenthesis is as trivial to any modern editor or IDE as managing any other aspect of syntax. I think if you look at the cover of this book, it should be obvious to you that the target audience is not particularly interested in the marketability of their skills.

Re:LISP a bad choice as a starter language. (1, Insightful)

UnknownSoldier (67820) | more than 4 years ago | (#34116524)

> and closing parenthesis is as trivial to any modern editor or IDE as managing any other aspect of syntax.

That's a hinderance, not an advantage. I should be able to easily enter in blocks of code without having to rely on crutches like IDEs to make sure I have the correct number of parenthesis. While I admire LISP for its simplicity, elegance, and consistency, back in the Real World (TM) it has a lot of unncessary and redudant parenthesis that do nothing except clutter up code, making that crap near un-readable -- at least in C/C++ you can remove the braces for one-liners. Algol-like languages have a better mapping to mathematical functions. foo(x) vs (foo x)

i.e.

void foo( int x )
{
      if (true-expresion)
      {
              then-expression ;
      }
}

vs. the leading '(' is complely redundant but needed because of the syntax.

(defun bar (x)
    (if (true-expression)
            (then-expression)
    )
)

Re:LISP a bad choice as a starter language. (1)

Abcd1234 (188840) | more than 4 years ago | (#34116636)

Indeed. If you want a clean, readable functional language, you're much better with something like Haskell (assuming you don't write Haskell like an academic... seriously, *WTF* is with all these single character variable names? Yes, Haskell looks like a system of equations, but it's still a fucking programming language, people).

Disagree, think it's a great choice (4, Insightful)

SuperKendall (25149) | more than 4 years ago | (#34116402)

The great thing about learning Lisp as a first language is the lack of marketability, because it's to about setting you up on a path, it's about giving you fundamentals.

As noted there is enough syntactic sugar now to not cause the kinds of rough work that used to be around, and I think the brevity of the language can be good for people in that there's not a ton of syntax to learn to actually get something real built.

Once you have programmed in at least two languages, you have a much better idea of what you are doing I think. So given that you'll learn some "practical" language to do something, let Lisp be that "other language".

Re:Disagree, think it's a great choice (1, Insightful)

Mike Buddha (10734) | more than 4 years ago | (#34116648)

I'm with Junta on this one. If you're going to learn a first language, make it one that will grow with your knowledge. When I started out, it was with LOGO and BASIC. The LOGO stuff was pretty much mental masturbation, as it were. Yes, some of the concepts were transferrable to more modern, practical languages, but so were the concepts in BASIC.

For a beginner, I'd recommend Python. It's a powerful language, freely available on just about every platform imaginable, with tons of support and it will take a user all the way from "hello, world" to mobile phone apps, to web services, to World of Warcraft.

Kindle or iBooks version??? (1)

SuperKendall (25149) | more than 4 years ago | (#34116090)

Please, please say there will be a Kindle and/or iBook version of this book...

I'll preorder the physical copy anyway, but it would make a great eBook I think (not having seen it yet).

I think everyone, doing anything, should learn Lisp just to really open yourself to alternative programming approaches. I have used different techniques I learned in Lisp in every programming language I have ever used, from shell scripts to full languages like Java, C++, or Objective-C.

Conrad Barski remembers... (1)

chickenarise (1597941) | more than 4 years ago | (#34116094)

TV Voice: "Do you remember a time when cookies came fresh from the oven? Pepperidge Farm remembers!"
Fry: "Ahh, those were the days."
TV Voice: "Do you remember a time when women couldn't vote and certain folk weren't allowed on golf courses? Pepperidge Farm remembers!"

How about a link to the book's website? (1)

hgavin (259102) | more than 4 years ago | (#34116306)

http://landoflisp.com/ [landoflisp.com]

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?