Alternative Development Systems for the Mac
Carlos Camacho writes "Programmers new to the Mac platform, as well as newbie Mac coders often ask (or complain) about available development tools. Most often, Apple's Xcode is recommended since it is free, and a pretty slick package. For cross-platform work, Metrowerks CodeWarrior series has been with us since the early PowerPC days, and is very flexible in its support for multi-platforms. But with if you want to work in a language other than Objective-C,C, C++ or Java? Or learn an entirely new language? How does the Macintosh fare? iDevGames, a site devoted to Mac game developers, has put together a list of "alternative" development tools for Mac OS X. A good number of the tools listed are either free, or low-cost. So, if you're interested in playing around with Lua, Ruby, something similar to HyperCard, or one of the many BASICs, check out "Alternative Development Systems for the Mac.""
The list was probably compiled to favor the cheap and obscure verses the expensive and well known. iDevGames is now in the judging stage of an annual contest where amateur developers make freeware Mac games. The list was probably compiled based on feedback from the developers while this year's contest was being put together.
Those who complain about affect & effect on
But with if you want to work in a language other than Objective-C,C, C++ or Java?
The only "gotcha" about programming for the Mac outside these languages is that access to native APIs (Core Foundation, Quartz, QuickTime, etc.) becomes dependent on the tool maker providing wrappers.
So, while using other tools for RAD, educational or hobbying purposes might be possible; it's easy to miss out on some of the most intriguing and interesting (IMHO) programming possibilites for the Mac.
Of course, if you're just interested in programming on the Mac as opposed to for the Mac, then this isn't an issue.
I have several multimedia CD-ROMs under development in Director. I have done at least a dozen of them and they are usually fairly well-paid projects (v.s. low-pay and hassle-full interactive websites).
Flash is all the rage lately, specially on the "rich" front-end app Web environment. Funny thing, MM in their greedy upgrade-cycle frenzy is making exactly the same mistakes that plagued Director in its time. Namely: feature bloat, general inconsistency, dramatic scripting syntax and model changes, legacy burdens, NIH syndrome, feature creep, etc.
Sad, the Flash community is swallowing it all in their enthusiasm.
Problem is...people who have learned MS's flavor of Basic are going to have trouble using RealBasic (at least last time I tried, OS8-era).
ROMANES EUNT DOMUS
Uh, I distinctly remember using CodeWarrior on my old Quadras, which were all 68k machines. I never really was a fan of Apple's MPW IDE, so yeah.
Just thought I'd point that out. Also, Mac System 7.5.5 forever and such.
I have seen C and VB and even Pascal that is tough to understand. I have also seen Fortran that was well documented and easy to follow.
It's definitely true that it is quite possible to write well-commented and easy-to-understand code using Fortran.
The vast majority of Fortran I've seen, however, does not fall into this category. Some old-school optimization tricks, like variable reuse, are partly to blame for the poor readability, as is poor programming ( usually done by engineers, not programmers ). In my experience, most folks writing Fortran programs are scientists and engineers, not programmers, and they approach the problem as if they're writing some little function that will only ever be written once, and never modified. They get it to compile and move on to some "real work". If there's some edge case where the program errors out, users learn by trial and error to avoid that case. User interaction is an afterthought. This is mostly the programmer's fault, although I notice you didn't touch my statement about Fortran I/O routines being uh, not the easiest to use.
Still, ANY language with a "GOTO" construct and unclear if-branching is going to be hard to read. Fortran has both. Not to mention limited symbol length and non-sequential line numbering. It actually takes a great deal of care to create a readable Fortran program, and they are, as a result, rare.
Not to start a flamewar about Fortran, though, it definitely has it's uses, and it is possible to write a reasonably readable Fortran program, but... the language not only doesn't help you do so, it actually includes some limitations and conventions which make it difficult.
But support on OS X? Shoot, Fortran support on OS X rocks! It's frickin' Fortran-lover heaven. You even get Altivec calls from Fortran. All you lack is a decent way to do I/O ;-)
Objective-C is slow, it eats memory, and its syntax is very verbose. Most languages don't have 120-some character method names. And for all that, it's still unsafe, and has very little in the way of static type-checking, and no garbage collector (a refcounter where you have to twiddle references a lot doesn't count). I would not call it "the most developer-friendly language every created." I'd much rather code in Python or O'Caml.
You want fast and a garbage collector?? Objective-C is slow? Um... not terribly. Large memory footprint? Not unless you're forgetting to deallocate objects, or just have a bad design. 120-some-character method names? Not typically, and verbose method names are actually good, if occasionally overdone. Yea, it's unsafe, it's a superset of C, of course it's unsafe. You really think Objective-C is less memory-hungry than Python or O'Caml? Interesting... I'd like to see your benchmarks there. It's clear we have different ideas of what makes a language developer-friendly. Access to C routines makes Objective-C developer-friendly in my book.
C is not a good choice for anything but the core of most games, as it is too developer-unfriendly and lacks in features (like OO, anonymous functions, garbage collection...). While excellent for low-level code, it's not really in the running for high-level.
C is great for the core of most calculation routines of any type. Which is how it is often used in the context of an Objective-C program. You don't always need high-level.
C++ is a good language for games, but many people would rather have something higher-level. It's unsafe, but many people will overlook.
Now you're making me wonder how many Python or O'Caml games there are out there. I guess there must be a few... any commercial ones? C++ when written correctly is awfully high-level, no? I can't belive you'd complain about Objective-C syntax and not C++ syntax...
Java is slow and verbose, and therefore painful for game development.
First, slow compared to what? Link me up with that Java/Python benchmark comparison. No, really. Something tells me you might just be making this stuff up, repeating something you read somewhere or something. Java used to be slow. Starting up a JVM can be slow. Some Swing drawing routines on some platforms can be slow. I'm also wondering, huh, do you think of programming in terms of anything besides games? Again, verbose in a programming language == readable == very good.
Maybe they want to code in Python?
Power to you. XCode documentation even has pointers as to how to set up a project for Python. Is Python sytax really less verbose than Objective-C? Is it really faster? Does it really have better, more complete libraries? Is there really a reason other than "I want to", which- don't get me wrong - I think is great reason... just maybe not one you can sell to the other folks working on your project, if you get my drift. Really, yea, Python is cool, but... why not Objective-C, again?
"Sadly, I find Flash so irritating, both in for creating full websites..."
:). Actually, I agree with you in principle: a site's content should, ideally, be available with a minimum of plug-ins, unless the content specifically requires a plug-in. However this is one of those concepts, along with optimizing JPEGs, that seems to have been lost in the "me-too" frenzy...
I couldn't agree more. Its way too heavy for simple browsing.
"...and its use for advertisements..."
No worse than GIFs, really (if you actually like advertising of any kind).
"...that I uninstalled the plug-in. Any website that relies on Flash for critical functionality will lose me as a viewer or customer."
Ignoring it's misuse in splash screens and building entire sites (which is the user's fault, not the software's), there's a lot of interesting entertainment out there which uses Flash. Frankly, Homestar Runner would be rather dull as a static ASCII page...(StrongMad to Marzipan: "I can't read you!")
"If websites use Flash, they should also provide a simplified HTML version for the rest of us."
And if they have an IE-optimized page they should also provide a strict HTML 4.0 standard version for real browsers
Besides, Flash is nowhere near as annoying as frames. Why do web designers feel the need to add their own navigation buttons, when there are already perfectly good ones built into the browser? "Back" isn't back enough?!?