Archive

Archive for April, 2011

Finished at Fifty: Is This The Future Abyss That We Are All Looking At?

April 25th, 2011 Comments off

 

@peter_pilgrim: Ow! I watched panorama via the iplayer finished at fifty http://tinyurl.com/3dm2yzn and the future  prospects were bleak

@imccaffery: @peter_pilgrim i know the future is bleak i was on the programme

 

British Television viewers are probably very familiar with Panorama, the investigative journal program on the terrestrial  BBC ONE TV. I watched this program using the iPlayer [sadly only available to the UK - This is the UK link to watch the episode on BBC iPlayer site]. The episode was called Finished at Fifty, and followed four individuals who were aged 50 or over as they attempted to find employment. The 30 minute programme included Lord Digby Jones, a former business leader, who volunteered his advice for free to the four individuals. Some of the advice was about changing career, other advice was to refresh the approach to job hunting, the other bits were uncompromising.

I found this report, Finished at Fifty, to be one of the most alarming looks into UK job market. I found it difficult to understand why people are labelled by business and society finished in their middle ages. I am not old enough yet to be in this upsetting age bracket, but I know plenty of people who are, and also the future prospects for all are being squeezed.

On the one hand, we have young graduates from university, who are struggling to find that very first job and with the other hand, industry is behaving in ageism way. Hence the twitter call in the first section of the article. I tweeted my feelings and empathy about prejudices against older people, and it was Ian McCaffery, one of the individuals from the Panorama report, a former bar manager, who lived in Salford, near Manchester, who got back with a response.

 

I know the future is bleak, I was on the programme – Ian McCaffery,

 

