Bhupinder Kour

Bhupinder Kour

1580996556

10 JVM Languages that can be Java Alternative [2020 Updated]

Over the past many years, Java remained the sole answer to JVM requirements. It, both as a language and a framework, empowered business enthusiasts and developers to craft innovation in the JVM environment and reap higher benefits.

But now, Java is dying.

If you check Google Trends, the popularity of Java is dwindling every passing minute.

The language is failing to meet the needs of the software and business world in the current scenario; making developers look forward to other JVM languages.

Keeping the same into consideration, we will be uncovering different JVM languages in this article.

1. Clojure
The very first entrant in the list of JVM languages that can be Java’s replacement is Clojure.

Developed by Rich Hickey, it is basically a functional programming language which is a dialect of Lisp and comes loaded with characteristics such as ease of creating concurrent and high-performance solutions.

Unlike Java, it empowers developers to employ unique set of programming styles and is known for running on the Common Language Runtime (CLR) of Microsoft.

2. Kotlin
Developed by JetBrains in 2010 and announced as official Android development language in 2017, Kotlin is yet another major participant in this battle of becoming Java alternative.

The language has emerged as a better version of Java - targeting the traditional issues and challenges while fitting to the demands of the current development world. It is quite simple to understand and work with, offering exceptional Java interoperability and is considerably safer to execute.

3. Scala
Designed primarily to add the features of functional programming and improve the developers’ productivity, Scala can also be seen as Java alternative this year.

The language ranks higher in the list due to its characteristics like algebraic data types, pattern matching and lazy computation. Besides, retrieving Java codes in the development environment is also much easier in the case of Scala. Something that makes it come directly into competition with Kotlin as the Java alternative, aka, make everyone look into Kotlin vs Scala battle before beginning with the process.

4. Groovy
Developed by Pivotal and currently provided by the Apache Software Foundation, this language is quite popular among developers. It provides them with an advantage to employ their existing experience in Java, along with enjoying features that are offered by dynamic languages like Python and Ruby.

The domain-specific language (DSL) is also in the limelight for ease of learning, support for static compilation capabilities, the facility to integrate other Java programs, and other scripting abilities.

5. Frege
Frege is yet another language that must be considered while deciding the replacement of Java in the JVM world.

The language is purely functional, strongly typed JVM language that seems much like Haskell. It offers high-end Java interoperability making it easier for one to reuse Java libraries and call Frege’s code from Java. Also, it supports various features of Haskell, such as Pattern matching, Higher rank types, list comprehension, modules, mathematical abstractions, etc.

6. Ceylon
Offered by Red Hat, Ceylon targets varied Java issues, including verbosity and relationship to the fundamental mechanisms in the JVM environment. The language was founded back in 2017 and is suitable for compilation on Dart VM and Node.js in addition to JVM.

7. Jython and JRuby
As their name depicts, JRuby and Jython are implementations of Ruby and Python designed explicitly for the JVM environment. Both the languages are easy to install and offer higher code readability, performance and enhanced interoperability with other JVM programming languages, especially Java.

This makes them notable options to consider when looking into which language can replace Java in the JVM world.

8. Fantom
Fantom is yet another language that can be considered for JVM-related needs.

Created by Brian and Andy Frank back in 2017, the language is a general-purpose object-oriented language that runs on the .NET Common Language Runtime (CLR) and the Java Runtime Environment (JRE). It was offered the primary goal to provide a standard library API that abstract the difference between the code will run on the CLR or JRE.

The language encourages functional programming through closure. Likewise, it introduces the concurrency factor into the play via the Actor model. It employs the ‘middle of the road’ approach to its type system, resembles Java programming language, and collaborates different aspects of both static and dynamic typing.

Also, It is also quite easier to compile Fantom to JavaScript and relish the benefits of deployment to a wider extent.

9. Haxe
Haxe programming language is also one of the finest addition to the list.

The language provides developers with the ease to implement, facility to enjoy high-end interoperability with other Java libraries and easily compile code to JVM as well as other platforms including web, mobile, and bare-metal devices.

