Prev: lisp vs smalltalk , haskell ruby and java, in philosophy
Next: Shape Symbology as a Basis for Lisp or Other AI Software Development
From: joswig on 24 Dec 2009 10:05 On 24 Dez., 15:50, p...(a)informatimago.com (Pascal J. Bourguignon) wrote: > Bigos <ruby.obj...(a)googlemail.com> writes: > > On Dec 23, 1:20 pm, gavino <gavcom...(a)gmail.com> wrote: > >> I just don't kow if I can learn it. > > > Please don't despair. I think main problem with Lisp is changing the > > way you think. When I started learning Lisp for the first time I have > > felt like I am learning a different language. Other languages I have > > learned so far seem to be so similar that learning another was not a > > problem. > > > When you are learning Lisp you also have to learn quite lot of > > advanced programming which might make things seem to be more > > difficult. > > > I understand the way you feel. I have felt like this many times yet I > > can't completely give up on Lisp. I saw some of it's power and I am > > hooked now. > > > My advice is take some rest, let your unconscious mind work on it, and > > after a while come back to Lisp, and you will notice that you will be > > able to progress much further than before, and after several cycles of > > giving up and returning to Lisp you will eventually become a proper > > Lisper. > > LOL Yeah right! Give gavino ten years of rest to let his unconscious > mind work on it! Norvig's 'Teach Yourself Programming in Ten Years' ( http://norvig.com/21-days.html ) gets a new meaning... > > > Good Luck > > > Jacek > > -- > __Pascal Bourguignon__ http://www.informatimago.com/ > > In a World without Walls and Fences, > who needs Windows and Gates?
From: Bigos on 24 Dec 2009 12:57 On 24 Dec, 15:05, "jos...(a)corporate-world.lisp.de" <jos...(a)lisp.de> wrote: > On 24 Dez., 15:50, p...(a)informatimago.com (Pascal J. Bourguignon) > wrote: > > > > > > > Bigos <ruby.obj...(a)googlemail.com> writes: > > > On Dec 23, 1:20 pm, gavino <gavcom...(a)gmail.com> wrote: > > >> I just don't kow if I can learn it. > > > > Please don't despair. I think main problem with Lisp is changing the > > > way you think. When I started learning Lisp for the first time I have > > > felt like I am learning a different language. Other languages I have > > > learned so far seem to be so similar that learning another was not a > > > problem. > > > > When you are learning Lisp you also have to learn quite lot of > > > advanced programming which might make things seem to be more > > > difficult. > > > > I understand the way you feel. I have felt like this many times yet I > > > can't completely give up on Lisp. I saw some of it's power and I am > > > hooked now. > > > > My advice is take some rest, let your unconscious mind work on it, and > > > after a while come back to Lisp, and you will notice that you will be > > > able to progress much further than before, and after several cycles of > > > giving up and returning to Lisp you will eventually become a proper > > > Lisper. > > > LOL Yeah right! Give gavino ten years of rest to let his unconscious > > mind work on it! > > Norvig's 'Teach Yourself Programming in Ten Years' (http://norvig.com/21-days.html > ) gets > a new meaning... lol, brilliant: 10/10
From: Rahul Jain on 24 Dec 2009 18:32 gavino <gavcomedy(a)gmail.com> writes: > I just don't kow if I can learn it. I gave up on you a few years ago... Good to see you're finally coming around. -- Rahul Jain rjain(a)nyct.net Professional Software Developer, Amateur Quantum Mechanicist
From: Tim X on 24 Dec 2009 21:44 Bigos <ruby.object(a)googlemail.com> writes: > On Dec 23, 8:31 pm, Francogrex <fra...(a)grex.org> wrote: >> On Dec 23, 2:20 pm, gavino <gavcom...(a)gmail.com> wrote: >> >> > I just don't kow if I can learn it. >> >> Huh? Common Lisp (or any lisp for that matter) is one of the most >> straightforward languages. You write almost as you would write in >> plain English... Maybe you should go try to learn assembly, then >> you'll realize how simple lisp is (by comparison). > > For people who think in assembler learning Lisp can be difficult. I > started with low level languages and maybe this is the reason why I > had problems with Lisp. Lisp's syntax is very easy but changing your > thinking habits can be difficult. There's a lot to unlearn. To an extent, I think this is fundamental to what makes people like or dislike a language - its not about whether its too verbose or terse, uses static typing or dynamic, is OO, functional, procedural, has too many/too few built-ins, is too large/small etc. Rather it is the extent to which it easily maps to how someone thinks and solves problems. If a language has a close fit with how you think and you are able to express both the problem and solution in that langauge without also requiring a lot of translation between your mental model and the language model, you are likely to find the programming easier. You are also likely to grasp solutions written by others in that language more easily. On the other hand, if the fit is poor and you constantly have to translate between your mental model and its representation by the language, you will likely find the language frustrating and difficult. Understanding code written by others will also be difficult. This leaves you with two choices. either you continue to only use languages which fit with your way of thinking and solving problems or you learn additional new ways to think about problems and derive solutions. The first is easy, but doesn't expand your problem solving techniques or skills. The second is much harder, but comes with mroe rewards as you learn different ways of thinking about problems, their representation and their solution. I've found that with all the languages I've studied, there have only been a few which have really been chalanging and have taken extra effort. Without exception, all of them have affected how I think about a problem and the solutions I come up with. The rest have merely been of short-term interest. My first language was C and while I haven't used it in any serious work for many years, it is still the language I have a lot of fondness for. My second language was assembler and it was the language that really clarified for me what was actually happening. It helped me understand why some high level language constructs are slow, resource hungry etc. My third language was smalltalk, which helped me understand the benefits of modularity, encapsulation, , modeling/simulations etc. Next was prolog. This one took some time to really understand and showed me a completely different way to think about problems and solutions. This was the first language where I really got one of those 'Ah!' moments. I can still clearly remember the day when the penny dropped. Then came lisp. For me, this was/has been/is possibly the most challenging language I've looked at. It was also the first time I had a number of false starts. While I found the syntax easy enough, much of the rest, particularly the application of the language, has been quite a struggle. However, it has also been the language which has held my interest for the longest. Unlike prolog, there hasn't been a big Aha moment where it all fell into place. There have been lots of smaller moments of insight. Likewise, there wasn't a point where suddenly it all became a lot easier. One day, I jus noticed that I was no longer thinking "how do I express this in a lispy way" - I realised I was just thinking and coding. there was no real translation between how I thought about the problem and how I expressed it. I would just sit with the REPL open and start typing as I was thinking and suddenly, there it was. It wasn't necessary pretty, efficient or elegant, but it was there and able to be refined. I also found about this time that I could just read code written by others. Despite this, I've still only touched the tip of the iceburg - still a lot to learn and understand. However, I now do feel taht I'm able to use the language to explore problems and solutions. For me, this is quite different and refreshing compared to how I had always approach a problem and its solution. I'm not sure whether I've learnt to think in a way that suits lisp or I've learnt enough of lisp for it to suit the way I think. What I do know is that it has given me a feeling similar to the first time I ever wrote a program. I've also found that when I run into something which I'm having problems expressing/solving in lisp, it is almost always because the crucial bit I need is a construct that either I've not learnt to use or have forgotten. the solution is usually found by looking at the hyperspec or studying code written by others. There are not many things in life I'm absolutely certain about. However, I am certain that all of these different languages have made me a better programmer. concepts and techniques used in different languages or with different paradigms have bled into each other. I have a wider range of techniques and models to apply during problem solving. While I doubt life will be long enough to allow me to become a true master of the art, making the effort to try languages which are quite different has certainly improved my skills. The last couple of years studying lisp has also had the benefit of new inspiration and countered some of the negative aspects of having worked as a programmer in corporate land for the last 20+ years, which can leave you rather disillusioned. My advice to anyone like Gavino, who is finding it too difficult is to give up! If you really have the desire to learn lisp, you will come back to it later. If you don't, then you probably never really had the drive to do it. If you have the mindset of it being a difficult task that you suspect you cannot achieve, you will almost certainly fail. If on the other hand, you find it hard but rewarding or interesting or in some way fulfilling, then keep at it. At some point, you will likely realise you have arrived, but not quite know when. It can sometimes help to examine your motivations for wanting to learn lisp. I've known a few people who have attempted to learn it and failed because their motivations were wrong. They wanted to learn it because they thought it would make them appear to be more 'hardcore' or smarter or more of a rebel or it wold make them stand out from all the java code monkeys etc. Motives like these are largely misdirected and unlikely to provide a level of sustainability that will get you there. Your motives need to be oriented more towards a desire to udnerstand the language and its paradigms, extending your approach to problems, how you think about them and how you represent and solve them. There shold be motivation to find new ways to do things or doing things that are new and could not be done or easily done, with existing techniques/knowledge. for a programmer, its another tool that will either allow you to do what you do better or more efficiently or it will allow you to do new things that were not practicle with your other tools. For the OP, I don't think you have a true desire or the motivation to put in an honest effort. I've seen many posts to this group from you,nearly all of which consisted of vague wishy-washy questions like "Why is lisp good" or something else that just smells of flamebait. I don't recall seeing any questions with anything specific, such as requests to explain a bit of lisp code or even requests for pointers on which library to use or asking if some behavior was a bug etc. In short, nothing of substance and no evidence of any effort to find answers other than to fire off vague questions to this NG. Tim
From: Rob Warnock on 24 Dec 2009 23:37
Bigos <ruby.object(a)googlemail.com> wrote: +--------------- | Francogrex <fra...(a)grex.org> wrote: | > Huh? Common Lisp (or any lisp for that matter) is one of the most | > straightforward languages. You write almost as you would write in | > plain English... Maybe you should go try to learn assembly, then | > you'll realize how simple lisp is (by comparison). | | For people who think in assembler learning Lisp can be difficult. | I started with low level languages and maybe this is the reason | why I had problems with Lisp. ... +--------------- Hah! I think it very much depends on *which* assembler(s) you learned originally. My first machine was an LGP-30, where there was very little difference between absolute machine language and assembler [the low 4 bits of each instruction mnemonic character *were* the 4 bits of opcode!!], my second was an IBM 1410 [but that's another story], but my *third* was a DEC PDP-10 -- *the* ultimate assembler language for Lisp!! A CONS cell was a single word; CAR & CDR were single machine instructions ["HLRZ" and "HRRZ", respectively]! -Rob ----- Rob Warnock <rpw3(a)rpw3.org> 627 26th Avenue <URL:http://rpw3.org/> San Mateo, CA 94403 (650)572-2607 |