You may wonder what this article has to do with information technology. It all has to do with future technology (#futuretech) and I think it is just plan wrong.

  • Our industry is based on information processing and knowledge workers, if we start to prejudice against older and younger workers, then ultimately we are going hurt our future innovations. We are focusing on a select band of population and that is not morally right or fair.
  • Our information technology is relatively young in comparison to the field of modern civil engineering and even younger than to architecture and medicine, which have been going for thousands of years.  We still do not know exactly how and what we can do yet. Why should we cut our nose off to spite our face? Surely good wisdom and experience has to be great for IT.
  • If older people are going to be treated this way, then it probably means we need to look back to the bad practices of the early industrial revolution of 200 – 250 years ago. Workers had poor rights, conditions and guarantees of employment. Are we in a democracy not repeating this troublesome path with information workers?
  • As science progresses and we are living longer, I think we need to find a way to value experience and older engineers, developers and designers as a asset and not a liability. Our society has to support sustainable employment for all of its people and not just the few.
  • The idea of an exclusive set of only the privileged is a partial reason why so much of the contemporary world is upset with the banking industry in general and the idea of banker’s bonuses for the only very top performers. (Not all employees who work for investment bank get huge bonuses.) Knowledge should not be exclusive to the few, that is why our industry invented open source software and consistently values it
  • On the other hand just getting older is not guarantee for future employment, it should be about continuous professional competence, belief in continual learning and assured delivery of products to stakeholders. I believe those people who want the former should be rewarded. There is nothing in that latter sentence that suggests that younger or older people cannot deliver value.

I believe you can be software developer until you are late in life. Our industry is about learning, let it remain that way please.

JavaPosse Episode 347: Technical Leadership

April 21st, 2011 Comments off

On a much happier note – Yes. You can breathe a sign of relief at this blog entry – I have time to tell you about Episode 347 of the JavaPosse podcast. This was record at the Round-Up 2011, in Crested Butte, Colorado in February. This was the session that I hosted and shared, called Technical Leadership. Jim Hurne, Tomas Stechly, Brian Gray, Guy Pascal-Gascoigne and a few others.

You can go and listen to Episode 347 online at the iLounge or try this German podcast website if your enterprise net-nanny-state thingie at work blocks you. [Businesses should not block twitter any more. Give it up! Everyone is going to be carrying a slate by 2016 so they are going to lose you to social networking no matter what they think they are saving you from. Ah well!]

This session is about:-

  • What is technical leadership?
  • Motivating other developer
  • Coaching
  • Mentorship
  • Brown paper bag sessions
  • Google IO videos
  • Virtual learning in groups
  • What happens if everyone in your company is a senior developer? Huh? How do you technical lead that situation?
  • Getting off my bum (or USA "Getting off your ass!") going to speak to junior engineers or new starters or new project starters
  • How on earth do we build the next generation of great developers?
  • Community leading
  • Delegation of the technical lead position – rotation
  • Organic "event stimuli" leadership versus linear "threat/reward" leadership
  • Collaborating within teams
  • Motivation – how to motivate developers and other team members
  • Difference between a technical leader and a line manager
  • Buffering between the development team, the team lead and senior management, stakeholders

Thanks Dick Wall, for delivering this #JPR11 session earlier to us, and Happy Birthday week!


Deliberate Introspection: Nobodys Fault But Mine

April 21st, 2011 Comments off

 

(PARENTAL GUIDANCE: THE BLOG ENTRY IS FOR THE OVER 18)

Pick A Fight

If a competitor sucks, say no. When you do that, you’ill find that others who agree with you will rally to your side. Being anti-laggard, anti-improvement, and anti-accepting-the-status-father-of-a-quo is a great way to differentiate yourself and attract followers.

 

The song Nobody’s Fault But Mine was an original traditional blues and gospel song from the early twentieth century, it is listed as a negro spiritual as part of the 1924 Cleveland index. In 1976, Led Zeppelin, the progressive rock band of that era of hard rock music, made a heavily modified  version of the song on their album, Presence.

From Youtube.com 74BlackDiamond74 Nobody’s Fault But Mine Live At Knebworth England 1979

 

What really love are the lyrics, where Robert Plant sings his admission to defeat to concede. These are inspired lyrics, and I am unsure if these lyrics are found the original negro spiritual or not. To be honest, I don’t care, because in music it is all about the delivery, passion and the performance.

 

Devil he told me to roll
Devil he told me to roll roll roll roll
How to roll the log tonight
Nobody’s fault but mine

 

These lyrics explains exactly how I feel about life, right here right now, my passion about learning, my acceptance of the Beyond Java on the JVM movement.

Here are the items that I am not apologetic about:-

  • That moving beyond Java pisses you off. That you cannot see the value of Groovy, Clojure or Scala or Visage or another other alternative JVM language.
  • That you have a political agenda that makes you want cling stead fast to backwards compatibility
  • That maybe I appear to you to be behaving like the subject in The Beatles song, The Fool on the Hill; but in actual fact I believe that you should study the lyrics of the late great Michael Jackson: Man in the Mirror
  • That you are incapable about wanting to learn more about functional programming
  • That you think that I am eminently unemployable or unconsultable or uncontractable. I don’t give a fuck, go and find some maintenance programmers if that is your wish. I would rather be on the outside and definitely not involved on your inside.
  • For telling it like it is, and for keeping it real like Sarah Lane does on The Social Hour (that is now a very cool podcast: It is great to hear some female perspectives on this fucking thing we call the information technology industry. Go! Ladies, go!)
  • For being motivational and for pushing innovation, especially on the Java platform
  • For being passionate about Scala, JavaFX or Groovy or any else that I am interested in

And here are the items that I am sorry for:-

  • If I ever let you down with sometimes poor organisation skills. Did you know that multi-tasking is a myth? I read the book, bought the tee-shirt, watched the movie and I know this statement is true.
  • If I ever turned up to work late, missed that meeting that you organised, never paid my respects to your authority. I will do so from now on and put credit in your emotional bank, because everyone needs emotion investment, isn’t this correct?
  • If I never responded in time to solve your request, then it is my responsibility as well as my fault. From now on I will get a set work-item-limit imposed on myself. I will not take on tooi many tasks in fixed time period. In fact I have taken Agility, tasks, and a whiteboard into running my own personal life. It is instantly rewarding, because my memory is not good. Writing down tasks and putting stickies on my personal whiteboard has done wonders for my planning.
  • If I ever failed to live to up your expectations, then you can be sure that I have even higher expectations of myself. I kicked myself even harder and your feedback helped to improve my outlook and shift my gears.
  • If work-life balance got in the way of my passion to serve you then it is because I know that good health and fitness does wonders for performance and the soul. Please, if you not done so, read the book, Rework by Jason Fried and David Heinemeier Hanson and their frank warnings about workaholicism. I guarantee that you will agree with mine and their sentiments.
  • If we in social or working life never got on with each other. Life is like that unfortunately, may be it is just as well. Sometimes working relationships do not work out great, you win some and lose some, we can only to do the best we can in the time we have. Personalities clash I can live it and so can you. Best luck with whatever you do next. Let us just shake hands and move on.
  • If my push for new ideas left you scared shitless about you change then one need not be afriad. After all we are all here for learning. I will take it to you, my teachings of wisdom, at your learning pace from now on, but only if you have an open mind like a parachute, receptive to new ideas. If you don’t have one, then fuck off, because I don’t ever want to be on the laggard (old fart bastard) end of the technological adoption curve. I am fucking serious about this item. So fuck off with your ignorant self, if your heart is truly set on hatred

This is who am I. I am clear. I am transparent. I am Peter Pilgrim. I am rolling with the devil, because we have to move on to groove on. Understand.

Finally another little quote, from Rework, Jason Fried and David Heinemeier Hanson

Workaholics miss the point, too. They try to fix problems by throwing sheer hours at them. They try to make up for intellectual laziness with brute force. This results in inelegant solutions.

There you have it.

ACCU 2011: It’s A Wrap

April 18th, 2011 Comments off

I few shout out to wrap up my time at Oxford last week.

  • Giovanni Asproni the outgoing ACCU conference person. Thank you for accepting my proposal Introduction to Scala. It was an honour
  • Ewan Milne the former Chair of ACCU organisation
  • Terry Neason for all of my presentation, performance and communication advice
  • Kevlin Henney, top consultant and speaker, for attending my talk
  • Rachel Davies, Agile coach for attending my talk
  • Julie Archer for allowing me to see Cherwell night and morning before the start
  • Belinda Wiacek for sorting my conference t-shirt, being a good sport of XBox Connect
  • Micheal Alderson-Blythwell
  • Schalke Cronje for inviting me to dinner at the Plough pub w/ Lisa Cripsin and Steve List
  • Steve “The Doc” List
  • Lisa Crispin
  • Russel Winder, for a the fantastic “Keeping Sending The Message Talk”
  • Neil Wilson, for suggesting the fabulous Mayo restaurant, St. Clements, Oxford
  • Pavol Rovensky, for driving Michael, Richard and I to Mayo and back again on Thursday night
  • Martin Winkler, for providing feedback on my Scala talk
  • Robert Fearn, for providing valuable feedback on my Scala talk
  • James Slaughter
  • Allan Kelly
  • Anna-Jayne Metcalfe
  • Charles Bailey
  • Olve Maudal
  • Martin Waplington
  • Emily Winch
  • Didier Verna for the Commons Lisp tutorial on Friday
  • Bernhard Merkle
  • Frances Buontempo
  • Steve Love
  • Sven Rosvall, for a good introduction in cloud computing
  • Anthony Kirby
  • Andy Stoke, chat about Scala adoption
  • James Byatt, chat about Scala adoption
  • Robert Westwood
  • James Bates

If missed anybody else. I am responsible and I am sorry about that. Thanks to everyone that made ACCU 2011 a great success.

 

ACCU 2011

(right) the very dapper Ewan Milne, former Chair of ACCU and I (left)

ACCU 2011

Painting reserved for £400 went for £725 and Michael Alderson-Blythwell beat John Lakos to it

ACCU 2011

(left) outgoing ACCU conference chair, Giovanni Asproni and (right) his replacement, John Jagger

ACCU 2011

From left to right, Lisa Crispin, Agile Tester extraordinair, her husband, Bob and Steve “The Doc” List

ACCU 2011

Moi

 

My Flickr photo-stream mostly on the ACCU Speaker’s Dinner is here.

And thus endeth my week on Scala

Thanks and Enjoy ;-)

