Monday, January 30, 2006

Interesting Language Comparison Article

Stu highlighted this from Macintouch:

I'm pretty independant of language but this article was interesting.

My comments...
  • Regarding the statement: "Maybe its just me, but C++ always leaves you wondering what you might have done wrong." - Is this true? Runtime errors in Java programs are not unknown and books like Effective C++ seem to highlight the pitfalls in C++, i.e. are the pitfalls really that bad to debug if you hit one?
  • I probably agree - some bits of C++ are complicated. However I don't see any other option if you want speed?? (or a hard to de-compile binary - Java, Python, etc, are all easier to reverse engineer because good tools exist for this).
  • In regard to execution speed, there are a few minor compiled languages with lots of 'dynamic flexibility' (e.g. Pliant and maybe Obj-C) but there doesn't seem to be any major language with those two features. I've had speed problems with other peoples Java programs and with Python (doing simple encryption and decryption of 1 MB of data). OK with Python you can write C/C++ sub-functions - but this 'two-language-thing' is not ideal unless you have a good hard split in functionality.
I'm not defending C++ here, to be honest I'm not sure what choice there is? Java is ok but is interpreted. C# might be superior to Java but is 'encumbered' with MS and is byte-code interpreted. Python is fast to development but you have to do 110% testing, in my experience, which is a pain on a small language (and as he said: would it be practical on a very large program???) . Objective-C is almost Mac-only and is not so popular. Etc, etc.

What I want is a language which is well supported across multiple platforms, is popular (so I don't end up with dead code) and has direct OO support. Ideally it would be nice if (a) is was a standard, (b) is easy to program in (whatever that means). Notice, after talking about speed I don't really care about it for PC/Mac applications. I guess speed is important for embedded, and it seems to be easier to convince people about 'C compatible' languages .

Some popularity data... not to be taken too seriously.

Would appreciate any feedback on my thoughts...

Sunday, January 15, 2006

Zex to Beta 1

After a lot of effort, finally, the Zex beta version is posted on the Lightsoft web site and we can finally relax. Well sort of - guess we will need to start working on Beta 2.

From my point of view details of other's projects can be quite illuminating but so can analysing your own projects. Let's start with what went badly:
  • A last minute bug that needed to be fixed when we thought it was finished.
  • 'Universal' deployment build (to produce proper application) doesn't work on my machine - still! (Good Stu's does!)
  • It felt like every other change I did made an additional bug over the last couple of weeks!
  • My cvs access was playing up for a few days before I figured it out what was happening - arrghhh...
  • Some of the crash bugs were a real pain.
  • There are still a few yucky bugs we know about that I wished we could have found in time for beta. But so goes these things - they weren't critical.
  • We had to make a decision - primarily because of lack of testing with the old compiler - to drop the OSX 10.2 build for Beta. (Let me know if you are interested in Zex for 10.2 by emailing me: rob at
So not so bad overall. Things that went well?
  • I feel quite proud of Zex. It's a good game.
  • Alpha testing by two (poor) volunteers was massively helpful. I really am glad they helped out.
  • Buy graphics got finished in record time (with some baby-sitting by me).
  • Stu and I worked together really well on this.
  • We were both totally committed to this release and prioritised the bugs aggressively to make it happen - but without compromising people's Beta experience. We did slip a few weeks (hey, who doesn't ;-) but overall I'm pleased with the schedule.
  • All the porting work and extensions written recently worked well (with a good amount of effort obviously) .
  • We have an Intel build (as well as PowerPC)! Something I thought would be impossible for Zex.
  • cvs and cvstrac give us good control (the bug tracking and source control) and proved again that they are good tools. This is the first time we'd used cvstrac for bug tracking in Lightsoft.
  • I got lots of good work done over the last few months (not easy since I have an 8 month old baby to play with - it's good she goes to sleep at night!)
That's all that occurs to me at the moment, but it gives a flavour of the project so far. I guess other things might get posted later.

Anyhow, what are you still doing here! Get playing!

Thursday, January 12, 2006

A little bit of randomnness

Some random thoughts about Apple's recent releases of the Intel iMac and the Macbook Pro.

They herald a new era for the Mac platform. Things like the possibililty to run Windows and all the pros and cons of that are very interesting - but myself and others have touched on those.

The dual processors in a laptop is nice. I must feel a little bit sad that they aren't 64-bit chips however. The 64-bit processors, whilst on other architectures mostly for larger address spaces and (possibly) causing slight slowdowns, on the x86 is so much cleaner and more register rich it would have been nice to think what would have happened if all Intel-Macs would have had 64-bit from the go-get. I guess I should look up comparisons of 32 vs. 64 bit apps on Linux, BSD or Windows. Still, even if my conjecture is true it's not to be, since Intel won't have anything good enough for Apple until the second half.

For programmers I think this shouldn't be overly hard - although there will be tuned apps that probably won't make it (older games for instance).

One are that is a bit of a pain, although not strictly related to Intel, is the whole C++ builds with gcc 4 is not compatible with Mac OS 10.2. It's therefore necessary to build with gcc 3.3 for 10.2 and gcc 4 with 10.4 for intel OR just be compatible with 10.3.9 onwards and compile both Intel and PowerPC with gcc 4. Oh well, I guess it will all sort itself out with time.
Newer›  ‹Older