- Singletons, Singletons...
- Java Champions
- JShell and REPL in Java 9
- Writing JavaFX Applications for Mobile Devices
- Create Applications Using Docker
- Certification Discount!
- 20 "Cakes" of Java in Brazil
- Develop Non-Blocking Web Applications in Java
- 3D Printing Meets Raspberry Pi
- Get Started with Lambdas and Streams
Wednesday Sep 24, 2014
Wednesday Jan 15, 2014
By Yolande Poirier-Oracle on Jan 15, 2014
By Guest Blogger Ian Skerrett
We are very pleased to announce that we have added a Java 8 Day to EclipseCon 2014. Java 8 is scheduled to be released in March, close to the same time as EclipseCon, so we thought it would be great to have EclipseCon attendees participate in the launch of the new Java release.
In collaboration with Oracle, a new 1 day event has been added to the EclipseCon schedule. EclipseCon attendees will have the opportunity to learn about Java 8 from Oracle and Eclipse experts. There will be sessions about Lambda’s, JDT support for type annotations, the new Java 8 compact profile, JavaFX, api design with Java 8 and more. It will be a great way to accelerate your adoption of Java 8. Check out the complete schedule.
The Java 8 Day will take place on Tuesday, March 18 at the Hyatt Regency Hotel San Francisco Airport. We will be offering $200 day passes for developers that just want to attend the Java 8 content. Of course all EclipseCon attendees will also be able to attend.
Register today to take advantage of the early prices.
Tuesday Sep 24, 2013
By Janice J. Heiss on Sep 24, 2013
by Timothy Beneke and Janice J. Heiss
In a festive room teeming with over 200 people, including many celebrated Java luminaries,
along with excellent food and drink, the 9th annual JCP Program Awards were handed out atop the majestic Hilton Hotel on Monday night. As the JCP states, “The Java Community Process (JCP) program celebrates success. Members of the community nominate worthy participants, Spec Leads, and Java Specification Requests (JSRs) in order to cheer on the hard work and creativity that produces ground-breaking results for the community and industry in the Java Standard Edition (SE), Java Enterprise Edition (EE), or Java Micro Edition (ME) platforms.”
The JCP added a new awards category this year for Adopt-a-JSR program participants, bringing the total to four: JCP Member/Participant of the Year, Outstanding Spec Lead, Most Significant JSR, and Outstanding Adopt-a-JSR Participant.
The room was full of good cheer, playful humor, a music band of Java developers, and enthusiastic appreciation of much that has been accomplished on behalf of Java technology in the previous year.
The nominees and winners in their respective categories
JCP Member/Participant of the Year
--Azul Systems, Gil Tene
--London Java Community (LJC), Ben Evans, Martijn Verburg, Richard Warburton, Graham Allan
The winner was Azul System’s Gil Tene. The JCP said, “Gil has worked diligently to provide clear advice on matters of Software Patents, IP and licensing that seeks to benefit both non-profits/individuals etc as well as organizations with vested commercial interests in Java. It's not easy delving into the depths of the legal aspects and the potential impacts of changes to the JCP, but with help from folks like Gil we're hopeful for a solid and fair outcome.”
Tene characterized his approach to the JCP as follows: “I represent Azul Systems on the JCP EC, but I try to apply an approach of ‘do the right thing first’ in my choices and positions. Coming from a small company that depends on Java and its ecosystem for its livelihood, I see my role as representing the interests of an entire sector of non-big-company commercial folks and of individual and professional developers out there, and providing some offset and balance to the normal mix of such boards.”
Outstanding Spec Lead
--Brian Goetz, Oracle
--Jitendra Kotamraju, Oracle
--Anatole Tresch, Credit Suisse
--Chris Vignola, IBM
The winner, Oracle’s Brian Goetz, was recognized, “For tirelessly working away at an incredibly complex JSR - JSR 335, Lambda Expressions for the Java Programming Language. From a community point of view, we've appreciated his willingness to listen and consider ideas from other technologists as well as spending time with groups of developers to understand the impact of Lambdas on Java.”
Goetz offered a statement in response to the award for his leadership in creating Lambda Expressions for the Java Language, which also won for most significant JSR. He said that lambdas, “represent a coordinated co-evolution of the Java SE platform, including the VM, language, and core libraries to provide developers with a powerful upgrade -- quite likely the largest ever -- to the Java SE programming model. We started this JSR in early 2010, but the topic of closures-in-Java had already been in play in the community for many years prior, and, of course, there was a broad diversity of opinions as to what direction, how far, and how fast to evolve the Java programming model. In the end, the most significant dimension of the challenge turned out to be: how do we integrate these new features in the language and libraries without them feeling grafted on after-the-fact. I think developers will find programming with this ‘new and improved Java’ to be a very pleasant experience -- I know I have.”
Most Significant JSR
--JSR 335, Lambda Expressions for the Java Programming Language
--JSR 344, JavaServer Faces (JSF) 2.2
--JSR 352, Batch Applications for the Java Platform
--JSR 354, Money and Currency API
--JSR 355, JCP Executive Committee MergeThe winner, as previously mentioned, was JSR 335, Lambda Expressions for the Java Programming Language, which the JCP praised as follows:
“This brings Java kicking and screaming into the modern programming language age and is seen as a catalyst for the second age of Java. It's underlying discoveries and improvements with regards to Type Inference has also resulted in a stronger JVM for all.”
Spec lead Brian Goetz, in picking up the award, remarked, “This is something we’ve been working on for three-and-a-half-years and it’s nice to be looking at it through the rear-view mirror.”
Outstanding Adopt-a-JSR Participant
--BeJUG, Johan Vos
--CeJUG, Helio Frota, Hildeberto Mendonça
--JUG Chennai, Rajmahendra (Raj) Hegde
--Morocco JUG and EGJUG, Mohamed Taman, Faissal Boutaounte
The winner was Morocco JUG and EGJUG, Mohamed Taman, and Faissal Boutaounte, who were praised, “For adopting JSR 339, JAX-RS 2.0 specification, along with many other JSRs. One JIRA issue filed by Morocco JUG on JSR 339 was classified as a ‘release-stopper’. A quick JIRA search using the ‘adoptajsr’ tag shows that most of the JIRA issues have been created by MoroccoJUG members. Several presentations and source code have been organized by these groups. Mohamed presented sessions about the upcoming technologies to widen the range of users in the future, especially Java EE 7 JSRs and spreading of community progress and contributions that make us encouraged to participate. Mohamed sent a clear message that Africa is here and is full of talented people who are willing to take it to the next level. Mohamed was responsible for translating an Arabic Adopt-s-JSR web page to allow more Arabs to participate.”
Taman said that, “Currently, I hold two positions, one as a Business Solutions Systems Architect and design supervisor and Java Team leader, at a big financial services company in Egypt, which affects all the country by building solutions affecting Egyptians every day, by providing more facilities for businesses and enhancing the economy… I am passionate about Java. I really love it and have fun coding, and love seeing it grow, day by day, as if it were my kid.”
The Annual Java Community Process Program Awards at JavaOne is an event and party not to be missed!
Wednesday Jun 26, 2013
By Janice J. Heiss on Jun 26, 2013
A new interview with Java Champion Cay Horstmann, now up on otn/java, titled "Diving into Scala: A Conversation with Java Champion Cay Horstmann," explores Horstmann's ideas about Scala as reflected in his much lauded new book, Scala for the Impatient. None other than Martin Odersky, the inventor of Scala, called it "a joy to read" and the "best introduction to Scala". Odersky was so enthused by the book that he asked Horstmann if the first section could be made available as a free download on the Typesafe Website, something Horstmann graciously assented to.
Horstmann acknowledges that some aspects of Scala are very complex, but he encourages developers to simply stay away from those parts of the language. He points to several ways Java developers can benefit from Scala:
"For example," he says, " you can write classes with less boilerplate, file and XML handling is more concise, and you can replace tedious loops over collections with more elegant constructs. Typically, programmers at this level report that they write about half the number of lines of code in Scala that they would in Java, and that's nothing to sneeze at. Another entry point can be if you want to use a Scala-based framework such as Akka or Play; you can use these with Java, but the Scala API is more enjoyable. "
Horstmann observes that developers can do fine with Scala without grasping the theory behind it. He argues that most of us learn best through examples and not through trying to comprehend abstract theories. He also believes that Scala is the most attractive choice for developers who want to move beyond Java and C++. When asked about other choices, he comments:
"Clojure is pretty nice, but I found its Lisp syntax a bit off-putting, and it seems very focused on software transactional memory, which isn't all that useful to me. And it's not statically typed. I wanted to like Groovy, but it really bothers me that the semantics seems under-defined and in flux. And it's not statically typed. Yes, there is Groovy++, but that's in even sketchier shape.
There are a couple of contenders such as Kotlin and Ceylon, but so far they aren't real.
So, if you want to do work with a statically typed language on the JVM that exists today, Scala is simply the pragmatic choice. It's a good thing that it's such a nice choice."
Learn more about Scala by going to the interview here.
Thursday Apr 04, 2013
By Janice J. Heiss on Apr 04, 2013
Julien Ponge, who, in addition to being a Java developer and a professor, also writes technical articles for both otn/java and Java Magazine, has created Golo, a simple, dynamic, weakly-typed open source language that favors the explicit over the implicit. Developers can pick it up in a manner of hours, not days. Responses to its recent release at Devoxx have been favorable.
Built from day 1 with invokedynamic, and currently in beta, Golo takes advantage of the latest advances of the JVM. It is also a showcase on how to build a language runtime with invokedynamic.
The Golo Programming Guide is located here.
Julien is an Associate Professor (Maître de Conférences) in Computer Science and Engineering at INSA-Lyon in France, plus an R&D Computer Scientist at the CITI / INRIA laboratory. Learn more about him here.
Thursday Jan 24, 2013
By Janice J. Heiss on Jan 24, 2013
In a new article, now up on otn/java by yours truly, titled “Coding on Crete: An Interview with Java Specialist Heinz Kabutz,” noted Java commentator and consultant Dr. Heinz Kabutz shares insights about the Java platform and talks about his exotic life working as a developer on the island of Crete. Kabutz is well known as the author of the Java Specialists’ Newsletter which reaches some 70,000 developers worldwide.
In a previous 2007 interview, Kabutz lamented the large number of developers who do not engage in unit testing. He offered an update on this:
“The one place where unit testing is sorely lacking is with concurrent code. There are some tools that help find race conditions and deadlocks, but they typically find about a dozen faults per line of code. With such an amount of false positives, discovering a real problem is impossible.
Did you know that there is not a single—not even one—unit test for the Java Memory Model (JMM)? We have to just accept that it works on the Java Virtual Machine (JVM) we are running on. The theory is that if we write our Java code according to the JMM, the code will run correctly on any certified JVM. Unfortunately, the certification does not test the JMM thoroughly. Apparently, there are some tests for the java.util.concurrent classes, and so they assume that if these work, then the JMM must also be correct for that JVM.”
When asked about the greatest performance issues he remarked:
“The biggest performance issue today is still that we often cannot pinpoint the bottlenecks. Customers usually approach us with problems that they have not been able to solve, no matter how many man-months they've thrown at them. The most recent issue I looked at boiled down to a simple race condition. If two threads insert an entry into a shared HashMap at the same time, and the key's hash code points to the same entry in the table, then the HashMap can be corrupted and you might get two entries pointing to each other. This means that whenever you try to call contains() on the map, you risk getting an infinite loop.”
Check out the article.
Friday Oct 12, 2012
By Janice J. Heiss on Oct 12, 2012
Noted freelance writer Steve Meloan has a new article up on otn/java, titled, “JavaOne 2012 Review: Make the Future Java” in which he summarizes the happenings at JavaOne 2012.
Along the way, he reminds us that if the future turns out to be anything like the past, Java will do fine:
The repeated theme for this year's conference was ‘Make the Future Java,’ and according to recent stats, the groundwork is already firmly in place:
There are 9 million Java developers worldwide.
Three billion devices run Java.
Five billion Java Cards are in use.
One hundred percent of Blu-ray Disc players ship with Java.
Ninety-seven percent of enterprise desktops run Java.
Eighty-nine percent of PC desktops run Java.
This year's content curriculum program was organized under seven technical tracks:
Core Java Platform
Development Tools and Techniques
Emerging Languages on the JVM
Enterprise Service Architectures and the Cloud
Java EE Web Profile and Platform Technologies
Java ME, Java Card, Embedded, and Devices
JavaFX and Rich User Experiences”
Meloan artfully reminds us of how JavaOne makes learning fun.
Have a look at the article here.
Thursday Sep 27, 2012
By Janice J. Heiss on Sep 27, 2012
JavaOne Rock Stars, conceived in 2005, are the top-rated speakers at each JavaOne Conference. They are awarded by their peers, who, through conference surveys, recognize them for their outstanding sessions and speaking ability. Over the years many of the world’s leading Java developers have been so recognized.
Martijn Verburg has, in recent years, established himself as an
important mover and shaker in the Java community. His “Diabolical
Developer” session at the JavaOne 2011 Conference got people’s attention
by identifying some of the worst practices Java developers are prone to
engage in. Among other things, he is co-leader and organizer of the
thriving London Java User Group (JUG) which has more than 2,500 members,
co-represents the London JUG on the Executive Committee of the Java
Community Process, and leads the global effort for the Java User Group
“Adopt a JSR” and “Adopt OpenJDK” programs.
Career highlights include overhauling technology stacks and SDLC practices at Mizuho International, mentoring Oracle on technical community management, and running off shore development teams for AIG. He is currently CTO at jClarity, a start-up focusing on automating optimization for Java/JVM related technologies, and Product Advisor at ZeroTurnaround. He co-authored, with Ben Evans, "The Well-Grounded Java Developer" published by Manning and, as a leading authority on technical team optimization, he is in high demand at major software conferences.
Verburg is participating in five sessions, a busy man indeed. Here they are:
- CON6152 - Modern Software Development Antipatterns (with Ben Evans)
- UGF10434 - JCP and OpenJDK: Using the JUGs’ “Adopt” Programs in Your Group (with Csaba Toth)
- BOF4047 - OpenJDK Building and Testing: Case Study—Java User Group OpenJDK Bugathon (with Ben Evans and Cecilia Borg)
- BOF6283 - 101 Ways to Improve Java: Why Developer Participation Matters (with Bruno Souza and Heather Vancura-Chilson)
- HOL6500 - Finding and Solving Java Deadlocks (with Heinz Kabutz, Kirk Pepperdine, Ellen Kraffmiller and Henri Tremblay)
- A lack of communication -- Software development is far more a
social activity than a technical one; most projects fail because of
communication issues and social dynamics, not because of a bad technical
decision. Sadly, many developers never learn this lesson.
- No source control -- Developers simply storing code in local filesystems and emailing code in order to integrate
- Design-driven Design -- The need for some developers to cram
every design pattern from the Gang of Four (GoF) book into their source
All of which raises the question: If these practices are so bad,
why do developers engage in them? “I've seen a wide gamut of reasons,”
said Verburg, who lists them as:
* They were never taught at high school/university that their bad habits were harmful.
* They weren't mentored in their first professional roles.
* They've lost passion for their craft.
* They're being deliberately malicious!
* They think software development is a technical activity and not a social one.
* They think that they'll be able to tidy it up later.
A couple of key confusions and misconceptions beset Java developers, according to Verburg.
“With Java and the JVM in particular I've seen a couple of trends,”
he remarked. “One is that developers think that the JVM is a magic box
that will clean up their memory, make their code run fast, as well as
make them cups of coffee. The JVM does help in a lot of cases, but bad
code can and will still lead to terrible results! The other trend is to
try and force Java (the language) to do something it's not very good at,
such as rapid web development. So you get a proliferation of overly
complex frameworks, libraries and techniques trying to get around the
fact that Java is a monolithic, statically typed, compiled, OO
environment. It's not a Golden Hammer!”
I asked him about the keys to running a good Java User Group. “You need to have a ‘Why,’” he observed. “Many user groups know what they do (typically, events) and how they do it (the logistics), but what really drives users to join your group and to stay is to give them a purpose. For example, within the LJC we constantly talk about the ‘Why,’ which in our case is several whys:
* Re-ignite the passion that developers have for their craft
* Raise the bar of Java developers in London
* We want developers to have a voice in deciding the future of Java
* We want to inspire the next generation of tech leaders
* To bring the disparate tech groups in London together
* So we could learn from each other
* We believe that the Java ecosystem forms a cornerstone of our society today -- we want to protect that for the future
Looking ahead to Java 8 Verburg expressed excitement about Lambdas.
“I cannot wait for Lambdas,” he enthused. “Brian Goetz and his group are doing a great job, especially given some of the backwards compatibility that they have to maintain. It's going to remove a lot of boiler plate and yet maintain readability, plus enable massive scaling.”
Check out Martijn Verburg at JavaOne if you get a chance, and, stay tuned for a longer interview yours truly did with Martijn to be publish on otn/java some time after JavaOne.
Originally published on blogs.oracle.com/javaone.
By Janice J. Heiss on Sep 27, 2012
He has 20 years of hands-on software development and over 10 years of architecture and technology evangelism experience and has worked for Digital Equipment Corporation, Sun Microsystems, Intuit and Accenture. He has evangelized and influenced the architecture of numerous technologies including the early releases of JavaFX, Java, Java EE, Java and XML, Java ME, AJAX and Web 2.0, and Java Security.
Rags will be giving these sessions at JavaOne 2012:
- CON3570 -- Autosharding Enterprise to Social Gaming Applications with NoSQL and Couchbase
- CON3257 -- Script Bowl 2012: The Battle of the JVM-Based Languages (with Guillaume Laforge, Aaron Bedra, Dick Wall, and Dr Nic Williams)
Rags emphasized the importance of the Cloud: “The Cloud and the Big Data are popular technologies not merely because they are trendy, but, largely due to the fact that it's possible to do massive data mining and use that information for business advantage,” he explained.
I asked him what we should know about Hadoop. “Hadoop,” he remarked, “is mainly about using commodity hardware and achieving unprecedented scalability. At the heart of all this is the Java Virtual Machine which is running on each of these nodes. The vision of taking the processing to where the data resides is made possible by Java and Hadoop.”
And the most exciting thing happening in the world of Java today? “I read recently that Java projects on github.com are just off the charts when compared to other projects. It's exciting to realize the robust growth of Java and the degree of collaboration amongst Java programmers.”
He encourages Java developers to take advantage of Java 7 for Mac OS X which is now available for download. At the same time, he also encourages us to read the caveats.
Originally published on blogs.oracle.com/javaone.
Wednesday Sep 26, 2012
By Janice J. Heiss on Sep 26, 2012
Among the most celebrated developers in recent years, especially in the domain of Java EE and JavaFX, is consultant Adam Bien, who, in addition to being a JavaOne Rock Star for Java EE sessions given in 2009 and 2011, is a Java Champion, the winner of Oracle Magazine’s 2011 Top Java Developer of the Year Award, and recently won a 2012 JAX Innovation Award as a top Java Ambassador.
Bien will be presenting the following sessions:
- TUT3907 - Java EE 6/7: The Lean Parts
- CON3906 - Stress-Testing Java EE 6 Applications Without Stress
- CON3908 - Building Serious JavaFX 2 Applications
- CON3896 - Interactive Onstage Java EE Overengineering
I spoke with Bien to get his take on Java today. He expressed excitement that the smallest companies and startups are showing increasing interest in Java EE. “This is a very good sign,” said Bien. “Only a few years ago J2EE was mostly used by larger companies -- now it becomes interesting even for one-person shows. Enterprise Java events are also extremely popular. On the Java SE side, I'm really excited about Project Nashorn.”
Bien expressed concern about a common misconception regarding Java's mediocre productivity. “The problem is not Java,” explained Bien, “but rather systems built with ancient patterns and approaches. Sometimes it really is ‘Cargo Cult Programming.’ Java SE/EE can be incredibly productive and lean without the unnecessary and hard-to-maintain bloat. The real problems are ‘Ivory Towers’ and not Java’s lack of productivity.”
Bien remarked that if there is one thing he wanted Java developers to understand it is that, "Premature optimization is the root of all evil. Or at least of some evil. Modern JVMs and application servers are hard to optimize upfront. It is far easier to write simple code and measure the results continuously. Identify the hotspots first, then optimize.”
He advised Java EE developers to, “Rethink everything you know about Enterprise Java. Before you implement anything, ask the question: ‘Why?’ If there is no clear answer -- just don't do it. Most well known best practices are outdated. Focus your efforts on the domain problem and not the technology.”
Looking ahead, Bien said, “I would like to see open source application servers running directly on a hypervisor. Packaging the whole runtime in a single file would significantly simplify the deployment and operations.”
Check out a recent Java Magazine interview with Bien about his Java EE 6 stress monitoring tool here.
Originally published on blogs.oracle.com/javaone.