Archive

Archive for the ‘Open’ Category

Build GlassFish 4.0 Snapshots Yourself

March 16th, 2013 Comments off

This post is about building GlassFish 4.0 snapshots release yourself and includes hacks.

I found the official Instruction for FullBuild of GlassFish and then decided to build the server myself. Sometimes, you may not want to wait for the GlassFish build files to be promoted by the team. In this entry, I reference Artifactory as a private Maven repository, of course, you can use something else as well.

Checkout the source code for GlassFish 4.0 yourself from Subversion:

svn checkout https://svn.java.net/svn/glassfish~svn/trunk/main glassfish-main

You need to hack the Maven Settings file for your workstation to exclude Eclipse artifacts.Here is an example of the settings.xml, which I configured.

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0

http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <!--Maven http://maven.apache.org/settings.html -->
  <localRepository/>
  <interactiveMode/>
  <usePluginRegistry/>
  <offline/>
  <pluginGroups/>
  <servers>
      <server>
         <id>ACME-ARTIFACTORY-PRIVATE</id>
         <username>administrator</username>
      <password>password</password>
    </server>
  </servers>
	<mirrors>
		<mirror>
		  <id>maven-central</id>
		  <url>http://repo1.maven.org/maven2/</url>
		  <mirrorOf>central,!eclipselink.repository</mirrorOf>
		</mirror>
	</mirrors>
  <proxies/>
  <profiles/>
  <activeProfiles/>
</settings>

Before we can compile the entire GlassFish code, we need to hack POM files so that they install artifacts into our private Artifactory server instead of the Maven Central.

Add the following Stanza to the POM files in the distribution:

	<distributionManagement>
		<repository>
			<id>ACME-ARTIFACTORY-PRIVATE</id>
			<name>acme-releases</name>
			<url>http://peabody.internal.acme.com/artifactory/ACME-ARTIFACTORY-PRIVATE</url>
		</repository>
		<snapshotRepository>
			<id>ACME-ARTIFACTORY-PRIVATE</id>
			<name>acme-snapshots</name>
			<url>http://peabody.internal.acme.com/artifactory/ACME-ARTIFACTORY-PRIVATE</url>
		</snapshotRepository>
	</distributionManagement>

In the above Stanza, edit the definitions from ACME to the Artifactory server that you privately own, then copy it the following POM files:

  • main/pom.xml
  • main/appserver/javaee-api/pom.xml
  • main/appserver/pom.xml
  • main/nuclues/pom.xml

This is a nasty hack, because I don’t like that you can’t set change the deployment server and credentials from a configuration. Other source code allow configuration of the deployment server through Maven Profiles or even property files.

Make sure that your Maven settings are correct for Artifactory deployment and also we set up Maven build process. Set the environment variable MAVEN_OPTS so that there Maven has enough memory and the permanent generation is high enough to avoid out of memory exceptions during compilation.

MAVEN_OPTS=-Xmx1024m -Xms256m -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled

If you have 16GB RAM workstation, why not just max it out for compiling the entire GlassFish? The Garbage Collection algorithm is changed to the concurrent mark and sweep algorithm and we also set the enabled class unloading enabled.

You are ready to compile, entering the following commands:

cd glassfish-main
svn update
mvn clean
mvn install -DskipTests=true

Make yourself a hot beverage and snack for about 20 minutes on a decent Intel Core i5/i7 machine (2012). Have a break. Notice that we avoid running the unit tests here, we skip the tests, because we just want a working release in repo, quickly, which is just not to say testing is bad.

After successful compilation of all of the modules, now you are ready to deploy to the private Maven repository. If you have followed the earlier instruction, about copying the stanza to the individual POM files, then you can execute this command from root.

cd glassfish-main
mvn deploy -DskipTests=true

After deploying the artifacts to Artifactory, check the repository for snapshot 4.0 release, they should all be there.

Now descend to the Java EE project folder. Hack the POM file, glassfish-main/appserver/javaee-api/javax.javaee-api/pom.xml. It is missing the maven source plugin in the build section, and therefore, by default, it does not generate the sources JAR, which is useful for seeing the new JavaEE 7 APIs!

Find the XPath project/build/plugins and append the following stanza to this POM.

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <phase>package</phase>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

Execute the following command line, to deploy the Java EE api artifacts

cd glassfish-main/appserver/javaee
mvn deploy -DskipTests=true