A Week In Scala: Pushing The Boundaries

April 17th, 2011 Comments off

The Java software platform is now more diverse in terms of innovations and what is the next best thing.

I just had brief overview view of the Ceylon JVM programming language. In my own view, this represents more evidence of a sea-change of thinking about Java the programming language.

Figurehead and Leadership

James Gosling was the long-term figurehead for the Java programming language and also the JVM, since 1995. His influence was felt for millions of Java engineers out there, who knew how famous he was and still is, what he did. At JavaOne conferences he was a superhero for many developers.

In the last years of Sun Microsystem’s existence, his influence waned as that company went through financial difficulties. Shortly after Oracle acquired Sun Microsystems in early 2010, Gosling left. He has now reappeared at Google in an employee in as-yet unknown role.

In short, the global Java community lost the influence of a key leader as in the programming language. In fact, Gosling, has gone on record, at this year’s Server Side Symposium Journal to reportedly have said that he no longer cared anymore about Java the programming language. [Gosling said what he really cared about was the Java Virtual Machine]

 

Confidence in Java

On the one hand this can interpreted that Java is no longer relevant. The programming language is relevant, because they are so many customers who are running applications in it today. On the other hand those customers who are running application on systems are no longer dependent on a figurehead.

As a side note, Sun Microsystems always liked to market the statistics: there are billions of devices, mobile feature phones, that run Java, as in Java ME.

The return on investment on Java has been taken and used up. When enterprise first invested into the platform around the turn of the century, having a global figure head, and a team of dedicated people around to help market the Java platform was the next best thing. Businesses understood. They got it. With the Internet generation, the needed a solution that would allow them to write easily server side / enterprise-class applications on commodity hardware. Java programming language applications running on a JVM that abstracted away malloc() and free() and the vendor’s operating system was that solution.

Now in 2011, this ambition has been in achieved, that barn door has been blown off and the horses bolted. Businesses have a great Java EE (or like) applications running now on Java enterprise servers. The money has been made and now what happens next?

Whilst we were all enjoying the rise,rise and rise of Java from the client-side to the server-side in ubiquitous fashions,  we were making good business and money. The majority of us, where happy to accept the lack of innovation in the Java programming language, we accepted the ideas of best practices, and even the mishap of J2EE design patterns.

Some developers were not so confidence in the evolution of Java. That anger or frustration or irritation or curiosity began to appear in open source innovations, such Gavin King’s Hibernate and Rod Johnson, general unhappiness with EJB 1.1, so he invented the Spring Framework from the ideas of dependency injection / inversion of control.

Others like Martin Odersky, though instead of making Java better, rather that they would make a better Java. The Switzerland professor at EPFL came up with a scalable language., called Scala.

 James Strachan wanted a dynamically typed version of Java, instead of a statically typed language. He created Groovy the programming language. 

Charles Nutter already found an external platform like Ruby and thought it would great to port it the JVM. So he got together with Thomas Enebo and created JRuby.

The innovation was a deeper level in to building and designing, or adapting a programming language to supersede the current implementation of Java the programming language.

 

Open Season

 

In a nutshell, I do not think we be worrying about proposals for programming languages appearing on the JVM. Like Ceylon appearing out of the blue, a few days ago, I believe it is all good. With Ceylon specifically, there is no point getting upset, until you see the product and have a play with it yourself. Individually, that is how we all learn any new technology. It is certainly the way I learnt to program with Groovy, JavaFX Script and Scala. One cannot just determine a proper and contrite conclusion on just hearsay or back up an opinion on a someone else’s whim.

