navigation

Top 5 Emerging Technologies among Java Devs

Top 5 Emerging Technologies among Java Devs

by
July 1, 2020

Java Changed tremendously for the last 10 years. Think about the new Java releases. There is a new release every six months now compared to every second/third year as it was before. Being focused almost entirely on Java programming for the last 14 years we can proudly say that what many say for Java being a programming language of the past, is totally wrong. Let’s see what are the top 5 emerging technologies for Java devs.

1. Serverless – Here I won’t speak about the typical explanation that is “Serverless is a cloud architectural model that abstracts away from developers the need to handle server provisioning and maintenance. It is commonly associated with Functions-as-a-Service (Faas), a form of computing service that was the pioneer of all serverless systems. FaaS executes self-contained code on-demand. It is stateless, not keeping any data persisted after an execution.” Link

What Paul Johnston is saying about serverless is the best one I’ve read – “Serverless is an approach, not a technology” If you dig deep it means that you must be very familiar with every detail of your business in order to use serverless as an approach. The idea here is that if no one is using your product your cost must be zero. As Paul says “A serverless application is one that provides maximum business value over its application lifecycle and one that costs you nothing to run when nobody is using it, excluding data storage costs.”

Emerging Technologies, serverless,

Nowadays, code isn’t of so much value anymore. Services are now replacing code and we won’t need so much of it anymore. Services will allow the developer to spend more time building business value. So serverless will limit your time to managing, adjusting and changing servers. It was AWS who together with AWS Lambda introduced abstract serverless computing offering. Nowadays, all the cloud vendors have such.

2. REST – reigns in the API domain. REST was first defined by Roy Fielding in his doctoral dissertation in 2000. The other two APIs that are gaining popularity are gRPC from Google and GraphQL from Facebook. Both are interesting technologies but offer different capabilities. Some of the key things about REST are:

    • Usually uses HTTP protocol
    • Depend on HTTP Verb and Status Code
    • Usually uses JSON as payload 
    • Must have HATEOAS
    • Stateless
    Let’s compare REST, gRPS & GraphQL:
REST gRPC GraphQL
Pros
  • Easy to scale  because of the stateless nature
  • Easy to integrate due to HATESOA
  • Performance – Usually uses HTTP which is supported by most servers/clients to catch the request.  
  • Easy to write, easy to read and easy to create SDK due to built in code generator 
  • Faster than other web service techniques 
  • It has all of the advantages of HTTP because it is based on HTTP2
  • It uses Protobuf and that is why it is strong typed
  • It has GraphiQL which is a responsive UI for testing and a document browser for GraphQL endpoint 
  • Clients can receive the data in a predictable way – no more data redundancy and overfetching 
  • Ability to fetch data from different resources by just one request 
  • Strong typed
Cons
  • No uniform style for documentation
  • Field deprecation, versioning your API may be a drama 
  • There are a lot of constraints due to HATEOAS 
  • Over fetching 
  • Every request uses PUST method and this leads to inability to leverage HTTP catching 
  • No built in UI support for debugging and testing 
  • It has circular query which is a headache 
  • Composite endpoints are difficult and may hurt performance 
  • No built-in cache 

Other 3 examples given by Kristopher Sandoval here

3. Spring – There were times of fierce competition between Spring and Java EE but nowadays there is a clear winner. Spring is the champ. It blossomed so fast that now it is Spring of everything – Spring Boot, Spring Cloud, Spring Security, Spring Data, Spring Integration, etc. It is the number 1 framework in the JVM ecosystem. 

spring, sour, java

4. Apache Flink – enables big data steaming nowadays. Alibaba bought Data Artisans who are the people behind Flink and considering the tremendous marketing budget this corp has we may expect that Spark won’t be more popular soon. Apache Flink is a framework and distributed processing engine for stateful computations over unbounded and bounded data streams. It is designed to perform computations at in-memory speed and at any scale. Moreover, it runs in all common cluster environments, Read in-depth here. Lyft has an amazing use case with Flick which you can check in this presentation.


streamig, applications, AI

5. Distributed SQL? :) – many people said that NoSQL is the future and SQL databases are dead. They are all wrong as the top 4 DBs are all SQL based.

database model, dreamix, DBSM

Why SQL excels even after 50 years of its invention?

  • SQL is originally designed for data and is based on simple mathematics. It really excels in organizing and accessing data
  • Some of the biggest tech companies like Facebook use RDBMS and SQL. They are battle tested.
  • There is a huge knowledge and community
  • SQL is easy to learn
  • Interoperability – even though SQL syntax has variances in different databases it is quite similar
  • “Don’t do in code what you can get the SQL server to do well for you”
  • SQL and NoSQL play different roles

What is the future? A “master database” is needed. What would it look like? It’ll combine the horizontal scaling of NoSQL with the ACID guarantee of SQL. Google and Amazon built Spanner and Aurora but they still have limitations. Aurora misses the horizontal scaling but has almost all SQL features, while Spanner is the opposite (has the horizontal scaling but misses many SQL features). Distributed SQL database in 2020? Why not :)

That was it from me. Hope you found it interesting. What are your emerging technologies? What do you want to happen in 2020?

Stoyan Mitov

Blogger at JAXenter, business development director at Dreamix, co-founder at Grajdanite.bg and active sportsperson by passion.

More Posts - Website

Follow Me:
TwitterLinkedInGoogle Plus

Do you want more great blogs like this?

Subscribe for Dreamix Blog now!