• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Where are all the programmers?

ClassicHasClass

Well-known member
Yeah, CodeWarrior is pretty opaque and certainly not freeware (though I know lots of people have asked). This is one reason a lot of people who want to port C code to the Mac are stymied, because you have to usually go abandonware or snipe on eBay. (My copies of CW Pro 2/5/6/7 actually happen to be legal, but, well, you know. :p )

However, there are lots of other free tools for people to write in. What about FutureBASIC? Chris just made it all freeware, FB2 apps run on 68K and PPC (and behave nicely in Classic), and FB5 for OS X is community driven. I've even written extensions/INITs in FB2, so it's not just a toy! { http://www.stazsoftware.com }

Where are all the programmers, dang it? :rambo:

 

ClassicHasClass

Well-known member
That only further makes my point, though. Why aren't people developing anymore for the classic Mac, even if just for the heck of it? (Let's ignore Xcode for purposes of this thread; it's not Classic-compatible except if you jump through a lot of Carbon hoops.)

Speaking of MPW, I tried very hard to like it, but I just don't. The sheets metaphor is weird, and doesn't at all act how you would expect a command line to (at least not an old Unix fart like me). The compiler is nice and adept, but CW just seems more "Mac like" if I were going to program in C/C++. I only have MPW around on my dev MDD for ToolServer; my dev PowerBook with CW Pro 5 just has CW and I never start MPW on it at all.

Still, I repeat people can get as much mileage, if not more, out of tools like FutureBASIC, which are also freely available.

 

beachycove

Well-known member
I know absolutely nothing about coding (beyond Applescript or FileMaker or the like). But this is a really good question. Excuse the ignorance that follows:

Is Macintosh programming of the sort that the question is speaking about easily done, as in, is it designed in any way to be as user-friendly at the programming level as it is at the user level? Or would that be the "object oriented" approach to which the abortive systems of the 90s were heading, but never reached (OpenDoc et al.)?

 

porter

Well-known member
Classic macintosh programming is both an art and a pig. The goal is to make things easier for the user, not the programmer.

The programmer has one hell of a job writing an app that both solves a problem, looks good, is consistent and has AppleScript support.

Languages were 68k assembler and pascal, then C and later C++. OpenDoc was aborted from a political level, not a technical level.

 

RichardG

Well-known member
Tried some Pascal however the lack of inline completion and documentation (aside from a System 3.3 DA older than Color QuickDraw which keeps bombing and Apple's free online release of Inside Mac) wear me.

 

Emehr

Well-known member
*raises hand*

Here's my situation. I started programming on the Mac as soon as I got my first PPC Performa in '96 (a 6116). I bought the Codewarrior "Discover" kit which was in my budget but it only included a 68k compiler. When I got comfortable with the Mac toolbox and wanted PPC speed I switched to MPW, which was also in my budget (free, lol). The learning curve was definitely higher but once you create one makefile you can use it as a template for future projects. PPCDebugger isn't as elegant as Codewarrior's debugger but it was free. As a hobbyist programmer I could never afford the $300 (or whatever it cost) for the Codewarrior PPC compiler so it was MPW that I've used since.

My main project was an action/adventure RPG. Certainly not a good choice for a first project so when I ran into a problem that had to be solved I would branch off with a "mini-project" just to learn what I needed to learn then go back to the main one. Anyway, this project became my "model train" project: never fully realized; adding a bit here, a bit there; sometimes scrapping it altogether and rewriting the code after realizing there's always "a better way".

Then came Mac OS X.

Hmm, do I Carbonize something that's not even finished or do I press on with what I have? Press on I did. More time goes by, I pick up a Cocoa book or two, try out some small projects then decide: I'm going to stop developing for classic Mac OS and jump on the Cocoa train. Wait. What's this? I have to go through what hoops to duplicate my hand-rolled offscreen blitters? OK, I think I got it now but it's going to take a lot of work to port my scripting engine (yes, I wrote a scripting engine, lol). Plus, I never could wrap my head around Cocoa's memory management. And it seems to change every time Apple releases a new version of Project Builder/Xcode. Not to mention they keep deprecating stuff! Not only that, something I built in Panther doesn't even run in Tiger! What is this crap? I'll just wait until the Cocoa API stabilizes somewhat. So now it's back to development on classic Mac OS. Finish it first, deal with the consequences later. If only two people get to enjoy it, cool. At least there will be something to enjoy.

What I'm doing now is going through my code and making it OS-neutral as much as possible. I'm rolling my own toolbox calls (like NumToString(), StringToNum(), PtInRect(), MoveDataBlock(), stuff like that) just so I can (someday) get it compiled in Cocoa.

So what did I accomplish in all those years of seemingly unproductive coding?

- custom 8, 16, and 32-bit blitters with optional effects (darken/lighten, blend, make grayscale, etc.)

- graphic scaling (just wanted to see if I could figure out how to do it without looking ;) )

- a smoothing algorithm for 2x scaled graphics

- a scripting language using tags and a custom assembly-like syntax (much easier than parsing x = 12 * y - 16)

- an animation engine for sprites and "cinema" animations

Anyway, sorry for the long post but I thought I'd share. (Plus, it's exciting to know there's still interest in Classic Mac OS programming!)

 

Bunsen

Admin-Witchfinder-General
OpenDoc was aborted from a political level, not a technical level.
Now that it's also no longer a "moving target", is it in any way shape or form a viable development platform for our toys? At least those that can run it?

 

Bunsen

Admin-Witchfinder-General
I noticed a couple of interesting comments in the Slashdot thread about Classilla

One led me to discover OggFrog:

Ogg Frog 1.0 will play music files and Internet radio, decode music files to WAV / Version 1.1 will add support for encoding and tagging / 2.0 will support CD ripping, burning, backup, skins and integration with portable music players like the iPod, and natively support many different platforms and microprocessors.
That's right: Ogg Frog is a cross-platform application / Version 1.0 will support Windows, all versions of Mac OS X, with Universal Binaries for 10.4 users, Linux for PowerPC and x86, and BeOS for PowerPC and x86 as well as Haiku and BSD. 1.1 will also support the Classic Mac OS for PowerPC and 680x0 as well as the Solaris operating systems.

Supported Music Formats

Ogg Frog will play these formats right out of the box:

* Ogg Vorbis

* Native FLAC - the Free Lossless Audio Codec

* Ogg FLAC

* Speex

* WAV

* BIN

* AU

If you computer has QuickTime, Ogg Frog will be able to play:

* MP3

* AAC - also known as M4A

If your computer has Windows Media Player or the Windows Media Components for QuickTime, Ogg Frog will play:

* MP3

* WMA

You'll be able to play Internet radio streams for all the supported formats. If you compile the source code kit for the patented sound file formats, you'll be able to play AAC+ or HE-AAC streams.
I also noticed this tidbit:

I've recently hacked the 7300/7500/7600/8500/8600 Graphics Driver to support resolutions in the 1600x1200 range / I now have a 20" 1680x1050 LCD connected and working perfectly / I figured out where the timing parameters are stored in the driver, allowing other new resolutions as well (like 1440x900), and fine-tuning of the pixel rate. / Contact me if you'd like try the driver or have a different resolution.
The rest of the thread has a few interesting comments about people who are still working with and/or supporting the classic Mac OS, and why they do.

 

porter

Well-known member
a viable development platform?
Most definitely, I have it running on Mac(68k +ppc), also win32, AIX and OS/2!

I am in the process of doing an open source version matching the original IDL and have a workable version that runs on Linux and modern Win32.

 
REALbasic v1.1.1 is still a good choice for RAD. Compiles nice, small 68K programs, and has some powerful features like easy-to-use TCP sockets.

In fact REALbasic supported 68K all the way until v3.5.2, although I would recommend using an earlier version.

I think you could make some really cool functional programs using REALbasic. Do we have an RSS reader for 68K?

Or, use Facebook API or whatever it is and replicate Facebook in a REALbasic application. Instead of writing a web browser that attempts to work with CSS and JS, completely bypass them!

 

Scott Baret

Well-known member
I can't believe this discussion has gone this long without mention of the greatest programming environment of all on the 68K Mac--HyperCard!!!

HyperCard may not be an "industry standard", but it certainly is a blast to use and has been used to create some amazing programs (most notably Myst and the other early Cyan titles). Apple had an excellent series of HyperCard-based classroom management programs in the early 1990s (HyperCard for Education) and plenty of other software was on the market that took advantage of HyperCard (I remember hearing about a family tree maker and a bar code creator). There were also some excellent public domain HyperCard stacks out there, from references (I have one about the characteristics, prevention, and cure of Mac viruses) to games.

As a programming environment, HyperCard worked a bit like HTML but was even easier to use and understand. It was easy enough for a moderately experienced Mac user to understand yet powerful enough for an experienced user who wanted to create decent programs. Danny Goodman had an excellent reference on HyperCard that turned many into decent program designers, but trial and error could lead to an understanding on the part of anyone. I first tinkered in HyperCard when I was five years old and am willing to bet there are some other folks who started young out there. (Some children probably started with Roger Wagner's HyperStudio, which was an even friendlier version of HyperCard that supported color, something that was difficult with Apple's program).

I still use HyperCard whenever I need to string together something to use as a program, bringing my iBook G3 along to use the stacks with. I develop with HyperCard 2.4.1 (I have the CD-ROM version of 2.3 and used Apple's updater from their website to bring it up to date). The HyperCard player is still on Apple's website and SuperCard is still out there to do what HyperCard used to--on OS X, no less.

I have used Code Warrior to program in C++. I used it at a computer camp on a PPC machine running OS 9.2.2 and felt it was a decent C++ environment. I used a Microsoft complier (on Win2K) in another C++ class I took and wasn't as impressed with it as I was with Code Warrior. I can't say I've done any C++ programming in about six years, but if I ever found a copy of Code Warrior for sale I'd have to consider getting back into it.

Does anyone have any comparisons between Code Warrior and Think C? I had wanted Think C in the 1990s but it was out of the price range for a Christmas gift for a nine year old (which is when I first read a book about programming in C using the compiler). I wound up getting SimCity 2000 (the CD Collection) that year instead (which was one of my favorite Christmas gifts ever).

 

porter

Well-known member
Does anyone have any comparisons between Code Warrior and Think C?
Apart from Code Warrior is PowerPC/68k and C/C++ where as Think C is 68k and C only?

Symantec C++ is both PPC and 68k.

 

Bunsen

Admin-Witchfinder-General
REALbasic v1.1.1 is still a good choice for RAD. Compiles nice, small 68K programs, and has some powerful features like easy-to-use TCP sockets.
You don't say? Now, BASIC, I think I could have a crack at. Used to do some fairly complex projects in BBC Basic back in high school.

 
Top