There is a sense that with Java the programming language it is not really changing syntactically or improving since 2006, there has been a open ground for other alternative JVM language to enter the mainstream. Developers are now living a diverse dream of languages if they are inclined to do so. In other words, what is your motivation to learn? This is the time to do, because it has never been so colourful and rich.

My own motivation is to get into functional programming, whilst not giving up the object oriented development that I spent over a decade achieving. In 1997 I wanted to become a C++ Guru, because I thought that that was the way forward. I had drank the coffee and tried the Red Bull and vodka. I was going to be the Standard Template Library king and be a generic programming wizard. Of course, my world, it changed. In 1998, I attended a Java programming course and learnt something completely different. During the course, I had decided that there would be no more malloc and free if I could help it, that garbage collection was here, I need required a nascent collection library to write software and a byte-code executor, a virtual machine, portability, networkability and security. Great! Java was the future. I knew absolutely where my programming destiny was going into the next millennium.

By 2010, I already knew that my love affair with Java programming language was diluted. I still have a great respect for Java the programming language, the enterprise side, and I accepted many of the warts. However I have expanded to other possibilities beyond Java on the JVM.

For all of our continual learning, change is normally a good think. It enhances our professional competence, re-energises our brains. It prevents us from falling in to the trap of the status quo.

 

Politics

 

There is one other factor that is needs to be address in pushing the boundaries. The long wait for Java the programming language to change fundamentally, have allowed several providers to attempt to challenge Java. The success of Java was its own ability to be attractive, an instant-win, and emotional future value.

Most of the alternative JVM languages, which I have encountered, have been created through academic interest. Ceylon is perhaps one proper example, of commercial business, RedHat, attempting to go for the juggler with a language supported by a business. JavaFX Script was another example, of course, created by Sun Microsystems, 2008.

Watching the massive investment of technical folk and engineer into JavaFX Script 1.x in the years 2007 to 2010 gave a clue to how much of barrier to entry writing a popular and adopted language really it is. In short, as Bruce Tate also wrote in his book, Beyond Java, any new language needs an active community. There are no guarantees from a language design that community will follow and then adopt it without an X factor appeal. Such a language created by a commercial entity needs to have certain guarantees and essential wins. In other words, throwing the code simply over face and slapping a badge of proxy open source is no way near enough to a mark of quality and success.

It takes a long time to build an active community. In terms of Java the platform’s case, including the programming language, it has take on all the time from 1995 to now, which makes me doubtful that a new language can achieve the same success in a much shorter span without political manipulation.

This has not been lost on those who might have a political agenda. Whatever we do, we must aware of that business agenda. We must ask why they are introducing this technology? What do they really want to a achieve? What is the future value-add? Is this new language going to provide genuine benefits? Or we can ask that could elicit negative results. What are they afraid of? What are they attempting to protect? Is there a smell of vendor-lock-in or a walled garden?

In this regards, James Gosling, was massive advocate for the Java programming language and therefore now that he longer cares about Java the language, he will be missed by millions, directly and indirectly. That is a shame. It will be up to graceful leaders in the other language communities to lend a hand and be also, sometimes, watchful.

 

 

AudioBoos

 

Listen!Listen!

Thanks for reading and listening

The number of Java developers according of Evans Data Corp from 7 May 2010.

A Week In Scala: Pushing The Boundaries

April 16th, 2011 Comments off

The Java software platform is now more diverse in terms of innovations and what is the next best thing.

I just had brief overview view of Ceylon programming language. In my own view, this represents more evidence of a sea-change of thinking about Java the programming language.

Figurehead and Leadership

James Gosling was the long-term figurehead for the Java programming language and also the JVM, since 1995. His influence was felt for millions of Java engineers out there, who knew how famous he was and still is, what he did. At JavaOne conferences he was a superhero for many developers.

In the last years of Sun Microsystems, his influenced waned as that company went through difficulties. Short after Oracle acquired Sun, Gosling left. He has now reappeared at Google in an employee in as-yet unknown role.

In short, the global community lost the influence of Java key leader as in the programming language. In fact, Gosling, has gone on record, at this year’s Server Side Symposium Journal to reportedly have said that he no longer cared anymore about Java the programming language

 

Confidence in Java

On the one hand this can interpreted that Java is no longer relevant. The programming language is relevant, because they are so many customer who are running applications in it. On the other hand those customers who are running application on systems are no longer dependent on a figurehead.

The return on investment on Java has been taken and used up. When enterprise first invested into the platform around the turn of the century, having a global figure head, and a team of dedicated people around to help market the platform as the next best thing. Now in 2011, this ambition has been in achieved, that barn door has been blown off and the horses bolted. Businesses have a great applications running now on Java enterprise servers. The money has been made and now what?

Whilst we were all enjoying the rise,rise and rise of Java from the client-side to the server-side in ubiquitous fashions,  we were making good business and money. The majority of us, where happy to accept the lack of innovation in the Java programming language, we accepted the ideas of best practices, and even the mishap of J2EE design pattern.

Some developers were not so confidence in the evolution of Java. That anger or frustration or irritation or curiosity began to appear in open source innovations, such Gavin King’s Hibernate and Rod Johnson, general unhappiness with EJB 1.1, so he invented the Spring Framework.

