The Yarra engine was designed to be a cross platform C++ gaming engine, using OpenGL for 3D graphics and OpenAL for positional sound. Unlike existing engines, Yarra was primarily designed to allow dynamic adding of programmable objects to a scene graph with handlers to control game flow. This design doesn’t suite a majority of software out there, but works great for games. But the article isn’t about Yarra, it’s about the developers personal experiences working with Windows, MacOSX and BeOS. The article discusses the pro’s and con’s of each environment, and give sa very subjective opinion about the merits of each.
I found it quite a good article that tried to present the pros and cons of each platform. As BeOS was listed last, I was afraid it would turn into one of those “BeOS did it 5 years ago, why doesn’t XXX do it today” kind of articles. Thankfully, I was proven wrong
On the other hand, the bit about Java at the end of it was kind of misleading. Who runs J2ME applications on their desktop? The author rightly picks apart the situation currently facing J2ME applications, which is the lack of write once run anywhere (WORA) capabilities. This is a sad state of affairs, and totally negates the benefits of Java. Hopefully, this will improve in time, with Sun open sourcing Java.
This situation is dramatically different on the J2SE side, where a standard implementation exists on almost all desktop platforms (barring some obscure hobbyist platform). It is ironic that an article talking about the pains of developing on multiple platforms, learning the assorted APIs, fails to acknowledge Java’s WORA capability. It is so common to see Java applications running on Mac OS X, Windows, Linux, $FAV_OS without a recompile, as long as there is a compatible JVM present. The overhead of JIT compilation (negligible), of virtualization (also negligible) pale in comparison to the benefits of developing applications with only 1 source tree, and the productivity gained from not having to worry about the underlying native APIs.
My thoughts exactly. FTA:
I’m really suprised by the migration of so many developers towards Java. One of Java’s biggest marketing points is that it allows write once, release everywhere applications, but in reality it’s write once, compile everywhere. Remind me again when was the last time anyone ran a Java Mobile Edition application (most mobile phones) on their desktops. Heck, even some mobile phone software is not portable across different model phones from the same manufacturer, let alone competing manufacturers. Lets not get started on the slight binary incompatibility between Microsoft JavaVM, Symbian JavaVM and Sun JavaVM. Dont forget that by using cross platformJava, we’re also dealing with the overhead of JIT compilation, and virtualisation.
When someone starts mentioning *MICROSOFT’S JAVAVM*, I have to say, I smell FUD. After that, how can I take anything this guy says seriously? Java desktop apps by and large DO compile once and run everywhere. This guy must have just been hiding in his BeOS cave for too long.
Also, the part about MacOS X being sluggish–I’ve never noticed that myself when using any Mac released in the past couple of years. Still, I’m curious how much of a difference he would see if he disabled Spotlight:
http://www.macosxhints.com/article.php?story=20050504012104186
Edited 2007-01-28 10:42
Hmm, you wouldn’t happen to make a living writing Enteprisey Business Java Apps which parse XML formatted data? Talk about extremes, the other day I had to drop back to assembler to optimise a matrix calculation. Oh well, the world is obviously big enough for starry eyed astronomers and sub atomic particle physicists.
No; is that what you do? Besides, my point had to do with J2SE on the desktop, not J2EE. (Yes there are three standards: J2SE, J2EE and J2ME, and this is fine since for the most part the programs do not need to run on the different target platforms.) My point was that there are many *desktop* java apps out there (some of the better known ones are LimeWire, Azureus, and the game Puzzle Pirates; for more projects take a look here:
http://community.java.net/projects/community/javadesktop
) which work off of one code source and one-time compilation. J2ME incompatibility with different mobile phones is also becoming a thing of the past; just take a look at the list of top programs Eugenia recently posted a link to:
http://mobits.com/jad/
I wouldn’t call the overhead associated with Java negligible. Just compare Azureus with uTorrent, two apps that have roughly the same features. Azureus takes up approximately ten times the memory and 5 times the cpu time of uTorrent. I don’t consider that negligible.
I don’t get it.
What’s the meaning of the word “slow” when applied to Mac OS X in a dual core Mac Book Pro? I’ve heard differently elsewhere.
I’m not entirely sure what he meant there; maybe the UI feels slower to him? XP feels slow to me, mostly because the Explorer is so horrible at displaying directory contents when you’ve got more than, say, 100 files in a directory (I’ve got an insane app that spews tens of thousands of files into one directory… the whole machine stops when I try to open it).
OS X is fast enough on my iBook G4 (1GHz); it only starts to get “slow” when I start loading up too many things and RAM gets tight. Compiling in XCode is fast, the UI is responsive, etc.
Compiling C++ code with gcc is ridiculously slow, regardless of platform; I’m not sure which version of gcc is being used on the Be side these days, but the 4.x line on OS X crawls with C++. MS’s compiler is extremely fast by comparison, even with C++ code.
So, uh, your mileage may vary, but I find OS X “fast” (even on old hardware), XP “clunky”, and BeOS “dead”.
Upgrading to OS X machines at my house instead of Vista. I haven’t booted BeOS in years and years. 😛
– chrish
You know what’s funny? If you consider BeOS dead, why is that not one of the other OS’s has caught up? I mean, OS X might have gimmicks, XP what has XP… hmm gosh I don’t know 🙂 but if you don’t count apps, BeOS is still the most thought-out OS IMO.
But… but… OS X is what all the cool kids are using!!!1
I should know, I saw them using it!
Edited 2007-01-29 20:19
The author caught the point of BeOS: the multithreading. I own a dual processor Pentium III, and using Windows XP you don’t feel the difference with a single Pentium III. In BeOS the difference is noticeable.
I also agree with him when he says that Mac OS X is sluggish, Windows XP is more responsive in that dual Pentium III 650 than OS X is in my iBook G4 800.
You’re comparing a dual processor machine to a single processor machine. Are you actually surprised that the single processor machine is more sluggish?
I’m not comparing it to BeOS, I’m comparing it with Windows XP, and in Windows XP two processors does very little in responsiveness as I already stated. I actually tried XP with a single processor, and the situation didn’t change.
> You’re comparing a dual processor machine to a single
> processor machine. Are you actually surprised that
> the single processor machine is more sluggish?
No, he’s comparing OSes running on a dual processor machine with the same OSes running on a single processor machine. As many noticed already, not all OSes are equal on multiprocessors machine, hence the “sluggish” feedback some of them gives.
It’s about comparing OSes SMP scalability.
I refuse to listen to the opinions of anyone who uses a <blink> tag in their page: they’re clearly an idiot.
Damned. I would like to see “Fix the f–king Finder” blinking in fullscreen, every morning, on all apple developer’s workstation.
To give a bad taste to their coffee, at least.
I’m a Linux on x86 user, not a Mac user. But it seems to me that one thing that most Mac users seem to agree upon is that Finder sucks. And this has been the case for years.
What’s the deal? What’s wrong with it? And why doesn’t Apple, considering its sterling reputation for UI design, fix it?
Is this a case of it being unfairly maligned or something?
Well, for a start, there’s the lack of cut and paste support, and the annoying limitations of the copy function (not telling you about date/time differences, making you overwrite entire folders that have the same name instead of just letting you overwrite the changed bits):
http://www.xvsxp.com/files/copying.php
I’ve also had wierd, inexplicable experiences using the Finder, like thinking I had copied a large group of MP3s off a USB drive, only to find out that OS X had only copied *shortcuts* to those files. Eventually I figured out I had to hold down the Option key while dragging, or something like that, but it seemed to me to be quite the unusual/unwanted default behavior.
I also really miss having a two-pane folder-tree/folder-contents view, and miss having the folders listed before files instead of all mixed together (although maybe I could get used to that).
edit: Of course to get a really broad overview of what’s wrong with the finder, you might as well visit the page that the article links to:
http://arstechnica.com/reviews/os/macosx-10.4.ars/18
Edited 2007-01-28 16:31
and miss having the folders listed before files instead of all mixed together (although maybe I could get used to that).
Never could get used that, personally. I use BeOS, and Tracker is very obviously-inspired by the OS8/9 Finder – but the “sort folders before files” option was, IMO, the first really good thing to come out of the OpenTracker project.
Cancel a move in Windows and the already-moved files are in the destination folder and no longer in the source folder! The Finder does not have this problem…
It won’t be easy to answer you with concrete example and avoid being accused of trolling. I honestly think that most people has a reason to dislike the Finder, but i really doubt that everybody agrees on issues.
First of all, the finder is the key app of the mac. It the way you access to your apps and documents. The only way, until you put it in the dock or use spotlight/quicksilver tools. Yep, you access Terminal.app by the finder and no ctrl-alt-F1 for your sake. It’s the source of everything.
So as you can imagine, every issues that lead to crash/hang/infinite reload of the Finder is “you-cannot-imagine-how” painfull. And there is issues. Not a lot, surely, but it’s always too much.
I reported one here, once : (at the end of the post, about spotlight and finder integration) http://osnews.com/permalink.php?news_id=15145&comment_id=141857
Things you can see is (or was) :
– infinite loop on empty .swf file (fixed after a quicktime update, long mounths after the bug was reported to apple)
– Canceling the move/deletion of a lot of files totally unreponsive (due to the lock flag modification on each file, but that should be reported to user)
– Finder tries to preview a 500MB tiff file, sometimes slowing down the computer so much that you hardly can selecting something else to stop it.
– The standard way to go in upper hierarchy of directories is to cmd-click on window icon. (this will be discussed if i leave it as is : generally you cannot go anywhere without being able to go to parent directory in more than one click – generally)
– the .DS_Store files it leaves every where, even if you don’t touch the window ( http://filext.com/detaillist.php?extdetail=DS_STORE )
– Mounts and umount removable (network and USB, firewire is quite nice) filesystems soooooo slowly (i didn’t try on command line, this may be an OS issue, but recent sshfs of fuse make me doubt, it was quite fast)
– The incompatible of old and new way of attaching documents to applications. Signatures and so where perfect before the internet (one document edited by the same app, ever) but not theses days.
– …
I’ll stop here before making to much people upset. If a mac fan is over there, these are the things i noticed, if you’ve got workarounds, i would pretty happy to know them, and pardon me for my ignorance
Visual Studio C++ must be a lot better. My experience with VS2k5’s C# was horrible.
The program would lockup for roughly 1 minute everytime it was started. I crashed about every 1-3 hours. Upon switching to and from debugged code there was a 1 minute lockup.
And it wasn’t just one install. Almost my whole team had the problem. It left everyone hating VS by the end (it was really that frustrating). We weren’t sure, but we believed it was because of the asp.net project that was a part of our solution.
I have no problems whatsoever with VS2003 and 2005 + C#.
I run them both on Parallels for Mac (but I had a Windows box before). The rest of the team uses Windows XP Pro and never described this behaviour.
You’re spreading “FUD” about VS which isn’t true. It’s clearly *your* project’s problem. If VS were to be that unstable, nobody would be using it.
Just make sure you separate a specific problem you’ve got from a real problem with the tool. VS “should” not hang, true, but that never happened here, and our app is quite “bloated” (but not ASP thanks).
Possibly your lockups are VS waiting for the debugger to deatach/Attach to the IIS process (a PITA, imo).
I have no problems whatsoever with VS2003 and 2005 + C#.
Lucky you, because VS 2005 should not have been released in the state it was. Locking up of the IDE for a long time when opening up any large projects is a known issue. The reliability of web projects is even worse, as is backward compatibility when updating VS 2003 projects.
You’re spreading “FUD” about VS which isn’t true.
If you don’t know this, you’ve been living in a box:
http://www.microsoftweblog.com/2005/11/05/problems-with-visual-stud…
http://minimsft.blogspot.com/2005/11/hey-shareholders-vs-2005-is-fa…
Just make sure you separate a specific problem you’ve got from a real problem with the tool.
Oh, right. That makes a whole lot of sense. A specific problem ‘you’ve got’? You make it sound like it’s his fault. It is a real problem with the tool. VS 2005 has had widely reported problems and is known to be extremely buggy. No one cares that you miraculously don’t have any problems.
Possibly your lockups are VS waiting for the debugger to deatach/Attach to the IIS process (a PITA, imo).
So there are some serious problems with VS then?
Wow. Tad bit defensive are we? Like I said, I think it had something to do with the mix of asp.net with other C# projects inside the same solution; but that’s just a guess.
And you’re guess about IIS is very likely the problem. But that doesn’t mean you need to say I’m spreading FUD and lying.
Calm down.
Check your antivirus software.
Been working with VS2003/2005 now for a couple years and the biggest performance bottleneck I’ve ever found was antivirus-related.
(especially if you’re using VSS-integration in the IDE!! turn that off too.)
Edited 2007-01-28 17:26
I never use anti-virus software, personally (My Windows installs are purely for development). I think one of the machines was using McCafee.
We were using an external tool for connection with SVN, not visual source safe. So, I don’t think that was the problem. I really think it was related to “integration” with IIS for asp.net debugging (which I, personally, wasn’t doing but someone else on the project was).
You may be right with IIS being the problem – I don’t do ASP.NET development – just plain-jane WinForms stuff mostly.
I also no longer run antivirus, but I do specifically remember others having problems with McAfee especially with the VSS integration as every single one of those stupid VSS files had to be scanned on access.
SVN is of course far superior to VSS
The Visual Studio IDE jumped the shark at 6.0. Recent versions are on a mess — they need to have a serious Office 2007 style overhaul. VC++ 6.0 on the other hand was a really nice IDE. It’s editor wasn’t that great, but the IDE was very stable, and the compiler and linker was (and still are) wicked fast.
I used to use VC++ 6.0 a lot, but now I mostly use VC++ 2005 Express. I don’t really notice much of a difference between the two, other than a more modern looking UI.
Biggest difference is IntelliSense works perfectly 95%+ of the time. In 6.0 it only worked maybe 50% of the time, which really limited it’s usefulness.
I really haven’t found anything to complain about, other than the fact that you still can’t get a build to use multiple processors. Well, you can if you have multiple projects in the same solution, but that’s not very useful to me.
…it was decent. I don’t know about development environment speed differences for Windows vs. Mac OS X… I can’t say because I use JDeveloper for work on Windows, but I prefer BBEdit on my Mac.
I haven’t used Visual Studio in a couple of years, but I liked it. It worked reasonably well. I used MPW on Mac OS 7 and 8. It wasn’t the nicest environment, but it worked.
Speed of windows vs. mac os x… I run windows xp on my mini (bootcamp) and it runs well. I play B&W 2 on it and it is smooth and responsive. When B&W comes out for Mac OS X it will be interesting to compare the two…
“I’m really suprised by the migration of so many developers towards Java.”
Java as a language, not as a VM, is a pleasure to write code for. The APIs are wonderful, powerful, and gets the job done. The syntax is not overwhelming. Although I have nothing against C++, many developers have told me what a pleasure Java was to program for after switching from C++/STL.
> SVN is of course far superior to VSS
Every version system that have builtin minimal integrity is far superior to VSS. Which is pretty much all, these days.