jsl@potomac.UUCP (John Labovitz) (10/13/85)
For all you people out there who write programs and release them publicly (on USENET, CompuServe, etc.), could you please think about posting the source code as well as the binhex'ed version? I have an XL, which is notorious for not running some programs, and crashing. It would help immensly to have source code, so I could see why it was dying, or to even fix it. I think I've seen no more than 3 or 4 sources posted, out of hundreds of binhex postings. When I used to use CP/M (long long ago...), it was VERY uncommon to post only object code. In fact, most people would not even THINK of releasing programs without code. After all, if you've got to be careful about what you run on your machine. I've gotten a few programs that I didn't know what they did, and didn't have the source code. Since I use hard disks, it's just *stupid* to run these things without knowing the consequences. (Remember the big thing about the "arf-arf" programs?) Do programmers think that they can sell their programs later, so don't want to post source? Or are they just scared that someone will resell the program, or call it their own? Most of the programs posted are not that good (he said bluntly). You couldn't sell them for more than $30 or so, if that. The main reason I would like sources is this: I find it *very* difficult programming the Mac. The documentation sucks, setting up a simple application is horrendously complicated (SimpleTools helps a lot (thanks to Erik Kilk!)). If I sit down and write something (seemingly) simple, it's bound to take at least two hours to get it running. I *still* have not gotten my terminal program running. If people would release their source, all those neat hacks and simpler ways of doing things would help us novice programmers get started! This is the way the CP/M world worked, and there's no reason why the Mac can't work the same way. Even if you program in Pascal, and I use C, the concepts are the same. Please give this some thought. I'd like to hear opinions and flames (besides, I love getting mail). -- John Labovitz ..!{rlgvax,seismo}!bdmrrr!potomac!jsl -- "Daddy, it's the man with the lightbulb head!" "Avert your eyes from his gaze, junior, and we may yet be safe." "But daddy, it's you!" "It's too late -- I've come to turn you on!" -- Robyn Hitchcock
guido@boring.UUCP (10/15/85)
In article <3066@potomac.UUCP> jsl@potomac.UUCP (John Labovitz) writes: >For all you people out there who write programs and release them publicly >(on USENET, CompuServe, etc.), could you please think about posting the >source code as well as the binhex'ed version? Being one of those people out there who just posted some programs without source, I feel obliged to reply. First of all, I believe that much software posted to USENET (net.sources.mac) wasn't created by the poster. I see a lot of things with notes like "this came around on CompuServe. I can't use it myself because I only have a 128k Mac, but I thought you would know best what to do with it. Enjoy." (Of course, now you ask "why wasn't the source posted to CompuServe?" :-) Some valid reasons for not posting source: - Shareware. This seems a way to make (part of) a living for quite a few programmers. Giving the source away would be commercial sucide; the binary nags users to send some bucks. [I'd be interested in hearing if this really earns one a living, after subtraction of the necessary investment in hardware and software.] - Programs that are still under development. If I post an alpha or beta test copy, I would like to hear people's reaction, but not want them to tamper with the source: that's my business. - Complicated programs that would be too difficult for many to understand. A program may be so subtle or just so big and complex that it needs a thorough explanation before anybody could start and modify it. - Size of the sources. Should I post 11,000 lines of C source? Even if the source is of the same size as the binary, it would be of interest to fewer people, which affects the answer to the question "to post or not to post?" (Every posting costs everybody money.) - Quality of the sources. If I wrote a quick hack I might not like others to see my ugly code; especially if I have plans for rewriting it "some time" to comply with higher standards of software engineering. - The use of an uncommon development system. Even the common C compilers differ greatly in the interface to the library/toolbox they have; wish there were a "standard" for interfacing to the Macintosh toolbox from C! (major points of difference are: the treatment of string arguments to toolbox routines; the names of include files; completeness of the toolbox interface; stdio implementation; and non-standard language features such as declarations beteen statements or the 'extended' data type). If people use other languages like Rascal or Forth, the source would be of interest only to a very small group. Lisa Pascal is only of interest to the proud owners of a Lisa. Etc., etc. Much better in my eyes would be the posting of example programs like SKEL and EXAMPLE in the past, and SimpleTools recently. I believe the net could use a good example of a simple terminal emulator (I've looked at the Kermit souces and decided I don't want to learn from THAT). But even with example programs, be VERY careful with copying them without complete understanding what's going on. Inside Macintosh teaches more than the names of routines and their parameters: it prescribes what an application should or shouldn't do in particular cases to ensure proper cooperation with other applications and desk accessories, portability to different versions of the hardware or software, etc. It's a pity that, indeed, I.M. is difficult to read and not always complete -- you need examples as well to make you understand a note, a warning... But after having seen an example, the text in I.M. often makes clear details (or errors!) in it that you would otherwise have overlooked and not copied correctly (remember the problem with zero menu id's posted today). Regarding programs posted without source that do suspicious things: I believe it would be VERY unwise to post a Trojan Horse to the net, because its origin will be tracked down very soon and that site may be taken off the net. Buggy programs are a different story; but even with source a bug may cause a lot of damage before you find out about it. It's basically your own risk; but in practice the risk seems to be bearable. I've tried out a lot of programs that came from the net on my XL, and seen a lot that didn't work (usually because they assumed the screen memory was at a fixed address) or crashed (often because of the use of sound effects), but I have never had any file destroyed by one of them. >(Remember the big thing about the "arf-arf" programs?) No. Please tell us about it. -- Guido van Rossum, CWI, Amsterdam (guido@mcvax.UUCP)
jsl@potomac.UUCP (John Labovitz) (10/17/85)
> = Guido van Rossum, CWI, Amsterdam (guido@mcvax.UUCP) > First of all, I believe that much software posted to USENET (net.sources.mac) > wasn't created by the poster. I see a lot of things with notes like "this > came around on CompuServe... That's true. I'm grateful for the people who download the stuff off of there and post it here (CompuServe is *way* too expensive for me). Maybe a similar message like mine could be posted there? > Some valid reasons for not posting source: > - Shareware. This seems a way to make (part of) a living for quite a few > programmers. Giving the source away would be commercial sucide; the binary > nags users to send some bucks. I really don't see how anyone could earn a living, asking $10 for a program. I'm sure that only a small percentage of people actually send in the money (maybe %20 or so). Personally, I think the shareware idea has gotten a bit out of control. Almost all programmers now ask for $5 or $10, for any kind of program. But since they don't need to maintain the program, or offer updates, or anything like that, they are basically getting money just for writing the actual program. Why couldn't people release source AND ask for donations? You'd be paying them for the time they spent writing it. Sure, other (nasty) people could take their code, reformat it, change a few things, and release it with their name on it. But since it is *so* easy to change dialog boxes, menus, etc., with the resource editor, these nasty people can do almost the same with object code! > - Programs that are still under development. If I post an alpha or beta test > copy, I would like to hear people's reaction, but not want them to tamper > with the source: that's my business. I agree with you here. > - Complicated programs that would be too difficult for many to understand. > A program may be so subtle or just so big and complex that it needs a > thorough explanation before anybody could start and modify it. There's a program in the CP/M world, called MODEM7, which has existed since 1979. Since that time, there've been (almost) hundreds of versions, done by a variety of people. The source has grown to over 150k. It's written in 8080 assembly language (subtlety? hah!). And it's public domain. Various evil people have attempted selling it or copyrighting it themselves, but never succeeded. Another example is Kermit, which is pretty big for most versions. Columbia *does* maintain it, and makes sure the bug fixes and features really work, but it's still released to the public. And how about something closer to home -- the news system. Would *you* put up news without sources? (Assuming all binaries were the same, that is...) > - Size of the sources. Should I post 11,000 lines of C source? Even if the > source is of the same size as the binary, it would be of interest to > fewer people, which affects the answer to the question "to post or not > to post?" (Every posting costs everybody money.) Ok, I agree here too. However, you could put a message in the source or doc file that says `If you want source, please talk to me.' > - Quality of the sources. If I wrote a quick hack I might not like others > to see my ugly code; especially if I have plans for rewriting it "some > time" to comply with higher standards of software engineering. No offense, but I think if someone writes ugly code to begin with, (1) it will never become un-ugly, or (2) they'll never get around to it. > - The use of an uncommon development system. Even the common C compilers > differ greatly in the interface to the library/toolbox they have; wish > there were a "standard" for interfacing to the Macintosh toolbox from C! Most of the C compilers are basically similar. Some you have a function to do string conversion, some it's built in. I've successfully gotten running things that worked under Aztec C. > If people use other languages like Rascal or Forth, the source would > be of interest only to a very small group. Lisa Pascal is only of > interest to the proud owners of a Lisa. Etc., etc. Not necessarily. Most pascals & c's and Forth's & whatever are *basically* similar. If you can read pascal, you can usually read c, and vice versa. Rascal is, I believe, sort of like C *and* pascal. You can usually figure out the basic concepts behind what's going on. Most programmers (at least from reading net.micro.mac) use one of the C compilers. Most of the rest use Pascal. > Much better in my eyes would be the posting of example programs like > SKEL and EXAMPLE in the past, and SimpleTools recently. I believe > the net could use a good example of a simple terminal emulator... Absolutely! A terminal program is one of the things I've been trying to write for a *long* time! SimpleTools is great -- I use it constantly (well, whenever I program, that is). > But even with example programs, be VERY careful with copying them without > complete understanding what's going on. Inside Macintosh teaches more than > the names of routines and their parameters: it prescribes what an application > should or shouldn't do in particular cases to ensure proper cooperation > with other applications and desk accessories, portability to different > versions of the hardware or software, etc. True. Example: I wanted to find a way to get the directory of a disk (not display a directory with SFGetFile (or whatever), but just read the directory into a buffer). I looked at your backup program, and *voila* -- much clearer than N pages of junk in IM about disk drivers, directory formats, etc. I *did* go back and look in IM, and having an example made it much clearer. > Buggy programs are a different story; but > even with source a bug may cause a lot of damage before you find out > about it. It's basically your own risk; but in practice the risk seems > to be bearable. I've tried out a lot of programs that came from the net > on my XL, and seen a lot that didn't work (usually because they assumed > the screen memory was at a fixed address) or crashed (often because > of the use of sound effects), but I have never had any file destroyed > by one of them. I have. Quite a few times, actually. I wish there was a way on the XL to `protect' the hard disk, and just have the floppy active (I guess I could boot up on a disk that didn't know about the hard disk). > >(Remember the big thing about the "arf-arf" programs?) > No. Please tell us about it. There was a big thing on (I think) net.micro.cpm, which originally stemmed from a magazine article on public domain software. Apparently, some guy downloaded a program and ran it on his PC with a hard disk. It chugged away, and came back with a message that effectively said, ``Haha. You lose. I wiped out your entire hard disk. Arf arf.'' Same basic idea as a trojan horse. Now, people could be smarter, and *make sure* the program is legit, by using it only on the floppy, or whatever, but most people (me included) are too lazy, and we take the chances. I've had to reformat the XL once or twice because something didn't work right, but generally I've had good luck. (Robustness (or the lack thereof) of the Macintosh OS is another flame I have, but we'll save that for later). -- John Labovitz ..!{rlgvax,seismo}!bdmrrr!potomac!jsl -- "Daddy, it's the man with the lightbulb head!" "Avert your eyes from his gaze, junior, and we may yet be safe." "But daddy, it's you!" "It's too late -- I've come to turn you on!" -- Robyn Hitchcock
bart@reed.UUCP (Bart Massey) (10/18/85)
> In article <3066@potomac.UUCP> jsl@potomac.UUCP (John Labovitz) writes: > >For all you people out there who write programs and release them publicly > >(on USENET, CompuServe, etc.), could you please think about posting the > >source code as well as the binhex'ed version? > > Being one of those people out there who just posted some programs without > source, I feel obliged to reply. ... > Some valid reasons for not posting source: > - Shareware. This seems a way to make (part of) a living for quite a few > programmers. Giving the source away would be commercial sucide; the binary > nags users to send some bucks. [I'd be interested in hearing if this > really earns one a living, after subtraction of the necessary investment in > hardware and software.] No, no, no, no, NO! The specific rule for USENET is "no commercial postings"! It is one thing to hope to make a few bucks off your code through the generosity of programmers who appreciate your efforts, and quite another to worry about things like "making (part of) a living" or "commercial suicide" or "nagging users". Anyone who worries about these things shouldn't be using USENET to distribute their software in the first place! (BTW, I would guess, as the author of the reference seems to have, that no one can make any significant profit on shareware anyway. So why worry about it?). Bart Massey ..tektronix!reed!bart
lamy@utai.UUCP (Jean-Francois Lamy) (10/21/85)
Shareware addresses a fundamental issue in software distribution: conventional channels are just inadequate. I have not set foot in a computer store for months now, and I dislike very much having to beg for a demo from a salesperson... Being able to see software float by on net.source is very attractive. It can also be a very interesting marketing device. Being able to have almost working beta releases is very interesting (I am writing this using an old release of VersaTerm without file transfer, and I guess that I like it enough to spend the money to get the "official" release). But, alas, I guess it is just unjustifiable to use UseNet for such a purpose. "Broadcastware" HAS TO be restricted to the "freeware" category ("free" meaning $0, as it should). The distributor of commercial software SHOULD PAY for the distribution costs (this is of course impracticable for UseNet). If you really want to play the game of the distributor, you can still subsrcribe to CompuServe, and PAY YOURSELF for the transmission cost. If you are posting a program you wrote out of necessity or just for fun, you should be doing it for free. After all, the program has served your purpose, has it not? Having ruled out commercial interest, I would favor posting of both sources and binhex. On any decent machine, there is an obvious way of getting a binary from a source, but not on a Mac, as some genial manager at Apple decided that an official, "Inside Mac" compatible compiler was something the rest of them did not need... :-( Since there is no widespread implementation of any dialect of any language, post the source to provide hints for the interested (and frustration for those interested enough to try translating the thing to their favorite language or dialect). But do post the binhex! -- Jean-Francois Lamy Department of Computer Science, University of Toronto: lamy%utai@toronto.csnet, {utzoo,ihnp4,decvax,allegra,linus}!utcsri!utai!lamy Departement d'informatique et de recherche operationnelle, U. de Montreal: lamy@iro.udem.cdn (lamy%iro.udem.cdn@ubc.csnet)