Land of Lisp 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.
Land of Lisp: Learn to Program in Lisp, One Game at a Time! | |
author | Conrad Barski, M.D. |
pages | 504 |
publisher | No Starch Press |
rating | 10 |
reviewer | Vladimir Sedach |
ISBN | 978-1-59327-281-4 |
summary | Learn to Program in Lisp, One Game at a Time! |
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.
Oh Come On! This is a Book Review! (Score:5, Funny)
(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*
Re: (Score:2)
What do Smileys do to Lisp?
Re: (Score:3, Funny)
Denote keyword arguments?
(happy :o(sad))
Re: (Score:3, Funny)
Thmileys make lithp talk thrange.
Re: (Score:2)
*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.
Re:FOOLISH MODERATOR! (Score:5, Funny)
Re:Python is the Lisp of the 21st century (Score:5, Insightful)
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: (Score:3, Insightful)
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, lookin
Re: (Score:3, Informative)
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.
I think better solution to not having tabs would have been if C would only have accepted tabs as indentation. And if python had "one tab is one level of nesting", I think that'd have been better too.
Problems only arise when mixing tabs and spaces, and when not agreeing how many spaces indentation is, or how many spaces tab is. I'm sure most of us have encountered source files which have had all three of these, after being edited with many people with different editors and settings. "One TAB equals one level
Re: (Score:3, Insightful)
C doesn't care at all about indentation. You can remove all the lefthand space from a C program without affecting it in any way. Pythons meaningful whitespace is a terrible idea, absolutely horrific really.
Well, C cares about indentation in the way, that indentation has to be spaces or tabs, if there's any. Worst of all worlds, which is discovered by anybody who has worked with mixed up tab-space settings in files in version control. Worst case is having different amount of space per tab been used in different parts of the code, and tabs not used consistently. Result is, no matter how you configure the editor, some part of the code gets indented unevenly, and you can't fix it without messing up version contro
Re: (Score:2, Troll)
This is what I really, really, really hate about Python: indentation-based blocks. In other programming languages, I can easily restructure code when prototyping or exploring simply by adding or removing parentheses. In Python, I have to manually indent or unindent every single line .
Who the Hell thought that was a good idea?
Re: (Score:2)
Why can’t the text editor do it automatically?
Re: (Score:2)
Actually every good Python editor does that automatically. Particularly PyDev under eclipse
Re: (Score:3, Insightful)
A lot of it is working on site, often with borrowed equipment, and under fairly strict security limitations. I might get given the code in a zip file and have to edit it on windows on notepad. Or I might be using the console port on an alpha server running Tru64 4.0
These are just examples. They are created by circumstances. Python places to much reliance on the text editing environment.
Re: (Score:2)
Amen! Python is elegant, trivial to install, trivial to use, but insanely powerful. Even on a windows machine, installing a very comprehensive toolchain involves installing Python(x,y) and PyGame
What freaks me out is the mystification of programming and hardware. Having grown up on Ahl's "Basic Games" I always thought computer literacy would increase. Instead we have bunches of fanbois who boast of how ignorant of the hardware and software they use. I mean, when did superuser become an honorific?
Python is unusable because of whitespace issue (Score:5, Insightful)
Python respects the visual limitations of humans
It does exactly the opposite, unless humans can evolve to literally "see" whitespace characters.
The zen-like empty indentation technique drove me mad when I had to maintain some python software. It reminded me for exactly the thing I hated most about the little Fortran I had done in school, the punch-card like need for rigid character placement in something that was, to my mind, meant to be a totally logical construct.
As another poster noted, Python mixes presentation with content and that makes it really awful to do refactoring, or for tools to be able to offer you meaningful help in reformatting. A code reformatter can take a mess of code differently indented and make it correct according to your preferred spacing. It can also take pasted code and place it at exactly the right level of indentation. What is a code formatter to do when you try to paste code directly after an indented line of python? Any guess can be wrong, and all it CAN do is guess.
I actually like the language otherwise, I like the constructs, but the whitespace thing makes it basically unusable for me in practice. At this point if I want to learn a nice alternative and powerful language, I'm going for Erlang.
Re: (Score:3, Insightful)
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.
I actually like tabs.
I used to be in the "use spaces only" camp many years ago, but then I found out that I prefer proportional fonts to monospaced. When using those, you need more indentation; two or four spaces isn't going to be enough. So, I normally use tabs with the equivalent of six, and I switch to eight or ten when I'm dealing with highly-indented blocks of code.
If I used spaces alone and inserted a whole bunch of spaces to accomodate for my font preference, whoever looks at that code later in a mon
Lisp is cool... (Score:3, Interesting)
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... (Score:5, Interesting)
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... (Score:5, Funny)
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: (Score:2, Interesting)
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.
Re: (Score:3, Insightful)
Those Were The Days My Friends, We Thought... (Score:5, Interesting)
Re: (Score:3, Informative)
Re: (Score:2)
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"
Re: (Score:2)
Re: (Score:2)
Just remember to be buried facedown, nine-edge first
Those were the days!
Any youngsters reading this, GET OFF MY LAWN!
Re: (Score:3, Funny)
Re: (Score:2)
Quote of the Day Analyzes Article Text Now? (Score:4, Funny)
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# (Score:2)
"Alice" one of the best learning languages today (Score:4, Informative)
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: (Score:2)
What's this "object oriented" thing you speak of? If you can't do it in C or LISP, is it really necessary? :-)
Re: (Score:3, Informative)
Re: (Score:2, Informative)
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 (Score:5, Informative)
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 (Score:5, Informative)
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: (Score:3, Funny)
Re: (Score:2)
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 o
Re: (Score:3, Funny)
Re: (Score:2)
Yes, you would. Objects are meant to solve a problem, and simply get in the way until and unless you run into that problem. Of course, the same goes for structured programming...
Re: (Score:3, Insightful)
Funny. To date, Common Lisp still has the most powerful and feature-complete OOP system ever designed in a programming language.
Re: (Score:2)
Re: (Score:2)
It's a joke, don't get your panties in a bunch.
Re: (Score:2)
She runs Alice's Restaurant [wikipedia.org] in Stockbridge, MA, of course.
3-2-1 Contact (Score:2)
I initially learned to code (BASIC) from 3-2-1 Contact magazines.
David Ahl (Score:2)
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 (Score:5, Informative)
Pay no attention to my user name- I promise to respectfully answer any questions you may have, about Lisp or the book!
Re: (Score:3, Interesting)
Available at O'Reilly in Multiple Formats (Score:3, Informative)
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 (Score:2)
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 (Score:5, Informative)
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 (Score:4, Informative)
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 (Score:5, Funny)
I'd be glad to give you some pointers :)
Re: (Score:3, Funny)
Some pointers? Surely you mean cons cells!
Re: (Score:3, Funny)
He said Lisp, not C.
Land of the Lisp? (Score:2)
San Francisco?
Re: (Score:2)
LISP a bad choice as a starter language. (Score:5, Insightful)
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. (Score:5, Insightful)
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: (Score:2, Insightful)
> 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 u
Re: (Score:2)
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).
Re:LISP a bad choice as a starter language. (Score:4, Insightful)
Thus saving a whole single character per line. That's real efficiency.
I wonder how many bugs have been introduced when people have confused Algol-like functions (which have side effects) with mathematical ones (which don't)?
Re: (Score:3, Interesting)
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.
That's an issue with braces in any other language, just check your C++ example... or any code with nested if statements and a bunch of closing braces.
As with any paired construct, the solution is to enter both halves before you type anything else - so I always enter:
()
And then type into it. You don't mismatch parens that way - editors are nice in that they ca
Re: (Score:3, Interesting)
IDE? A programmer's editor is all you need. In the Real World (TM) I suspect most programmers are already 'reliant' on such ubiquitous crutches!
The parentheses are necessary and are not redundant - the necessary minimum in fact - and do not "do nothing except c
Disagree, think it's a great choice (Score:5, Insightful)
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: (Score:2, Insightful)
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 use
Re: (Score:3, Insightful)
I know some programmers who know several languages, but they write as if every one of them was Fortran. You can lead the horse to water...
Two... only _two_ languages? (Score:3, Interesting)
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".
I concur, and would add that being proficient with five languages is not too high a bar to set for a professional developer. (Not a world-leading expert, but able to Write Good Code(tm))
Heck, I know C, C++, python and shell scripting *very* well (IMNSHO); haskell, java and scala decently; scheme, elisp and SML/NJ somewhat; javascript, C# and perl superficially, [...].
But then again, scheme and javascript are basically the same language, and python is a funky dialect of it with elisp being a close cousin.
Kindle or iBooks version??? (Score:2)
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.
You insensitive clod !!! (Score:3, Informative)
21st Century started in 1958? (Score:4, Insightful)
Seriously, guys, who in their right mind believes there have been no major advances in programming languages since Lisp?
Oh, I'll admit that 99.9% of the supposed "advances" have been horseshit...
Re:21st Century started in 1958? (Score:5, Informative)
Some quite [paulgraham.com] notable [paulgraham.com] hackers [paulgraham.com] believe that everything since LISP has simply reinvented the wheel. The more I study programming languages, the more I'm inclined to believe them.
It wasn't about education (Score:3, Insightful)
Two comments about the summary:
Programming today is easier than programming in the 80s, if you pick the right language. BASIC wasn't that easy -- although at least on most computers there was no installation step.
Most people who typed in games from magazines weren't doing it to learn -- they wanted to play the game, and printing the BASIC code on paper was more cost effective for the publishers than gluing a cassette to the magazine. Typically there would be no comments, no discussion of the techniques use, and towards the end of this practice's lifetime, it wasn't unusual for the program to be a small piece of BASIC for poking integers into memory, followed by several A4 pages of hex characters; the machine code for the game.
Re: (Score:3, Interesting)
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: (Score:3, Informative)
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: (Score:2)
There are plenty of highly skilled programmers who don't like Lisp. You can't just blame it all on management.
Re: (Score:3, Insightful)
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: (Score:3, Interesting)
Re: (Score:2)
Basically, the stuff that you would reasonably use templates for in C++ can only be done with a bunch of duplicated code in C. Even in the C Standard Library (created by people who obviously know C very well), you see many very similar functions named with a suffix noting the data type that it takes or returns. They likely all have very similar implementations as well.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
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! (Score:4, Interesting)
...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: (Score:2)
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: (Score:2)
(What (is (so (complicated (about (LISP's (syntax( ? )))))))))
Re: (Score:3, Insightful)
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: (Score:2)
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: (Score:2)
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: (Score:2, Interesting)
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 i
Re: (Score:2)
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: (Score:2)
And it's still extremely limited.
Seriously, have you ever used them?
Re: (Score:2)
...yes?
What specific limitations are you talking about? I know of some, but they’re not necessarily deal-breakers. Except maybe not supporting binary file I/O, and there’s no way to make a window always-on-top.
Re: (Score:2)
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.
Re: (Score:2)
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: (Score:3, Insightful)
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.
Source Code Here & a Few Examples (Score:3, Informative)
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: (Score:2)
Re: (Score:3, Interesting)