C++ vs Scala

Get Advice Icon

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

C++
C++

4.4K
3.1K
+ 1
626
Scala
Scala

3.6K
2.7K
+ 1
1.5K
Add tool

C++ vs Scala: What are the differences?

What is C++? Has imperative, object-oriented and generic programming features, while also providing the facilities for low level memory manipulation. C++ compiles directly to a machine's native code, allowing it to be one of the fastest languages in the world, if optimized.

What is Scala? A pure-bred object-oriented language that runs on the JVM. 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.

C++ and Scala belong to "Languages" category of the tech stack.

"Performance", "Control over memory allocation" and "Cross-platform" are the key factors why developers consider C++; whereas "Static typing", "Jvm" and "Pattern-matching" are the primary reasons why Scala is favored.

Scala is an open source tool with 11.8K GitHub stars and 2.75K GitHub forks. Here's a link to Scala's open source repository on GitHub.

According to the StackShare community, Scala has a broader approval, being mentioned in 437 company stacks & 324 developers stacks; compared to C++, which is listed in 199 company stacks and 371 developer stacks.

- No public GitHub repository available -

What is C++?

C++ compiles directly to a machine's native code, allowing it to be one of the fastest languages in the world, if optimized.

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.
Get Advice Icon

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

Why do developers choose C++?
Why do developers choose Scala?

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

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

What companies use C++?
What companies use Scala?

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

What tools integrate with C++?
What tools integrate with Scala?

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

What are some alternatives to C++ and Scala?
C
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.
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.
PHP
Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.
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!
See all alternatives
Decisions about C++ and Scala
Dima Korolev
Dima Korolev
Principal Maintainer at Current · | 3 upvotes · 19.7K views
atFriendlyDataFriendlyData
Ruby
Ruby
C++
C++
#BNF
#NLP
#Grammar

Ruby NLP C++ Grammar #BNF

At FriendlyData we had a Ruby-based pipeline for natural language processing. Our technology is centered around grammar-based natural language parsing, as well as various product features, and, as the core stack of the company historically is Ruby, the initial version of the pipeline was implemented in Ruby as well.

As we were entering the exponential growth phase, both technology- and product-wise, we looked into how could we speed up and extend the performance and flexibility of our [meta-]BNF-based parsing engine. Gradually, we built the pieces of the engine in C++.

Ultimately, the natural language parsing stack spans three universes and three software engineering paradigms: the declarative one, the functional one, and the imperative one. The imperative one was and remains implemented in Ruby, the functional one is implemented in a functional language (this part is under the NDA, while everything I am talking about here is part of the public talks we gave throughout 2017 and 2018), and the declarative part, which can loosely be thought of as being BNF-based, is now served by the C++ engine.

The C++ engine for the BNF part removed the immediate blockers, gave us 500x+ performance speedup, and enabled us to launch new product features, most notably query completions, suggestions, and spelling corrections.

See more
Marc Bollinger
Marc Bollinger
Infra & Data Eng Manager at Thumbtack · | 4 upvotes · 156.7K views
atLumosityLumosity
Node.js
Node.js
Ruby
Ruby
Kafka
Kafka
Scala
Scala
Apache Storm
Apache Storm
Heron
Heron
Redis
Redis
Pulsar
Pulsar

Lumosity is home to the world's largest cognitive training database, a responsibility we take seriously. For most of the company's history, our analysis of user behavior and training data has been powered by an event stream--first a simple Node.js pub/sub app, then a heavyweight Ruby app with stronger durability. Both supported decent throughput and latency, but they lacked some major features supported by existing open-source alternatives: replaying existing messages (also lacking in most message queue-based solutions), scaling out many different readers for the same stream, the ability to leverage existing solutions for reading and writing, and possibly most importantly: the ability to hire someone externally who already had expertise.

