Should I learn Lisp as a first language?

Should I learn Lisp as a first language?
I feel... attached to it somehow.

Other urls found in this thread:

sarabander.github.io/sicp/html/index.xhtml
github.com/roswell/roswell)
github.com/lispgames/lispgames.github.io/wiki
twitter.com/NSFWRedditImage

Start with r5rs, proceed from there.

Common Lisp

Quick rundown?
Downloaded it, will start tomorrow.

Lisp seems dated to me. Better to learn Scheme or Racket.

No, It makes people speak funny.

Nah, learn Python my dude, you won't regret it

>Scheme or Racket.
Haven't heard about these, I want to start out with old languages because it should give me a good base to move on? I feel like new ones hand-hold too much
I'm doing that as well but I wanted to know if Lisp is worth a damn for anything, I just really like it for no good reason.
forgot carlos image

How do you feel attached to it if you never learned it?

Scheme is older than Common Lisp.

>Haven't heard about these, I want to start out with old languages because it should give me a good base to move on? I feel like new ones hand-hold too much
Abstraction is actually a good thing my friend. But learn whatever you want.

>Should I learn Lisp as a first language?
Sure, there's nothing wrong with that. Lisp is easy to grasp and a great learning tool.

It won't teach you any modern design patterns that will be fairly necessary for a wide variety of practical implementations, but you don't need to worry about that kind of thing when you're first starting out.

I think MIT still teaches their introductory CS course using lisp, though they may have changed it.

You might consider reading through SICP, which makes heavy use of lisp, argues for its utility as a first language, and is the book MIT uses for their aforementioned introductory CS course.
You can read through a pleasant online version at sarabander.github.io/sicp/html/index.xhtml

I would recommend you read the foreword and prefaces right now. They're short, inspirational, and relevant to the conversation of lisp.

Use Clojure

Do keep in mind if you're looking towards Common Lisp, you'll encounter some hangups along the way reading this book, since it uses Scheme.

Racket Lisp was my first language and I can't recommend it enough. How to Design Programs is an excellent guide to programming for beginners, especially because it targets the biggest problem: "How do I START something from basic steps?" and gives concrete advice. It's great as a prequel to SICP ("How do I UNDERSTAND something from basic principles?") or even just on its own. I still use the design recipe when working on problems because it's a great way to break shit down into straight-forward sections.

The language also has the best docs I've ever used, and it comes with a "batteries-included" editor for beginners that has integrated debugging and step-by-step evaluation.

