Hacker News new | past | comments | ask | show | jobs | submit login
First THINK C Program (2020) (beyondloom.com)
66 points by CoffeeOnWrite on Aug 15, 2021 | hide | past | favorite | 14 comments



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?


    (n > 0) && printf("0  ", 0);
Never saw something like this. A conditional execution without an if?


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.


this is a classic functional programming that prefers expression like above instead of `if` statements.


Oh, I like the writing style here. Shades of Aphyr's "Interviews" series:

https://aphyr.com/posts/341-hexing-the-technical-interview


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.


More fun building Pararena 2 in THINK C 6 (with Basilisk):

https://bslabs.net/2016/11/13/building-pararena/


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.


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.


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...


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.


Where's a good place to find a guide to that?


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/ma...

https://developer.apple.com/library/archive/documentation/ma...

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_Prog...


You can search for "Toolbox" and "Tool Box" here:

Vintage Macintosh Programming Book Library - https://vintageapple.org/macprogramming/




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: