Live data from Hacker News

Learn lisp in 5 steps

anthonyf.wordpress.com

21–25 of 25 posts

Re: Learn lisp in 5 steps

#21
post #9

I feel like anyone on HN has a basic idea of how to go about learning a programming language. If you sub in appropriate $books and $IDEs, there's nothing language-specific in the post. And to be honest, nothing all that new or all that notable.

Agreed, this is fluff, people are only responding to it because mentioning Lisp pushes HN's buttons.

If you want to read something good about Lisp, check out _Paradigms of Artificial Intelligence Programming_ by Peter Norvig, David Kranz's _ORBIT_, SICP, Dybvig's _Three Implementation Models for Scheme_, or the Lambda papers (http://library.readscheme.org/page1.html).

Re: Learn lisp in 5 steps

#22
post #18
post #17

Earlier quoted context omitted.

For what purpose? What do you mean by system applications? Certainly I would evaluate it as a reasonable language for anywhere where Python is used.....

One application I spend a lot of time working on/modifying is my crawler. It uses Python's Beautiful Soup. Other applications I use/work on are my master control application. It is written in C and handles configuration sharing between systems.

Depending on complexity and future plans, Common Lisp might be a good choice to create the controller in.

I don't think I'd want to try to reimplement Beautiful Soup without a really good reason! :)

Re: Learn lisp in 5 steps

#23
post #13

Earlier quoted context omitted.

I'll take a small stab at giving a satisfactory answer. Some of these apply to all Lisps, some don't apply to different Lisps, for varying reasons of implementation. There are two basic reasons for learning a language - personal growth and for creating a product. In the realm of 'personal growth', Lisp opens the doors in your mind to working with macros and homoiconic code. It also shares with other dynamic languages…

Haskell and OCaml both typically compile to native code, and since they have REPLs, may fit your criteria for "dynamic" languages (which is a very fuzzy classification). LuaJIT also performs quite well, and IMHO is very pleasant to work with. Either way, Lisp performance is quite good, significantly better than Python or Ruby, which are often good enough. Lisp's convenient format for data was a HUGE win, for a while,…

I'm not sure what I mean by a 'dynamic' language. I know it when I see it. ;)

Well, less facetiously: if I can add in-language functions to the image, using the language facilities, while the deployed application is running/paused, I think of that as dynamic.

Data is an interesting thing. There's a crossover point between structured textual data that can be sucked in and when you want to start doing relational queries and stores. Then there's how data is handled in the program. The methods you describe above are very useful, but - insofar as I know of - I think they can be reimplemented without massive grief in other languages, depending on extensibility. Lua has a good reputation for speed; I take it you use it as a standalone?

Re: Learn lisp in 5 steps

#24
post #23

Earlier quoted context omitted.

Haskell and OCaml both typically compile to native code, and since they have REPLs, may fit your criteria for "dynamic" languages (which is a very fuzzy classification). LuaJIT also performs quite well, and IMHO is very pleasant to work with. Either way, Lisp performance is quite good, significantly better than Python or Ruby, which are often good enough. Lisp's convenient format for data was a HUGE win, for a while,…

I'm not sure what I mean by a 'dynamic' language. I know it when I see it. ;) Well, less facetiously: if I can add in-language functions to the image, using the language facilities, while the deployed application is running/paused, I think of that as dynamic. Data is an interesting thing. There's a crossover point between structured textual data that can be sucked in and when you want to start doing relational querie…

If being able to update code from a REPL while it's running counts, then yes, though OCaml and Haskell (AFAIK, less experience there) usually involve more edit-compile-reload, to take advantage of the utterly superior compile-time checking. OTOH, Erlang handles "change-in-flight" even better than Lisp does. Of the four, I prefer Erlang, but they're all respectable.

I use Lua both standalone and with C. (Its convenience with linked-in C code won me over from Python, actually.) It's my favorite general purpose language. Nothing against the great performance, but it was a great language before LuaJIT even existed.

Datalog also has a lot of potential as a data format. The industry seems to forget anything invented more than a fortnight ago, though, so it's probably passe until somebody charismatic finally invents it.

Re: Learn lisp in 5 steps

#25

This list of steps applicable to learning any programming language. 1.) Switch to appropriate environment 2.) Download an IDE built for your language 3.) 2 + [insert language]Lint 4.) Read some books on the language 5.) Write a program that actually does something useful

Requiring an IDE specific to your language should be the exception, not the rule. Why the hell should you have to learn a completely different editor just to try out a new language? Is the language really so verbose and inexpressive that you can't even maintain it by hand?

I only added that comment because I was thinking about PHP/JS vs...Java or Objective-C. It really makes sense to switch out of Coda and into Xcode.
Post reply on HN