For some reason, the main execution does not install javax.javaee-api artifacts automatically. Executing this line generates JAR and SOURCES JAR for the three underlying modules: javax.javaee-api, javax.javaee-web-api and javax.javaee-endorsed-api.

Go Artifactory and see that the artifacts have all been deployed. You can then write a Gradle build file like this:

repositories {
    maven {
        credentials {
            username 'administrator'
            password 'passowrd'
        }
        url 'http://peabody.internal.acme.com/artifactory/ACME-ARTIFACTORY-PRIVATE'
    }
    maven {
        url 'https://maven.java.net/content/groups/promoted'
    }
    maven {
        url 'http://repository.jboss.org/nexus/content/groups/public'
    }
}

dependencies {
    providedCompile 'org.glassfish.main.extras:glassfish-embedded-all:4.0-SNAPSHOT'
    providedCompile 'javax:javaee-api:7.0-bpeter-private'
    providedCompile 'javax:javaee-web-api:7.0-bpeter-private'

    compile     'org.glassfish.main.extras:glassfish-embedded-all:4.0-SNAPSHOT'
    compile     'javax:javaee-api:7.0-bpeter-private'

    testCompile 'junit:junit:4.10'
}

Especially, note that the build version are annotated as 7.0-bpeter-private.

The last piece of the puzzle, which I have not yet worked out is how to configure the build.id Maven property so that I can customize the build number. It is a mystery, still. If you happen to know the answer, please give me a bell. Cheers!

+PP+ 2013
 

PS: The EclipseLink uses it own Maven repository for artifacts: http://wiki.eclipse.org/EclipseLink/Maven


 

Categories: Education, Glassfish, JavaEE, javaee7, Open Tags:

The Collective Summer Camp UK Continues

July 26th, 2011 Comments off

 

In the first three weeks of July, I was super-busy, so The Collective Summer Camp UK had to take a backseat while I sorted out stuff. I am still pushing on with this event. I believe definitely that we should have this style of event happening in the UK. We have create the flaming green shoots of recovery somewhere in this land of Great Britain. We have be just the drivers and make sure that as software developers and designers make it happen!

I have no venue yet, but there are plenty of people really interested in taking part in a open-space conference and dojo combined all-dayer. I aiming to get a date of Saturday, 6th August 2011 in central London at the time of writing.

 

CollectiveSummerCampUK_512x384_logo

 

In the last weekend just gone, I created a Google Site Collective Summer Camp UK. The rewards are greater than the sum of parts, it would be great to crowd source some of this effort. Contact me directly please.

Register you interest here on this Google Form. The more people we have the more we can definitely push.

Weeks ago I brushed off my Wacom tablet and set about with the art in Adobe Illustrator. The logo features sun rays beaming through the sky. Notice there are no clouds in the sky to block the energy of Sun or mar our joy. It’s a new day. I believe rather that this symbology is exactly what we need in this world, today. Bloody hell! The least we can do in this life is improve and change the future outlook with education, finding the next direction, and learning new skills.

We are The Collective and we are busting loose, I guarantee it.

 

Collective Summer Camp UK Info (mp3)

The Collective Summer Camp UK

July 1st, 2011 Comments off

 

Hi Everyone!

I am sorry if this has taken longer to announce than when I first tweeted it on Twitter on Sunday 25th August 2011.

I am organising the first Collective Sumer Camp UK, which inspired by my experience of attending the JavaPosse Round Up for three years in a row (2009, 2010, and 2011). The Round-Up is an open space technology conference created by The Java Posse, four experienced Java developers and designers, famous in the community, who have a regular podcast, and also long time technical book author and thinker, Bruce Eckel. The Round-Up is a normally a five day event and takes place in Crested Butte, Colorado. Very recently, the Round-Up expanded to Summer Programming Camp.

I had a lot of fun attending the Round-Ups, as you can see here and here. I thought and asked the question, why can we not doing something similar to the Round-Up here in the UK? Why not? Indeed.

Let us do it, instead of dreaming about it! Here is an audio-boo, which I recorded a few days ago, that has my essential ideas. I apologise here if it is a bit rambling or fast.

Announcing "The Collective Summer Camp UK": Rock Bottom Reached (mp3)

 

START SMALL

Let us go for the low-to-medium risk. We scope the requirements small in order to delivery the best result.

 

BRANDING

