Funny goings on with Eclipse on Leopard

March 28, 2008

Filed under: Java, Software Development — Doug Clinton @ 10:48 am

I’ve just copied my system drive over to a new hard disk and re-booted from the new image and suddenly Eclipse will no longer start up. With some experimenting, I’ve found that using -Xmx768M was causing the problem. If I reduce this to -Xmx512M then it runs just fine.

The thing is, that the only change to the system was booting from a new drive. There’s plenty of memory free but it seems that the JVM is no longer able to allocate more than 512M to the heap. Go figure.

Java on the iPhone

March 17, 2008

Filed under: Java, Gadgets, Software Development, Apple, Mac, Opinion — Doug Clinton @ 10:11 am

Just been listening to the March 14th newscast from the JavaPosse where they spend a lot of, very interesting, time talking about the new SDK on the iPhone and the apparent restrictions in the terms and conditions which prevent people from distributing apps which run on a VM. This would mean that developers could not distribute Java applications which required the VM to be present to run. They discuss a lot of interesting points, and speculate a lot on the motivations, sinister or otherwise, of Apple in deciding to limit developers. Obviously, not being Apple, they’re not able to draw a lot of definite conclusions.

I’d like to offer a different perspective on this issue. As developers, we see the iPhone as a development platform with huge potential. Since the moment it was released, I’ve been wanting to have other apps running on it. It makes a great connected device and it’s easy to compare it with other, open, platforms such as the Nokia N800. However, I believe Apple did not create the iPhone, and are not looking at it, as a device for developers. This is a consumer device, first and foremost. Apple’s priority at all times is that someone who has bough an iPhone, as a consumer, should get the best possible experience all of the time and if that means that developers are left frustrated then so be it.

I think that the directive against VM-based apps it based on this principle. Apple do not want people to come browsing the software on the iPhone store, seeing something they like and then being told they need to download one or more other components in order to get it to run. Or worse, downloading (and perhaps paying for) an app only to find it won’t run because they didn’t know that they needed to download (and possibly pay for) another component before it would run. Supporting this in the iPhone store would mean dealing with dependencies between components and then you get into all the problems of version handling - what happens if I have the Java 5 runtime installed but another app needs Java 6?

Looking at my experience of using a Nokia N800, it was great that it is a very open device and that there are lots of third-party apps for it, but my experience of installing those apps was often frustrating as I needed to locate libraries that those apps depended on and download them separately. Even as a programmer I found it very annoying and tedious. I can well see that Apple to not want that to be the experience of the average user who expects things to just work.

In fact, I would not be surprised if Apple did not take “it just works” as their yardstick for deciding how and when to open up aspects of the iPhone. As the JavaPosse discussed, the delay in releasing the SDK was probably not down to not wanting people to develop for the iPhone, but rather taking the time to ensure that the experience the developers have is a great one which probably meant considerable cleanup of the libraries and tools between the launch of the phone and the release of the SDK. For iPhone users they are going to be even more stringent in applying that principle.

Of course, another aspect of that is that they would want all apps on the iPhone to be as consistent as possible in their look and behaviour. The first part of that is the visual component library which means getting people to use the native SDK as much as possible. The second part is the UI guidelines, but Apple developers are usually pretty good at sticking to those. I have used Java apps on Symbian 60 phones and generally they look and behave very differently from the native S60 apps which can cause a lot of confusion and just be downright annoying sometimes. Again, a situation Apple would love to avoid on the iPhone.

In conclusion, I think that if you take a step back from your developer viewpoint and look at the iPhone SDK and software distribution system from the point of view of a consumer then Apple’s behaviour seems a lot more understandable and a lot less sinister.

Good start to a new year

February 3, 2007

Filed under: JavaScript, Java — Doug Clinton @ 2:05 pm

A month has passed since my last entry. Have I really learned nothing at the office in that time?

Actually, I have been very busy. Last year was a year of consolidation for my small company. We built a good foundation on top of the opportunities we had the previous year and have solidified our relationship with our main client. This year I hope to make one of expansion. Our aim is to really build on that relationship and expand the company from our current 3 people to, perhaps 7 or 8.

I’ve spent a lot of January working on planning out the year and we have a number of potential projects in the pipeline so things are looking good. This means, hopefully, that I can get my head back down into the technology again. We have an interesting project lined up to do with processing Schematron. That maybe doesn’t sound so interesting, but we’re taking a novel approach in order to re-use the platform we build last year and it should be quite fun.

BTW, we’re recruiting. We’re looking for a really good all-round Java developer and also a really top-notch JavaScript person. I know that’s not much of a job description but if you think you might be interested in working for a small, innovative and friendly company in West London then by all means send you CV to <jobs at gsl.com>.

Powered by WordPress