10. Xtend
Last but not least, Xtend is another general-purpose high-level programming language that can replace Java in the JVM domain.

The language, designed by Sven Efftinge and Sebastian Zarnekow in 2011, has its origin from Java. But, it focuses effectively on concise syntax and additional characteristics including extension methods, type inference, and operator overloading. Also, it introduces the features of functional programming such as lambda expressions into the ecosystem and integrates all the existing Java libraries.

The aforementioned were the programming languages that one way or the other satisfy the role played by Java in the JVM environment and so, the prevailing market needs.

Hope you find the list useful. For further queries, do leave a comment below.

#JVM #Java

What is GEEK

Buddha Community

Tyrique  Littel

Tyrique Littel

1600135200

How to Install OpenJDK 11 on CentOS 8

What is OpenJDK?

OpenJDk or Open Java Development Kit is a free, open-source framework of the Java Platform, Standard Edition (or Java SE). It contains the virtual machine, the Java Class Library, and the Java compiler. The difference between the Oracle OpenJDK and Oracle JDK is that OpenJDK is a source code reference point for the open-source model. Simultaneously, the Oracle JDK is a continuation or advanced model of the OpenJDK, which is not open source and requires a license to use.

In this article, we will be installing OpenJDK on Centos 8.

#tutorials #alternatives #centos #centos 8 #configuration #dnf #frameworks #java #java development kit #java ee #java environment variables #java framework #java jdk #java jre #java platform #java sdk #java se #jdk #jre #open java development kit #open source #openjdk #openjdk 11 #openjdk 8 #openjdk runtime environment

Samanta  Moore

Samanta Moore

1620458875

Going Beyond Java 8: Local Variable Type Inference (var) - DZone Java

According to some surveys, such as JetBrains’s great survey, Java 8 is currently the most used version of Java, despite being a 2014 release.

What you are reading is one in a series of articles titled ‘Going beyond Java 8,’ inspired by the contents of my book, Java for Aliens. These articles will guide you step-by-step through the most important features introduced to the language, starting from version 9. The aim is to make you aware of how important it is to move forward from Java 8, explaining the enormous advantages that the latest versions of the language offer.

In this article, we will talk about the most important new feature introduced with Java 10. Officially called local variable type inference, this feature is better known as the **introduction of the word **var. Despite the complicated name, it is actually quite a simple feature to use. However, some observations need to be made before we can see the impact that the introduction of the word var has on other pre-existing characteristics.

#java #java 11 #java 10 #java 12 #var #java 14 #java 13 #java 15 #verbosity

Bhupinder Kour

Bhupinder Kour

1580996556

10 JVM Languages that can be Java Alternative [2020 Updated]

Over the past many years, Java remained the sole answer to JVM requirements. It, both as a language and a framework, empowered business enthusiasts and developers to craft innovation in the JVM environment and reap higher benefits.

But now, Java is dying.

If you check Google Trends, the popularity of Java is dwindling every passing minute.

The language is failing to meet the needs of the software and business world in the current scenario; making developers look forward to other JVM languages.

Keeping the same into consideration, we will be uncovering different JVM languages in this article.

1. Clojure
The very first entrant in the list of JVM languages that can be Java’s replacement is Clojure.

Developed by Rich Hickey, it is basically a functional programming language which is a dialect of Lisp and comes loaded with characteristics such as ease of creating concurrent and high-performance solutions.

Unlike Java, it empowers developers to employ unique set of programming styles and is known for running on the Common Language Runtime (CLR) of Microsoft.

2. Kotlin
Developed by JetBrains in 2010 and announced as official Android development language in 2017, Kotlin is yet another major participant in this battle of becoming Java alternative.

The language has emerged as a better version of Java - targeting the traditional issues and challenges while fitting to the demands of the current development world. It is quite simple to understand and work with, offering exceptional Java interoperability and is considerably safer to execute.

3. Scala
Designed primarily to add the features of functional programming and improve the developers’ productivity, Scala can also be seen as Java alternative this year.

