Subject: Re: Destructive Side Effects From: Erik Naggum <erik@naggum.net> Date: Sat, 17 Nov 2001 22:02:16 GMT Newsgroups: comp.lang.lisp Message-ID: <3215023332792113@naggum.net> * David McClain | Actually, I think that programming without side effects has some rather | nice qualities. You are never programming without side effects, you just like the ones you use. This applies to all programming languages and all issues. Just because you have a different set of side effects that you like than other people, does really not give you the right to proclaim that you do not have any side effects. This annoying expression "without side effects" is just for show and marketing: The only program that has no side effects is the program that is never even written. Geez, this is that stupid tail-call "elimination" thread all over again. | I, personally, wouldn't like to release dynamically typed code to the | field, unless it were peppered with exception handling clauses and well | guarded against user abuse. What compelled you to share your personal choices with us? Why post anything about your personal choices at all? Do you think anyone cares? Do you welcome random noise-makers who walk into your SML newsgroup and proclaim that I would not like to release SML code in the field? What kind of worthless assholes would you consider people who did that? Now, please be smart enough to respect that people make different sets of choices and that some consider this nonsense about "without side effects" to be an offensive marketing lie. If you are not smart enough to respect or indeed figure this out, get the hell out here before you go postal on us with a stupid line of self-defense, like so many others who think it is perfectly OK to post "why I think I Lisp is insufficient" articles. | Actually, I was not taken aback by the naming of functions, but rather that | it forced me to use destructive operations in a routine that simply needed | some elements elided from a list before passing along to legacy code. More understanding and less fixation on style would be more beneficial than telling people _that_ you were "taken aback". Explain why, explain how you got to accept the gospel of fewer visible side effects. What you _feel_ is completely irrelevant to everybody else in a technical forum. | Lisp does force one to view the argument lists of functions as lists, and | with keyword parameters, portions of these lists can be viewed as | property lists. I find that convenient. I find it massively misguided. It has also proved unproductive for you since you ended up with a counter-productive conclusion and only offered you an opportunity to air your arrogance about side effects. Quit that. | But sometimes keyword arguments must be removed from argument lists | before handing these args off to older routines that would find the | additional keywords offensive. Well, if you knew Common Lisp, you would know that you can always add the keyword argument :allow-other-keys and its value t to the argument list of a function that accepts keywords. People who are unable to deal with the language they actually program in, pining for whatever programming language they learned first or whatever their problem is, always ignore the fact that people much smarter than them _have_ solved their problems for them already. I find this tremendously annoying. It is not the ignorance that I find so annoying, but the stupid arrogance of people who think they have reached the plateau in life where no more information or knowledge is necessary before they pass judgment on the world in general, when know things so well that they do not need to ask for guidance or help or more information before passing their judgment, getting all huffy and puffy with their stupid concerns that are only _their_mistakes_. If you had been smart enough to ask us what you should do if you wanted to pass an argument list obtained with &rest to another function that did not accept as many keywords, you would have received an intelligent answer specific to our problem, and you would have avoided all the silly crap you guessed were problems, but which are not. | Destructive operations need to rise higher in one's mind, as functions | that must be used with caution, as they may have unexpected consequences | elsewhere in the overall code of a large program. It also helps to learn how to write higher quality software without being so snotty about your _inability_ to write code in the language you use. One of the most annoying side effects of langauges that promote some usually silly design idea is that people who use them think they are so superior because of this _one_ feature. Next thing you know, some people will think they are superior because their skin is paler than many other people. That would never happen, would it? People can be stupid about the superiority of their programming language, but skin color? No way. /// -- Norway is now run by a priest from the fundamentalist Christian People's Party, the fifth largest party representing one eighth of the electorate. -- Carrying a Swiss Army pocket knife in Oslo, Norway, is a criminal offense.