Java vs Python vs Scala

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

Java

79.1K
58.4K
+ 1
3.5K
Python

127.9K
103.1K
+ 1
6.4K
Scala

6.8K
5.2K
+ 1
1.5K
Advice on Java, Python, and Scala
Needs advice
on
Python
JavaScript
and
Java

I'm making my university community web service with a team. (6 members myself included)

And we decided to use JavaScript, HTML, CSS (for sure, it's the basic of websites) but couldn't decide for the back end part.

There are tons of languages, tools, etc., but I'm really new to programming, so I'd like to get some help to figure out what tools we need.

So my question is this: are there any good examples of web community services we can mimic the tools or get an insight from them?

See more
Replies (6)
Recommends
Python
Django

Since you're following Python, I would recomend using Django as your main back-end language. If you know Python it would be a great experience. Django is well documented on their official website: https://www.djangoproject.com/ I would also use React for front-end as well. Also this article is worth reading, I think progressive web app is something worth learning these days: https://web.dev/progressive-web-apps/ Hope that helps :)

See more

Since your team is already using JavaScript, there's a great number of examples for backend services written with NodeJS. I'd recommend using Firebase, or any backend as a service (you can use that term to find alternatives), for setting up your backend as it is much easier for newer people to understand and lets you focus on your core application logic, and not provisioning servers, databases, etc.

See more
anas mattar
Technical Lead at DPO International · | 2 upvotes · 187 views
Recommends
JavaScript

Since you're team is already using JavaScript, there are alot of examples and open source projects written with NodeJs, so I preffer this language in your backend application and also I am recommended using Mongo DB with It for saving data in it, and also for your frontend application I am recommanded using VueJs.

See more
Jamal Abdinasir
Product manager at abdinasirjamal171@gmail.com · | 1 upvotes · 593 views
Recommends

Kindly I don't find any help that solve this mystery I need more help if it will happen

See more
Hüseyin Özkılıç
Senior Full-Stack Developer at RADSoft · | 1 upvotes · 181 views

Make it simple, most of projects doesnt need a AI, ML or big algorithms. If your project just serving end users take it to the web ready compatible. (Javascript, .Net, PHP Laravel)

See more
Nash Nziramasanga
Software Developer at Billow Software · | 1 upvotes · 188 views

Since you are already using JavaScript on the front end it would be easy to adopt the MERN (MongoDB, Express, React, NodeJS) stack which s all javascript based making it easy to transfer knowledge with the backend and front end

See more
View all (6)
Needs advice
on
Python
JavaScript
and
C++

Hello, I am interested in learning how to program. I am a beginner, and many articles saying I should go with Python if I am new to programming. I considered Lua a long time ago, but for my career, I believe major programming languages should be better for me. I'm considering Python at this moment, but if you have other tools I should use, let me know.

See more
Replies (1)
Recommends
Java
C#
C++
C

The language you choose is also dependant on the type of career / area of programming you wish to focus on: Web Based and mobile applicaitons I would lean towards Java, PC Applications I tend to like C#, Embedded industry C, C++

See more
Needs advice
on
PHP
JavaScript
and
Java

Hi there. I'm looking to build an employee time tracker web app. This should also be optimized for mobile. I'm trying to figure out what the best stack is for this. I have knowledge of Java, JavaScript, some C#. I don't mind learning a new language for this purpose. Any help or advice would be really awesome! Thanks.

See more
Replies (5)
Stephen Gheysens
Senior Solutions Engineer at Twilio · | 11 upvotes · 69.8K views
Recommends
JavaScript

Hi Otensia! I'd definitely recommend using the skills you've already got and building with JavaScript is a smart way to go these days. Most platform services have JavaScript/Node SDKs or NPM packages, many serverless platforms support Node in case you need to write any backend logic, and JavaScript is incredibly popular - meaning it will be easy to hire for, should you ever need to.

My advice would be "don't reinvent the wheel". If you already have a skill set that will work well to solve the problem at hand, and you don't need it for any other projects, don't spend the time jumping into a new language. If you're looking for an excuse to learn something new, it would be better to invest that time in learning a new platform/tool that compliments your knowledge of JavaScript. For this project, I might recommend using Netlify, Vercel, or Google Firebase to quickly and easily deploy your web app. If you need to add user authentication, there are great examples out there for Firebase Authentication, Auth0, or even Magic (a newcomer on the Auth scene, but very user friendly). All of these services work very well with a JavaScript-based application.

See more
Recommends
JavaScript

As you have knowledge of Javascript, I would go towards Vue/React in Frontend and Node (with suitable framework) with backend. From my point of view Java would be too bloated for suggested kind of an app. I myself use PHP as a backend a lot and React as frontend but moving thoughts towards full stack javascript world.

See more
Recommends
PHP
JavaScript

php is the best for beginners, and one of the best for web development at all, all the host servers can handle it, a basic knowledge in java is not enough for build a web site, but a basic knowledge in php is enough. learn php basics and oop and mvc design pattern or any framework like Laravel (optional), and javascript for frontend (a framework like React or Angular is optional but good) and you will build any web site you want.

See more
pramod shirsath
Founder at Supra Software Solutions · | 3 upvotes · 13.1K views

We migrated from PHP to Angular/PHP to Angular/Node to React/Node/AWS Lambda. React/Node(Typescript)/Lambda seems to be good so far as we have developed few applications (large and small) using this stack so far. React/Node/Lambda is also good for mobile. If you are planning to use AWS, you can use the S3 bucket to store the frontend and Lambda or EC2 for backend APIs.

See more
pramod shirsath
Founder at Supra Software Solutions · | 1 upvotes · 13.2K views
Recommends

We migrated from PHP to Angular/PHP to Angular/Node to React/Node/AWS Lambda. React/Node(Typescript)/Lambda seems to be good so far as we have developed few applications (large and small) using this stack so far. React/Node/Lambda is also good for mobile. If you are planning to use AWS, you can use the S3 bucket to store the frontend and Lambda or EC2 for backend APIs.

See more
View all (5)
Decisions about Java, Python, and Scala

Python has become the most popular language for machine learning right now since almost all machine learning tools provide service for this language, and it is really to use since it has many build-in objects like Hashtable. In C, you need to implement everything by yourself.

C++ is one of the most popular programming languages in graphics. It has many fancy libraries like eigen to help us process matrix. I have many previous projects about graphics based on C++ and this time, we also need to deal with graphics since we need to analyze movements of the human body. C++ has much more advantages than Java. C++ uses only compiler, whereas Java uses compiler and interpreter in both. C++ supports both operator overloading and method overloading whereas Java only supports method overloading. C++ supports manual object management with the help of new and delete keywords whereas Java has built-in automatic garbage collection.

See more
Kirill Mikhailov

Go is a way faster than both Python and PHP, which is pretty understandable, but we were amazed at how good we adapted to use it. Go was a blessing for a team , since strict typing is making it very easy to develop and control everything inside team, so the quality was really good. We made huge leap forward in dev speed because of it.

See more
Chose
Python
over
Scala

I am working in the domain of big data and machine learning. I am helping companies with bringing their machine learning models to the production. In many projects there is a tendency to port Python, PySpark code to Scala and Scala Spark.

This yields to longer time to market and a lot of mistakes due to necessity to understand and re-write the code. Also many libraries/apis that data scientists/machine learning practitioners use are not available in jvm ecosystem.

Simply, refactoring (if necessary) and organising the code of the data scientists by following best practices of software development is less error prone and faster comparing to re-write in Scala.

Pipeline orchestration tools such as Luigi/Airflow is python native and fits well to this picture.

I have heard some arguments against Python such as, it is slow, or it is hard to maintain due to its dynamically typed language. However cost/benefit of time consumed porting python code to java/scala alone would be enough as a counter-argument. ML pipelines rarerly contains a lot of code (if that is not the case, such as complex domain and significant amount of code, then scala would be a better fit).

In terms of performance, I did not see any issues with Python. It is not the fastest runtime around but ML applications are rarely time-critical (majority of them is batch based).

I still prefer Scala for developing APIs and for applications where the domain contains complex logic.

See more
Get Advice from developers at your company using Private StackShare. Sign up for Private StackShare.
Learn More
Pros of Java
Pros of Python
Pros of Scala
  • 575
    Great libraries
  • 436
    Widely used
  • 396
    Excellent tooling
  • 380
    Huge amount of documentation available
  • 329
    Large pool of developers available
  • 198
    Open source
  • 193
    Excellent performance
  • 150
    Great development
  • 144
    Used for android
  • 143
    Vast array of 3rd party libraries
  • 54
    Compiled Language
  • 46
    Used for Web
  • 42
    Native threads
  • 42
    Managed memory
  • 40
    High Performance
  • 35
    Statically typed
  • 31
    Easy to read
  • 29
    Great Community
  • 25
    Reliable platform
  • 23
    Sturdy garbage collection
  • 23
    JVM compatibility
  • 19
    Cross Platform Enterprise Integration
  • 18
    Universal platform
  • 16
    Good amount of APIs
  • 16
    Great Support
  • 11
    Lots of boilerplate
  • 10
    Backward compatible
  • 10
    Great ecosystem
  • 9
    Everywhere
  • 7
    Excellent SDK - JDK
  • 6
    Mature language thus stable systems
  • 5
    Portability
  • 5
    Static typing
  • 5
    Better than Ruby
  • 5
    Cross-platform
  • 5
    It's Java
  • 5
    Clojure
  • 4
    Long term language
  • 4
    Old tech
  • 4
    Vast Collections Library
  • 3
    Best martial for design
  • 3
    Used for Android development
  • 3
    Great Structure
  • 3
    Stable platform, which many new languages depend on
  • 3
    Most developers favorite
  • 2
    Testable
  • 1
    Javadoc
  • 1.1K
    Great libraries
  • 926
    Readable code
  • 816
    Beautiful code
  • 766
    Rapid development
  • 670
    Large community
  • 416
    Open source
  • 378
    Elegant
  • 267
    Great community
  • 260
    Object oriented
  • 208
    Dynamic typing
  • 69
    Great standard library
  • 51
    Very fast
  • 47
    Functional programming
  • 34
    Scientific computing
  • 32
    Easy to learn
  • 29
    Great documentation
  • 25
    Matlab alternative
  • 22
    Productivity
  • 21
    Easy to read
  • 19
    Simple is better than complex
  • 17
    Imperative
  • 17
    It's the way I think
  • 15
    Very programmer and non-programmer friendly
  • 14
    Powerful
  • 14
    Free
  • 13
    Powerfull language
  • 13
    Fast and simple
  • 12
    Scripting
  • 9
    Machine learning support
  • 9
    Explicit is better than implicit
  • 8
    Unlimited power
  • 8
    Ease of development
  • 7
    Clear and easy and powerfull
  • 7
    Import antigravity
  • 6
    Print "life is short, use python"
  • 6
    It's lean and fun to code
  • 5
    Fast coding and good for competitions
  • 5
    There should be one-- and preferably only one --obvious
  • 5
    Python has great libraries for data processing
  • 5
    High Documented language
  • 5
    I love snakes
  • 5
    Although practicality beats purity
  • 5
    Flat is better than nested
  • 5
    Great for tooling
  • 4
    Readability counts
  • 3
    Great for analytics
  • 3
    Complex is better than complicated
  • 3
    Multiple Inheritence
  • 3
    Beautiful is better than ugly
  • 3
    CG industry needs
  • 3
    Plotting
  • 3
    Lists, tuples, dictionaries
  • 3
    Rapid Prototyping
  • 3
    Socially engaged community
  • 2
    List comprehensions
  • 2
    Generators
  • 2
    Easy to learn and use
  • 2
    Special cases aren't special enough to break the rules
  • 2
    Now is better than never
  • 2
    If the implementation is hard to explain, it's a bad id
  • 2
    If the implementation is easy to explain, it may be a g
  • 2
    Simple and easy to learn
  • 2
    Import this
  • 2
    No cruft
  • 1
    Good
  • 1
    Web scraping
  • 1
    Ys
  • 1
    Powerful language for AI
  • 1
    Should START with this but not STICK with This
  • 1
    Because of Netflix
  • 1
    A-to-Z
  • 1
    Only one way to do it
  • 1
    Many types of collections
  • 1
    Flexible and easy
  • 1
    Better outcome
  • 1
    Batteries included
  • 1
    Pip install everything
  • 1
    It is Very easy , simple and will you be love programmi
  • 1
    Easy to setup and run smooth
  • 0
    Powerful
  • 0
    Pro
  • 187
    Static typing
  • 178
    Pattern-matching
  • 177
    Jvm
  • 170
    Scala is fun
  • 137
    Types
  • 93
    Concurrency
  • 88
    Actor library
  • 84
    Solve functional problems
  • 83
    Open source
  • 80
    Solve concurrency in a safer way
  • 42
    Functional
  • 22
    Generics
  • 22
    Fast
  • 17
    It makes me a better engineer
  • 15
    Syntactic sugar
  • 12
    Scalable
  • 10
    Type safety
  • 10
    First-class functions
  • 9
    Interactive REPL
  • 8
    Expressive
  • 7
    SBT
  • 6
    Implicit parameters
  • 6
    Case classes
  • 4
    Rapid and Safe Development using Functional Programming
  • 4
    Object-oriented
  • 4
    JVM, OOP and Functional programming, and static typing
  • 4
    Used by Twitter
  • 3
    Functional Proframming
  • 2
    Beautiful Code
  • 2
    Safety
  • 2
    Spark
  • 2
    Growing Community
  • 1
    DSL
  • 1
    Rich Static Types System and great Concurrency support
  • 1
    Naturally enforce high code quality
  • 1
    Mill build tool
  • 1
    Akka Streams
  • 1
    Akka
  • 1
    Reactive Streams
  • 1
    Easy embedded DSLs
  • 0
    Freedom to choose the right tools for a job

Sign up to add or upvote prosMake informed product decisions

Cons of Java
Cons of Python
Cons of Scala
  • 29
    Verbosity
  • 24
    NullpointerException
  • 15
    Overcomplexity is praised in community culture
  • 14
    Nightmare to Write
  • 10
    Boiler plate code
  • 8
    Classpath hell prior to Java 9
  • 6
    No REPL
  • 4
    No property
  • 2
    Code are too long
  • 2
    There is not optional parameter
  • 2
    Floating-point errors
  • 1
    Terrbible compared to Python/Batch Perormence
  • 1
    Java's too statically, stronglly, and strictly typed
  • 1
    Non-intuitive generic implementation
  • 1
    Returning Wildcard Types
  • 49
    Still divided between python 2 and python 3
  • 26
    Performance impact
  • 26
    Poor syntax for anonymous functions
  • 19
    GIL
  • 19
    Package management is a mess
  • 13
    Too imperative-oriented
  • 12
    Hard to understand
  • 11
    Dynamic typing
  • 8
    Not everything is expression
  • 8
    Very slow
  • 7
    Explicit self parameter in methods
  • 7
    Indentations matter a lot
  • 6
    Requires C functions for dynamic modules
  • 6
    Poor DSL capabilities
  • 6
    No anonymous functions
  • 5
    The "lisp style" whitespaces
  • 5
    Hard to obfuscate
  • 4
    The benevolent-dictator-for-life quit
  • 4
    Lack of Syntax Sugar leads to "the pyramid of doom"
  • 4
    Threading
  • 4
    Fake object-oriented programming
  • 4
    Incredibly slow
  • 3
    Not suitable for autocomplete
  • 3
    Circular import
  • 3
    Official documentation is unclear.
  • 1
    Training wheels (forced indentation)
  • 1
    Meta classes
  • 10
    Slow compilation time
  • 6
    Multiple ropes and styles to hang your self
  • 3
    Too few developers available
  • 3
    Complicated subtyping
  • 1
    My coworkers using scala are racist against other stuff

Sign up to add or upvote consMake informed product decisions

- No public GitHub repository available -

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!

What is Python?

Python is a general purpose programming language created by Guido Van Rossum. Python is most praised for its elegant syntax and readable code, if you are just beginning your programming career python suits you best.

What is Scala?

Scala is an acronym for “Scalable Language”. This means that Scala grows with you. You can play with it by typing one-line expressions and observing the results. But you can also rely on it for large mission critical systems, as many companies, including Twitter, LinkedIn, or Intel do. To some, Scala feels like a scripting language. Its syntax is concise and low ceremony; its types get out of the way because the compiler can infer them.

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

What companies use Java?
What companies use Python?
What companies use Scala?

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

What tools integrate with Java?
What tools integrate with Python?
What tools integrate with Scala?

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

Blog Posts

Sep 29 2020 at 7:36PM

WorkOS

+17
6
2306
+7
3
631
+14
11
1959
Oct 24 2019 at 7:43PM

AppSignal

+8
5
677
Oct 3 2019 at 7:13PM

Ably Realtime

+8
4
3185
What are some alternatives to Java, Python, and Scala?
C
Abstract
Abstract builds upon and extends the stable technology of Git to host and manage your work.
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.
Kotlin
Kotlin is a statically typed programming language for the JVM, Android and the browser, 100% interoperable with Java
JavaScript
JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles.
See all alternatives
How developers use Java, Python, and Scala
datapile uses
Scala

Scala is the God of languages. A legend. The Mount Rushmore of hybrid OO/functional languages is Scala's face four times over.

Ok, honestly, we love Scala. We love(d) Java (and it's parents C and C++), and we love(d) all the languages that borrowed cough stole cough from Java over the years such as Groovy, Clojure, and C#.

It may not be perfect (it totally is, but since programming languages don't have egos of their own, we don't want to paint it too bright), but it is awesome. It runs on the JVM, you can utilize Spring, it works great for data processing (which is sorta kinda the thing we do here, folks), and it just makes sense at all levels.

If you don't like Scala, we feel sorry for the projects that are suffering due to your choices, meanwhile we are using Scala to write everything from JavaScript, CSS, SQL, and JSON directly within itself (go figure), so in the end no one will know the beauty of this powerhouse language (except for our engineers, of course).

Exchange rates API uses
Python

Beautiful is better than ugly.

Explicit is better than implicit.

Simple is better than complex.

Complex is better than complicated.

Flat is better than nested.

Sparse is better than dense.

Readability counts.

Special cases aren't special enough to break the rules.

Although practicality beats purity.

Errors should never pass silently.

Unless explicitly silenced.

In the face of ambiguity, refuse the temptation to guess.

There should be one-- and preferably only one --obvious way to do it.

Although that way may not be obvious at first unless you're Dutch.

Now is better than never.

Although never is often better than right now.

If the implementation is hard to explain, it's a bad idea.

If the implementation is easy to explain, it may be a good idea.

Namespaces are one honking great idea -- let's do more of those!

Brian Fults uses
Java

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.

denkbar.io uses
Java

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.

Foursquare uses
Scala

Nearly our entire server codebase is written in Scala (if you haven't heard of it, it's a programming language that is basically what you would get if Java + ML had a baby). This has worked out super well. It enables us to write concise easy to deal with code that is typechecked at compile time. It's also been a big help with recruiting.

Web Dreams uses
Python

To me, this is by far the best programming language. Why? Because it’s the only language that really got me going after trying to get into programming with Java for a while. Python is powerful, easy to learn, and gets you to unsderstand other languages more once you understand it. Did I state I love the python language? Well, I do..

ttandon uses
Python

Backend server for analysis of image samples from iPhone microscope lens. Chose this because of familiarity. The number one thing that I've learned at hackathons is that work exclusively with what you're 100% comfortable with. I use Python extensively at my day job at Wit.ai, so it was the obvious choice for the bulk of my coding.

papaver uses
Python

been a pythoner for around 7 years, maybe longer. quite adept at it, and love using the higher constructs like decorators. was my goto scripting language until i fell in love with clojure. python's also the goto for most vfx studios and great for the machine learning. numpy and pyqt for the win.

papaver uses
Scala

worked with scala for around 2 years. really enjoyed the language and getting back into the world of functional. unfortunately the community is heavily fragmented and the language itself broken and inconsistent. that with the various factions involved made it a put of for long term investment.

Scrayos UG (haftungsbeschränkt) uses
Java

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.

Stanislaus Madueke uses
Scala

Scala, Akka and Spray (which became Akka-Http) provided the building blocks for the menu service.
Akka's actors and finite-state machine were a natural way to model a USSD menu (a series of stateful interactions between a subscriber and the USSD gateway).

Giovanni Candido da Silva uses
Scala

Replaces entirely the Java Language to build a much more expressive and powerful code on the backend, while leveraging at the same time the Java Platform Tools and Frameworks, is a mixture of old and mature with new and sexy.

Web Dreams uses
Java

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’s a must. I find the language to be a little bit tedious when working with it.

brenoinojosa uses
Java

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.

Blood Bot uses
Python

Large swaths of resources built for python to achieve natural language processing. (We are in the process of deprecating the services written in python and porting them over to Javascript and node)