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.""
you just got to try it out. Haven't you tried it? ;-)
Before you flame me as a troll, the Mono Project does have a Framework installer for OS X. so you can develop under Mono and have a app run on a Mac.
Has anyone ever used Runtime Revolution? I remember this system in the days before Java, and its quite surprising that its still around .. because I've never heard of or seen anyone ever use it to write an application ..
Is this just because its mostly a business-logic style app development environment, or have I just not been paying enough attention to 'strings somerunrev.exe'?
(Anyone remember Vibe?)
; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
I'm surprised Flash and Director didn't make the list. Some of those tools I've never heard of and I did a pretty long search for a crossplatform game development tool not too long ago, when I decided RealBASIC wasn't going to cut it for me.
Alex.
A million different cheez-o basic versions listed, but they forgot eclipse ...
RealBasic, IMO, is the best cross-platform RAD tool in existence today. Not that there is a ton of competition...
.exe file on Windows, one .app bundle on MacOS X... no DLLs whatsoever. That's a huge plus for me. A drawback is that it relies on Quicktime to present some media formats, such as PDF, and most Windows machines don't have Quicktime installed.
.dll files with version conflicts. Instead, they're advertising it as some stupid game development tool, wasting their time maintaining a "sprite surface" object and an entire 3D framework based on, get this, Quesa, which is in turn based on QD3D... two obsolete technologies layered atop each other. Let me save you some time: RealBasic SUCKS for game development. It has no native support for OpenGL or any decent sound libraries.
It's a somewhat Java-like Basic syntax, completely object-oriented. It has the capability to use ODBC (on all platforms that support it), native widgets, many types of network sockets, etc. An install on every platform consists of copying a SINGLE file, one
On, the other drawback. The developers and marketers of RealBasic have their head in the sand and have NO CLUE what they are working with. With about 1 minor revision and a decent-sized advertising campaign, these guys could conquer and destroy Microsoft VisualBasic. RealBasic does everything VisualBasic does but cross-platform and without reliance on numerous
Since this is Slashdot, I'll also say that RealBasic includes very very skeletal Linux support, but I think Redhat only. I could be wrong, I don't use Linux.
Pretty much the only competition is Macromedia Director and Runtime Revolution... both of those produce alien-looking not-quite-native interfaces. (Although at least Director is good for game development.)
http://realbasichelp.com/ is the best forum on the web for RealBasic issues and questions.
Comment of the year
Then I wonder who suggested Coldstone... I bought Coldstone when it first came out, because Ambrosia is such a great developer (they're the distributor of CS, but not the creator) and most of the games I'm interested in making are of the Coldstone type. It was buggy, unstable, and pretty much unusable even after the 1.1 release. And then they stopped selling it less than a year after its original release IIRC. I don't think anybody but Ambrosia ever developed anything with it and they even pulled their game because it just didn't work right.
Alex.
xul is cross platform. Granted, you need to install a "reader" for it (mozilla, gecko, firefox, etc), but you need to for some other languages too (flash, shockwave, the different C's, etc). Plus, xul accepts javascript and html, so if someone knows those, then the can build upon their skills.
There are a few Common Lisp implementations as well
Open Source:
Open MCL
SBCL
Commercial:
Macintosh Common Lisp
Allegro Common Lisp
Xanalys Lispworks
I predict that in a few years time we'll learn that xCode secretly embeds spy-code to harvest key logs and other user data. This secret code will be activated April 1st in the year 2006 and upload all collected data to Apple's iTunes division. The harvested data will allow Apple to create THE killer song for your iPod, which by then will interact directly with you brain. This song will control you and bend your listening ways to the financial gain of Apple. 7 days later Bungie will buy Microsoft and release a version of Windows that is really amazing, but doesn't let you finish any documents or loading of web pages. Finally, Bill Gates will reveal himself as demon spawn from Bizaro world come to our world to spread flowers. Having gained control of the world's iPod listening consumers, Apple will return to the alternate dimension to deploy their iTunes Kenny G Music Store. Unfortunately, it's overrated, cliched, and lacking in table manners.
You have been warned.
-- i am jack's amusing sig file
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 appreciate the mention of PyGame, as Python is presently my language of choice for fiddling around. I have recently started using Python and I really enjoy it, and it's odd to see Python based solutions left out of discussions where they are relevant.
It's almost like there are a large group of people who take offense at the mention of Python...
*is run over by rotten tomatoes*
With GCC4.0 the latest Fortran for Mechanical Engineers and other disciplines with a need for numerical analysis and FEM will have this available.
I wonder do languages like SELF or Ada or Eiffel ever get notice like they once did?
It costs $700. I have to eat you know.
FaceSpan is a sophisticated GUI-application builder whose language is AppleScript, and AppleScript is a quasi-procedural, quasi-functional language with great power and flexibility, especially when used in the context of FaceSpan.
Squeak is the modern Smalltalk implementation. It supports opengl, quicktime, widgets, networking etc. It is cross platform and runs on Windoze, Linux, other unices, Mac OS X, PDAs etc. http://www.squeak.org/
I'd recommend SuperCard. When Apple abandoned HyperCard, they left a big void. SuperCard is OS X native and has excellent HC compatibility. Of course, it's far from a HC clone, as it it has all the things you'd expect from a development environment these days.
SC allows you to build standalone applications playing movies with QuickTime, displaying graphics with alpha channels, running shell commands and AppleScripts, etc...
I also personally use Runtime Revolution, and it's also good, and cross-platform. However, for Mac-only development, SuperCard definitely has my vote. It uses true Aqua GUI controls, and behaves like you expect Mac apps to do.
Here's a few Mac apps I develop with SuperCard: http://www.lightheadsw.com/
Sig Nature
(1) No problem.
XCode's build system is extremely flexible. You can have a custom script or binary run instead of the more standard targets. Just make a new project of "Empty Project" type, add a build target ( Project/New Target ) and pick either "external target" or "Shell Script Target" as appropriate. It'd be hard for it to be a lot easier without being language/tool specific, like the 'canned' target types ( of which there are already quite a few ).
(2)You want to use something that's not the most developer-friendly language ever created ( Objective-C ), the most commonly used language ever created ( C ), the most commonly used in commercial products OO language ( C++ ) nor the best mulitplatform language ever ( Java ) ?? What's your reasoning there?
I understand that there are reasons for using "none of the above" when writing code for OS X, like say, you have a big group of Fortran programs that you don't have time or need to rewrite, or you just rock at Python and don't have time to learn something else, or know you can do what you want in Pearl... but if you're developing a completely new codebase, with a full GUI-based app as your goal?
Learn Objective-C. Learn Cocoa. You'll be glad you did.
Mac software can de developed in Ada 95 using the GNAT Ada 95 front end for GCC. A description is available at http://www.macada.org/
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.
BlitzMax (the mac version of blitzbasic, but 2d) does not seem to exist yet. rumours date back to 2002, but there is no mention of it on BlitzBasic's product pages.
Extreme Basic is a work in progress that seems like it's going to be released for PC and Mac. However, the commands are different for mac and pc, so it's not going to be cross platform -- unforgivable in my eye.
Seeing as they don't exist, should they even be on this list?
The reason girls and Windows users don't understand UNIX is because all the documentation is in Man files.
...compiler on Macs as it's not a great compiler on x86. Here's a test I did recently where MSVC can produce code that can easily be about 100 times faster than gcc. So I'd be interested to see what happens with the same code on Macs. I have gcc but I don't have codewarrior. So if someone could run that test for me and post the results I'd be interested.
-- SIGFPE
Someone wake me when there's an integrated J2EE dev environment like Websphere. XCode is slowly making progress but it's painful.
The vast majority of Fortran I've seen, however, does not fall into this
...
...
... 8-)
;-)
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.
Fortran is pretty trivial to read and follow compared to some of the
more arcane languages such as C, C++, Java
Fortran I/O routines are very easy 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.
This is a mostly irrelevant comment. Firstly, only very old pre-Fortran 77
legacy code uses "GOTO" constructs and secondly, there is nothing wrong
with using "GOTO" constructs. The real issue is structure, and each programmer
has their own style. More problematic is spaghetti style code, often due
to bad planning and multiple authorships.
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.
Well, more useful things are done with Fortran code in research than any
other language, so I guess you might say it has its uses
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
It would be illogical and counterproductive to not have good support for
Fortran (and other useful languages). Fortran is one of the main programming
languages of science (and engineering) and deservedly so. There are other
useful languages which have their place but it would be insane to consider
C, C++ or Java as worthy replacements (it's not their niche!). Python on
the other hand may have a useful growing niche in science and to continue
the ease of use spectrum, selected science/math environments such as
Mathematica, Maple and MATLAB also are useful. Some future environment
which allows ease of the latter, and compilation for speed like Fortran
would indeed be useful to the scientific community. But for now, Fortran (lower case these days!) still rules!
Realbasic is pretty good, the windows+linux+mac+osx build is nice.
members are seeing something, your seeing an ad
Your examples, no loop:
It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
Extra karma for you, SIGFPE. You have dispelled all doubt in my mind that moderators are full of sh*t. I'm going to giggling for a week over this one.
I also loved the cosmic ray detector thing. I used some magnets pulled out from an old hard drive. +3 informative. Priceless.
Checked out your home page. Those are mighty cool robots. Not bad for someone who has no talent for anything practical.
Hope I haven't blown your cover. Have a good one.
It is. But, that shouldn't stop someone from making games with Python. Just with PyGame.
click me
I don't think it has one, but a simple Lint like program for Python should solve this error. But, the problem isn't really with being interpreted, since a C/C++ compiler mostly catches typo errors (for me anyway...), but instead the problem I see is in the fact that it's dynamicly typed rather than statically typed. The problem here is that in a dynamicaly typed language, since you don't declare varaibles (but instead assign them) if you have a typo it won't get caught even by a lint program (since how is it to know that the typo isn't a new variable?). Example, let's say you create a varaible called dog. dog=3 and then later, you try to assign it a different value, but mispell it: god=5 Since it's dynamically typed, it will assume this is a new varaible, opening up a whole new can of worms.
click me
There is a beautiful port of Emacs to Carbon with a Aqua interface. Emacs of course has modes to handle so many programming language dialects that it makes a great tool for developing on OS X. There have been changes made to the main trunk of the Emacs project so that you can compile your own after checking out the official cvs repository, or you can google yourself up a binary.
"You can't dissect him, predict him, which of course means he's not a lunatic at all."
Flash is nice for some sites, note the "some," but for the vast majority of websites flash is extra bloat in the bandwidth area. I have done web development jobs before, and I was constantly surprised by how limited many LAN computers are.
Do anything with a school, business, or corporate entity and chances are you'll find that there is no flash plug-in for their browsers. On a good LAN environment, the administrator has disabled access to install any software, including a flash plug-in. Many people simply cannot view flash-based content, and that is where Flash's main failing is.
The Apple development environment is king of the hill and for a reason. As for your speculating in how to circumvent this incredibly plane learning curve, there is as well only one reason.
Discussions like this are invariably started and fostered by people who can't code, who otherwise would be coding and not blowing hot air at slashdot, and who have nothing else to do but spout pretentious jokes and truisms whilst others take care of business as usual.
It's Thanksgiving; you're the turkeys. Gobble-gobble.
codewarrior was called Pegasus vefore it was release under its later name and ONLY worked on 68k. true... prototype ppc was existing at the same exact time from apple in certain places including two sites i worked at but i used pegasus (codewarrior) and metrowerks NEVER ever EVER addressed my complaints.
complaint #1 : think c allowed creation of large drivers for 68K sotred in 64K segments and had a segment loader... metrowerks lacked it, they lacked it for CDEVS and desk accessories, etc.
stupid
also their compiler was twice as slow (never got better) and text searching was over twice as slow as THINK C (never got better) and generated problems in EVER version EVER release year after year after year inclusing its very last 68k release !!!!!
i posted source to usenet demostrating the bugs in the 68k compiler/assembler and metrowerks allegedly had one final version fixing it but that compiler was a CROSS COMPILER and could not build on a quadra.
shame
think c was ALWAYS better than metrowerks in ways that counted
but it existed in late 1993, not to be confused with german IDE compiler called "PeGAsuS" that never sold commercially, (note strange type case used)
remember the public never got to get powermacs until april 1994 !!!!
mertrowerks compiler environment came BEFORE powermacs and WAS indeeb 68k and used on quadras