Saturday, June 26, 2010

When tests go brown

by Richard Vowles

So I'm at Citcon 2010 in Wellington - and its after a morning session around BDD and Fit style testing that I'm writing this. People in the discussion use all sorts of frameworks - Cucumber, WebRat, Concordion and of course myself using easyb.

One of the interesting discussions I had last night was with Nigel Charman - part of the impetus behind the recent changes in easyb that I have done around turning it into a parse/run (instead of just run/evaluate). Nigel posited that they needed precondition checks - a third state basically that said that this test doesn't actually meet the qualifications required to run. Now you could just fail here - but that doesn't actually tell you anything, normally a failing test implies incorrect code, but in this case the code may be correct, but the data is wrong - so this mornings discussion further clarified that typically preconditions are around data being wrong or systems being unavailable. And knowing that separate from a failing test is a useful state.

As it turns out, the latest version of Junit (4.8.1) has an assume style clause [LINK] which supports the concept, but still only has the red/green colours. What I'm more interested in is reporting on it.

What does this have to do with easyb? Well, easyb also doesn't have this concept - and recently an issue was filed requesting shoulds be added to the given and when clauses (e.g. given "account is in arrears", { account =  getAccount(1234); account.inArrears().shouldBe true }. I accepted the request but said it should be in a plugin as I don't think it fit with the use of should and the concept of a failure. Now I understand why I am unhappy about it being there, and particularly I understand the pain this person is actually having.

So perhaps its time to revisit this particular issue - should easyb support another state - perhaps "brown" whereby preconditions or assumptions about the state is not met. This should be reported on to allow for dealing with in another manner.  I'll take it to the dev team and see what they think.

Tuesday, June 15, 2010

Goodbye, Java Posse

by Richard Vowles

So I can pretty much say I have listened to all the episodes of the Java Posse - I came in a bit late in the peace - around 150, but I went back and downloaded them all and they entertained and informed me. But now its time to stop - and I had a lot more to say (thats what a blog is for right?), but really, Joe - you have spoiled it so badly it is no longer listenable.

Dick, Carl and Tor, thanks for the good times. Good luck to you - I hope you keep enough of your loyal fans to keep it interesting for the next five.

 

Thursday, June 10, 2010

Shaft me, I'm an iphone user

by Richard Vowles

Disclaimer: I believe the Cult of Apple has fractured, the Cult of Mac and the Cult of iPhone. There is an overlap, but many Cult of Mac people are deeply, deeply embarrassed by Steve Jobs.

So, why am I bothering posting this. I suppose its because I still can't believe that people can be so utterly stupid to consider using iPhones or even upgrading to that silicon turd, the iPhone 4. And I think I now understand what is behind the Jobs machine.

So, in his latest round of bizarre, Steve Jobs is banning pornography on the iPhone. Oh wait, no, he is "banning" pornography from iPhone Apps. Pornography will still be freely available from Safari, where most of the porn is anyway and so you can still see it on your iBone or iPad. Its not about his kids, even saying that is laughable. So its clearly not about pornography, per se - in reality, I don't think Steve has a problem even gonzo porn.

Consider common sense for a moment - there are a lot of other ways the iPhone team could prevent you from getting porn, parental locks on phones, categorizing iphone apps, getting Norton to get their fantastic (on Windows) Online Family product sorted out for Snow Leopard and available on iPhone/iPad among other things. But no. Its not about common sense. No, this faithful reader (yes, singular I'm sure is appropriate Mark) is not about porn, this along with all the other stuff (you can't show Ads on the phone if you also make a phone os, programming in Objective-C, and the list goes on) is simply about one thing.

iPhone/iPad users - Steve Jobs is using you for his personal pleasure in the most dubious way modern technology can provide him. Thats right, he knows he can make you bend over and shaft you again and again and you will take it and come back for more. You get drip fed features other phone vendors have had for years in hardware, and then other important liberties you simply wouldn't stand for having taken away from anyone anywhere else in software, and you take it. You beg for it. And Steve is clearly getting off on it, because you deserve it.  He knows it, every person who things you are a fool knows you deserve it.

