You are currently browsing the monthly archive for July 2011.
The London Java Community’s next free event is – Clojure and Incanter: A joint LJC/LCUG event on Wednesday 3rd August at 6:30pm.
Please see link for details and to sign up –
This presentation covers the Clojure programming language and the Incanter system for statistical computing and will be presented by Ben Evans. Clojure is a Lisp dialect which runs on top of the JVM, and so our treatment is especially geared towards developers who are already proficient in the Java language and environment
Attendees will gain an understanding of:
* The pillars and fundamentals of Clojure
* Clojure’s novel language features and its powerful programming model
* Introduction to Incanter
* Why Clojure is a good language for statistical computing
* Exploring datsets with Incanter
* Interfacing with Excel and graphing and charting libraries
Who should attend:
- Java Developers
- Developers interested in modern implementations of Lisp or alternative JVM languages
- Technical architects, infrastructure engineers and others who need to deal with large amounts of data
18:00: Doors Open
18:30: A series of lightning talks from members of the London Java Community
19:00: Main presentation – Ben Evans will present Clojure and Incanter.
Ben is one of the leaders of the LJC and GDC. He has had a varied and interesting career in technology – he was the lead performance testing engineer for the Google IPO (the largest auction ever conducted), worked on the initial UK trials of 3G networks with BT, built award-winning websites for some of Hollywood’s biggest hits of the 90s, rearchitected and reimagined technology helping some of the most vulnerable people in the UK and has worked on everything from some of the UKs very first ecommerce sites, through to multi-billion dollar FX trading systems. He is one of the authors of “The Well-Grounded Java Developer”.
Nearest tube: Barbican
Nearest Coffee Shop: Sun Coffee Shop, 55-63 Goswell Road, London, EC1V 7EN for if you arrive early
For after event drinks: The Slaughtered Lamb – 34-35 Great Sutton St, Clerkenwell, London, EC1V 0DX
Please note this is a joint LJC/LCUG event. SkillsMatter are hosting this event and are handling the attendance – it is essential that you confirm your place at this link:
It may comes as a bit of a surprise given all of the publicity around Java 7, but the final version of Java 7 still hasn’t been approved yet.
Java 7 actually comprises 4 separate JSRs – 1 master JSR and 3 specific ones. They are all up for their Final Approval Ballot, which is due by the 18th July.
JSR 203 NIO.2 – New I/O v2
JSR 292 Supporting Dynamically Typed Languages on the Java Platform
JSR 334 Small Enhancements to the Java Programming Language
and the big one:
JSR 336 Java SE 7 Release Contents
The reason behind the strange-seeming delay in final ratification is that Java is a bit different to other popular programming communities. For example, the .NET community is run by just 1 company – Microsoft – and the development community and other corporate partners have no formal say in how the community is run. If MSFT decides to change the entire development landscape with their next release, then they can. There was all sorts of gnashing of teeth in the developer community when Silverlight was effectively demoted as part of MSFT’s new roadmap.
On the other hand, in some of the open source communities, such as Python or Perl or Ruby, things can be a bit more badly defined. Some communities are more formal than others, but in many cases there is a small group of community members who contribute “most” (in some loosely defined sense) who are responsible for driving change forward in releases. If corporations are contributing a lot to a particular community, then their representatives in the community will generally be well regarded and listened to.
In good open-source communities, this tends to lead to releases which reflect the overall consensus view of the community. However, large communities are not monolithic, and it’s important to remember that you can’t please all of the people all of the time.
The Java world is a little different. Java was always intended to represent a concert of interests – originally very corporate focused, but bringing in prominent individuals and communities as the Java ecosystem has grown. At the heart of this is the Java Community Process (JCP), which is presided over by the Executive Committees (there’s one for SE/EE and one for ME). It is this Executive Committee that the LJC was recently elected to.
The ECs are responsible for approving every official Java standard (which are all expressed as JSRs). This happens by a vote. This a simple process – Yes, Yes with comments, Abstain, No and Fail To Vote are the options, and the results are binding – if 50% or more vote Yes, the JSR passes and becomes an official standard.
This process means that the final votes have to be scheduled against a moving target. The final version of the language specification, and the reference implementation (which for Java SE is OpenJDK) are formal documents. So it isn’t really possible to have a final vote on them until the release is basically ready – because otherwise EC members can’t be certain what they’re voting on.
The final vote being so close to the release date is an artifact of the JCP being a mostly open standards process.
The reason that it can be described as “mostly open” is because it has been, at times, a little bureaucratic. It was born in an era when corporate interests were the only type that were really considered. Open source hadn’t taken off yet. The strong, vibrant technical communities we see didn’t really exist. Even the Internet wasn’t anything like today’s version.
Part of the work that the LJC are currently engaged in on the Executive Committee is a reform of the JCP, to make it faster, more streamlined, and fundamentally more transparent and easier for the ordinary developer to participate in. There’s a new JSR – JSR 348 – which is a first step to reforming the JCP. There will be at least 2 or 3 more needed to get the process fully reformed, but we feel that taking some small, (hopefully) easy steps first is the right way to get some momentum going.
Finally, if you’re interested in the JCP, or in standards work, or in the future direction of the platform – please get in touch. The JCP group within the LJC is always looking for people who are interested, in the views of our members and in the overall thoughts and direction of our community. We try to spend as much time as we can canvassing your opinions, but if you have strong feelings about anything – then let us know. Start a thread on the mailing list, or come and talk to us if you’d rather talk privately. We’re always happy to hear from you, and by doing so, we can ensure that we’re representing you as well as we can.
Thanks to everyone that made it out last night.
We had a great turn out, 80-90 in the audience which is good. I had a lot of good feedback last night and if anyone has seen any reviews please let me know, the video will be available here once SkillsMatter have completed it. I’ll update the Meetup event page with links to slides, finally use the twitter tag #ljc_jvmcloud to see or write comments and feedback.
It was a superb night. We had four great lightning talks including:
JCP and Java Dataing with Jim Gough
Scalability with Akamai by Matt Humphries
Architecture in the Cloud by Justin Brister
Steam Punk Programming by Ged Byrne
We then followed up with the main presentations on WSO2 from Paul Fremantly and Cloud Foundry from Peter Ledbrook. Finally we headed to the pub to carry on the questions over beer, as usual this deteriorated into brawls civil conversations about whether NoSQL was evil or not and the latest emails from recruiters to experienced Java developers offering c# graduate schemes.
Thanks so much to all the speakers for the main presentations last night. Finally thanks to SkillsMatter for providing the venue and making these events so easy to organise.
At ClearView, we are working with a number of different clients on roles involving Cloud technologies. If you would like to check out our latest jobs visit our job board. Please remember that we have new jobs in every week and some are placed before we advertise them, so for the best positions give me a shout and we’ll let you know which roles would be the best match for you.
Our next presentation is our social on Tuesday with the Developer Sessions, hope to see you there.
Packt Open Source has this week announced a series of discounts on its selection of best selling Open Source books. Readers will be offered exclusive discounts off the cover price of selected print books and eBooks for a limited period only.
So far in 2011, Packt Open Source announced in March that its donations to Open Source projects has surpassed the $300,000 mark, while in April insight into various projects was offered during the ‘Believe in Open Source’ campaign and July’s series of discounts continue this trend of Packt showing its commitment to the Open Source community.
The Packt Open Source books included in this exclusive discount offer include well known books such as JBoss AS 5 Performance Tuning, PHP jQuery Cookbook, Drupal 7 Module Development and Blender Lighting and Rendering, amongst others.
“This special discount showcases a host of Packt Open Source topics and allows readers to purchase some of our most well renowned books at an exclusive price” said Packt Open Source Marketing Executive Julian Copes. “
To ensure you do not miss this fantastic offer, visit the special discount page now, where you can view the extensive list of books included in the offer and access an array of related articles that were written by the authors.
The exclusive discounts are available from 4th July 2011. To find out more, please visit the Packt website.
There are those that have claimed that Java is getting a little bit long in the tooth. This month’s selection of Packt Publishing‘s books show just how fresh and relevant Java is for the future. You can read more on our new Book Club blog.
To take part in the promotion all you have to do is send an email to me at firstname.lastname@example.org with your name, your book choice and the address you would like your book to be sent. Please mark ‘Packt Publishing’ as the subject title.
Each month we run a promotion with Packt in which LJC members will be selected at random to receive free books. This month we are offering 2 LJC members the chance to win;
First Prize Winner will receive 1 print copy of his/her choice
Runner Up Winner – 1 ecopy of his/her choice
Please visit the Packt site at www.packtpub.com
Congratulations to the winners of our June draw – Richard Melville and Kelvin Porter!
Thursday the 7th of July saw one of the largest milestones in Java’s recent history, the much anticipated launch of Java 7. My initial reaction was it didn’t seem that long since Java 6 was launched, however it was almost 5 years ago, the technical equivalent of when dinosaurs still roamed the Earth.
I think it would be naive to assume that nothing has happened during the reign of Java 6, in fact it’s quite the opposite. The first step towards a better Java was the open sourcing of the JDK, giving developers the opportunity to fix and work directly on the platform. Although I don’t have a direct quote, at the LJC Open Conference in November 2010 it was stated that between the first version of Java 6 and the latest there was a performance gain of over 50%. In Java 6.14 we saw the introduction of the G1 Garbage Collector, another revolutionary change to the options that developers have in terms of tuning and performance. Politically Java has changed hands and governance, passing from Sun to Oracle, and people have their opinions on what this means for Java.
Up until Thursday I was very skeptical about where Oracle might go with Java and how that would change the language I have built my career on. Which brings me to the launch day itself, this began with a webcast held across the world by Oracle. If you missed the webcast you can view it here. We got to hear from some of the senior developers on the Java project, and also from community speakers from all corners of the globe. For the London Java Community, it was an absolute honor and pleasure to see a small group of users that has now risen to almost 1800 members, represented by Ben Evans. I really enjoyed the webcast and thank Adrian Woodhead at lastfm for their hospitality in hosting the webcast for other members of the LJC. That gesture of sharing is something that was also not far from the content of Oracle’s talk, as many people appreciate one of the biggest successes of Java is us – The Community. The value of this has certainly not been underestimated by Oracle and this was evident from the content of the webcast. So what do I think the main themes were to take away from the talk and the event?
- Java 7 is an evolutionary release not an revolutionary release – Mark Reinhold stated that one of the best things about Java 7 is the fact it is shipping.
- Increase in stability
- Increase in performance
- Increase in maintainability
- …Although not said explicitly, the feel of the community is Java 8 is definitely not as far away as the gap was from 6 to 7.
For the event there was then kind hospitality at the Oracle offices, with people from across the community together with a definite buzz and excitement in the room about Java once more.
What is new in Java 7? This could be an entire post/book in itself and each individual improvement could be gone into in great detail. I’ll attempt to pick out a few key points below and give links for more information. I’d also recommend reading Mark Reinhold’s blog. The best summary of the below I have read so far is in Java 7 developer MEAP, by Ben Evans and Martijn Verburg.
- JSR 292 Invoke Dynamic
- This is one of the major steps that we are seeing towards a change in the way that we view Java. What even is Java? I think we are seeing a separation of Java the language and the Java Virtual Machine. Strictly speaking, it’s not really the Java VM now, but just the VM. Highlighted by the gentleman in the video wearing a Python jacket over a Java T-Shirt, the VM is now home to many dynamic languages. Invoke Dynamic is another step towards the multi-language support for the JVM. Simply put it supports the invocation of allows a non-Java call to be made and for the linkage to be determined at runtime… OK that wasn’t so simple, but you can read more about the project here.
- JSR 334 Project Coin
- Project coin are all about small changes to the Java language to make life easier for daily use of the Java programming language. A few of my personal favorites are:
- Ability to switch on String! Finally, it’s only taken 15 years.
- Diamond Operator, no longer do you need to declare the generic expression on the right hand side if they are present on the left:
- Old Way: List<String> myFingersAlreadyHurt = new ArrayList<String>();
- New Way: List<String> jsr334SavedMyFingers = new ArrayList<>();
- try-with-resources – lets get rid of some boiler plate code
- You can find the full list here.
- Better Unicode Support
- Not too excited about this because it’s not a problem I run into. However, from speaking to a few people about this at the event – this was going to save them a lot of hassle.
- JSR 203: NIO.2 and File System
- Finally, we have a decent API for interacting with Files and a scalable approach to asynchronous I/O.
- I’m not an expert on the rest of this JSR yet, so might be worth having a read here if you want to know more.
- JSR 166y Fork Join Framework
- Doug Lea and his concurrency experts have created the Fork Join Framework. This allows for concurrent tasks that involve splitting a larger programmatic problem into smaller blocks of computation i.e. Merge Sort a nice framework in which to operate. The ForkJoinPool uses workers to perform the tasks placed upon it, which are also capable of stealing tasks from other workers if they are no longer busy.
I think the next few months in the Java community will be exciting ones, with July being very much the month of Cloud and is Java the right language for the cloud? For those in London that haven’t been along to a Java event yet, please come along and join us on meetup.com and join us at our developer pub session to get involved in the discussion.