Religion in computing: Macs, Unix and death to Windows

I would have thought that if anywhere was going to be free from decisions
based on faith rather than facts then it would be the world of IT. How wrong
that seems to be. There seem to be a particular set of zealots in the
computing world, especially around the internet, who have a reglious
attachment to certain types of software or hardware. For most, this is
usually a crusade against anything that is generally accepted by the
mainstream, and therefore finds easy targets in big business. Current
popular targets are:

  • Microsoft
  • Windows, in particlar
  • AOL

Set against this are a number of “white knights” which the IT “expert”
thinks sets them above the “average” computer user. Popular flags to rally
behind include:

  • Linus
  • Open source in general
  • Apple
  • Web standards (in reality, CSS-frenzy under the guise of web
    standards)

Apple are an interesting case in that they are a very big, very corporate
business who are seen as the “little guys” purely in reflection to
Microsoft.

The characteristics of the zealots are fairly easy to spot for the
general utilitarian computer user. (In this case, a utilitarian computer
user will make purchase decisions based on a lowest cost/hassle equation as
long as the tool they are buying does the job.)

  • A desire to convert others to their cause
  • A desire to actively distribute any publicised flaw in any of the main
    “enemy” protagonists
  • A willingness to overlook the flaws in any of the systems or products to
    which they are emotionally attached.
  • Enthusiasm about new releases of a product range (whether containing new
    functionality or not)
  • A somewhat contradictory willingness to accept that previous versions of
    software were not completely satisfactory, but the latest version is, of
    course, nearly perfect.

The presence of these characteristics leaves me to take a conservative view
of any new software that is recommended to me. As an example, if I hear
“Outlook is rubbish, I’m using XXX now and it’s loads better” I tend to give
it a few weeks and listen out for the telltale “this spellcheck doesn’t work
that well”, “how do you archive old posts?”, “oh no, it’s deleted some of my
e-mails!” calls, and finally the “I’m going back to Outlook because it seems
to work” before I make a change. In fact, looked at it this way, these
zealots can make good beta testers for the rest of us, as long as you listen
to what they *mean* rather than what they *say*.

Personally, I’m not a fan of Outlook, but I’d rather have my appointments
and addresses on my handheld and phone than worry about an e-mail list that
I rarely pay much attention to threading properly. I use Homesite (quite an
old version) for most of my development work despite the fact that many
others around me have gone from “Homesite’s rubbish because…” (“it’s
Macromedia”, I think they never say) to “PHP Edit is great…” to “PHP Edit
doesn’t work that well…” to “I’ve gone off PHP Edit”, then rinse and
repeat with the next IDE.

So, I’m going to stick with my bug-ridden, virus-vulnerable Windows XP and
leave the latest “release build” of “Emporers New Clothes ver 0.99412.b”
until people stop having to spend 2 days to get things to work before
they’re any use. If the Apple zealots want to pray at the shrine of Jobs,
then they’re welcome to, and if one day Mac’s become as powerful for the
price, as expandable, and have the same range of affordable software as a
PC, and I can e-mail attachments to people without them going “WTF?” then I
might buy one. (Incidentally, I used a Mac for three years before I even saw
a PC.) Oh yes, and they have to get rid of the bouncy toolbar…

PHP 5 and the magic __toString() method

Working with PHP 5 I thought the ‘magic’ method __toString would be a really great way of substituting objects for simple data types. That seemed the whole point of good object oriented design, so I could change the way a piece of data worked without having to track down every call to it and change that. Unfortunately, it seems that __toString() is only called if used directly from an echo or print statement. Now: what is the point of that, really?

I can see that we don’t want it called by default everywhere, otherwise there would never be a way to grab a reference to an object. But surely there are a large number of ‘string only’ functions that could invoke it? If I set up an object called $parameter with a method of __toString() and call it in code with echo “This is the value: ” . $parameter then there really can’t be much else I’m doing with it than using it as a string. If the toString() method isn’t called then, why do we have it at all?

It seems that this may be another case where PHP’s lack of strong typing is severely limiting it’s future development as a robust object oriented language and the __toString() implementation smacks of a half-implemented hack to me.

PHP 5 magic __toString() method on the Zend site

Annoyed with ‘modern’ internet technology

I don’t know if it’s just me, but it seems that every innovation or change in working practice in the internet industry seems to result in tasks taking more work and costing more money.

CSS is a big gripe

Supposedly, with the introduction of standards and the death of Netscape as a popular browser, the development of websites was going to be much easier. We could just build to standards and CSS and everything would be fine. And of course, CSS separates style from content so it’s so much cheaper to update a site. Except, it never is.

Instead, it seems to take a developer twice the time to build and test a CSS template and entail twice as much moaning. “Bloody IE 5 on the Mac” (hailed for its standards compliance by the self-proclaimed “Web Standards Project” when it was released) is a frequent cry heard around the office. Now, it seems, it’s not standards compliant enough. And nor is Internet Explorer 6 because there are some features in CSS 2 that you can implement in Safari that we must have for this page blah blah blah. Or, of course, “we can’t build that design in css because the technology doesn’t work like tables”. If they’d leave off the words “like tables” then I’d agree with that statement even more.

