There are a lot of hot topics when it comes to code, and keeping up with the times is always a trend. If you’re wondering how to separate the dross from the goodness, we’ve got you covered, all you need is the inspiration to read on.
In the following content, we will look at the hot spots in 2016 and what will be hotter this year. Of course I'm talking about Java. Okay, let's set sail.
Let’s start with a bug in Java 6. This bug will become a function in Java 9: sun.misc.Unsafe. This library is a collection of methods for performing low-level, unsafe operations. For example, using the allocateInstance method allows you to skip the object initialization phase or bypass safety checks in the constructor.
Although Oracle considered removing the Unsafe library altogether, the community changed their minds and ultimately made the Unsafe library a feature of Java 9.
This is not the only time the community has talked about Java 9 or possible changes in future versions of Java. Earlier this year, Brian Goetz, Oracle's Java language architect, released the findings of JEP 286.
The proposal recommends introducing Local Variable Type Inference in future Java versions to simplify writing Java applications. substance? 74% of developers want to be less verbose and be able to declare variables without having to specify the associated type.
With more than 200 days until Java 9 will be released (as we're counting its release date on our fingers), we have plenty of time to dig into the different JEPs and find new and improved features. This is where we come across JEP 266: more concurrency updates, including updates to CompletableFuture and the exciting java.util.concurrent.Flow class.
There is no doubt that Java 9 has made headlines over the past year, and it will continue to gain more and more attention as we enter 2017. Now all we have to do is wait and hope it doesn't get delayed again.
2016 is a meaningful year for Java Enterprise Edition, also known as Java EE. It has been a source of confusion for the global Java community because it is built on Java SE. Officially, it is "just" a specification, with actual usable implementations from Oracle (as the Glassfish reference implementation) and other vendors such as Red Hat and IBM.
There are many problems with Java EE, mainly this one: "Has Oracle given up on enterprise software?". The fatal blow to Java EE comes from Gartner's "Application Platform Market Guide" report. In the report, Gartner noted that Java EE was built for "a model that is outdated and no longer meets the needs of modern applications." Alas~
The Java EE community said that Gartner was not right, and this triggered a discussion around this version. Java EE 8 is expected to be released in the first half of 2017, and we feel it is too early to praise it now. We'll have to wait and see how this plays out and whether Java EE will crash.
Java is not just Java 9, it has many trends that you must stay on top of. A good start is browsing the top 100 Java libraries of 2016 to check if there's anything you might have missed over the past year.
Additionally, if libraries are not your thing, there are some interesting Java libraries from Google (not Guava) worth checking out.
Following the education route, there are some key elements that you can only learn with experience, so be prepared to learn.
If you are looking for a challenge, there are many projects worth your time. You can try solving these elegant problems, string manipulation, or even a Java music player and learn as you go. Of course, if you run into any problems or have any questions, the great Stackoverflow is always at your service. Here are seven of the best questions we've found.
Fun little anecdote: Can you guess how GitHub’s top Java projects use logs? We analyzed 779,236 Java logging statements across 1,313 GitHub repositories to find out: ERROR, WARN, or FATAL?
Containers have become very useful in the new year, and they are also very handy in managing the life cycle of a servlet, mapping URLs to specific servlets and ensuring that URL requesters have the correct access rights.
Many people are interested in Java containers. Just a few months after we piqued interest in the combination of Alpine Linux and Docker, we started chatting with OverOps support alone, and then we saw more and more users trying it out with their containers.
That's why we decided to try Alpine Linux, which is independent from Linux and based on musl libc (pronounced 'muscle') and busybox. In addition to being lightweight, it also follows the security-oriented principle and uses grsec/Pax to enhance security for the Linux kernel.
Docker remains one of the hottest tools in the industry. The company takes on the challenging task of shipping code and makes it faster and easier to use containers. However, if you want to use Java with Docker, then you may want to reconsider as it may cause you to break the (Java) commandment.
We know what you’re thinking—here’s a look at this buzzword. One of the most common topics we encountered in 2016 was DevOps, which has a wide variety of meanings and working methods. The gist of it is to focus on knowing what is happening in a real-time application and being able to control it.
How do we do this? By monitoring our production environment. Performance issues, errors and exceptions are always occurring and we have to know what exactly is going on. But how do we know when and why something is wrong? This is where the concept of Observability comes in, helping us gain insight into the system and know what is going on.
It is part of the DevOps workflow, and in control theory, it is a measure of how the internal state of a system is inferred through knowledge of its external output. Here comes another “buzzword”: Instrumentation. It's Instrumentation that allows us to gain insights before applications go crazy on us and our users.
After we have established these building blocks, it is now time to provide tools that can help us monitor application performance. Once the application is up and running, we need to know if and when an error or exception is thrown. That's why there are many bug tracking tools on the market, so all you need to do is choose the right one.
Errors are not the only issue that requires our attention, the biggest remaining challenge in 2016 is dealing with log files. Everyone uses log files to search for and understand errors, crashes, and exceptions in applications. Some people use a direct approach and sift through plain text log files, while others rely on log management tools to help them find errors in log-haystack.
If you are looking for a new way to debug production errors and exceptions, OverOps (revised during 2016) provides you with complete source code and variable state of the entire call stack. Every parameter and every variable that causes a failure is passed into the transaction or workflow.
We cannot ignore the trend of microservices. Some will say it's just another insufferable buzzword, while others extol the virtues of breaking down monoliths or taking a contrarian approach and focusing on the negative.
No matter which way you look at it, it seems like everyone is doing microservices these days. Now you just have to be careful not to touch it in production when using microservices.
Serverless computing architecture has also been receiving attention in the past few years. The concept of serverless computing involves deploying code, not servers. Instead of purchasing, managing, and scaling servers, cloud providers handle requests for VMs.
So you still need the server, but this new model takes over that responsibility. Or in other words, there is no hassle in handling deployment to the server or any software installed. Basically, all you need is a managed cloud service and a computer.
And the last one, even though artificial intelligence and machine learning have been around for a while, it still feels like everyone is still talking about them. They are no longer a secret among scientists and researchers, and can be seen implemented in almost any emerging technology.
The recent buzz and evolutionary advances in this field have made it more accessible to non-researchers. Now you have complete and easy access to relevant algorithms and tools. You have to know what you're doing, and it's much easier to enhance an application with machine learning capabilities.
You have to love the Java community. Because not only did they influence future versions of the language, but they also enriched us all through meetups, articles, and everything Java related. 2016 had some pretty amazing conferences like JavaOne, QCon, and many more great talks you can re-watch right now.
One of the main resources for learning new things in software development is to watch online lectures and videos. It's a great platform because it has Java experts sharing their experiences with us without you having to leave the comfort of your couch and run around.
Or, if watching videos isn’t your thing, browsing Java decks can keep you updated on current trends.
Peer support is relevant to every aspect of our work, and we can learn a lot from those around us. A key trait is productivity, as there is always room for improvement. All we have to do is be prepared to accept suggestions and listen to anyone who wants to speak.
Another key element of community is supporting and promoting open source projects. In fact, we've officially launched the command line tool you've been waiting for (or maybe not) - Bullshifier. It was used to test some monitoring capabilities on a ridiculously large codebase, with tens of thousands of call depths, tens of thousands of classes, and ended up with unusual transactions.
In 2016 we encountered many themes and buzzwords. Some we already know, and some new ones allow us to look at Java in a completely different way. Now we are looking forward to Java 9 in 2017 and expect some updates and more amazing features, talks, projects, and even a new buzzword or two for Java in 2017.
What was your favorite Java feature, talk, or topic in 2016? We’d love to hear from you in the comments below.
English original text: If You Wrote Java in 2016, Here Are the Trends You Couldn't Have Missed
The above is the detailed content of Development trends that Java programmers shouldn’t miss. For more information, please follow other related articles on the PHP Chinese website!