Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Malcolm McLean Newsgroups: comp.lang.c Subject: Re: Running an editor from ANSI C Date: Mon, 10 Jun 2024 12:31:49 +0100 Organization: A noiseless patient Spider Lines: 83 Message-ID: References: <87o78dzw1a.fsf@nosuchdomain.example.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Mon, 10 Jun 2024 13:31:50 +0200 (CEST) Injection-Info: dont-email.me; posting-host="a5f2fee6498babfeedcde7339d6d2227"; logging-data="450302"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/sNeqaImZusEDPPeZK75AhuFNLkNesBUU=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:zAW5KMhWrLfpcxLym9JJgo715iw= In-Reply-To: Content-Language: en-GB Bytes: 4987 On 09/06/2024 16:49, David Brown wrote: > On 07/06/2024 20:38, Malcolm McLean wrote: >> On 07/06/2024 15:48, David Brown wrote: >>> On 07/06/2024 12:46, Lawrence D'Oliveiro wrote: >>>> On Fri, 7 Jun 2024 11:31:01 +0200, David Brown wrote: >>>> >>>>> But many people have lots of use of programming in C without any >>>>> kind of >>>>> POSIX functionality ... >>>> >>>> And all those same programs work in the presence of POSIX >>>> functionality, >>>> plus you get access to a whole lot more besides. >>> >>> No, they do not. >>> >>> And even if POSIX functionality were "present", whatever you mean by >>> that, it would be of no help to many C programs. >>> >>>> >>>> The fact that cases keep arising where POSIX functionality would solve >>>> problems that are discussed in this group belies your point. >>> >>> There's no doubt that for some C programming, there are POSIX >>> functions that could help.  And no doubt that this is the case for >>> Malcolm's project. >>> >>> That does not in any way demonstrate that POSIX is required for all C >>> programming, or that C is "essentially crippled" if POSIX is not >>> available. >>> >> Any idiot can write a shell using Posix. > > Only an idiot /would/ write a shell, unless they thought they could > create something significantly better in some way than the multitude of > existing shells. > >> >> The whole point is to it in pure C. Without a single call to a >> function that isn't in the C standard library. > > That's not a point - that is /pointless/. > > There are two purposes to writing a program.  One is for the fun or > educational purposes of writing the program - and then you can pick > whatever restrictions you want because it is purely for your own > enjoyment, and it is not something that anyone will ever use.  (And I > believe fun is always a perfectly good reason for doing anything in this > life, as long as it doesn't bother anyone else.) > > The other purpose is to make software that people can use.  Writing > something in "pure" long-outdated dialects of a language adds nothing to > its use for other people.  Will your shell be faster, use fewer > resources, or have more features than bash, or zsh, or PowerShell, or > any alternatives people already have?  If not, it is pointless as a > program. > >> >> And make it fully functional. A real shell, that people will want to >> really use. That's my hobby project. I'm a free man now. I've got the >> time. I don't have to write code that makes money any more. >> > > You have the choice.  You can write things that you want to write in the > way you want to write them, simply for the fun of it.  Or you can write > things that people will use.  Both are perfectly good ways to spend your > time, and both can be rewarding.  But don't kid yourself that you are > writing a shell that people will use, or that it is better for potential > users if you impose silly and arbitrary restrictions on the way you > write your code.  Be honest about what you are doing - it's a project > you are working on for your own fun, and there is absolutely nothing > wrong with that.  You don't have to try to delude yourself to justify > having a hobby! > > My shell can mount a FileSystem.xml file as a filing system and use that as backing store. No other shell can do that. That's why I need a shell. Because a shell is effectively an editor for a filing system. -- Check out my hobby project. http://malcolmmclean.github.io/babyxrc