Skip to main content
Home Forums Where are all the programmers? Where are all the programmers?
Thread

Where are all the programmers?

Where are all the programmers? Development 97 posts Oct 28, 2009 — Apr 21, 2013
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:

MPW is free on the classic Mac.

MacOSX has X-Code for free, and gcc/g++ etc.

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.

Why aren't people developing anymore for the classic Mac, even if just for the heck of it?
I'm still developing Browser6..... :) Slowly admittedly.

*does a little digging and comes up with browser6.site88.net* A fine start. :)

Okay, that's two. Where's everyone else?

My Unix endeavors, m68k and otherwise, keep me more than busy enough. :)

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

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.

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.

*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!)

That's sort of where I'm at. It's more fun to program for Classic Macs now, and it's no longer a moving target.

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?

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.

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.

:O 8-o :approve:

Folks, I think I've discovered that our Porter is actually Jamie Madrox. There's no way anybody could have this many side projects going at one time. ;)

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!

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

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.

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.

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.
I generally agree with that. Programs aren't that small, however. The runtime (which is embedded in a compiled program) was 1MB+ when I used RB 2.5. Fine for Mac IIs and Quadras, but not for a Plus or SE. I briefly investigated writing an extension that would enable contextual menus in System 7, but I think that my first compile was 1.5MB in size.

Porter is being a naughty, contrary boy :-) RB has a relatively modern style and encourages good practice.

REALbasic v1.1.1 has a very small runtime. I think it uses internal compression, because when you stuff a blank app, it barely gets smaller. This was back when they still cared about such things as file size.

http://mikerichardson.name/graveyard/Systaller.sit

This is an old app I made originally in RB v2.1.2 where it was 325K. Then I ported it down to RB v1.1.1 and it shrunk to 164K. The .sit file is 168K.

The programming style is also very modern compared to just about all of the other choices. There's free garbage collection on top of that, so you don't have to worry about memory. It's not suitable for System 6, but I think you could get by on System 7.0.1 with maybe a few extensions like Drag Manager.

Just to sweeten the pot even further - you can use XCMDs and XCFNs in your REALbasic programs! v1.1.1 does not let you Declare into the toolbox though.

Here is my attempt to write a BASIC environment in REALbasic. I think this one is compiled in REALbasic v2.1.2. http://mikerichardson.name/graveyard/SilverBASIC.sit

It includes a "Runtime68K" file. Basically the "compiler" just bundles your BASIC source code with the Runtime program to create a stand alone app. You could use this to make really simple apps if you wanted to.

There's the far more advanced SilverCreator v1.5. The editor is PPC only, but you can deploy the compiled games onto 68K. This is made with at least REALbasic v3.2 so I know you must have at least System 7.5 to run the apps. http://www.silvercreator.net/downloads/SilverCreator1.5PPC.sitx

I still distribute SilverCreator v1.5 because it's the last one that runs on Classic at all. The new v2.0 versions are OS X only.

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.
I generally agree with that. Programs aren't that small, however. The runtime (which is embedded in a compiled program) was 1MB+ when I used RB 2.5. Fine for Mac IIs and Quadras, but not for a Plus or SE. I briefly investigated writing an extension that would enable contextual menus in System 7, but I think that my first compile was 1.5MB in size.
So use FutureBASIC. It makes nice, tiny executables. Like I say, I even wrote an extension with FB2 once. And it's freeware!

Chris is a great guy.

Even the newest version compiles to 68k IIRC.

It's too bad FutureBASIC gave up on their own compiler though. That thing generated some stellar code.

They had it going until Carbon PEF PPC, but I'm guessing it would have required a huge re-write just to get to Carbon Mach-O PPC, and then another order of magnitude to get Carbon Mach-O Intel. I'm guessing Staz Software really isn't in business anymore.

While I do code/support for a living, I have never coded a program for either Classic or MacOS X.

FutureBasic appears to be pretty nice. I may put it on my Lombard and see what I can come up with. While it has enough disk space (maybe) for the OS X dev tools, it's only a G3/333....

So use FutureBASIC. It makes nice, tiny executables. Like I say, I even wrote an extension with FB2 once. And it's freeware!
FB2 looks quite capable, but I haven't managed to get it to run properly on miniVMac yet.

If we're talking freely available 68K development, I'd either go for ThinkPascal 4.5; which *is* quite capable of decent development; being a fairly well-known language; modest memory requirements and a simple object-oriented model. Or I'd go for the MacMeth Modula-2 compiler; which although it has a pretty poor user-interface and poor code-generation and is a fairly obtuse language, yet fits quite nicely in a 4Mb Plus-type environment.

For more advanced 68K development I have a genuine ThinkC 5.0.4 installation on my LC II - why oh why isn't it freely available?

-cheers from Snial @P

mp.ls