Others like Martin Odersky, though instead of making Java better, rather they would make a better Java. The professor at EPFL came up with a scalable language. James Strachan wanted a dynamically typed version of Java, instead of a statically typed language. Charles Nutter already found an external platform like Ruby and thought it would great to port it the JVM.

The innovation was a deeper level in to building and designing, or adapting a programming language to supersede the current implementation of Java the programming language.

 

Open Season

 

In a nutshell, I do not think we be worrying about proposals for programming languages appearing on the JVM. Like Ceylon appearing out of the blue, a few days ago, I believe it is all good. With Ceylon specifically, there is no point getting upset, until you see the product and have a play with it yourself. Individually, that is how we all learn any new technology. It is certainly the way learnt Groovy, JavaFX Script and Scala. One cannot just determine a proper and contrite conclusion on hearsay or back up an opinion on a whim.

There is a sense that with Java the programming language not really changing syntactically or improving since 2006 there have been a open ground for other alternative JVM language to enter the mainstream. Developers are now living a diverse dream of languages if they are inclined to do so. In other words, what is your motivation to learn? This is the time to do, because it has never been so colourful and rich.

My own motivation is to get into functional programming, whilst not giving up the object oriented development that I spent over a decade achieving. In 1997 I wanted to become a C++ Guru, because I thought that that was the way forward. I was going to be Standard Template Library king and be a generic programming. Of course, it changed. I attended a Java course and learnt something different. No more malloc and free, garbage collection was here, a nascent collection library and a byte-code executor, a virtual machine, portability, networkability and security. Great! Java was the future. I knew absolutely where my programming destiny was going into the next millennium.

By 2010, I already knew that my love affair with Java programming language was diluted. I still have a great respect for Java the programming language, the enterprise side, and I accepted many of the warts. However I have expanded to other possibilities beyond Java on the JVM.

For all of our continual learning, change is normally a good think. It enhances our professional competence, re-energises our brains. It prevents us from falling in to the trap of the status quo.

 

Politics

 

There is one other factor that is needs to be address in pushing the boundaries. The long wait for Java the programming language to change fundamentally, have allowed several provider to attempt to challenge Java. The success of Java was its own ability to be attractive, an instant-win, and emotional future value.

This has not been lost on  those who might have a political agenda. Whatever we do, we must aware of that business agenda. We must ask why they are introducing this technology? What do they really want to a achieve? What is the future value-add? In this regards, James Gosling, was massive advocate for the Java programming language and therefore now that he longer cares about Java the language, he will be missed by millions, directly and indirectly. That is a shame. It will be up to graceful leaders in the other language communities to lend a hand.

 

 

AudioBoos

 

Listen!Listen!

Thanks for reading and listening

A Week of Scala: Historical Trip Down Memory Lane

April 15th, 2011 Comments off

 

My week of Scala continues at the ACCU 2011 in Oxford. I will be here, incidentally, until Saturday lunchtime. At least that is the plan.

The Stream

First let me add some record of tweet to my presentation yesterday. You can also download my ACCU 2011 Introduction to Scala presentation direct from XeNoNiQUe. Otherwise play the Scribd version, at least that will work iOS devices including those tablets you all love to play with.

@ewan_milne: #accu2011 Proof that Scala is the future: RT @peter_pilgrim: Right then. My second day at #accu2012 can properly begin now.

@gmtng: just favorited your tweet: As promised My latest SlideShare upload : #ACCU2011 Introduction to Scala: An Object Functional Lang…

@AnthonySterling: RT @peter_pilgrim: @AnthonySterling Yes Slideshare conversion is broken. Download my "Intro to Scala" PDF directly http://is.gd/scalaintro

@alewark just favorited your tweet: As promised My latest SlideShare upload : #ACCU2011 Introduction to Scala: An Object Functional Lang… http://slidesha.re/hufsPG

@AnthonySterling: Aww, what a shame. It appears @peter_pilgrim’s "Introduction to #Scala" slides are borderline useless on @slideshare. http://is.gd/L77ouo

@jezhiggins just favorited your tweet: #accu2010 unfortunately slideshare messed up its view w/ the colours. Download my Intro to Scala PDF directly

@richardfearn just favorited your tweet: Audioboo: ACCU 2011 Introduction To Scala: We Past The Point of No-Return http://boo.fm/b329633 #accu2012 #scala #adoption #beyond #java

@richardfearn just favorited your tweet: #accu2010 unfortunately slideshare messed up its view w/ the colours. Download my Intro to Scala PDF directly

@pfriis just favorited your tweet: As promised My latest SlideShare upload : #ACCU2011 Introduction to Scala: An Object Functional Lang…

@patbaumgartner just favorited your tweet: As promised My latest SlideShare upload : #ACCU2011 Introduction to Scala: An Object Functional Lang…

Dear fellows know that you are knocking me out with this stream of consciousness.

 

Beyond The JVM Platform

 

I rediscovered a little gem of book by Bruce Tate, “Beyond Java: A Glimpse of the Future of Programming Languages” published September 2005 by O’Reilly. I bought a copy of this little gem, may be in 2006, it was only 180 pages long. Tate’s book pushed the benefits of Ruby the programming language, Rails the poster child of Ruby and continuation frameworks like Seaside for Smalltalk as being the future at the time. He gave a thorough assessment of Java’s history and achievements in the Internet. At around the tenth birthday of Java, I remember going to the most amazing JavaOne conference ever (2005), what a party that was. It was my second ever JavaOne conference and one where Sun Microsystems introduced the JavaCard on all of conference badges for the first time. Tate’s book in the autumn was a sobering come-down.

