a journey in seek of a new language

Started by ryuo, May 21, 2014, 10:37:40 AM

Previous topic - Next topic

ryuo

I've used C and Shell Script for about 5 years. I'm by no means a master of every detail of these languages. I have tried python, but found it to be just plain boring. Nothing challenging or interesting about it for me. I've read about Lisp in the past. It's always been portrayed as some kind of super language. So, I thought it might be worth looking into as a new language.



I first tried to find out more about Common Lisp, because it has an official standard. However, their main communities treated me very rudely and with an arrogant attitude to boot. It seemed like they felt like they were incapable of mistakes.



This was quite a culture shock for me, as I am used to dealing with developers who are generally helpful, even if they can be critical at times. The major difference between the two is that they never engaged in personal attacks.



I also considered Scheme, but the language is quite difficult to write portable code in from what I've read. It sounds worse than trying to write portable C.



I also read about newlisp, which is what brings me here, in passing. How helpful is the community here?  



There is a lot of reading material, but I'm not really sure where to begin. I would want to start with the fundamentals of lisp, as the syntax is like an alien language to me right now. So which material is best for this?



http://en.wikibooks.org/wiki/Introduction_to_newLISP">http://en.wikibooks.org/wiki/Introduction_to_newLISP



This place looks promising, but I'm not sure if it is the proper resource for getting started.



And from there I would like a language reference. This is what I've used in the past to learn about all or most of a language's syntax constructs. However, all I've found so far is API reference and guides for how to do certain things. Am I simply missing something here? I wouldn't be surprised as Lisp is unlike any language I've used or seen before. I was looking at this specifically:



http://www.newlisp.org/downloads/newlisp_manual.html">http://www.newlisp.org/downloads/newlisp_manual.html



Any helpful responses would be appreciated. Thank you.

cormullion

#1
Hi there. The wikibooks was intended as a general and gentle introduction, perhaps for people such as  engineers or non-programmers who want to introduce some automation to their work. This mirrors newLISP itself, which is similarly not directed purely towards computer science graduates and experienced  programmers, who find it lacking in some key areas. If you're an experienced programmer, you should find the Code Patterns and Reference Manual more than sufficient to get started.



You shouldn't confuse or compare newLISP and Common Lisp. The two languages share common ancestors but are very different in both large and small ways. My recommendation is to play with newLISP and see if you like Lisp programming. Your choices then range from Common Lisp, Scheme, Clojure, and many more besides.

Astrobe

#2
I work with the manual essentially, plus the "code patterns" file. Both of them give a lot of recipes.



One thing to note about NewLisp is that its built-in functions library is very rich. And many of these functions can be used in more than one way thanks to the clever use of default parameters. As a result the manual is quite dense in the sense that it contains a lot of information. I would advice to read it start-to-end once in order to have an idea of what Newlisp can do out-of-the-box. This will certainly raise questions like "can I do this with that?"; it is a great occasion to fire up the interpreter and experiment. For instance you might notice that Newlisp doesn't have the familiar "struct" construct, so you might experiment ways to recreate similar functionality (perhaps with regular definitions, macros, letex or using the built-in OO support features). You'll probably end up building your own tool belt file in order to tailor Newlisp to your needs and programming style (maybe you'll love the "higher order functions" like map and fold).



Newlisp is quite nice. I myself work with C/C++ mainly, but have also explored other languages like Chicken Scheme, Pharo/Squeak, Forth, or Lua, but it's my go-to language when I have to make an utility program. It does have its weaknesses and pitfalls, but it's worth a good try.