[HN Gopher] First THINK C Program (2020)
       ___________________________________________________________________
        
       First THINK C Program (2020)
        
       Author : gkop
       Score  : 59 points
       Date   : 2021-08-15 02:54 UTC (20 hours ago)
        
 (HTM) web link (beyondloom.com)
 (TXT) w3m dump (beyondloom.com)
        
       | cable2600 wrote:
       | Should have started with Hello world first. Introducing newbies
       | to variables to do a Fibonacci sequence is very hard for them.
       | 
       | Nice use of the vMac emulator.
        
         | kmill wrote:
         | Don't you think it's a bit odd that the example program uses
         | short-circuiting booleans as conditionals and uses the fabled
         | downto operator?[1] The article's not teaching how to program,
         | it's just showing you how to set up THINK C -- the intro
         | suggests that the target audience is programmers ("I can see
         | [...] that you, too, are a programmer.")
         | 
         | [1] https://stackoverflow.com/questions/1642028/what-is-the-
         | oper...
        
         | setpatchaddress wrote:
         | If one's going to argue about choice of first programs, a
         | proper Hello World on classic macOS requires the use of the Mac
         | Toolbox. Using the bundled Think C console isn't really
         | producing a Mac-native program.
        
           | wwweston wrote:
           | Where's a good place to find a guide to that?
        
             | lioeters wrote:
             | You can search for "Toolbox" and "Tool Box" here:
             | 
             | Vintage Macintosh Programming Book Library -
             | https://vintageapple.org/macprogramming/
        
             | duskwuff wrote:
             | The definitive reference is Apple's own _Inside Macintosh_.
             | Many parts of that are still available on the Apple
             | developer web site, e.g.
             | 
             | https://developer.apple.com/library/archive/documentation/m
             | a...
             | 
             | https://developer.apple.com/library/archive/documentation/m
             | a...
             | 
             | For a more directed and more C-oriented walkthrough, the
             | _Macintosh C Programming Primer_ was a pretty common go-to.
             | It 's been out of print for ages, of course, but there's a
             | PDF available at:
             | 
             | https://vintageapple.org/macprogramming/pdf/Macintosh_C_Pro
             | g...
        
       | duskwuff wrote:
       | Oh, I like the writing style here. Shades of Aphyr's "Interviews"
       | series:
       | 
       | https://aphyr.com/posts/341-hexing-the-technical-interview
        
         | rak1507 wrote:
         | Check out the other articles too.
         | https://beyondloom.com/blog/denial.html was posted on HN
         | recently, I wonder if that's how the poster found it.
        
       | OnlyMortal wrote:
       | I was using MPW C back in those days. Great for shell scripting.
       | 
       | Think C was a fast compiler I used briefly as "Think C With
       | Objects". Objects were done with Handles so you had to lock an
       | object before using it. The OS could move the backing memory of a
       | Handle around as memory demands required.
        
       | mrpippy wrote:
       | More fun building Pararena 2 in THINK C 6 (with Basilisk):
       | 
       | https://bslabs.net/2016/11/13/building-pararena/
        
       | azinman2 wrote:
       | How does programming in Think C or Turbo Pascal compare to the
       | new m68k compilers? If I were to make a program from scratch,
       | what's my best environment if I care about performance? I gather
       | the old C and Pascal compilers were probably not very optimized
       | and that assembly would be needed quite a bit, but given how good
       | modern compilers are, is that true now?
        
       | jhoechtl wrote:
       | (n > 0) && printf("0  ", 0);
       | 
       | Never saw something like this. A conditional execution without an
       | if?
        
         | kmill wrote:
         | In C, the && and || operators are short-circuiting. This works
         | (in that it doesn't give a compiler error) because printf
         | returns an int.
         | 
         | I remember following a really old Python tutorial that
         | suggested the way to write inline if/else statements was
         | C and A or B
         | 
         | which makes use of similar short-circuiting behavior. Nowadays
         | this is written as                 A if C else B
         | 
         | The and/or version depends on A being truthy, otherwise it
         | evaluates both A and B, giving the value of B.
        
       ___________________________________________________________________
       (page generated 2021-08-15 23:01 UTC)