Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

DZone Research: What Devs Need to Know About Java

DZone's Guide to

DZone Research: What Devs Need to Know About Java

When it comes to Java, one of the most important takeaways is to realize the depth of the ecosystem and don't try to reinvent the wheel.

· Java Zone ·
Free Resource

Download Microservices for Java Developers: A hands-on introduction to frameworks and containers. Brought to you in partnership with Red Hat.

To gather insights on the current and future state of the Java ecosystem, we talked to executives from 14 companies. We began by asking, "What do developers need to keep in mind when working with Java?" Here's what the respondents told us:

Depth

  • Work on applying your Java skills in new environments like Docker and Kubernetes. Pay attention to the Java roadmap. Look into how the platform fits into the cloud with new dynamic APIs. Learn cloud technology and how it applies to Java. Look around at other languages, constantly learning what you can do and bringing the best to Java. 
  • JVM is the top programming platform. Most languages live on the JVM so start with Java. Primary platforms for business apps are Java and .Net. Be language agnostic. Learn design, “Design Patterns” by the Gang of Four.
  • A really big winning point for Java is the high level. Java is on an abstraction level where you can produce and think about the important parts to deliver business value. However, developers who strive to "push" Java a big needs a fundamental knowledge about what's going on under the hood.

Reuse

  • Don’t reinvent the wheel. Participate in the ecosystem. Be a contributor. 
  • Good IDE can make life easier by reducing verbosity. Since you’re on the JVM you can use many other languages (e.g., Groovy and Kotlin).

Other

  • Dependency management can get complicated. Hard for newcomers. This can be a barrier to entry since other languages have just write and execute capabilities. Need a build tool to write.
  • Learn the libraries, especially those with long-term staying power. Know your code is going to be attacked and prepare accordingly. 100% of the apps we monitor were attacked last month. Be ready to respond to an attack within a day.
  • The future is serverless with RIFF. Libraries with reactive programming with Akka, big data with Scala, ultimately web apps like Spring Frameworks. For scalable architecture check out Netflix.
  • It matters to us what you are doing. Keep up with the new releases and try new builds before they go live to be seen as an expert at your company and with local user groups. Once you get involved in a group, you’ll be perceived as an expert. So, try out new releases before they are final and stay ahead of the curve.
  • Like any other language, it’s important for developers to keep the basics in mind – meaning your code needs to be well-designed, extendable, maintainable, and understandable by others.
  • That while Google and Stack Overflow is certainly magical (again, vibrant community & ecosystem plays a huge part here), also take time to just try out new syntax, build tons of throw-away experimental bodies of code, ideally as automated tests.  Invest time in learning some of the language features that you might not have explored like lambdas or modules, even if it does hurt your head at times (it certainly does mine, I still default to an old school for loop).
  • There’s a difference between generics and templates. Understand what Java does under the hood. Be aware of getting type erasure.
  • There’s a good future in it. Look for tools to help with development. Keep an eye on open source projects. Find good information outlets.

Here’s who we spoke to:

  • Gil Tayar, Senior Architect and Evangelist, Applitools
  • Frans van Buul, Commercial Developer, Evangelist, AxonIQ
  • Carlos Sanches, Software Engineer, CloudBees
  • Jeff Williams, Co-founder and CTO, Contrast Security
  • Doug Pearson, CTO, FlowPlay
  • John Duimovich, Distinguished Engineer and Java CTO, IBM
  • Brian Pontarelli, CEO, Inversoft
  • Wayne Citrin, CTO, JNBridge
  • Ray Augé, Sr. Software Architect, Liferay
  • Matt Raible, Java Champion and Developer Advocate, Okta
  • Heather VanCura, Chair of the Java Community Process Program, Oracle
  • Burr Sutter, Director Developer Experience, Red Hat
  • Ola Petersson, Software Consultant, Squeed
  • Roman Shoposhnik, Co-founder, V.P. Product and Strategy, Zededa
  • Download Building Reactive Microservices in Java: Asynchronous and Event-Based Application Design. Brought to you in partnership with Red Hat

    Topics:
    java ,java ecosystem ,jvm ,containers ,serverless

    Opinions expressed by DZone contributors are their own.

    {{ parent.title || parent.header.title}}

    {{ parent.tldr }}

    {{ parent.urlSource.name }}