Arc Forumnew | comments | leaders | submitlogin
I know no Lisp at all, should I learn Arc?
2 points by ptn 5916 days ago | 9 comments
I want to learn Arc, but I'm afraid that it being unfinished will make all my knowledge obsolete when a new release comes out. To what extent is that an obstacle?


3 points by fallintothis 5916 days ago | link

Why would it be? Are you that incapable of learning new things? I doubt it. The differences between releases, no less, is going to be smaller than the differences between Lisps and other languages as a whole. It strikes me as something rather foreign to say, being of the general form "I want to learn X, but I'm afraid that something new will come along." So? The learning process is continuous. It's like being worried that Python 2.5 is going to be obsoleted by Python 3.0. Of course it will; the point is to run a mental diff and adapt, which isn't difficult because at its core it's still Python. Now, if the question is whether to learn Arc or some more well-established dialect, I see you've already commented on this thread: http://arclanguage.org/item?id=7876. Although, the same logic applies in the whole Lisps vs Others thing -- choose one and go with it; the differences are easy to pick up when you have experience in a Lisp.

-----

3 points by ptn 5916 days ago | link

I am not incapable of learning new things, but it's foolish to waste time with something that will be obsolete in 3 months (or whatever insignificant time). I'd rather play with something a little more stable. Take into account that py3k came along after 16 years of Python. It breaks backward-compatibility and hackers must relearn a bunch of things, yes, but that only happened after a really long time. I'm concerned that this kind of major change will happen with every Arc release, which is the impression I get when I read pg's announcement ("we will continue to work as if we were the only users").

-----

6 points by fallintothis 5915 days ago | link

To be clear, I didn't mean offense with the comment about learning new things (hence saying "I doubt it").

Moreover, my point was that the differences between releases are relatively easy to cope with -- yes, even for py3k. Sure, there are a hefty number of changes, but they mostly occur in a more "library" level (if you will) rather than at the base language, and much of it is just cleaning up inconsistencies. It's not as though the entire "16 years of Python" flies out the window with an overhaul like this. It'll be something of a pain in the ass to update code, but it won't make your collected knowledge obsolete, per se.

On a less contentious matter, Arc is also a tiny language. Its changes won't be all that drastic at this point. This is little consolation, as the aim is probably to build up a respectable library base. To that end, my overarching point is that you should learn Lisp in a more platonic sense (hardly a waste of time, break-prone versions aside). This can be done with pretty much any dialect, for the record. Libraries may become obsolete, but this sort of philosophical knowledge will not.

Whether this entails using Arc needn't be a grueling decision: it's a small, simple dialect (cf the responses in the aforementioned thread), and still a Lisp. The impression I get from the announcement is more of a heads-up "we reserve the right to..." thing. Besides which, changes to Arc entail, to a significant enough extent, code written in Arc itself. What better way to understand and play with the language than to read over the definition of 'trav (as a real example of a change between arc1 and arc2; http://arclanguage.org/item?id=2504)? Regardless, as Arc stands it's stable enough for learning, but this education has far more impact than being some sort of fleeting "woops, new version, guess I don't understand Lisp anymore." I focus on this idealized learning-experience viewpoint because that's the reason I tend to play with other languages: to expand my mind.

If, however, it comes down to consistency that you'd like for a Lisp in a production environment, well:

It's not a coincidence that we wrote a language for exploratory programming rather than the sort where an army of programmers builds a big, bureaucratic piece of software for a big, bureaucratic organization.

-----

3 points by ptn 5915 days ago | link

No offense taken (shakes hand)

No matter how easy to cope with changes are, if they happen all the time, they are annoying. You are supposed to mess around with programs for a while to really get to know a language, but if at mid-point you are forced to stop and rewrite everything, it's like being stuck on 2nd gear.

However, I now understand three things: (1) Arc releases don't really come that often, (2) changes won't be neither numerous nor drastic and (3, really important) former versions of Arc will have taught you a bunch of valuable lessons. 3 is pretty obvious, but I was totally failing to see it. Thanks for that.

Guess I will learn Arc :)

P.S Arc's aim at this point is not to build a respectable library base, it is to improve the core language.

-----

5 points by lojic 5916 days ago | link

I think it's premature to worry about a next release :)

-----

5 points by pg 5913 days ago | link

I'll have a good deal of time to work on Arc in October and November. I'll probably release some new versions then.

-----

2 points by skenney26 5916 days ago | link

It might be useful to learn Common Lisp because there are excellent free books available online and nearly everything you learn will be directly applicable to Arc. I've been reading On Lisp to augment my understanding of Arc. Believe me, the knowledge gained by studying another Lisp dialect (or an "unfinished" version of Arc) will not become obsolete.

  On Lisp: http://paulgraham.com/onlisptext.html

  Practical Common Lisp: http://gigamonkeys.com/book/

-----

1 point by andreyf 5880 days ago | link

I think Common Lisp is a bit foreign, and recommend Arc as a first Lisp to my friends - it's clean, the tutorial is great, and the concepts you'll learn apply to all Lisps. The lack of a "proper" IDE and libraries don't really matter if you're just toying around learning the habits of a language.

Don't worry about wasting time - frankly, it sounds like an excuse. It takes one night's work to learn Arc, and the knowledge is very applicable to a lot of other Lisp derivatives out there.

Scheme is a great follow up after Arc, The Little Schemer series of books being especially fun. Once you feel ready for Common Lisp, "On Lisp" is great (at least the first half that I got through was).

-----

1 point by niels_olson 5878 days ago | link

I'm in the same boat. I'm starting with Arc because it's new, on the fringe, the philosophy is right. I've found lots of good things happen out here.

-----