Caveat: I’m all for structured markup, but what replaces a hack has to be better than the hack itself. It’s like inventing a paint-pot tin opener that opens paint-pots less efficiently than using a screwdriver, but using a screwdriver to open a paint pot isn’t ‘semantic’.

.Net is another big fat white elephant

“Object-oriented code reduces development time”. Maybe that’s true, but it seems to lead to hammers being used to crack walnuts. It recently took a developer I know with 5 years VB experience and 18 months of .Net experience nearly a day to build an e-mail form. (Just the back-end – the front-end had already been built, in about the same time in CSS, of course.) I’m pretty sure I could build an e-mail form in ASP or PHP in about 10 minutes. I could probably do one in Perl quicker than that, and I don’t know Perl. (I do know .Net, so that shows something.)

Personally, as a programmer, I like C# a lot, but as a businessman it seems to take five times as long to write something relatively simple. I can’t see how this is progress – okay, a PHP script might be a bit more buggy (although that depends to some degree on the programmer) but in all the time saved I think you could afford a lot of time for testers, and probably spend the same again fixing the bugs.

There are probably a dozen more “modern technologies” out there that could do with slagging off, but CSS and ASP.Net are getting on my nerves enough for now.

Rome: Total War. What a game!

I was lucky enough to get a copy of “Rome: Total War” (“RTW”) for Christmas and, as an addict of “Medieval: Total War” (“MTW”) I was too excited even to install it for a couple of hours. (Actually, I rushed to conquer Europe in the medieval game; I knew there’d be little chance of playing it for a while once I started on Rome.) I’ve really enjoyed Time Commanders on BBC2 and now the UKTV Documentary channel and could see the obvious improvements in graphics that RTW would have over MTW. Installing the game, even on a reasonably old Athlon 2000XP with a GeForce 5200 card, and the graphics seem to have improved on the television version.

What’s really surprising, however, is the extra level of realism in the map mode. In a complete departure from MTW, armies don’t occupy provinces (think of Risk or Diplomacy in the board game world) but have physical locations on a map. When armies clash, they have to do it very locally and the battlefield is a close match to the landscape that is shown on the large-scale map.

The battles are absolutely superb. They run at a much brisker pace than MTW: troops really can charge, cavalry can charge at a very fast speed. If you’re not careful your armies can get into a lot of trouble very quickly. Attacking towns is also much more exciting as there really are streets and buildings to run through, making troops suited to an outside battle completely inappropriate to urban fighting. Siege weapons are also very impressive as you watch enemy troops being smashed across the landscape.

I’ve only made it part way through the game so far, having invaded most of Gaul (and vanquished them completely) and part of the way through Spain and Germania. The Britons have also decided to have a go, which is a BIG mistake! One of the problems with the gameplay in MTW was that once you reached a certain size of domination there were very few variations in gameplay. The battles got bigger, but that just made them longer and not necessarily harder. It was just a case of building more advanced troops and buildings and keeping the population happy as your expansion trundled on. This has obviously been thought about with Rome as you start off as one of 4 Roman factions (including the Senate) and are pretty much off conquering Europe whilst the other non-senate factions do the same in other directions, all as one big happy family. At some point, however, you get a bit too powerful and, in order to win the game, need to take on the Senate at which point it’s Roman against Roman. This is going to be very interesting indeed: in the early stages of the game you tend to have a limited number of forces but, unlike MTW, they’re pretty disciplined to start with and you can often fight off a rebel or barbarian army of twice the size, with some good generalship. Fighting against Romans, though, is going to mean some very hard battles.

There is also more of a focus on the individuals who make up your generals and governers, all shown within a family tree. These are in short supply so you need to guard them well and, during the early phases of the game, they cause some barrier to expansion (someone’s got to run the place, after all). As a result, you pay more attention to their development than in Medieval. They also pick up more complex traits, including assistants (‘Retinues’) based on their capabilities. E.g. after some success with Assassins my faction leader has picked up a reputation as something of a ruthless killer.

It would be easy to go on about what’s great about this game. So far as I have found, the parts of the gameplay that don’t seem quite perfect are a) there’s still a limit on the number of armies on the battlefield (I was hoping for a Time Commanders style 20,000 army but the limit isn’t much higher than MTW was. 16 units in MTW, 20 in Rome.) and b) there are some qualities of cities that you can’t really do anything about, especially ‘Squalor’ (to spell it properly). This seems to come about by itself despite attempts at installing sewers, public baths etc and contributes a large amount to a population’s unhappiness. It may be historically accurate, but it’s not very satisfying to not be able to run your city properly.

“Rome: Total War” is a total life-eater, and an immense achievement. I really don’t see where they’re going to go next with the franchise, so this one really needs to be bought now.

Rome: Total War official site

Rome: Total War strategy guide on Gamespy

Buy Rome: Total War on Amazon