Friday Oct 19, 2012

An Interview with JavaOne Rock Star Martijn Verburg

An interview with JavaOne Rock Star Martijn Verburg, by yours truly, titled “Challenging the Diabolical Developer: A Conversation with JavaOne Rock Star Martijn Verburg,” is now up on otn/java. Verburg, one of the leading movers and shakers in the Java community, is well known for his ‘diabolical developer” talks at JavaOne where he uncovers some of the worst practices that Java developers are prone to.

He mentions a few in the interview:

* “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: Some developers simply store code in local file systems and e-mail the code in order to integrate their changes; yes, this still happens.
* Design-driven design: Some developers are inclined to cram every design pattern from the Gang of Four (GoF) book into their projects. Of course, by that stage, they've actually forgotten why they're building the software in the first place.”

He points to a couple of core assumptions and confusions that lead to trouble:

“One is that developers think that the JVM is a magic box that will clean up their memory and 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 to 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!”

Verburg has many insightful things to say about how to keep a Java User Group (JUG) going, about the “Adopt a JSR” program, bugathons, and much more.

Check out the article here.

Thursday Sep 27, 2012

Talking JavaOne with Rock Star Martijn Verburg

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)
When I asked Verburg about the biggest mistakes Java developers tend to make, he listed three:
  1. 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.
  2. No source control -- Developers simply storing code in local filesystems and emailing code in order to integrate
  3. Design-driven Design -- The need for some developers to cram every design pattern from the Gang of Four (GoF) book into their source code

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.



Wednesday Sep 26, 2012

Talking JavaOne with Rock Star Adam Bien

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.”

Nashorn is an upcoming JavaScript engine, developed fully in Java by Oracle, and based on the Da Vinci Machine (JSR 292) which is expected to be available for Java 8.  

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.



Wednesday Mar 21, 2012

Developer Profile: Marcelo Quinta

As the Java developer community lead for Oracle, the best part of my job is going to conferences and meeting Java developers. I’ve had the pleasure to meet men and women who are smart, fun and passionate about Java—they make the Java community happen. The current issue of Java Magazine provides profiles of other young Java developers around the world. Subscribe to read them!

Marcelo Quinta

Age: 24
Occupation: Professor, Federal University of Goias
Location: Goias, Brazil
Twitter: @mrquinta

Marcelo and class

Marcelo (white polo shirt, center) and class