The language ranks higher in the list due to its characteristics like algebraic data types, pattern matching and lazy computation. Besides, retrieving Java codes in the development environment is also much easier in the case of Scala. Something that makes it come directly into competition with Kotlin as the Java alternative, aka, make everyone look into Kotlin vs Scala battle before beginning with the process.

4. Groovy
Developed by Pivotal and currently provided by the Apache Software Foundation, this language is quite popular among developers. It provides them with an advantage to employ their existing experience in Java, along with enjoying features that are offered by dynamic languages like Python and Ruby.

The domain-specific language (DSL) is also in the limelight for ease of learning, support for static compilation capabilities, the facility to integrate other Java programs, and other scripting abilities.

5. Frege
Frege is yet another language that must be considered while deciding the replacement of Java in the JVM world.

The language is purely functional, strongly typed JVM language that seems much like Haskell. It offers high-end Java interoperability making it easier for one to reuse Java libraries and call Frege’s code from Java. Also, it supports various features of Haskell, such as Pattern matching, Higher rank types, list comprehension, modules, mathematical abstractions, etc.

6. Ceylon
Offered by Red Hat, Ceylon targets varied Java issues, including verbosity and relationship to the fundamental mechanisms in the JVM environment. The language was founded back in 2017 and is suitable for compilation on Dart VM and Node.js in addition to JVM.

7. Jython and JRuby
As their name depicts, JRuby and Jython are implementations of Ruby and Python designed explicitly for the JVM environment. Both the languages are easy to install and offer higher code readability, performance and enhanced interoperability with other JVM programming languages, especially Java.

This makes them notable options to consider when looking into which language can replace Java in the JVM world.

8. Fantom
Fantom is yet another language that can be considered for JVM-related needs.

Created by Brian and Andy Frank back in 2017, the language is a general-purpose object-oriented language that runs on the .NET Common Language Runtime (CLR) and the Java Runtime Environment (JRE). It was offered the primary goal to provide a standard library API that abstract the difference between the code will run on the CLR or JRE.

The language encourages functional programming through closure. Likewise, it introduces the concurrency factor into the play via the Actor model. It employs the ‘middle of the road’ approach to its type system, resembles Java programming language, and collaborates different aspects of both static and dynamic typing.

Also, It is also quite easier to compile Fantom to JavaScript and relish the benefits of deployment to a wider extent.

9. Haxe
Haxe programming language is also one of the finest addition to the list.

The language provides developers with the ease to implement, facility to enjoy high-end interoperability with other Java libraries and easily compile code to JVM as well as other platforms including web, mobile, and bare-metal devices.

10. Xtend
Last but not least, Xtend is another general-purpose high-level programming language that can replace Java in the JVM domain.

The language, designed by Sven Efftinge and Sebastian Zarnekow in 2011, has its origin from Java. But, it focuses effectively on concise syntax and additional characteristics including extension methods, type inference, and operator overloading. Also, it introduces the features of functional programming such as lambda expressions into the ecosystem and integrates all the existing Java libraries.

The aforementioned were the programming languages that one way or the other satisfy the role played by Java in the JVM environment and so, the prevailing market needs.

Hope you find the list useful. For further queries, do leave a comment below.

#JVM #Java

Brain  Crist

Brain Crist

1594753020

Citrix Bugs Allow Unauthenticated Code Injection, Data Theft

Multiple vulnerabilities in the Citrix Application Delivery Controller (ADC) and Gateway would allow code injection, information disclosure and denial of service, the networking vendor announced Tuesday. Four of the bugs are exploitable by an unauthenticated, remote attacker.

The Citrix products (formerly known as NetScaler ADC and Gateway) are used for application-aware traffic management and secure remote access, respectively, and are installed in at least 80,000 companies in 158 countries, according to a December assessment from Positive Technologies.

Other flaws announced Tuesday also affect Citrix SD-WAN WANOP appliances, models 4000-WO, 4100-WO, 5000-WO and 5100-WO.