I've been programming for years so I've run up against the warts and hassles of Lisp languages a lot (loading/evaluating a huge file or module only to realize that somewhere there is one line or fragment that's attempting to access the first element of an empty list at runtime made me want to pull my hair out), but it's a great language for beginners who work on smaller projects and it "grows" well in complexity along with the programmer's skill (as opposed to Java/C++ that start off very complex for beginners). Then, of the lisp languages, Racket's my favorite and the one I usually recommend to people asking for a Lisp language choice.

No clue, it just feels right
>Abstraction is actually a good thing my friend. But learn whatever you want.
ok
Alright user! This was the answer I was waiting for. I'll copy pasta this into a notepad
I'll keep this in mind.

>(loading/evaluating a huge file or module only to realize that somewhere there is one line or fragment that's attempting to access the first element of an empty list at runtime made me want to pull my hair out)
What Lisp was this? CL lets you do this.

What is better during run time?

C or Lisp?

What has better performance!?!?!?!?

>I feel... attached to it somehow.
The spirit of the machine lives in you

>What has better performance
C obviously. Performance is not the point of lisp, expressiveness is.

Depends on the use case.

But if I was to make a AAA game engine in Lisp, could it run awesomely?

Maybe. I use Lisp, but I probably wouldn't use it for a game engine because of the GC. There are game engines in Lisp though.

GC?

I can only think of GameCube

cool, that might explain my fetish for helping everyone with their computers/restoring old computers/making old netbooks run fast.
>expressiveness
You mean readability? Explain

Pointers and recursion are perhaps the two most fundamental concepts you'll want to learn. An intuitive understanding of the two is what separates the programmers from the Indians.

Lisp very naturally gets you used to both. There's a reason MIT uses Scheme.

Garbage collector. Usually you want to be in control memory management in a game engine.

this, Common Lisp has the most libraries of any Lisp

Common Lisp's standard is better supported

bighuge Scheme compilers have outperformed C ones and Lisp as a language is easier to optimize

the REPL and various IDE's like Emacs built around the language, and code-is-data-is-code are the most enlightening aspect of Lisp imo

Is it as trash as Javascript?

control of*

Another, more /biz/ leaning question. I don't want to learn CS or EE and like programming. Should I just get some certificates and shit and choose another career? Programming/Tech is a bit saturated nowadays.
Right, so I'll do Common Lisp or Scheme? I'll probably start another thread tomorrow since it's 12:06AM and I have to get some sleep.

>Too much hand holding
OK, make a trillion dollar product really quick and then you'll have plenty of time to learn every other language you want.

All "I want to learn _old ass language_" fags are the same, you want to "learn" an old language as some rite of passage into the cool nerd club without respecting languages people actually use.

Want a big dick? Make something.

>You mean readability?
No.
"Expressiveness" is a property of a language that denotes how easy it is for a programmer to take their thoughts and make the language carry them out. A language that requires you to go through a whole song and dance of random shit not directly related to the algorithm you're thinking about is said to be less expressive.

Languages that are very efficient tend to require the programmer to specify many small details about the specific implementation of their algorithm before anything can actually be done. These languages tend to not be very expressive.

In general (but not always), a language that is more expressive will be less efficient but also less frustrating to write in.

God no. Javascript is horrible.

I learned Common Lisp first, but it's up to you. Scheme just appears cleaner, but I prefer the tools CL provides right out the gate.

Alright, that sounds neat.
Projecting a lot, Python is up there on my list of shit I need to get in on but my autism craves Lisp
I'll just hit that Common Lisp.

Fuck off with this "what language should I learn?" bullshit.

If you actually planned on learning anything you'd be doing so instead of bugging Sup Forums about it.

But no, instead you're procrastinating. You're swept up in the planning stage because you know you're never going to amount to anything and don't even want to take the risk of failing.

Fuck you.

In that case, you can clone Roswell (github.com/roswell/roswell) if you want to get up and running quickly. The usual route is to get emacs, install a Lisp compiler (SBCL is recommended), install SLIME, install quicklisp, and then whatever else to make your life easier (I use Paredit to manage the parens so I don't have to as much). Take your time with it, and have fun most of all.

This projection stopped being a projection too soon. Everything you just said is true but I WANT to learn Lisp, I don't NEED to which means I'll enjoy it a lot more doesn't it?

heh, always thought geiser was more polished than slime if that's what you're talking about

i do wish the documentation was half as good/centralized in scheme as it is in common lisp though

In Lisp, this is just
(minusp x)
or
(< 0 x)
or you can encode this in a datatype.
(lambda (x)
(declare (type (integer * -1) x))
x)

but can you make a game with that?

I was leaning more towards things like being able to call functions without having to use funcall. Mostly syntactic issues that get noisy after awhile. Just a small example, but it really starts shitting up your code if you have to use it a lot.

Sure. If you have some imagination.

I want full 3d capabilities with network stacks that don't suck

It would be a ton of work that you are probably arent capable of but its possible.

github.com/lispgames/lispgames.github.io/wiki

those games look like doodoo my dude

That's because they weren't developed by triple-A studios with large budgets.

>Projecting
Not an argument.

MIT changed it to Python, which is unfortunate.

Source: am MIT prof.

is that because there's a reason for that?

>AAA game engine in Lisp
There are big engines made in C# so Lisp engine should also be reasonable.
You should probably first write you engine in lisp, profile and then rewrite some parts in C if you need more performance.