Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!rpi!dali.cs.montana.edu!milton!wjs From: wjs@milton.u.washington.edu (William Jon Shipley) Newsgroups: comp.sys.next Subject: Why no source for News? (was Re: Where are we going?) Message-ID: <11162@milton.u.washington.edu> Date: 15 Nov 90 11:07:38 GMT References: Organization: University of Washington, Seattle Lines: 111 Christopher Lane writes: >@begin(pyrotechnics) [...] >Eric's 'stand on my shoulders and reach even farther' comment is right on the >mark. Why aren't the archives loaded with well written, useful object classes >(with source) that others can use to build even more powerful programs? Why >is there a 'binaries' directory at all on the NeXT archive? If 'News' came >with source, maybe others would have fixed the bugs, returned them to the >author and we'd have a version that didn't blow up routinely. The archive >maintainers shouldn't even accept 'binary only' donations (IMHO). [...] Well, I imagine you'll get lots of commentary about the rest of your post, but I felt, as the author of News, gee, I was in a unique position to respond to this paragraph. I guess it hurts a little bit to be flamed for a piece of software I spent quite a bit of time writing, and then just gave away. But, beyond that, I understand your point, and in fact I agree with it. News doesn't have sources because News 0.75 is not a finished program. It has some bugs (crashing is uncool), and it has a couple of really obvious features which I haven't written yet. News is my baby. It's not that I don't trust any other programmer with my code, it's that I don't trust EVERY other programmer with my code. When I implement Save Article, for example, I want News to put the article in your ~/News/comp/sys/next directory, and then every time you enter comp.sys.next with News that article will appear (as read, of course, so you'll only see it if you have the "read articles" button checked). This is the behavior I want for the program that has my name on it. If other people implemented this feature, they might do it differently. There are two possibilities, then. One is the programmer would give away his new News and some people would use it, and I'd add some features to my News and some people would want them and use it, and there'd be a zillion versions floating around all of which work differently. The other possibility is that I could ask everyone to send their changes back to me, and I'd review them. However, I really don't want to incorporate changes that aren't to the specs I've already thought of, so I'd end up telling people what I want them to write. Now, how many people out there in netland want to be taking specs from a 21 year old hacker on how to modify some software that you aren't being paid to work on? Anyone? I'm serious. I've had a couple of offers to help me. I responded to one asking the guy what kind of experience he had, since I *DO* want News to be the kind of code that people can look at and learn from. He didn't respond. The strong feeling I get is no one wants to be tested before doing volunteer work; gift horses themselves resent being looked in the mouth. If someone like Roger Rosner offered his help with News, I'd accept it in a second. Eric Ly looked at my code, for example, but he was too busy to help out (no slight on him, he REALLY was). News is *NOT* a hack. It is a completely new, totally object-oriented piece of software. Each Newsgroup is an object, which has a List of Articles which are also objects. When you read an article, for example, I mark it as read by sending [currentGroup markAsSeen:current]. When you write out your .newsrc, I just send a [newsgroupList sendMessage:@SEL(writeSelf) all:YES] (or whatever that message is, you get the point). The only ugly part of the code is the displaying of articles, and that is because nntp turned out to be too slow to read in all the articles at once, and so I had to hack it to only read in the headers for the articles that are displayed. My point here is that I *AM* trying to write code that's reasonably re-usable and has some possibility of teaching someone something. In fact, one of the new classes I created is a ColumnMatrix, which is like a matrix except 1) it has only one column, and (more importantly) 2) it allows you to hide some of the items in the matrix. (Like, caught-up newsgroups or read articles, peut-etre?) Which items will be hidden is decided in a subclassed method, isItemVisible:(item *)myItem. I've offered this class to the guy at NeXT who was collecting them, I've had no word back after sending him the header file. Wouldn't it be nice if this class were completely cleaned up and documented? You bet. Wouldn't it be nice if William graduated and got a job? Doubly so. Man, I'd love to sit around and write these classes all day (I've got a zillion ideas, write me if you're curious), but I've gotta eat somehow. If the archive people didn't accept binary versions, there'd be no News out there right now. News 0.75 is a demo, to show people what I'm working on and get some feedback. I've now got a list of requested features as long as my arm (YES, I'LL ENABLE PRINTING AND SAVING!), and I'm ready to crank out the final version. Finally, if I may throw out some other comments on this debate.. On shareware: I doubt I'll ever put out a shareware program, because I just don't want people to feel bad about using my software. If someone REALLY wanted to send me money for writing News, he would. I'd rather let the rest use it without always feeling bad. (Yes, I used Stuart, No, I didn't pay, and Yes, I felt bad... By the way, Scott, nice job.) Personally, and this may sound really wierd, what I like about programming is the fame. Go figure. I love to get mail saying, "Hey, I love News!" And, about EPS: He's been rather brusque at times. When I first posted ideas about News on the net (my homegrown format for posting graphics, specifically), he came down pretty hard on me for not going with a standard. But, hey, different people just have different personalities. He sure knows his stuff, and sometimes it's funny watching him toast on people who ask the REALLY obvious questions. I've met him in person, and he seems like a nice guy. Like, much nicer than he did on the network. Anyways, I'd rather have a... less-than-tactful person who's smart and on my side than a really tactful person working for the enemy. -william shipley