Attacks on the management interface of the products could result in system compromise by an unauthenticated user on the management network; or system compromise through cross-site scripting (XSS). Attackers could also create a download link for the device which, if downloaded and then executed by an unauthenticated user on the management network, could result in the compromise of a local computer.

“Customers who have configured their systems in accordance with Citrix recommendations [i.e., to have this interface separated from the network and protected by a firewall] have significantly reduced their risk from attacks to the management interface,” according to the vendor.

Threat actors could also mount attacks on Virtual IPs (VIPs). VIPs, among other things, are used to provide users with a unique IP address for communicating with network resources for applications that do not allow multiple connections or users from the same IP address.

The VIP attacks include denial of service against either the Gateway or Authentication virtual servers by an unauthenticated user; or remote port scanning of the internal network by an authenticated Citrix Gateway user.

“Attackers can only discern whether a TLS connection is possible with the port and cannot communicate further with the end devices,” according to the critical Citrix advisory. “Customers who have not enabled either the Gateway or Authentication virtual servers are not at risk from attacks that are applicable to those servers. Other virtual servers e.g. load balancing and content switching virtual servers are not affected by these issues.”

A final vulnerability has been found in Citrix Gateway Plug-in for Linux that would allow a local logged-on user of a Linux system with that plug-in installed to elevate their privileges to an administrator account on that computer, the company said.

#vulnerabilities #adc #citrix #code injection #critical advisory #cve-2020-8187 #cve-2020-8190 #cve-2020-8191 #cve-2020-8193 #cve-2020-8194 #cve-2020-8195 #cve-2020-8196 #cve-2020-8197 #cve-2020-8198 #cve-2020-8199 #denial of service #gateway #information disclosure #patches #security advisory #security bugs

Seamus  Quitzon

Seamus Quitzon

1599522905

How to Install Multiple Versions of Java on the Same Machine

Some time back, I wrote the article Java Lambda Expression Explained with Example, but it was easy for me to explore Java 8 because I was using it in my project and allowed to install it. But in my current project, we are still using Java 8, and now, I want to upgrade and learn Java 11, but unfortunately, I cannot install it.

And this happens a lot with Java developers. Sometimes, you want to learn and explore the latest version of Java, but you cannot install it on your machine because you and your team are working on an older version, e.g. Java 8, and you don’t want to accidentally break your project.

Or, suppose you are working on multiple projects, some of which use Java 8 and some of which are new projects using Java 11. So, in order to work on both of these projects, you will need to install multiple versions of the JDK on your machine and be able to switch between them.

What if there is a way to install multiple versions of Java and turn different versions on and off, depending on your needs.

Well, there is a tool called SDKMan which allows us to do just that. According to their website:

SDKMan! is a tool for managing parallel versions of multiple S oftware Development Kits on most Unix-based systems. It provides a convenient Command Line Interface (CLI) and API for installing, switching, removing, and listing Candidates.

Some points about SDKMan are as follows:

  1. SDKMan is free to use and is developed by the open-source community.
  2. SDKMan is written in bash and only requires curl and zip/unzip programs to be present on your system.
  3. We do not need to worry about setting the _HOME and PATH environment variables because SDKMan handles them automatically.

Installing SDKMan

SDKMan can run on any UNIX-based platforms such as Mac OSX, Linux, Cygwin, Solaris, and FreeBSD, and we can install it using the following commands:

$ curl -s "https://get.sdkman.io" | bash

$ source “$HOME/.sdkman/bin/sdkman-init.sh”


We can verify the installation using `sdk version` and `sdk help` commands, which will give us complete help with the usage of the `sdk `command.

> Because SDKMan is written in [bash](https://www.gnu.org/software/bash/) and only requires [curl](http://curl.haxx.se/) and [zip/unzip](http://www.info-zip.org/) to be present on your system, you can install SDKMan on Windows as well either by first installing [Cygwin](https://www.cygwin.com/install.html) or [Git Bash for Windows](https://git-scm.com/download/win) environment and then running the above commands.

#java #jvm #java 9 #jdk #java 11 #java 10 #jdk 11 #versions