Get Advice Icon

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

Lua
Lua

522
261
+ 1
63
Scala
Scala

3K
2.2K
+ 1
1.4K
Add tool

Lua vs Scala: What are the differences?

Developers describe Lua as "Powerful, fast, lightweight, embeddable scripting language". Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode for a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping. On the other hand, Scala is detailed as "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.

Lua and Scala can be primarily classified as "Languages" tools.

"Fast learning curve" is the primary reason why developers consider Lua over the competitors, whereas "Static typing" was stated as the key factor in picking Scala.

Lua and Scala are both open source tools. Scala with 11.8K GitHub stars and 2.75K forks on GitHub appears to be more popular than Lua with 1.26K GitHub stars and 436 GitHub forks.

Twitter, Coursera, and 9GAG are some of the popular companies that use Scala, whereas Lua is used by Shopify, Close, and Thumbtack. Scala has a broader approval, being mentioned in 437 company stacks & 324 developers stacks; compared to Lua, which is listed in 55 company stacks and 23 developer stacks.

What is Lua?

Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode for a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping.

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 Lua?
Why do developers choose Scala?

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

    Be the first to leave a con
    What companies use Lua?
    What companies use Scala?

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

    What tools integrate with Lua?
    What tools integrate with Scala?

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

    What are some alternatives to Lua and Scala?
    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.
    Arduino
    Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software.
    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 Lua and Scala
    StackShare Editors
    StackShare Editors
    Rust
    Rust
    Lua
    Lua

    To handle its growing observability needs, Postmates created and open sourced Cernan, a telemetry and logging aggregation server. Ceran is built on Rust and Lua, and can ingest data from many sources and then push or exposes what it’s collected to many destinations, or “sinks.” It can also create or manipulate in-flight data with programmable Lua filters.

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

    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
    Go
    Go
    Lua
    Lua
    OpenResty
    OpenResty
    nginx
    nginx
    Logstash
    Logstash
    Prometheus
    Prometheus

    At Kong while building an internal tool, we struggled to route metrics to Prometheus and logs to Logstash without incurring too much latency in our metrics collection.

    We replaced nginx with OpenResty on the edge of our tool which allowed us to use the lua-nginx-module to run Lua code that captures metrics and records telemetry data during every request’s log phase. Our code then pushes the metrics to a local aggregator process (written in Go) which in turn exposes them in Prometheus Exposition Format for consumption by Prometheus. This solution reduced the number of components we needed to maintain and is fast thanks to NGINX and LuaJIT.

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

    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
    Scala
    Scala
    Haskell
    Haskell

    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
    Interest over time
    Reviews of Lua and Scala
    No reviews found
    How developers use Lua 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 papaver
    papaver uses LuaLua

    used lua as gameplay glue while at insomniac. one my favorite wins was integrating table support. it took walking the source code in a debugger to figure it out, still remember being at work at 3am when i got it working finally. (no google back then to make such things simple.)

    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 Sine Wave Entertainment
    Sine Wave Entertainment uses LuaLua

    We use Lua as our primary scripting language for third party developers - it's fast, the runtime can be quite small and fits into everywhere it needs to go - from mobile to web.

    Avatar of micro systems
    micro systems uses LuaLua

    Lua is used as the programming language for all extensions and the main business logic.

    Avatar of Dick Cocker
    Dick Cocker uses LuaLua

    Used for hashing client IP in Nginx

    How much does Lua cost?
    How much does Scala cost?
    Pricing unavailable
    Pricing unavailable