OTN: When did you realize that you were good at programming?
When I was in graduate school, I developed a Java system that displayed worked out the logics of getting the maximum coverage using the fewest resources (for example, the minimum number of soldiers [and positions] needed for a battlefield. It may seems not difficult, but it's a hard problem to solve, mathematically. Here I was, a freshman, who came up with an app  "solving" it. Some Master's students use my software today. It was then I began to believe in what I could do.

OTN: What most inspires you about programming?
I'm really inspired by the challenges and tension that comes from solving a complicated problems. Lately, I've been doing a new system focused on education and digital inclusion and was very gratifying to see it working and the results. I felt useful for the community.

OTN: What are some things you would like to accomplish using Java?
Java is a very strong platform and that gives us power to develop applications for different devices and purposes, from home automation with little microcontrollers to systems in big servers. I would like to build more systems that integrate the people life or different business contexts, from PCs to cell phones and tablets, ubiquitously. I think IT has reached a level where the current challenge is to make systems that leverage existing technologies that are present in daily life. Java gives us a very interesting set of options to put it into practice, especially in systems that require more strength.

OTN: What technical insights into Java technology have been most important to you?
I have really enjoyed the way that Java has evolved with Oracle, with new features added, many of them which were suggested by the community. Java 7 came with substantial improvements in the language syntax and it seems that Java 8 takes it even further. I also made some applications in JavaFX and liked the new version. The Java GUI is on a higher level than is offered out there. I saw some JavaFX prototypes running in modern tablets and I got excited.

OTN: What would you like to be doing 10 years from now?
I want my work to make a difference for individuals or an institution. It would be interesting to be improving one of the systems that I am making today. Recently I've been mixing my hobbies and work, playing with Arduino and home automation. The JHome project, winner of the Duke's Choice Award in 2011, is very interesting to me.

OTN: Do you listen to music when you write code? If so, what kind?
Absolutely! I usually listen to electronic music (Prodigy, Fatboy Slim and Paul Oakenfold), rock (Metallica, Strokes, The Black Keys) and a bit of local alternative music. I live in Goiânia, "The Brazilian Seattle" and I profit from it very well.

OTN: What do you do when you're not programming?
I like to play guitar and to fish. Last year I sold my economy car and bought a old jeep. Some people called me crazy, but since then I've been having a great time and having adventures on the backroads of Brazil. Once I broke my glasses in a funny game involving my car's suspension and the airbags.

OTN: Does your girlfriend think you are crazy?
Crazy is someone who doesn't have courage to do strange things! My girlfriend likes my style. =D

Subscribe to the free Java Magazine to read profiles of other young Java developers.

Visit the Java channel on YouTube to see a video of Marcelo in action.

Wednesday Nov 30, 2011

The JavaServer Faces 2.2 viewAction Component

Life just got easier for users of JavaServer Faces. In a new article, now up on otn/java, titled “New JavaServer Faces 2.2 Feature: The viewAction Component,” Tom McGinn, Oracle’s Principal Curriculum Developer for Oracle Server Technologies, explores the advantages offered by the JavaServer Faces 2.2 view action feature, which, according to McGinn, “simplifies the process for performing conditional checks on initial and postback requests, enables control over which phase of the lifecycle an action is performed in, and enables both implicit and declarative navigation.”

As McGinn observes: “A view action operates like a button command (UICommand) component. By default, it is executed during the Invoke Application phase in response to an initial request. However, as you'll see, view actions can be invoked during any phase of the lifecycle and, optionally, during postback, making view actions well suited to performing preview checks.”

McGinn explains that the JavaServer Faces 2.2 view action feature offers several advantages over the previous method of performing evaluations before a page is rendered:

   * View actions can be triggered early on, before a full component tree is built, resulting in a lighter weight call.

   * View action timing can be controlled.

   * View actions can be used in the same context as the GET request.

   * View actions support both implicit and explicit navigation.

   * View actions support both non-faces (initial) and faces (postback) requests.

Read the complete article here.

Wednesday Nov 16, 2011

The Big Announcement, This Year, at Devoxx 2011!

Stephan Janssen started the developer conference with his traditional "Welcome and Announcements" and this year announced Devoxx France, the new and only Devoxx conference outside of Belgium. It will take place in Paris, April 18 to 20, 2012. The Paris Java user group is organizing the 3 day conference. The conference is designed after Devoxx with Tools in Action, Labs, BOFs and Quickies and with one university day and 2 conference days. The model works well since Stephan turns down attendees every year. The content will be 75% in French and 25% in English. Call for papers opened today. Oracle will be a sponsor at the event!

Monday Nov 14, 2011

Devoxx 2011 Started Today

Devoxx 2011, organized by Java user group in Belgium, is the biggest Java conference in Europe. The first two University Days set the tone for the weeklong conference with its in-depth technical sessions lead by luminaries from the Java community and industry experts. Each day is a great mix of 3 hour sessions and hands-on labs, 30 minute Tools-in-Action sessions giving tips for faster and better application development and the traditional Birds-of-a-Feather sessions in the evening. Java sessions for today and tomorrow:
  • JavaFX 2.0 – A Java developer’s guide - Stephen Chin and Peter Pilgrim will give an overview of new version and how Java developers can take advantage of it
  • Java Rich Clients with JavaFX 2.0 - Richard Bair and Jasper Potts will get into JavaFX 2.0 APIs
  • Building an end-to-end application using Java EE 6 and NetBeans - Arun Gupta will showcase how to write Java EE 6 applications more effectively.
  • The OpenJDK Community BOF with Dalibor Topic
Starting Tuesday, come by the Oracle booth to chat about technology, enter our raffle and have a beer every day at 18:45

 

The sessions will be available on Parleys website after the conference. In the meantime, you can learn a lot about those Java technologies on our website:

 

Tuesday Oct 25, 2011

Perspectives on Garbage Collection

In a new article, part of the Developer Insight series, and titled “The Developer Insight Series, Part 6: Perspectives on Garbage Collection,” now up on otn/java, three leading Java developers offer insight into garbage collection.

Oracle Lab’s Ron Goldman notes, that, “Although automatic memory management has existed for more than 50 years, a lot of people still don't want it in their systems because it seems inelegant. It just strikes people as wrong – ‘It's my memory. I should be releasing it when I know it's no longer being used.’ Theoretically, that might be true, but in practice, programmers continue to forget to free up memory when they are done with it, or, even worse, try to free it up while it's still in use. The results? Buggy code that is apt to crash unexpectedly.”

Java Champion Kirk Pepperdine observes that, “Even though collection of very short-lived objects is almost free, high rates of object churn can still result in very inefficient GC numbers. Sometimes, the problem is simply that the Java Virtual Machine (JVM) doesn't have enough heap space. Monitoring GC activity will give you the hints you need for a successful heap-sizing exercise…”

And Oracle’s GC expert Tony Printesiz takes on eight myths about garbage collection, four of which are:

1. Reference counting GC will solve all my latency problems.
2. malloc and free will always perform better than GC.
3. Finalizers should be called promptly, as soon as objects become unreachable.
4. GC will eliminate all memory leaks.

The article provides a good context for developers to collect their thoughts about garbage. ;)