I have tentatively called it THE COLLECTIVE for a very good reason. I am personally no longer in the business of organising or running user groups. I am in the business of networking with other people, getting functional programming adopted in the industry, and welcome continuous learning. We are called THE COLLECTIVE of Java platform, who are about pushing it forward.

 

THEMES

The content of the open space conference is up to those who attend. However, I strongly feel that we should be learning and educating ourselves about Functional Java, Scala, Clojure, JRuby and Groovy.

 

SPLIT CONTENT

Because we only a full Saturday. I thought it would be best to split the day into two halves. In the morning we have the open space sessions, then we would break for lunch. In the afternoon, we can have programming exercise for the new JVM language and /or including functional Java. (I went to the London Clojure Dojo on Tuesday night, and it was really well run and a good experience. I should like to model these Dojos for the Saturday afternoon [Experts or advanced coaches / users should apply w/ interest!] ).

 

REGISTRATION AND SURVEY

You will find a Google Form to register your interest in The Collective Summer Camp. Thank you!

 

DATE AND TIME

The day of the Conference will be a Saturday either 30th July, 6th August or 13th August. It will be full day. See the registration and survey form.

 

PAID

The UK is going through the most dire and severe economic recessions at the moment. So I understand many of you, like me, do not have loads of money. The Collective Summer Camp UK ought be low cost. However, we cannot expect every single event to be a free ride. Someone or something has to be paid for their time and effort. Venue and location to be decided. The money goes to the organisation and any thing left over will go to food, pizza and soft drinks, and we can decide what to do with the rest of the money, like donate it charity or something.

HASHTAGS

#CollectiveSummerCampUK and includes #BeyondJava, #ScalaLang, #Clojure, #Groovy, etc .

Please retweet #CollectiveSummerCampUK and self-promote the event.

 

INCENTIVE

I need at least 25 people to register to make the event viable. Please your register interest for the event with the Google Form.

HELP

I need help to organise this event. Please enquire with your ideas today!

 

That is it for now. I am so pleased to come out of stealth-mode. The next bit will be to decide on venue, which most likely looks like most people like central London and that will drive the cost. Stay tuned. +PP+

Twitter: @peter_pilgrim or electronically at peter dot pilgrim at gmail dot com

JavaPosse Round Up 2011 Closing Session Episode 343.5

June 6th, 2011 3 comments

 

Hello there!

This is a blog entry is just an embedded Vimeo Plug-in. It is my video recording of the JavaPosse Round-Up 2011 closing session. I edited it a couple of months ago and locked it privately and now it is time to unlock it.

I always take a video camcorder to Colorado for the Round Up and it was my third time in a row of attending this fantastic open space conference since 2009. I was very proud and fortunate to be able to go, organise yet another vacation rental house, meet all the house mates and the conference attendees, who were all nice to meet and greet. If you looking for deep Java related technology discussions with bright developers, designers and architects, then the JPR is the place to be. I am into snow boarding and you might be too. Crested Butte was one of the best half pipes and free style parks anywhere in the world, just make sure you invest in a decent helmet.

Fellow Java Champion, Bruce Eckel, deserves all the plaudits for organising such as splendid venue. It was the fifth round up for the JavaPosse.

I think Dick Wall has been very busy with doing this, that, and the other and may be this closing session episode got lost in the ether. So this is Episode 343.5. Note this the point five in the episode number as it could have been inserted in my opinion between 343 and 344.

Also I would like to tell you about the Scala Programming Summer Camp that is Bruce Eckel is organising in Crested Butte. Sadly, I am unlikely to make over to USA, in late July, and I would love to go and chew the Scala programming language fat. The cost of the open space Summer Camp is extremely low, only 200.0 USD! The biggest travel cost are the flights and the accommodation stay, but if you go, I think you find it was the best experience of technology / activity balance that you will ever have.

Enjoy my video and I gladly receive any feedback that you the reader/viewer may have.

 

JavaPosse Round Up 2011 Closing Session Episode 343.5 from Peter Pilgrim on Vimeo.

 

Thank you all!

PS: Hopefully I will find that future tech job and then also make to JPR12

-+-PP-+-

Scala Adoption: Learn A New Language People!

June 1st, 2011 Comments off

Yay! The Scala Adoption (Episode 353) session from JavaPosse Round Up 2011 has been released. You can listen to the JavaPosse podcast episodes online at The Lounge or try this German website directly Podcast.de.

