Computers Now Require a Network To Operate.
Have you ever tried running applications on your computer with the network disconnected? Applications on the Mac are starting to malfunction (hang) when a network connection to the outside world cannot be established, particularly:
- PCalc 3, by James Thomson.
(Sorry to pick on you, James! But to be fair, your excellent DragThing 5 doesn't have the same problem as PCalc does.)
Applications on the Mac that rely on communicating to MobileMe services, such as iPhoto and iMovie, or just ping out to the Internet just for the sake of update discovery, such as PCalc, are starting to misbehave as developers no longer consider that computers should still function even if they are not connected to a network. And what I fear is that as more developers use iOS as their platform for starting off some of their brilliant ideas, they soon forget what life is like without a network, particularly on older computers that do not have wireless interfaces as standard. And if and when those skills transcribe to Mac software, users will be at the mercy of developers who don't actually test their software in computers without any network connections!
Of particular worry are applications that "phone home" to check on whether they need an update before they actually start doing the work they are designed to do. EyeTV checks for updates to itself before it opens up its video window. PCalc checks for updates to itself before it allows the calculator window to be useful (because the window is left inactive whilst this check is in progress). And there a lot more applications doing this than I can count. I would argue that this is the wrong thing to do—applications should not go checking for updates to themselves before they start, because, chances are, users want to use their applications when they start them, regardless of what version they are! But more importantly, secondly, when applications do check for updates should be at times of least inconvenience, such as at times when an application is idle, for example. And thirdly, these checks should not be accompanied with dialogue boxes and windows that prevent the application's user interfaces from being blocked. And lastly... before applications go check for updates, they should check that they actually have a network connection, without first trying to access a DNS service! Checking for DNS services is difficult because it ensues that the process may be rather lengthly whilst the application hangs and waits for a timeout (which is avoidable as multi-threaded processes), but checking for an active network interface first is much easier and poses the least disruption to its operation rather than going for broke and failing badly.
If users are having trouble using applications when they are running on computers that are not connected to a network, they should let their developers know, because this is a bug, plain and simple. And it's a bug that should never be allowed to survive, regardless of how pervasive the Internet is in today's computing environments.
I predict that in the future, if this assumption is continued to be practised in new software developments, personal computers will no longer be usable, let alone useful, without a network connection, as developers' software forget to be considerate on how to behave when this critical resource goes missing. And this is thanks to the fact that software development on hand-held computers and laptops may accidentally obfuscate a discipline in testing for the presence of a network since mobile apps expect to be connected to at least one. Once these sorts of tests cease to be of interest in product testing, practices and code that could make it to desktop applications from a mobile application development project are going to cause much needless pain and suffering to end users as this sort of software development issue becomes more prevalent as accessibility to networks become the norm in computing rather than the exception.
—tonza
Labels: developer, networking

0 Comments:
Post a Comment
<< Home