The only iPhone worth having is a jailbroken one. Those things are actually pretty good!

Thats all, I'm sure I'll post again even if I say I won't so I won't say I won't.

Sunday, February 14, 2010

Maybe not the end of Scala

by Richard Vowles

A little more analysis needs to go into the last post. I perfectly understand there are people out there who like Scala - I don't understand it (why they like it), but they do and good for them. But I think the Scala world is split in two, those who are simply searching for a better Java that is statically typed, and those who actually think Scala itself is a sterling idea.

I think those who are looking for a better Java that is statically typed now have competition in their choices. A language very much like Java, interoperates almost perfectly with Java, can be eased into simply with Java and has a dynamic option if you want it, vs something that is really quite different. I just think Groovy++ will slow down Scala's adoption. People may examine both and decide Scala, I suppose that could happen.

Saturday, February 6, 2010

Will Groovy++ spell the end of Scala?

by Richard Vowles

As much as we all "try to be friends", the successor to Java (and there clearly needs to be one) "battle" between Groovy, Scala and Clojure will IMHO, only heat up this year with the introduction of Groovy++. Groovy ++ adds to Groovy static typing with very little in terms of trade off (meta programming) - allowing mixing of static and dynamic code in the same application. Groovy++ apps are the same speed as Java - sometimes faster, sometimes slower depending on how the problem is expressed. IMHO, Groovy++ is really Java ++ and is thus a natural and easy path for the millions of Java programmers. Groovy not being controlled by the boffins at Snoracle hopefully means innovation in the platform can happen much faster and address real developer needs.

I personally don't see Clojure as a competitor for Groovy, Clojure seems to attract people interested in expressing primarily functional problems and can mix with other JVM languages easily. There is a place for it - I'm pretty sure it isn't everywhere (even though I am sure you can do everything in it) and it does my head in. I like Clojure, don't get me wrong, but I like it in the same way I like a regular trip to the dentist.

Scala on the other hand really decides to do things differently, and as I have said in the Illegal Argument podcast, I don't think its mixing of imperative and functional styles along with its weird, clearly academically experimental syntax will win out. Scala is an academic experiment built and designed by a very clever person. But... It is too different, it doesn't seamlessly interoperate with Java and it lends itself to unreadable code far too often. Clearly some people like it, but I can't for the life of me understand why they do. For me, it doesn't help that the primary Scala book written by Martin just reeks of language arrogance as well.

The argument i hear most often is "well, there isn't really a contender in Java.next for a statically typed language". Well, now there is - well almost - later in the year because of issues around open sourcing code.

Will Groovy++ spell the end of the use-case for Scala? Someone can take the Java spec and pretty much code in Java directly in Groovy++ - you can't do that in Scala. They can then be slowly introduced to type interference and all kinds of other programming concepts. Or they can take it the other way as a dynamic language and be introduced to the benefits of static typing. I certainly think it has a greater chance of supplanting Java than Scala does anyway.

Friday, February 5, 2010

iPhone delusions

by Richard Vowles

Its sad to see Josh Marinacchi go from Snoracle, especially for what reasons that I think of are simply fallacious.

If you haven't read it already, go read his Sun blog.

The argument I think he is making is that 90% of the people out there are essentially stupid and don't care about the restrictions iPhone/iPodTouch/iPodTouch300% (i.e. iPad) put on them. I don't see that demographic. I see the 10% of people who have iPhones as being that special kind of dementia known as Apple-fanboys/girls (you know who you are) or people who think this screen touchy thing is cool and Apple did a sufficiently better job than . That there are 100,000 Applications out there only helps because 80% of them are crap and all but the last 1% are games. Those same apps done with a decent phone platform (like Android, which may suffer from being too open in its App store) can really be quite awesome - as people with jailbroken iPhones attest.