My overall conclusion after reading the book was that Java was going to be alright still. Although I did not understand then the functional influences from outside the platform like closures and high order methods, I took the book as a certain opinion, I never migrated to Ruby or Rails programming at all. I stayed with the Java software problem.

In 2005 the Java programming language had certain weaknesses in it, generics had just appeared there in Java SE 5 and the enhanced-for loop. All enterprises that I contracted for at the time, where stuck with J2EE 1.4 and application servers, Web Logic 7 –> 8, which had no official endorsement for Java 5. Businesses like investment banks where loath to upgrade to the next technology, because they were restrained by the commercial support and service layer agreements with the suppliers. This is still a familiar trend and circumstance in our industry.

As most of us know the path of Java programming language moved from the client-side to the server-side from 1998, when I first got involved with the Java platform, until 2005. Tate had this to say in his book:

“As the emphasis from Java shifted from client to server, enterprise integration became more important. Here, the partnership of IBM, Oracle, BEA, Borland and Sun, other paid huge dividends”

In 2011, we all know that Oracle swallowed up BEA in 2007 and then acquired Sun Microsystems in 2010. The number of enterprise players is now much smaller, and both IBM and Oracle collaborate on the OpenJDK project as well as being major Java EE suppliers. Java still has a large server-side community. It still is great solution for application server and enterprise development that is if you want to continue with the current solutions.

If you have a desire to push the platform to new limits then the programming language and the current framework may not be enough for you. If you are looking to cloud enterprise solution is going to be hard to find a standard JSR at the moment, if you are looking to go the other way in user interface, mobile or desktop solution there is a multitude of ideas, API, library and frameworks that may fulfil the requirements. The point is that many innovations now are in happening in languages other than Java or that those solutions are wrapping a domain specification language in a host language around Java APIs. (Grails and Spring Bean configurations written Groovy around the Spring Dependency Injection model. Bill Venners ScalaTest is a Scala framework and fluent testing DSL that can be launched via JUnit / TestNG or Maven or Ant or your favourite IDE)

Tate in retrospect managed to predict a few outcomes in his 2005 book. One is the demise of Sun Microsystems. He wrote long before, Jonathan Schwarz changed the NASDAQ stock sticker from  SUNW to JAVA, and the chief executive’s own open blogging, that:

“Sun is not the company that it once was, placing Java’s future in doubt. I’m not saying that Java will disappear, but Sun might. It has lot of cash in the bank, but where is it going to make money? It’s being squeezed on the low-end by companies like Dell, and AMD. IBM is squeezing Sun from above. Sun’s software and services businesses have never really taken off. I think Sun is a ripe acquisition target.”

At the time, Tate was nervous about IBM acquiring the Java brand. He was correct in April 2009. IBM made an attempt to acquire the entire brand. Who knew? Luckily (or unluckily) Oracle acquired the brand. In my opinion Oracle may just have given the Java platform at least another decade of real commercial growth, may be even two. It is always an uncertain business to predict the future. However, in my opinion, which is shared by many others, the whole Java software platform should have a good steward.

In today’s ACCU 2011, there was a great session, which I attended, by Steve “The Doc” List, and he talked about roles in facilitator patterns and anti-patterns. In my view and I am sure you can agree that Oracle cannot be classed as a Benevolent Dictator, rather it is more Qualifier and Dominator. Oracle has started, for the good of the community, to acquire the roles of Articulate (The Java Spotlight podcast and Early Access for JavaFX 2.0) and Converger (IBM and Apple agree to participate on the OpenJDK project, JCP and JDK 7 and JDK 8 announcements pushed, Bruno Souza and Soujava as EC members) and Gladiator (JDK 7 and JDK 8 Java Specification Requests pushed forward, much to chagrin of Apache Software Foundation, Doug Lea, Tim Peierls).

Sun Microsystems did very belatedly attempt to return to client-side, with JavaFX Script 1.x, with the Re-Invigoration of the Desktop theme of JavaOne 2007. My incandescence is not quite red, but orange-amber as my feelings on how the emergence of JavaFX came about. I shall thus summarise: too little and too late; bigger pie than the estimate delivery; strategy and right-timing and there is still time for JavaFX 2.0 success with domain specification languages written in alternative JVM languages.

Tate also postulated the question: Why not just fix Java?

“That would easy if you could pinpoint the problems. If you thought the problems were in the language itself, you could just do some major surgery and offer a new version of Java. That’s easier said than done. Sun has been very careful to preserve backward compatibility at all costs.”

Sun was conservative in order to protect customers. I also agree that is a super strategy in comparison to the combatant approach taken by Microsoft. History has shown Microsoft will dictate over the experiences and requirements of its customers. We know best is the mantra. Microsoft wholesale deprecated SilverLight, changed Visual Basic from version 5 to 6 and then forced customer to change source code by changing the languages of C# 2.0 to 3.0 to 4.0.