The session was proposed by Diane Marsh and myself.  There is not much more I can say to add to the session on Scala adoption except for that in I can report in London in recent days. I hear of some of investment banks are showing a passing interest in the language. Utlimately they want a better solution to concurrency and  Unfortunately, this progress is far little and too late for me in my current situation. It would appear that in many institutions the guerrilla style, that of grass roots evolution or revolution, which many Groovy developer successfully chose to get Groovy adopted several years ago, is not happening the same way with Scala. The decision makers and management are yet to be convinced that Scala is the next programming language forward to take the Java platform. It may be that I, admittedly, am not moving in the right cliqué or that this esoteric information is not flowing outside the institutions themselves.

Regardless of whether banking will or will not adopt Scala is irrelevant. It is frankly true that some form of functional literate programming is going to come down the wire and in the very near future. It is not a question of “if” but of “when”. As Diane Marsh eloquently expressed her frustration at the very beginning of the session in Crested Butte, Colorado

Java is an old language. It’s been changed over the years, but seriously this has been really long time for a language to be dominant and kind of tongue and cheek. I will say like to say, “Man Up! Learn a new language people!” It is not that hard to learn a new language and we all should be doing it anyway. It’s good for our brains to actually think in different ways. It doesn’t have be just like Java, and there are reasons why it shouldn’t be.  If it were to be Java, we should just stick with Java. I’am kind of exhausted about the argument that it is just too difficult.”

 

Born this way.

Listen!

JavaPosse Episode 342 JPR 11

May 1st, 2011 Comments off

A short blog entry then …

Here is two video recordings of the Java Posse Round-Up 2011 podcast, episode 342, in to two parts. This JavaPosse and all of us who attending the Round-Up this year, Thursday night, 24th February in the parish church.

 

Please enjoy responsibility

JavaPosse Episode 342 JPR11 Part One from Peter Pilgrim on Vimeo.

 

and

JavaPosse Episode 342 JPR11 Part Two from Peter Pilgrim on Vimeo.

 

If you liked these videos, please retweet and relink on Facebook. Thank you

PS: Easter egg at the end of part two

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.

My Lightning Talks Videos from Java Posse RoundUp 2011

March 11th, 2011 Comments off

After a very busy QConLondon 2011 this week, I almost forgot to mention that the lightning talks from JavaPosse Roundup were announced.

I did to two lightning talks of five minutes long on Tuesday and Wednesday nights over in Crested Butte, Colorado. Gosh! It seems like a decade ago or a distance life already. I suppose that is what fun memories of a great gathering do after all.

 

Scala Adoption for Business

 

Developing Your Personal Self-Awareness (Peter Pilgrim)

Enjoy! Thanks for the memories

Winking smile

 

(Feedback, suggestions and good uplifting greetings always appreciated)

The Java Posse Round Up 2011

March 3rd, 2011 Comments off

The things I enjoyed about this year’s open space conference.

  • Just the enthusiasm and the luck of the draw about being there again.
  • It was heart warming and uplifting to be part of the action
  • Meeting this year’s new people
  • Getting reacquainted with the previous JPR11 attendees
  • Diane Marsh’s Scala Koans
  • Sitting on Bruce Eckel’s easy massaging chair again and meeting Bruce again
  • Making a video recording of the closing session
  • Having the time to make screen cast of JavaFX 2.0 EA
  • Kate Ice House
  • The  Progressive Dinner
  • Doing a Technical Leadership session
  • 4 half days snowboarding

The things I regret about JPR11

  • I did not meet and greet every single individual
  • Missing the Make It Fast technical session
  • Missing my own Future of Client Java session
  • Not getting the Saturday flight for an extra snowboarding Sunday
  • Not knowing if I can make it back next year, and not having that ideal Job / Position

Enjoy the Flickr Stream

JPR11

JPR11

JPR11

JPR11

JPR11

JPR11

So heart warming. Thank you all participants at the Java Posse Round Up 2011. Everyone was great there. My heart swells with pride. It was an unbelievable and unmissable.

PS: My Flickr Photostream is here ;-)

PS PS: A Message from Bruce Eckel

http://www.reinventing-business.com/2011/03/roundup-2011-summary.html

If you blog about the Roundup, please add a link on this page:

https://sites.google.com/site/javaposseroundup/blogs-about-the-roundup

Also see here http://javaposse.com/ and  http://www.mindviewinc.com/Conferences/JavaPosseRoundup/