Archive

Archive for the ‘ACCU’ Category

ACCU 2013 Scala in the Enterprise Talk

September 3rd, 2013 Comments off

My Predictions

InfoQ (and my good friend Floyd Marinescu) has published my talk from the ACCU 2013Conference in Bristol. I made some predictions to growth of languages of the JVM in 2011. The growth of Scala the programming language is good and yet I see the interest is not quite exploding as I thought it originally would do. I believe this has to do with the disparity of mindshare outside of the JVM, the specialist interest in JavaScript, HTML5, CSS and content around the browser, interest in Android, and other specialists technology. It means that the growth in popularity in Java and the alternative JVM languages has stalled; even Oracle still bandies around the official figure of 9 million Java developers. There is probably an extra grey area of one million Java developers (or rather ex-Java JVM developers, pursing other interests from 2005 until the present). Therefore Scala is a smaller subset. Most Scala developers know how to program with Java even if they have given up on the mother language. I know that there are a rarified few who came to Scala from F#, Ruby and other non-JVM platform development environments.

Impact of Lambdas

Java 8 will introduce functional programming blocks into the mother language, Java, which of course you already know is object oriented in concept. The new concept is Lambdas. Java will have an element of functional programming, but it will not be functional, far from it. For many Java developers, that will be enough. For the minority of engineers who have experienced new ideas ever since Bruce Tate‘s famous foray in his book Beyond Java, this will not be enough. Again this is a prediction that I suppose is fairly standard, those developers will stay with Scala, Groovy, JRuby, or Clojure or whatever suits their fancy. Oh, the term Lambdas is derived from the computer science calculus invented by Alonzo Church, who is famous with Alan Turing for a important mathematical conjecture.

Lambdas will change the game in the Java programming language. The new Java Collection Library, which will embrace Lambdas, will force new library changes for all open source frameworks. As a library maintainer, I think, then, Lambdas force you to evolve your API, rewrite it from scratch, adapt it or let your software degrade and become legacy. Humble library maintainers, however, have a finite amount of time to change. The question is, will they do so?

I believe that Lambdas will be a good stepping stone for learning. It can only help the popularity of Scala and other alternative JVM languages that have had functional blocks for several years already. Lambdas are desperately late to the programming language game and yet the rewards will give Java another bolt of life well to the next decade.

Endpoint

Where Scala goes from here, nobody truly knows and  such a generic statement is too obvious and my intention is not to patronise. The original push for Scala the programming language was that nice cosy feeling of marrying functional programming with object-orientated concepts. The hybrid does actually work, yet criticism still abounds around Scala’s complexity. The advanced Scala practitioners, themselves, have to look at the ease-of-development features and the simplicity surrounding their own library works. One would hope that these libraries can improve and be more relevant for new learners. The name of the game is all about onboarding customers (my own synonym for non-paying developers). The future of Scala is very much dependent on the idea of mindshare. New engineers to the language and ecosystem will have a standard set of questions. They will ask a lot of them: can I be productive in Scala? A yes or no answer suffices here. Will it help me in the future? What is the use of functional programming anyway? Is it worthy of my investment of quality time? I don’t want to bet on the wrong technology, because it is time that I can never get back. As a developer you will have to answer these questions for yourself.

As to prove a point in my paragraph. I, myself, have had to drop the Scala programming ball so-to-speak. I also stopped my JavaFX coding in my free time too for several months. Because I just finished writing a big Java EE 7 book that in reality took all my time. I suspect there are other people who, like me, caught the Scala early interest bug, who also had other necessary distractions. These are deflections from further Scala adoption and from further learning. Nevertheless, I am fascinated with Scala still, because it is one window to the functional programming world without leaving the JVM. I prefer Scala over Clojure: my bag and my football. I do hope to be back at the ACCU 2014 in Bristol with a new Scala talk that raises the bar higher.

+PP+

Categories: ACCU, Conference, Education, Scala Tags:

ACCU 2013 Taking Scala to the Enterprise: Slidedeck

April 13th, 2013 Comments off

Thanks to all of the organisers at the ACCU 2013 and to the people I met at the conference in Bristol. I only spent two days over in the West Country, and they were very enjoyable. Actually, I found the Marriott Bristol City Hotel as a great location, as it was nice to walk [at night] to the restaurants and see more the sites. There is also the river and a small park area opposite the hotel, where one can grab some fresh air. Of course, Bristol is much further away from London than Oxford is and WIFI in an individual hotel room, for a speaker is not free.

The biggest benefit I have from ACCU this year is talking to people about Agile, the industry, the prospects of software development and getting a uniquely British perspective on where we all could be going in the year. I was surprised by the interest of ACCU conference goers into the functional programming movement. Lots of the attendee are well informed about C++ initiatives of Lambdas  in the next upcoming standard. The ACCU audience tends to be knowledgeable about the lower levels of abstraction, which are most of time closer to the metal [the hardware]. A few delegate will definitely written assembler code from the ground up once upon time.

I also have to mention the Bloomberg Game Zone; I had great fun playing Defender, Galaga and Donkey Kong. After 25 years, it was embarrassing to see how bad I have become with Defender, especially. When I was fourteen or so, I spent my youth and multitudes of ten piece coins “getting good”, the planet exploded many times, regularly I clocked over 100,000 points per game, kill scores of Mutants and Baiters. Now I was paltry, I struggled to get over 20,000 points.  Hot Tip: Mr. John Lakos please bring over Mr. Do, Gorf and PacMan arcade consoles to 2014.

Find the slide-deck to my talk on Wednesday 10th April, here:

I must come back to ACCU and do it special on intermediate Scala and Play Framework, something that stretches way beyond the beginner and introduction. We will see in 2014 and beyond.

Special shout-out, in no particular order: Astrid Byro, Phil Nash, Ewan Milne, Brian Marick, Martin Waplington, Schalke Cronje, Russel Winder, Roger Orr, Kevlin Henney, Michel Grootjans, Steve Love, Frances Buontempo, Detlef Vollman, Beth McKenzie, Ann-Jayne Metcalfe, James SlaughterJon Jagger and Kjersti Sendeberg; and finally Julie Archer and Belinda Wiacek.

+PP+

Categories: ACCU, Conference, Scala, technical Tags:

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++0x10) 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.

ACCU 2011 Introduction to Scala Talk

March 28th, 2011 Comments off

Hey All

I will giving a presentation at ACCU 2011 Conference in Oxford on 13th April: Introduction to Scala. The conference takes place in Oxford at the Barceló Hotel on the outskirts of the town. Registration is still open last time I check, so if you want to go then do it now.

I examined the full schedule and I see my talk is first one on Wednesday morning at 11am in Cherwell.

I plan to give a fair robust overview of programming in Scala. It will cover Beyond Java the landscape that we all face, some the ideas on the adoption, where the JVM platform is going. It will be technical and the syntax and concepts of Scala will definitely covered. There will be guide to the functional side of the Scala. Above all I will be stressing the Yoda line: “with great powers, comes great responsibility”.

The ACCU has a long history with C/C++ in the past and the over decades this has been distilled with object orientation, agile development, patterns, and generally best practice for programmers. I was originally a member of ACCU for its C/C++ years and years ago. I moved on as we all do. I moved to Java in 1998 and left C++ behind.

It is good to represent the Java platform again in Oxford and I am looking forward to it.

PS: James Gosling has joined Google: Bang Goes The Drum!