Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Erlang
Erlang

429
365
+ 1
250
Java
Java

30.3K
19.7K
+ 1
3.2K
Add tool

Erlang vs Java: What are the differences?

Developers describe Erlang as "A programming language used to build massively scalable soft real-time systems with requirements on high availability". Some of Erlang's uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang's runtime system has built-in support for concurrency, distribution and fault tolerance. OTP is set of Erlang libraries and design principles providing middle-ware to develop these systems. On the other hand, Java is detailed as "A concurrent, class-based, object-oriented, language specifically designed to have as few implementation dependencies as possible". Java is a programming language and computing platform first released by Sun Microsystems in 1995. There are lots of applications and websites that will not work unless you have Java installed, and more are created every day. Java is fast, secure, and reliable. From laptops to datacenters, game consoles to scientific supercomputers, cell phones to the Internet, Java is everywhere!.

Erlang and Java can be primarily classified as "Languages" tools.

"Real time, distributed applications" is the top reason why over 49 developers like Erlang, while over 526 developers mention "Great libraries" as the leading cause for choosing Java.

Erlang is an open source tool with 7.7K GitHub stars and 2.09K GitHub forks. Here's a link to Erlang's open source repository on GitHub.

Airbnb, Uber Technologies, and Spotify are some of the popular companies that use Java, whereas Erlang is used by WhatsApp, AdRoll, and Grooveshark. Java has a broader approval, being mentioned in 2378 company stacks & 2633 developers stacks; compared to Erlang, which is listed in 70 company stacks and 45 developer stacks.

- No public GitHub repository available -

What is Erlang?

Some of Erlang's uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang's runtime system has built-in support for concurrency, distribution and fault tolerance. OTP is set of Erlang libraries and design principles providing middle-ware to develop these systems.

What is Java?

Java is a programming language and computing platform first released by Sun Microsystems in 1995. There are lots of applications and websites that will not work unless you have Java installed, and more are created every day. Java is fast, secure, and reliable. From laptops to datacenters, game consoles to scientific supercomputers, cell phones to the Internet, Java is everywhere!
Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Why do developers choose Erlang?
Why do developers choose Java?