We ultimately migrated to Kafka in early- to mid-2016, citing both industry trends in companies we'd talked to with similar durability and throughput needs, the extremely strong documentation and community. We pored over Kyle Kingsbury's Jepsen post (https://aphyr.com/posts/293-jepsen-Kafka), as well as Jay Kreps' follow-up (http://blog.empathybox.com/post/62279088548/a-few-notes-on-kafka-and-jepsen), talked at length with Confluent folks and community members, and still wound up running parallel systems for quite a long time, but ultimately, we've been very, very happy. Understanding the internals and proper levers takes some commitment, but it's taken very little maintenance once configured. Since then, the Confluent Platform community has grown and grown; we've gone from doing most development using custom Scala consumers and producers to being 60/40 Kafka Streams/Connects.

We originally looked into Storm / Heron , and we'd moved on from Redis pub/sub. Heron looks great, but we already had a programming model across services that was more akin to consuming a message consumers than required a topology of bolts, etc. Heron also had just come out while we were starting to migrate things, and the community momentum and direction of Kafka felt more substantial than the older Storm. If we were to start the process over again today, we might check out Pulsar , although the ecosystem is much younger.

To find out more, read our 2017 engineering blog post about the migration!

See more
Conor Myhrvold
Conor Myhrvold
Tech Brand Mgr, Office of CTO at Uber · | 22 upvotes · 1.2M views
atUber TechnologiesUber Technologies
Jaeger
Jaeger
Python
Python
Java
Java
Node.js
Node.js
Go
Go
C++
C++
Kubernetes
Kubernetes
JavaScript
JavaScript
Red Hat OpenShift
Red Hat 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
Martin Lonkwitz
Martin Lonkwitz
Software engineering at SVA · | 3 upvotes · 21.3K 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
C++
C++
Rust
Rust

Initially, I wrote my text adventure game in C++, but I later rewrote my project in Rust. It was an incredibly easier process to use Rust to create a faster, more robust, and bug-free project.

One difficulty with the C++ language is the lack of safety, helpful error messages, and useful abstractions when compared to languages like Rust. Rust would display a helpful error message at compile time, while C++ would often display "Segmentation fault (core dumped)" or wall of STL errors in the middle. While I would frequently push buggy code to my C++ repository, Rust enabled me to only even submit fully functional code.

Along with the actual language, Rust also included useful tools such as rustup and cargo to aid in building projects, IDE tooling, managing dependencies, and cross-compiling. This was a refreshing alternative to the difficult CMake and tools of the same nature.

See more
Alex A
Alex A
Founder at PRIZ Guru · | 3 upvotes · 125.6K views
atPRIZ GuruPRIZ Guru
Grails
Grails
Play
Play
Scala
Scala
Groovy
Groovy
Gradle
Gradle

Some may wonder why did we choose Grails ? Really good question :) We spent quite some time to evaluate what framework to go with and the battle was between Play Scala and Grails ( Groovy ). We have enough experience with both and, to be honest, I absolutely in love with Scala; however, the tipping point for us was the potential speed of development. Grails allows much faster development pace than Play , and as of right now this is the most important parameter. We might convert later though. Also, worth mentioning, by default Grails comes with Gradle as a build tool, so why change?

See more
Vadim Bakaev
Vadim Bakaev
Haskell
Haskell
Scala
Scala

Why I am using Haskell in my free time?

I have 3 reasons for it. I am looking for:

Fun.

Improve functional programming skill.

Improve problem-solving skill.

Laziness and mathematical abstractions behind Haskell makes it a wonderful language.

It is Pure functional, it helps me to write better Scala code.

Highly expressive language gives elegant ways to solve coding puzzle.

See more
Dan Larsen
Dan Larsen
CTO at FlowStack · | 7 upvotes · 73.6K views
atFlowStack ApSFlowStack ApS
Go
Go
Rust
Rust
C
C
C++
C++

At FlowStack we write most of our backend in Go. Go is a well thought out language, with all the right compromises for speedy development of speedy and robust software. It's tooling is part of what makes Go such a great language. Testing and benchmarking is built into the language, in a way that makes it easy to ensure correctness and high performance. In most cases you can get more performance out of Rust and C or C++, but getting everything right is more cumbersome.

See more
Interest over time
Reviews of C++ and Scala
No reviews found
How developers use C++ and Scala
Avatar of datapile
datapile uses ScalaScala

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).

Avatar of Foursquare
Foursquare uses ScalaScala

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.

Avatar of papaver
papaver uses ScalaScala

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.

Avatar of Stanislaus Madueke
Stanislaus Madueke uses ScalaScala

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).

Avatar of Giovanni Candido da Silva
Giovanni Candido da Silva uses ScalaScala

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.

Avatar of Marc3842h
Marc3842h uses C++C++

C++ is used in Shiro (https://github.com/Marc3842h/shiro).

C++ is a high performance, low level programming language. Game servers need to run with fast performance to be able to reliably serve players across the globe.

Avatar of OnlineCity
OnlineCity uses C++C++

The most latency sensitive parts are written in C++. Due to our interconnected services architecture, we use either Python or C++ for each service, with the performance critical parts being C++14.

Avatar of POROWNEO.PL
POROWNEO.PL uses C++C++

Used to write PHP extensions - AZTEC Decoder - License Driver scan - Axis2/C to PHP wrapper and Job-scheduler - Barbershop

Avatar of Luca Fulchir
Luca Fulchir uses C++C++

Performance, zero-overhead abstractions and memory safety of the modern C++ language make this the perfect language for the project.

Avatar of ApertusVR
ApertusVR uses C++C++

The main programming language of ApertusVR. C++11 & CMake provides multi-platform targeting. The architecture is modular.

How much does C++ cost?
How much does Scala cost?
Pricing unavailable
Pricing unavailable
News about C++
More news