There is another side to this, I think customers need to be told sometimes to upgrade or update its applications and systems. Even Microsoft itself attempted to put down Internet Explorer 6 with a massive multi-million dollar global advertising campaign a year ago, telling us to upgrade to Internet Explorer 8. The issue for Microsoft is that it has earned the mistrust of millions of users as well as thousands of companies for just getting the product wrong. Windows Vista uptake was never as good in satisfaction, because of the troubles with driver incompatibilities, poor start-up times, and user experience expectations. In comparison to the upgrade from Windows 3.1 to Windows 95, Windows Vista was a poor imitator. Albeit, Windows 7 is a much better operating system, there are still problems for businesses concerning drivers, hibernation and one sometimes still cannot deliberate and summarily kill any process on the machine. Microsoft has to it’s credit pushed the technological curve through zealotry. Sometimes you just have to do it, because the client will never upgrade and you can never get to the next level of evolution, and therefore it is time, sadly, for laggard enterprise to go take a hump. I am rather sure you can personally name a few concerns that are like that: just hanging on to the older stuff because it can and it will

Much of the knowledge we have now, was the same when Tate wrote:

“Many languages have trumped Java technically, but they still failed. Betamax, too, was technically better than VHS. The biggest factor of the equation is social. Without a credible community, there can be no success.”

The Groovy community is a great example of this social aspect and interaction. Paul King in Australia has reported that he personally has helped more businesses in get up to speed in Groovy and Grails in over 100 projects. The idea of introducing Groovy in small tasks in the beginning and letting developers do experiments in projects in areas that do not affect the critical-path of business, like administration, building a web site to back an database table, or tidying up a build operation allowed developers to gain confidence. It would be and should be the same for Scala adoption. Start small, gain trust and confidence. Keep going on.

“Unless it is a disruptive technology, it has hard to see the next major programming language coming from a commercial vendor. There is just too much fear and distrust among the major players.”

Tate is this case has been proven largely and fuzzily true. You need to learn Java the programming language if you going to program an Android mobile phone or tablet. Google never introduced a new programming language for Android. They could have or some people might have said that they should have. However they wanted knowledge transfer and easy access to the market mind share of the engineers, the 9-10 millions Java knowledgeable people on the planet: developers, designers and architects. It is a number game after all. You only need less than one percent to look at your new operating system / mobile solution probably to be affective. They rather assimilated the programming language of Java like the Borg and transcribed language’s semantics and syntax into their own Dalvik executable instructions.

Customer business can be laggard about holding on applications written in Java the programming language. These enterprises should know that some of the real innovation is attracting the best engineers to look beyond the language. There are examples of projects in Scala, JRuby, Groovy and Clojure etc that show how we can better write software of the future.

Tate had some metrics for Java’s successor, namely:

  • Dynamic typing for better productivity
  • Rapid feedback loop
  • User interface focus to provide, rich environment for building user interfaces
  • Dynamic class model, ability to discover and change the parts of a class at runtime
  • True OOP provide a conceptually pure implementation object oriented programming with no primitives and a single root for all objects
  • Consistent and neat – the language should code that’s clean and maintainable
  • Continuations – the language should enable important higher abstractions like continuations

Scala the object-functional multi-paradigm programming language, in the year 2011, meets Tate’s requirements from 2005, except for dynamic typing and adaptable class model. Scala instead is statically typed and therefore is safe and performant as much as possible to writing an equivalent application in the Java programming language. Scala does not provide dynamic classes, it has traits (mix-ins) and composition.

Scala also has a doorway into the funky new world of functional programming. Tate had not the foresight in 2005 to see that the under-utilisation of CPU cores is now expected to cause the industry major concern in this decade. He is also could not see the wider burgeoning interest in domain specific languages and writing control abstractions for library users.

Even if Scala is not the next Java successor, there is suddenly a great interest in interoperability of languages on the Java Virtual Machine. How on earth are we going allow these languages to call each other methods or routines, or even now compile and build together? How can also ensure that these language, the dynamically typed one, are going to be performant across multiple CPU cores?

We are going to find out however, it is not a question of if and but when, because the major innovators are pushing the platform forward. Suddenly every engineer or rather elite engineer or those that consider themselves to be in the elite cliqué are wanting to be  language designers. The class and the form of these language designers will tell in time, I suspect if you starting now you have an awful long way to learn to be good one. If you think are then probably I am writing to a child prodigy or somebody help me out here. Designing a language is hard enough, designing the next great successor language to Java is an even tougher task.

I trust in Professor Martin Odersky in his scalable language idea as a probable answer and other languages are welcome as well. As I said in my talk on Wednesday morning, we are going to be drinking a lot of coffee beans and the rollercoaster ride in the object / functional space is going to be rough, we need a good captain and sailors, and seat belts. No matter whatever will happen, I have two predictions for the Java eco-systems.

  • The interest and adoption of alternative JVM languages will increase in pace, as long as Java the programming language is constrained backward compatibility and the innovators in the other languages keep pushing the envelope ahead of Java.

 

  • The amount of new ground-breaking applications written from scratch purely in the Java programming language starts to decline from this year (2011) onwards. In other words if there are truly great killer applications / application frameworks written in Java from this point onwards, they will cater also for alternative JVM language too.

 

For now I bid you adieu.

A Week In Scala: ACCU 2011