Sign up to add, upvote and see more prosMake informed product decisions

    Be the first to leave a con

    Sign up to add, upvote and see more consMake informed product decisions

    What companies use Erlang?
    What companies use Java?

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Erlang?
    What tools integrate with Java?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    What are some alternatives to Erlang and Java?
    Elixir
    Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.
    Haskell
    Go
    Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.
    Clojure
    Clojure is designed to be a general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language - it compiles directly to JVM bytecode, yet remains completely dynamic. Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system.
    Akka
    Akka is a toolkit and runtime for building highly concurrent, distributed, and resilient message-driven applications on the JVM.
    See all alternatives
    Decisions about Erlang and Java
    Conor Myhrvold
    Conor Myhrvold
    Tech Brand Mgr, Office of CTO at Uber | 19 upvotes 1M views
    atUber TechnologiesUber Technologies
    Jaeger
    Jaeger
    Python
    Python
    Java
    Java
    Node.js
    Node.js
    Go
    Go
    C++
    C++
    Kubernetes
    Kubernetes
    JavaScript
    JavaScript
    OpenShift
    OpenShift
    C#
    C#
    Apache Spark
    Apache Spark

    How Uber developed the open source, end-to-end distributed tracing Jaeger , now a CNCF project:

    Distributed tracing is quickly becoming a must-have component in the tools that organizations use to monitor their complex, microservice-based architectures. At Uber, our open source distributed tracing system Jaeger saw large-scale internal adoption throughout 2016, integrated into hundreds of microservices and now recording thousands of traces every second.

    Here is the story of how we got here, from investigating off-the-shelf solutions like Zipkin, to why we switched from pull to push architecture, and how distributed tracing will continue to evolve:

    https://eng.uber.com/distributed-tracing/

    (GitHub Pages : https://www.jaegertracing.io/, GitHub: https://github.com/jaegertracing/jaeger)

    Bindings/Operator: Python Java Node.js Go C++ Kubernetes JavaScript OpenShift C# Apache Spark

    See more
    Conor Myhrvold
    Conor Myhrvold
    Tech Brand Mgr, Office of CTO at Uber | 9 upvotes 508.7K views
    atUber TechnologiesUber Technologies
    C
    C
    Java
    Java
    JavaScript
    JavaScript

    Why Uber developed H3, our open source grid system to make geospatial data visualization and exploration easier and more efficient:

    We decided to create H3 to combine the benefits of a hexagonal global grid system with a hierarchical indexing system. A global grid system usually requires at least two things: a map projection and a grid laid on top of the map. For map projection, we chose to use gnomonic projections centered on icosahedron faces. This projects from Earth as a sphere to an icosahedron, a twenty-sided platonic solid. The H3 grid is constructed by laying out 122 base cells over the Earth, with ten cells per face. H3 supports sixteen resolutions: https://eng.uber.com/h3/

    (GitHub Pages : https://uber.github.io/h3/#/ Written in C w/ bindings in Java & JavaScript )

    See more
    Martin Lonkwitz
    Martin Lonkwitz
    Software engineering at SVA | 3 upvotes 18.2K views
    C++
    C++
    Java
    Java

    Maybe not in everybody focus but I do like programming for @z/OS, @z/Linux and @z/VM with C++ , Java and Assembler . Who else love to dig into control blocks and get a deep dive into system resources to run things in a high valuable way ? And also go all the way up to the application to enlight all the infrastructure features to it ?

    See more
    Hampton Catlin
    Hampton Catlin
    VP of Engineering at Rent The Runway | 7 upvotes 9.8K views
    atRent the RunwayRent the Runway
    Ruby
    Ruby
    Python
    Python
    Java
    Java

    At our company, and I've noticed a lot of other ones... application developers and dev-ops people tend to use Ruby and our statisticians and data scientists love Python . Like most companies, our stack is kind of split that way. Ruby is used as glue in most of our production systems ( Java being the main backend language), and then all of our data scientists and their various pipelines tend towards Python

    See more
    TypeScript
    TypeScript
    JavaScript
    JavaScript
    Visual Studio Code
    Visual Studio Code
    Java
    Java

    I use TypeScript because it is strongly typed superset of JavaScript that provides many benefits. Integration with #IDE like Visual Studio Code is excellent. The main benefit is maintainability. Many error can be caught before code running. Also Angular recommends TypeScript as better alternative to JavaScript . Syntax is very easy to learn especially for people from the Java world.

    See more
    Visual Studio Code
    Visual Studio Code
    GitHub
    GitHub
    Linux
    Linux
    JavaScript
    JavaScript
    Swift
    Swift
    Java
    Java
    PHP
    PHP
    Python
    Python
    XML
    XML
    JSON
    JSON
    Git
    Git
    SVN (Subversion)
    SVN (Subversion)

    I use Visual Studio Code because at this time is a mature software and I can do practically everything using it.

    • It's free and open source: The project is hosted on GitHub and it鈥檚 free to download, fork, modify and contribute to the project.

    • Multi-platform: You can download binaries for different platforms, included Windows (x64), MacOS and Linux (.rpm and .deb packages)

    • LightWeight: It runs smoothly in different devices. It has an average memory and CPU usage. Starts almost immediately and it鈥檚 very stable.

    • Extended language support: Supports by default the majority of the most used languages and syntax like JavaScript, HTML, C#, Swift, Java, PHP, Python and others. Also, VS Code supports different file types associated to projects like .ini, .properties, XML and JSON files.

    • Integrated tools: Includes an integrated terminal, debugger, problem list and console output inspector. The project navigator sidebar is simple and powerful: you can manage your files and folders with ease. The command palette helps you find commands by text. The search widget has a powerful auto-complete feature to search and find your files.

    • Extensible and configurable: There are many extensions available for every language supported, including syntax highlighters, IntelliSense and code completion, and debuggers. There are also extension to manage application configuration and architecture like Docker and Jenkins.

    • Integrated with Git: You can visually manage your project repositories, pull, commit and push your changes, and easy conflict resolution.( there is support for SVN (Subversion) users by plugin)

    See more
    Sebastian G臋bski
    Sebastian G臋bski
    CTO at Shedul/Fresha | 7 upvotes 53.9K views
    atFresha EngineeringFresha Engineering
    Elixir
    Elixir
    Phoenix Framework
    Phoenix Framework
    Erlang
    Erlang
    Credo
    Credo
    Hex
    Hex
    AppSignal
    AppSignal

    Another major decision was to adopt Elixir and Phoenix Framework - the DX (Developer eXperience) is pretty similar to what we know from RoR, but this tech is running on the top of rock-solid Erlang platform which is powering planet-scale telecom solutions for 20+ years. So we're getting pretty much the best from both worlds: minimum friction & smart conventions that eliminate the excessive boilerplate AND highly concurrent EVM (Erlang's Virtual Machine) that makes all the scalability problems vanish. The transition was very smooth - none of Ruby developers we had decided to leave because of Elixir. What is more, we kept recruiting Ruby developers w/o any requirement regarding Elixir proficiency & we still were able to educate them internally in almost no time. Obviously Elixir comes with some more tools in the stack: Credo , Hex , AppSignal (required to properly monitor BEAM apps).

    See more
    C#
    C#
    Java
    Java
    Visual Studio
    Visual Studio

    I use C# because it is incredibly clear and easy to use. The documentation is second to none, being a Microsoft product, and if you just want something that works without exploring a million frameworks and libraries you can pretty much start a C# website and have it running in an hour. C# is basically, in my opinion, a cleaner and easier to use Java. My experience is limited to web design, however. It might come down to personal opinion but I wouldn't even know where to start writing a java back end website but visual studio makes it very easy to write it in C#. If you are new to full stack development I can't recommend Visual Studio enough. It does, however, hide away a lot of abstraction that programmers much more clever than me use to make really interesting websites and server setups. C# will do everything you need to create any website you can imagine, though.

    Before I end my rant about how much I love this language I'd like to reiterate how easy it is to figure out problems you encounter. I was stuck on how to store a path string in a database and found the solution by browsing the documentation for 2 minutes, which included examples. Every ASP element is clearly and wonderfully documented.

    See more
    Michael Pfaff
    Michael Pfaff
    CEO & Developer at Pfaff Development | 3 upvotes 11.7K views
    Dart
    Dart
    Java
    Java

    I use Dart because it is a fast, modern language with an intuitive package manager and syntax similar to Java, while less verbose (i.e. public by default, _ in front of a variable, class, etc. to be private). Dart has an excellent asynchronous syntax making asynchronous calls such as filesystem interaction or HTTP requests simple and concise.

    See more
    Clojure
    Clojure
    ClojureScript
    ClojureScript
    JavaScript
    JavaScript
    Java
    Java
    C#
    C#

    I adopted Clojure and ClojureScript because:

    • it's 1 language, multiple platforms.
    • Simple syntax.
    • Designed to avoid unwanted side effects and bugs.
    • Immutable data-structures.
    • Compact code, very expressive.
    • Source code is data.
    • It has super-flexible macro.
    • Has metadata.
    • Interoperability with JavaScript, Java and C#.
    See more
    Ganesa Vijayakumar
    Ganesa Vijayakumar
    Full Stack Coder | Module Lead | 15 upvotes 654.8K views
    Codacy
    Codacy
    SonarQube
    SonarQube
    React
    React
    React Router
    React Router
    React Native
    React Native
    JavaScript
    JavaScript
    jQuery
    jQuery
    jQuery UI
    jQuery UI
    jQuery Mobile
    jQuery Mobile
    Bootstrap
    Bootstrap
    Java
    Java
    Node.js
    Node.js
    MySQL
    MySQL
    Hibernate
    Hibernate
    Heroku
    Heroku
    Amazon S3
    Amazon S3
    Amazon RDS
    Amazon RDS
    Solr
    Solr
    Elasticsearch
    Elasticsearch
    Amazon Route 53
    Amazon Route 53
    Microsoft Azure
    Microsoft Azure
    Amazon EC2 Container Service
    Amazon EC2 Container Service
    Apache Maven
    Apache Maven
    Git
    Git
    Docker
    Docker

    I'm planning to create a web application and also a mobile application to provide a very good shopping experience to the end customers. Shortly, my application will be aggregate the product details from difference sources and giving a clear picture to the user that when and where to buy that product with best in Quality and cost.

    I have planned to develop this in many milestones for adding N number of features and I have picked my first part to complete the core part (aggregate the product details from different sources).

    As per my work experience and knowledge, I have chosen the followings stacks to this mission.

    UI: I would like to develop this application using React, React Router and React Native since I'm a little bit familiar on this and also most importantly these will help on developing both web and mobile apps. In addition, I'm gonna use the stacks JavaScript, jQuery, jQuery UI, jQuery Mobile, Bootstrap wherever required.

    Service: I have planned to use Java as the main business layer language as I have 7+ years of experience on this I believe I can do better work using Java than other languages. In addition, I'm thinking to use the stacks Node.js.

    Database and ORM: I'm gonna pick MySQL as DB and Hibernate as ORM since I have a piece of good knowledge and also work experience on this combination.

    Search Engine: I need to deal with a large amount of product data and it's in-detailed info to provide enough details to end user at the same time I need to focus on the performance area too. so I have decided to use Solr as a search engine for product search and suggestions. In addition, I'm thinking to replace Solr by Elasticsearch once explored/reviewed enough about Elasticsearch.

    Host: As of now, my plan to complete the application with decent features first and deploy it in a free hosting environment like Docker and Heroku and then once it is stable then I have planned to use the AWS products Amazon S3, EC2, Amazon RDS and Amazon Route 53. I'm not sure about Microsoft Azure that what is the specialty in it than Heroku and Amazon EC2 Container Service. Anyhow, I will do explore these once again and pick the best suite one for my requirement once I reached this level.

    Build and Repositories: I have decided to choose Apache Maven and Git as these are my favorites and also so popular on respectively build and repositories.

    Additional Utilities :) - I would like to choose Codacy for code review as their Startup plan will be very helpful to this application. I'm already experienced with Google CheckStyle and SonarQube even I'm looking something on Codacy.

    Happy Coding! Suggestions are welcome! :)

    Thanks, Ganesa

    See more
    Vishwa Bhat
    Vishwa Bhat
    Fullstack Developer at Sequoia | 10 upvotes 4.6K views
    atSequoia Consulting GroupSequoia Consulting Group
    Node.js
    Node.js
    Go
    Go
    Java
    Java

    Our new backend micro services are primarily written in Node.js and Go and legacy systems are written in Java. For our new stack decision, we aimed to achieve greater developer productivity, low IO latency and good community so we had couple of technologies in hand to choose but finally we concluded to go for Node.js for API layer and Go for CPU/IO intensive tasks. Currently the inter-services communication is happening via REST but soon to be moved to RPC-based communication.

    See more
    Praveen Mooli
    Praveen Mooli
    Engineering Manager at Taylor and Francis | 12 upvotes 341.7K views
    MongoDB Atlas
    MongoDB Atlas
    Java
    Java
    Spring Boot
    Spring Boot
    Node.js
    Node.js
    ExpressJS
    ExpressJS
    Python
    Python
    Flask
    Flask
    Amazon Kinesis
    Amazon Kinesis
    Amazon Kinesis Firehose
    Amazon Kinesis Firehose
    Amazon SNS
    Amazon SNS
    Amazon SQS
    Amazon SQS
    AWS Lambda
    AWS Lambda
    Angular 2
    Angular 2
    RxJS
    RxJS
    GitHub
    GitHub
    Travis CI
    Travis CI
    Terraform
    Terraform
    Docker
    Docker
    Serverless
    Serverless
    Amazon RDS
    Amazon RDS
    Amazon DynamoDB
    Amazon DynamoDB
    Amazon S3
    Amazon S3
    #Backend
    #Microservices
    #Eventsourcingframework
    #Webapps
    #Devops
    #Data

    We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.

    To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas

    To build #Webapps we decided to use Angular 2 with RxJS

    #Devops - GitHub , Travis CI , Terraform , Docker , Serverless

    See more
    C#
    C#
    Java
    Java
    Visual Studio
    Visual Studio

    I use C# because of the ease of designing user interfaces compared to Java. Using Visual Studio makes C# a breeze for prototyping and creating apps and I really appreciate how quickly I can turn an idea into reality. I was first introduced to C# in a special topics course and quickly started preferring it over Java. The similarities between the two made the switch easy while the added benefits C# offers made it very worth it.

    See more
    Kamil Kowalski
    Kamil Kowalski
    Engineering Manager at Fresha | 19 upvotes 42K views
    atFresha EngineeringFresha Engineering
    Cypress
    Cypress
    JavaScript
    JavaScript
    Elixir
    Elixir
    Ruby
    Ruby
    Java
    Java
    Selenium
    Selenium

    When you think about test automation, it鈥檚 crucial to make it everyone鈥檚 responsibility (not just QA Engineers'). We started with Selenium and Java, but with our platform revolving around Ruby, Elixir and JavaScript, QA Engineers were left alone to automate tests. Cypress was the answer, as we could switch to JS and simply involve more people from day one. There's a downside too, as it meant testing on Chrome only, but that was "good enough" for us + if really needed we can always cover some specific cases in a different way.

    See more
    Interest over time
    Reviews of Erlang and Java
    No reviews found
    How developers use Erlang and Java
    Avatar of Brian Fults
    Brian Fults uses JavaJava

    Pretty much everything - Java is reasonably fast, reasonably safe, and reasonably expressive. I wouldn't call it the best at any of those things. The real advantage to me is that the virtual machine is ubiquitous and many people can understand it. Since I have the most experience in this language, it's my tool of choice for most projects.

    I've also been learning JavaFx so that I can build user interfaces without the web. I've started several single-page-application projects that worked, but felt like workarounds or hacks and would be better-served as self-contained applications.

    Avatar of denkbar.io
    denkbar.io uses JavaJava

    Do I really need to explain? Well to me, the most appealing factor in Java besides the unbelievable community and vast array of available libraries, is just the amount of effort that has been put in the modern JVM. Decades of optimization and improvements have lead to a terrific piece of technology. I admire the people contributed to that.

    Avatar of Scrayos UG (haftungsbeschr盲nkt)
    Scrayos UG (haftungsbeschr盲nkt) uses JavaJava

    Shouldn't surprise anyone, as minecraft is also java-based. Java is used for much more than just the plugins though. JCVortex (our API) is also served with vert.x (Java) and many of our team-internal tools also originated from java or are still java-applications.

    Avatar of Web Dreams
    Web Dreams uses JavaJava

    The most popular language in the world, definitely every programmer would use the Java language at some point. Frankly, I only use java when it鈥檚 a must. I find the language to be a little bit tedious when working with it.

    Avatar of brenoinojosa
    brenoinojosa uses JavaJava

    bytelore.com makes extensive use of Java in its applications. We use Java due to its performance, community and the number of other projects built in the language. We have many projects and libraries built in Java.

    Avatar of Analytical Informatics
    Analytical Informatics uses ErlangErlang

    The central business logic and ETL engine is written in Erlang.

    Avatar of Mathias Vonende
    Mathias Vonende uses ErlangErlang

    Very nice programming language, used for backend integration.

    Avatar of Ryan Jennings
    Ryan Jennings uses ErlangErlang

    foundation VM for phoenix framework

    Avatar of Software Joint
    Software Joint uses ErlangErlang

    Cowboy web server serves content

    Avatar of KongHack Inc.
    KongHack Inc. uses