[HN Gopher] C Programming on System 6 - Implementing Multi-User ...
       ___________________________________________________________________
        
       C Programming on System 6 - Implementing Multi-User Chat
        
       Author : tobr
       Score  : 93 points
       Date   : 2021-12-18 23:01 UTC (23 hours ago)
        
 (HTM) web link (jcs.org)
 (TXT) w3m dump (jcs.org)
        
       | kzrdude wrote:
       | What's the toolchain he's using? Compiler and environment
        
         | rvense wrote:
         | Think C, as far as I remember.
        
       | georgeoliver wrote:
       | With the many examples I see of very skilled programmers using
       | retro tools for their personal projects, I wonder if it goes the
       | other way too -- are there examples of highly capable programmers
       | choosing bleeding-edge tools for personal projects? What does
       | that look like?
        
         | avador wrote:
         | It looks like https://news.ycombinator.com/user?id=staltz
         | 
         | Or https://staltz.com/
         | 
         | Offers will vary, but, if impromptu answers carry any weight,
         | then off the top of my Sunday afternoon head, this is the first
         | reference that percolates to the surface.
        
         | dleslie wrote:
         | Houdini and ORCA immediately spring to mind as having intensely
         | talented communities building things with these bleeding edge
         | tools.
        
         | mrweasel wrote:
         | > I see of very skilled programmers using retro tools for their
         | personal projects
         | 
         | Interesting observation, and something I hadn't really though
         | about. For my own stuff I increasingly pick older technologies,
         | not really retro, like jcs does here. Personally I think I've
         | just grown tired of the modern "stuff", it's way to complex for
         | me to find it relaxing to write a few lines of code for the fun
         | of it. I wonder if that's true in a boarder sense for others
         | working in IT.
         | 
         | I've watched a few of these videos, where jcs just hacks away
         | on his old Mac and I'm extremely impressed with what's actually
         | possible on these old machine. I do think the compile times
         | would drive me insane, but others might see it as a nice little
         | break.
        
           | bluedino wrote:
           | I know I don't have the time but I'd love to chip away at a
           | VGA game project on a fast 486 or low end Pentium, using
           | Turbo C or maybe djgpp
        
             | pengaru wrote:
             | The PC of that era was such an unpredictable mess of
             | components, you couldn't even assume a specific sound card
             | was present. VGA 256-color modes didn't even have square
             | pixels unless you went Mode-X which was rather annoying to
             | program for.
             | 
             | I think there are far better retro hardware choices to
             | relive writing native programs for. Stuff you'll actually
             | be able to ensure will run successfully with full graphics
             | and sound capabilities on every instance of the thing. C64,
             | Amiga, etc. There's a reason the x86 PC severely lagged
             | behind in the demoscene for ages, it was just miserable
             | hardware to support.
        
               | bluedino wrote:
               | Most games targeted SB/Adlib and almost every game used
               | 320x200, oblong pixels and all
        
         | mysterydip wrote:
         | I recently became involved in the P2 community, the new
         | propeller microcontroller from parallax (which just hit rev C).
         | There's some very talented people there doing interesting
         | things with it.
         | 
         | Some of them have been programming it before it was even proper
         | silicon, when it was being developed via FPGA. Lots of really
         | in-the-weeds discussions on machine code and cycle timings and
         | such. Worth diving in if you like seeing "how the sausage is
         | made."
         | 
         | One of the current projects is implementing a sega
         | genesis/megadrive console, using the different cores to emulate
         | different components:
         | https://forums.parallax.com/discussion/173381/console-emulat...
        
       | mistrial9 wrote:
       | definitely ThinkC - note the pre-unicode PI symbol for project
       | name..
        
       | bluedino wrote:
       | Think C!
       | 
       | I had a computer programming class in high school, we got to pick
       | our compiler out of a box of old software. For some reason it's
       | what I chose, and spent the first day installing it from floppy
       | disks.
       | 
       | I am pretty sure the machine I used was a Macintosh LC III,
       | already obsolete by the time I got my hands on it. But the other
       | computers were Pentium 100's running Windows and I had a PC at
       | home, so that wouldn't have been any fun.
       | 
       | I later found out it became Symantec C, but I really only used
       | Codewarrior for the rest of my Mac classic endeavors.
        
       | pengaru wrote:
       | Is this how commercial Mac software of the era was generally
       | written? (I have no Apple experience) Or is this a more
       | hobbyist/consumer-oriented IDE/editor workflow?
       | 
       | It's painful to watch, coming from a 486 PC era background using
       | Borland Turbo C/C++.
        
         | rvense wrote:
         | It was one way. A lot of software was also written in Pascal,
         | but the APIs were at the same basic level of abstraction.
         | 
         | This is a bit before 486s AFAIK though, he's using a Mac Plus
         | from 1986. Software-wise, System 7 came out in 1991 and was a
         | big update.
         | 
         | I don't think Macs were every famous for being developer-
         | friendly, though, but I'm curious what features Turbo C have
         | that you're not seeing here?
        
           | pengaru wrote:
           | Just the editor features, compiler errors/feedback, and
           | general pace of development/iteration.
           | 
           | I want to assume that the actual professional developers or
           | programmers working at Apple creating the system probably
           | weren't using this kind of workflow. It's just so awfully
           | slow and serialized, the whole single compilation error shown
           | at a time in a GUI popup for every build strikes me as the
           | IDE going far out of its way to not overwhelm the programmer
           | with walls of scary error text at great expense to iteration
           | speed. Especially considering how long the builds take. That
           | would make sense if the tooling was intended for
           | hobbyists/beginners, trying to make programming more
           | approachable than efficient.
           | 
           | Ron Gilbert has described developing Maniac Mansion for the
           | C64 using UNIX editors and cross-toolchains run on DEC
           | machines, never actually writing any software using a C64. I
           | wonder if the video is more representative of what end-users
           | were suffering through to write small programs, and not what
           | the professionals or Apple devs experienced.
        
             | rvense wrote:
             | Think C was definitely used to make commercial software.
             | Apple developers probably used "Macintosh Programmer's
             | Workshop", which is more like a command line. Whether it
             | gave more feedback I can't really say. But again, this is
             | not comparable to an early 90's 486 system at all. This is
             | an 8 MHz machine that maxes out at 4MB RAM.
             | 
             | The big constraint on IDEs in the first few years of Macs,
             | including this system, is the screen size. 512x342 pixels
             | is not a lot. In the early 90's people most developers
             | would have had something more like a desktop Mac with more
             | real estate, so the editors evolved fairly quickly. But the
             | first version of Photoshop was written on this exact
             | machine (Mac Plus) according to Wikipedia.
             | 
             | I've never heard of anyone cross-compiling end-user
             | software from Unix, except for pre-1984 system bring-up. In
             | the first year or so, I think you needed a Lisa to code for
             | the Mac, but it became self-hosting quite quickly. Mac
             | applications until OS X need a bunch of Mac-specific stuff,
             | that live in the file's so-called "resource fork", and the
             | final artifact (application file) can only exist on the
             | Macintosh file system.
        
               | musicale wrote:
               | Which apparently had brilliant error messages:
               | 
               | https://mipmip.org/tidbits/compiler-errors.html
        
         | musicale wrote:
         | > 486 PC
         | 
         | The Mac's 8MHz 68000 CPU is more like an 8086 than a 486.
         | 
         | Though 4MB of RAM probably helped a bit with the workflow.
        
       | rvense wrote:
       | Soft spoken people selfhosting down-to-earth videos without
       | asking me to like, subscribe and send my left b*llock to
       | Facegoogle is everything I want from the 2020's. Bonus points for
       | old Macs.
        
         | kergonath wrote:
         | I am very happy that this is the top comment. We do indeed need
         | more of those videos!
        
         | bullen wrote:
         | Agreed, and he's programming like I do with pointers; no clue,
         | just add/remove * and & until it compiles! Xo
         | 
         | My question is, how does he record the display?!
         | 
         | Also user->name for the love of god!
        
       ___________________________________________________________________
       (page generated 2021-12-19 23:01 UTC)