Read the complete article here.

Monday Oct 17, 2011

OpenJDK Development Best Practices

At JavaOne 2011, Oracle Principal Member of Technical Staff, Kelly O’Hair, had a session on “OpenJDK Development Best Practices” that offered a lot of useful practical advice. He discussed current OpenJDK development procedures such as building, testing, code review, and creating a changeset, and integrating that changeset into a team repository.  In addition he covered "OpenJDK Developers' Guide" topics and looked at the challenges of integrating a change.

So what are the best practices when working on the JDK?
● When in doubt, ask
● When something does not work, report it
● Always be careful, rushing in changes is dangerous
● Do no harm, have a backup or backout plan
● Stay calm, nervous people make mistakes
● Be prepared for anything, because it will happen

When editing sources:
● No TABS
● Never edit the legal notices
● Respect the existing formatting
● Small surgical changes are best, easiest to review
● Well written comments are critical
● Do not assume anything about the compilers

Testcases are critical and not optional:
● Create a new one or modify an existing testcase
● Must be solid and work on all supported systems
● Must not be a resource hog (open 20,000 files)
● Must work in a shared VM mode (like a JUnit test)
● Assume someone else might be running the same test at the same time, and that someone might be you
● Continuous Build & Test
● Test gates or baseline testing
● But before you even get started making changes you must be able to completely build it and test it on your own system, this is a fundamental
● Linux builds are the easiest, so let's see what needs to happen

He suggested best practices short cuts for building:
● Always use local disk space
● Use /tmp if it has the space
● Try export HOTSPOT_BUILD_JOBS=4
● Try export ALT_PARALLEL_COMPILE_JOBS=4
● Use export NO_DOCS=true to avoid running javadoc
● Use ALT_JDK_IMPORT_PATH=${HOME}/jdk1.8.0

Kelly offered detailed principles related to testing, testing prep, editing, code review, changeset creation, why a push fails, and the team repository model.

His core ideas:
● Pick your environment, Linux is easiest
● Pick a stable state of repos, promoted build, oldest best
● Learn to build and test it, over and over, know what to expect, create a jdk to use as your import
● Editing working set files, read the Mercurial book
● Problemlist, changeset creation

The Road to Java EE 7: Is It All About the Cloud?

PanelWith considerable enthusiasm I attended “The Road to Java EE 7: Is It All About the Cloud?” (23423) session, a panel of EE experts, late Wednesday morning at JavaOne 2011. I always find Java EE developers and architects to be among the smartest people around. Last year’s Java EE panel session, covered on otn/java and titled, “Where We Are and Where We’re Going” was fraught with more uncertainty about the future of Java EE. This year, it’s clear: Java EE is heading towards the Cloud. The session this year was packed even in a much larger room than last, with roughly three times the number of attendees as last year.

The panel consisted of the following people:
--Adam Bien, Consultant, Author, Java EE Expert
--David Blevins, Apache Software Foundation
--Emmanuel Bernard, JBoss Platform Architect, Red Hat
--Reza Rahman, Senior Software Engineer/Community Outreach Activist, Caucho Technology
--Linda DeMichiel, Java EE 7 Specification Lead, Oracle

The panel, moderated by Oracle’s Alexis Moussine-Pouchkine, Java EE Developer Advocate, Oracle France, addressed many issues, including:
• The current state of Java EE 6 adoption
• The motivations for Java EE 7
• What the cloud really means for Java EE 7
• Modularity in Java EE.next
• Better streamlined component models
• Status of ongoing work in the JCP
* Services and resources provisioning.
* Virtualization intersection between virtualization and PaaS?
* Meta-data: are XML deployment descriptors good after all?

Look for a detailed blow-by-blow account of the discussion on otn/java in coming weeks.
About

Insider News from the Java Team at Oracle!

duke
javeone logo
Links


Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
2
5
6
7
12
13
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today