Subject: Re: lisp as a day to day language From: Erik Naggum <erik@naggum.net> Date: Wed, 20 Jun 2001 23:26:10 GMT Newsgroups: comp.lang.lisp Message-ID: <3202068359974614@naggum.net> * Gerald Doussot <gdoussot@eircom.ie> > I wonder if I am learning lisp the correct way. Probably not. You seem to take the "tools" approach to programming. This works almost like LEGO. Somebody pretty brilliant somewhere made up a lot of components that you could plug together and have loads of fun with, but you cannot really construct your own components. As long as you work within the tools world, you are never going to be programming anything. Admittedly, some tasks are now so routinely performed as to be suitable to working with tools, but more often than not, those tools are written by other tool workers, who are nearly completely unable to do serious programming, anymore. Building tools for tool users to use is not exactly rewarding for a serious programmer. However, it is very, very exciting for a tool user to write something in the tool world that can act like a tool to other tool users. It will generally disgust a real programmer, but what the hey, it is only used by tool users, anyway. Common Lisp is not a "tool" language. If people used Common Lisp to write their programs, they would not _need_ to build the stupid tools that e.g., the Perl community needs. However, you can drag any rat out of the sewer and teach it to get some work done in Perl, but you cannot teach it serious programming. Who was it that said "Learn Programming in 10 Years" as an alternative to all the "dummies" books out there? > If I had to process large amount of file, connect to database or program > for the web, I would be using perl, C, php etc...I would be afraid to do > the same in lisp. And rightly wo, in my view, because if you did it in Common Lisp, you would realize at least one of several really uncomfortable things: (1) The way people store "information" in files is so approximate as to make you crazy, (2) Those who use databases usually do so because they master no data structures of their own, and (3) Programming for the Web is so insanely boring and incredibly worthless work that you would find yourself inventing at least one new language to do it for you. However, given some massively inferior "tools", you can get sufficient challenge and fun out of a day's work that you never get your head above the water and see what is really going on: An industry-wide job-creation racket caused by really retarded managers who are desperate not to rely on the competence and loyalty of people they are too stupid to understand what are doing, anyway. It used to be that computer people were really smart, but recently, I would encourage anyone whose intelligence is 1 standard deviation above the mean in his community to stay _away_ from computer science. It is _dreadfully_ boring to work with computers both in the Perl and the Windows paradigms. It is a complete waste of talent to put good brains to use in this field at this time. Largely due to the way the "tools" communities grow. A few years from now, programming will have been revolutionized and lots and lots of work will be done by software that writes itself. _This_ will requrie massive talent and intelligence and thinking outside the box and what have you, but for the time being, programming is a "consumer" job, "assembly line" coding is the norm, and what little exciting stuff is being performed is not going to make it compared to the mass-marketed crap sold by those who think they can surf on the previous half-century's worth of inventions forever. This will change, however, and those who know Common Lisp will be relieved of reinventing it, like the rest are doing, even in the "tools" world, badly. > I've got this feeling taht lisp is powerful but I am not sure I am seeing > its true power. For me right now, Lisp is good for prototyping but not > for day to day stuff. I think this is because you are _only_ prototyping, even in those other languages you use. Writing a serious application in Perl is simply hell on earth. Writing it in C these days is worse than insane. All the crap you have to deal with from other "tools" surrounding yours makes it so hard to do useful _original_ stuff in any of those languages that people will resort to plugging together LEGO components and be happy with whatever they make. > What do you think of this last statement? If people did their day-to-day-stuff in Common Lisp, 75% of the work force in IT would be out of work, those who were left would be very well paid, and the rest of the economy would get back on track and make money instead of paying "IT consultants" (like myself :) to do idiot chores because the managers are from the 15th century in their understanding and appreciation of what makes computer _professionals_ work well. All this crap about "information technology" and any goddamn cave-dweller has a better grip on what constitutes information and how best to use it in his actual life than 99% of those who think they are doing anything useful in this field. Using Perl and those other "tools" languages, you get very good at gluing LEGO parts together, and that definitely is useful in this current day and age, but if you start to use Common Lisp seriously, you realize that what you are doing is retarded, an obscene waste of both your own and the users' time, and actually effecting the economy _negatively_ because you do more information destruction than information processing when you chew on those large files and databases instead of trying to figure out what the _real_ problem that people are so desperately _not_ solving is. > Is this because the documentation available to the lisp programmer is not > very easy to find compare to other language? No. It is simply because writing software in Common Lisp is so much more fun and inspiring than gluing LEGO pieces together that those who can do it move out of the "day to day" stuff as quickly as they can and leave it to the Perl-droids who, probably for lack of any real education, think it is fun and rewarding. For as long as it lasts. Kids and ignorants can be tricked into doing almost anything for peanuts, but computer _science_ is not about employing as many kids and ignorants as possible, it is about finding that one person who has the brilliant idea that obviates all the menial labor that billions (soon) of people are currently making the most costly experiment in flawed technology evolution management the world has ever seen. The last time management did something similarly staggerinly unintelligent, they abused their labor force so much they formed unions and invented socialism and communism to take their power away so they could not abuse it on innocent people. We are moving into a new "slave labor economy" where young, inexperirenced people continue to be such a formidable and employable force that technological development will go backwards over the next few years. Brilliant advances in hardware (which are done by _very_ few people compared to the software world) will make it less and less relevant to be a good software designer, and so few people will be able to construct anything _efficient_ that problems that cannot be solved in hardware will remain unsolved for sheer lack of talent in thinking about complex problems. If you are _not_ crying and ready to leave your job and go fishing or hunting or something, take heart: Just do your boring day job in Perl or whatever, and study Common Lisp like your future depends on it. You will be part of the New Renaissance of Computer Science. Remember: Tools are for people whose most prized asset is their opposable thumb. Common Lisp¹ is for people whose most prized asset is still their brain. #:Erik ------- ¹ I could have said "Lisp", but then somebody would be hell-bent on believing I had included Scheme. -- Travel is a meat thing.