Java, Scripting, Credentials, Authority, Reputation and Influence…
Hot on the heels of my last blog entry where I wrote about Java versus “languages beginning with P”, comes a post from James Gosling talking about why he decided to create Java rather than a new scripting language. He shares some of his experiences of the inappropriate ways that scripting languages tend to get used in the real world, when a single scripting language is the only tool available in a developers toolbox. For example, fourier transform algorithms getting implemented in PostScript. It’s an interesting post.
Why is it an interesting post? Well, partly, it’s because of his experience in the field of software. To say that James has done more in the area of software than most people, would be a bit of an understatement. So, whether you agree with him not on any particular topic, his experiences are usually worth listening to (and smart people can usually learn something too). In other words, in the field of software, James Gosling’s credentials are pretty impressive. Hold that thought on credentials - I’ll be coming back to it in a minute.
Now, the first comment after James’ post was by a chap called “Obie”. Obie clearly disagreed with James’s post - in fact, he thought it was merely FUD - so I followed the link to his blog to find out more about him and see what else he had to say on the topic. It turns out Obie had a whole post on the topic. He was pretty dismissive of James’s post.
Now with all due respect to Obie, I didn’t find his post persuasive - for two reasons. The first reason was that Obie has fallen for the old “static, strong typing is useless, what you really need is strong testing” argument. The problem with this argument is not that it’s wrong per se, rather it’s that it simply turns out to be wrong in many real world environments. Strong testing is fabulous, no doubt about it: the problem is that most developers don’t have the discipline to write and update their test suites. The consequence is that, in the real world, there actually are benefits to static, strong typing in complex projects. One way of thinking about static, strong typing is as “just another test suite”, except that it’s a test suite developers are less likely be lazy about or subvert. (Update for clarification: I’m talking here about developers who can write great software. If developers can’t write great code, then nothing is going to help them - not strong typing, and not strong testing. Low quality developers produce low quality code. Period. And,just to be clear - no-one would be happier than me, if more great developers truly embraced writing good test-suites for their code.)
The second reason, however, why I didn’t find Obie’s post too compelling is more interesting. It has to do with credentials, and the power they wield. I’m not intending the following to be negative or disrespectiful to Obie, I just think that his blog entry is a good example of the importance of credentials in winning an argument. Obie’s credentials, as publicised on his blog, appear to be that he has nine years of experience in software: it doesn’t say whether he thinks this is a long time, or what his achievements are other than that. So readers are forced to guess at what other things Obie has achieved in his career. My guess (and I accept I could be wrong on this) is that Obie has achieved rather less in his software career than James Gosling has in his. In other words - James’s credentials are almost certainly vastly superior to Obie’s; and if you know anything about psychology, you’ll know that people tend to have a pretty unshakable belief in the value of credentials.
So, the second problem I had with Obie’s post was to do with the fact I wasn’t impressed with Obie’s credentials compared to James’s. What happened was I disregarded the arguments in Obie’s blog I believed to be wrong (the static, strong typing is useless bit), and I didn’t accept the other parts because I believed (rightly or wrongly) that the balance of probability is that James is more likely to be correct than Obie. Obie said that James’s post is “laughable” and that James is just spreading FUD because he’s somehow scared of Ruby on Rails. My response was, “That doesn’t sound terribly likely to me.”
Understanding the power of credentials is an important lesson for people wanting to make their way in the world. Let’s take a popular example - lots of hackers believe that Microsoft software is of low quality. They are entitled to their opinions, and they can have a lot of fun with those who hold similar opinions. The problem is - Microsoft’s software puts billions of dollars profit into the bank for it every quarter. In other words, Microsoft’s software credentials are actually pretty good. So, if you stand up in front of a general audience or write in a blog that your software is much better than Microsoft’s you’re not going to find many people believing you.
The issues of “reputation” and “authority” are a really a big deal in the blogosphere. That is - if you you’re reading a blog entry, how do you know if the blogger is talking from an informed point of view or not? Part of the answer, I think, has to do with credentials - which is why it’s a great idea for bloggers to put up a useful “About Me” page on their blog, so that their readers can see something of the writer’s credentials…
Fragmental » James Gosling Fala Sobre Linguagens Especialistas: FUD? on 18 Dec 2005 at 8:59 pm
[...] O problema é que mesmo que Gosling não tenha atacado mais fundo as novas tendências (talvez ele realmente não queira fazê-lo, ou talvez não queira se expôr, sei lá), um post por James Gsoling é sempre um post pelo Pai do Java, e isso causa reações. Um exemplo tÃpico é esta entrada por Simon Brocklehurst. [...]