Those who break their phones do so only because they know there is something better. And I think this is where the average iPhone user (not the fan-boys, we know thats an incurable disease) sits, once they know there is something better (and with the latest update for multi-touch in the US for the Nexus One, we know the hardware is better and the software is now at least as good) they will either (a) move when their term comes up to the new cool thing (and all the predictions show Android will be the Smart phone of choice, after RIM with iPhone a 3rd place with its dedicated... fanboy offering) or (b) Apple will now have to catch up.

Yes, I said catch-up. Apple is now behind, those things that Josh says apparently don't matter - replaceable batteries, better hardware, multi-tasking software are all very much visible to the "stupid" people and they make a difference. Everyone else is behind in "cool" but Apple always does cool better. I'm not sure what the iPad is, I'm sure it will sell but I'm not sure I'll have any respect for anyone who actually buys one.

Apple could change a lot of its restrictions - there is nothing inherint in the platform I believe that would stop it from competing with Android. The one thing that Apple really has under its belt is iTunes - the music library is available to people all over the world, not just the US like Amazon's one is. Get that sorted out Amazon.

I buy Mac OS for one reason - I want a good UI (which Windows 7 has IMHO) and a good underlying UNIX style OS (Windows doesn't have). Don't talk to me about Linux - that will never be a desktop OS for anyone other than the truly marginalized.

So if I can conclude - my essential reason why I believe Josh is wrong is simply that the only open phone platform from the ground up, Android is the only one really causing the iPhone serious dents and causing Steve Jobs to get his knickers in a twist. Apple is now behind in software and hardware innovation and with so many phone vendors getting on board, providing access to so many niche markets to address every different kind of phone user, an open and open source platform simply cannot be defeated. IMHO of course. Apple is just digging itself into a worse and worse hole, and the iPad is just a crowning example of the lack of innovation in the last 12 months.

Its just a pity Josh jumped from one dying company to another. I have enjoyed what you have done for JavaFX, I just hope you can make a difference to Palm.

Tuesday, September 29, 2009

Open JDK has a lot to answer for

by Richard Vowles

I have never been so disgusted with a podcast as when listening to the excuses coming from Alex and Joe in Episode 279 of the Java Posse Podcast. If there was ever a clear message from Sun that the value of Java code written and maintained in the future is less than the value of Java code today, this was it.

Alex and Joe seem to believe that since the Open JDK now exists, Sun can sit back and pick and choose from implementations that other people do instead of investing in its flagship product (the one its stock ticker is named after, how ironic). Not only this, but they seem to believe that they can do so and be completely fickle about it. Dick's comment about the JCP I think is superfluous, there is no JCP process for JDK 7 so they are putting it in what they will.

Whether Alex/Joe's opinion are a reflection of Sun's official policy I don't know, but I hope that on purchase Oracle dump this attitude (and anyone who holds it) and puts new life into the language. This complacency is simply not acceptable, you innovate or you become irrelevant. I know that the team have to solve modularity in JDK 7 and that it is a big problem to solve, but the messages that Alex and Joe are sending are completely wrong and they deserve a severe caning from PR. The implication is that while Sun spends its resources on JavaFX, its core language, Java languishes. Borland did this with Delphi and JBuilder and look where it got them! (Borland is now owned by a COBOL company, MicroFocus, Delphi is now owned by a database company, Embarcadero - oooooh now *that* is spooky).

IMHO Scala is clearly an academic dumping ground of ideas and the static camp are using it because they have nothing else to express their needs in. And please don't mention JavaFX. Sun clearly needs new and strong leadership in this team to bring Java forward.

After 24 hours I am no longer angry, just extremely disappointed that this situation has been allowed to develop. If ever there was a reason to fork the open jdk, this is it. Larry, its up to you now.