On Mon, 15 Sep 1997, Co-Sysop wrote: -+I think you misunderstood what I was saying. I have a command that does -+something cool. I want a spell that does the same cool things exactly like -+the command. I don't write that code from scratch. Why would I want to? I -+already have a working verson of what I want to do. I don't have a problem with this; and I didn't say it was wrong. I do, however, have a problem with this, -+Now let's say I want to do something that I haven't put anywhere -+else in the code but I know someone who has something that works -+just like I want it to. It would be a much better idea to see if -+I can get the code from that person than to go and waste a lot of -+time writing something that is already written. Don't go through -+the trouble of inventing a light bulb when you have a light bulb -+shop across the street. If you want to spend hours writing code -+that is already written just so you can say you made yourself seems -+a bit unneccessary to me. This "reinventing the wheel" discussion went on only a few months ago, and it was ugly. I actually thought twice about referring to it as a "discussion"; but irregardless, the "light bulb" and the "wheel" analogy are off-center. They don't reflect coding in the slightest; and while they make the perfect argument for someone that doesn't want to code--only cut-and-paste--they don't actually apply to coding. In coding there is hundreds of different ways to do the same thing. In actuallity, in all computer programming jobs that are out there you are required to write your code *yourself*. Borrowing or using someone else's code is all well and fine if you can't do it yourself, but it certainly doesn't teach you anything. You assume that "reinventing the wheel" (or in this case the light bulb; of course, both things have been reinvented several hundred times and usually for the better) is only good for being able to take credit for something yourself. This is false, and I said in my original message that reinventing the wheel is useful for teaching yourself how to code something. You may have to struggle through it, but at least you'll learn it. -+Now before you went and said that everything I said was wrong maybe you -+should have paid more attention to what I was talking about a recall command -+that would work just like a recall spell could easily just be copyied to -+save time. If all you meant was to copy the recall code, then fine, I misunderstood you--but only because you were too general. But, as you have said in this message yourself, you did not only mean to copy the recall code to a new place. But then you argue that all I'm saying is that you should rewrite your code to take credit for it. That is only one out of a hundred benefits for rewriting your code; and the best one is, and the one that I made an effort to point out, is that you *learn* from doing it yourself. You don't learn to drive just by watching someone else drive. You have to get behind the wheel, and learn it from there. -+Mindlessly duplicating it by hand isn't really going to help you -+as much as spending time on more complicated and important tasks. Ehhhh...? Mindlessly duplicating it by hand? When'd I ever say that? If you mindlessly duplicate someone else's code by hand, I can't fathom you calling it your own code if you had any sense of morale. -+You could also put shoes on your hands and walk on your feet. <blink> -+My point is that sometimes imitating someone else's work -+is a lot more important than your desire to have people respect -+your ability to do something different (which they don't always respect -+anyway). By cutting-and-pasting you are not imitating someone else's work, you are using someone else's work. It's an exact clone. If you take the time out to write something for yourself, not only do you get better code for yourself (eg., you're familiar with it, because you wrote it); you learn how to write that code. Perhaps you stumble upon a better way to write the code. In any case, you'll most likely come out of the experience with a little knowledge under your belt. -+I would ask not to be flamed but since someone will do it anyway try to do -+so intelligently. You shouldn't douse yourself with gasoline then ask for no-one to have any open flames near you. I am, of course, referring to your paragraph which says, "Now before you went and said everything I said was wrong maybe you should have paid more attention to what I was talking about...," which is rather an aggressive comment for someone that doesn't want to be flamed. Of course, I can easily just turn it around. But, then, I don't recall saying that everything you said was wrong. I would never say that using someone else's code is wrong, because it's not. If you don't have the time or inclination to write it yourself; or even the skill to (although, really, in coding, you only need the most basic skills and a lot of time and inclination), then, okay, use someone else's code. Such as CircleMUD. But don't get it into your head that from then on you should just go through life cutting-and-pasting other people's code, because you'll never learn anything from it. Okay, fine, there is a lot of times when it makes more sense to cut-and-paste; such as the recall situation. But conversely, there is a lot of times that it doesn't make sense to cut-and-paste. If you can write your own mud from scratch, and there is some kind of benefit from it (and I don't mean just being able to call it your own code), and you have the time and inclination, then why shouldn't you? Such as, if you can write your own mount system, improved 'who' command, ANSI query, improved prompt system, etc. and there is signifigant benefit in doing so, then why should you use my patches? There is no benefit (at least none that is signifigant) in rewriting the four or five lines to make the recall command, but there are many (more?) cases where it makes perfect sense to "reinvent the wheel". Why? Because there are so many different ways to code something, and if you bother to write it yourself, you can probably come up with something that is better for *you*. Maybe not better for everyone in the world, but what does that matter. There will always be someone with code that they call the "best", and then there will be someone that will come in and revise that code to make it better; and then someone will write new code to do the same thing that is better than even that...and it goes on and on. And while "cutting-and-pasting" certainly makes a newbie's immediate life easier, it doesn't help them learn anything, and makes their life in the future that much more difficult. -- Daniel Koepke -:- dkoepke@california.com -:- [Shadowlord/Nether] Think. +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/08/00 PST