April 14th, 2011 2 comments

It is Wednesday 13th April 2011 and I am here at the ACCU 2011 Conference again in Oxford, England. It is great to back. The last time I was in Oxford for ACCU 2008, I gave a talk on JavaFX 1.1. This morning, I presented An Introduction to Scala: The Object Functional Programming Language. The responses have been very good so far:

@devpg: Listing to ‘Introduction to Scala’ at #accu2011 reminds me to use it in a project

@rachelcdavies: @peter_pilgrim enjoyed your talk. I’m new to Scala and this was just right for me. #accu2011

@TimPizey: Installing Scala after lightening introduction by Peter Pilgrim at #ACCU2011

@matty_jwilliam: @peter_pilgrim great talk today. Tonight has been all scala (and beer) #accu2011

@gasproni: @matty_jwilliams: @peter_pilgrim great talk today. Tonight has been all scala (and beer) #accu2011

@TimPizey: Day 1: java > 1.4 is a mess and is going to get worse, move to Scala or other JVM language as soon as you can. #ACCU2011

@russel_winder: All the JDK8 stuff is already in Groovy and Scala. #accu2011 #groovy

@ewan_milne: #accu2011 Intro to Scala – here’s the Fibonacci algorithm!

@lisacrispin: RT @peter_pilgrim As promised My latest SlideShare upload : #ACCU2011 Introduction to Scala: An Object Functional Lang… http://slidesha.re/hufsPG

The attendance was fairly good. There was no pressure then: Rachel Davies (agile coach), Kevlin Henney (consultant and top speaker) and Ewan Milne (ACCU Chair) were in attendance. The competition was Scott Meyers (C++0×10) and Jutta Eckstein (Agile software development). My Scala talk did not do too badly with this quality of simultaneously talks and their respective speakers.

I was pleased with the face-to-face feedback as well. Kevlin Henney was impressed by the description of the Scala type reference engine. Ewan liked it too. Delegates Michael from England and Khalid from Pakistan/Norway enjoyed the overall presentation for being just enough technical detail to be inspired to try Scala.

Here is my entire slide deck as promised on Slide Share:

You can download my PDF slides directly from XeNoNiQUe. I attempted to share with SlideShare web site however the conversion process they used washed all the nice beautiful colours on my slide deck. Boo!

Enjoy Winking smile

(I welcome feedback of any sort. If you want this talk for your business, especially in London then hook me up)

This is My Week of Scala. You get out of the task exactly the proportion of result that you put into the plan. Next episode I will have more aggressive discussion on Beyond Java and stab at the history of how we got here.

Listen!

Post addendum 1

Dinner was great. I joined fellow ACCU 2011 speakers, Schalk Cronje, Steven “Doc” List and Lisa Crispin for a short stroll to the nearby Plough pub, which is about 10 minutes walk from the Barcelo Hotel. The ACCU brings a different crowd. I was the first time I met Steven “The Doc” and Lisa. Steven ( Thoughtworks) had this great idea for Source Mastery Quest for gaining true experience and skills through crowd sourcing and peer recommendation and certification. Lisa talked about her experience in software development in Austin, Texas in the early 1980’s where everybody wrote the same code in the exactly the same style. Being an Agile tester she reminisced the old way was what we should be doing now in software development.  Shalke (McAfee) I had met before at ACCU 2008 and other conferences, he tends not to do so much C++ development now these days. I think it is great to networking with new people, swap business cards and share ideas. The best ideas are those sometimes we have in those corridor moments, or conversation over a beer or glass of wine.

Post addendum 2

I managed not to sleep again. Woke up at 2:30AM because my iPhone buzzed. Oh yes. I had put in to a schedule “Richard Bair at the Silicon Valley JavaFX User Group”.  Eight hours behind in time zone. I did watch the UStream.TV feed of the talk. JavaFX 2.0 is coming along nicely, the binding API worked very well. I can see this was true through the live coding demonstration on Richard’s MacBook Pro, and I have a good feeling about the new JavaFX Bean property models. The layout API is where action is needed next, because in the early access I have found it less understandable in comparison to the JavaFX Script 1.x releases. I am quite sure the FX SDK team are working hard on it as I type. Shout out to Stephen Chin and Jonathan Giles.

Insanity WordPress Fixed “Call To Undefined Function Curl_Init”

April 4th, 2011 Comments off

This lunchtime I upgraded WordPress on the server to 3.1 version

I had a lot of trouble getting WP to Twitter plug-in into work out of the box. I though it was a chroot Apache problem, a missing executable, or some file permission issues with Ubuntu Linux. It was none of the above.

This was a configuration of PHP5 and CUrl module. Essentially I solved this by using Linux administration commands. Become root.

Make sure curl installed

apt-get install curl

Make sure php5-curl is installed

apt-get install php5-curl

Make sure the wordpress area is locked down with permissions

chown -R www-data:www-data /opt/wordpress

Set the permission for wordpress directory so that you as the SysAdmin can upgrade to next version

find /opt/wordpress -type d -print | xargs chmod 775

Restart the apache server with wordpress

/etc/init.d/apache2 restart

Go to the WP to Twitter settings page, perserver with the security keys. Verify that your Twitter consumer keys and my application settings are in agreement. You might have to restart Apache again. It does work. See also here.