Lua vs Objective-C

Get Advice Icon

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

Lua
Lua

523
262
+ 1
63
Objective-C
Objective-C

4.4K
2.2K
+ 1
490
Add tool

Lua vs Objective-C: What are the differences?

What is Lua? 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.

What is Objective-C? The primary programming language you use when writing software for OS X and iOS. Objective-C is a superset of the C programming language and provides object-oriented capabilities and a dynamic runtime. Objective-C inherits the syntax, primitive types, and flow control statements of C and adds syntax for defining classes and methods. It also adds language-level support for object graph management and object literals while providing dynamic typing and binding, deferring many responsibilities until runtime.

Lua and Objective-C can be primarily classified as "Languages" tools.

"Fast learning curve" is the top reason why over 19 developers like Lua, while over 211 developers mention "Ios" as the leading cause for choosing Objective-C.

Lua is an open source tool with 1.26K GitHub stars and 436 GitHub forks. Here's a link to Lua's open source repository on GitHub.

Uber Technologies, Instagram, and Pinterest are some of the popular companies that use Objective-C, whereas Lua is used by Shopify, Close, and Thumbtack. Objective-C has a broader approval, being mentioned in 851 company stacks & 363 developers stacks; compared to Lua, which is listed in 55 company stacks and 23 developer stacks.

- No public GitHub repository available -

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 Objective-C?

Objective-C is a superset of the C programming language and provides object-oriented capabilities and a dynamic runtime. Objective-C inherits the syntax, primitive types, and flow control statements of C and adds syntax for defining classes and methods. It also adds language-level support for object graph management and object literals while providing dynamic typing and binding, deferring many responsibilities until runtime.
Get Advice Icon

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

Why do developers choose Lua?
Why do developers choose Objective-C?

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

    Be the first to leave a con
      Be the first to leave a con
      What companies use Lua?
      What companies use Objective-C?

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

      What tools integrate with Lua?
      What tools integrate with Objective-C?

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

      What are some alternatives to Lua and Objective-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.
      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 Objective-C
      StackShare Editors
      StackShare Editors
      Angular
      Angular
      jQuery
      jQuery
      Objective-C
      Objective-C
      Swift
      Swift
      Go
      Go
      Ruby
      Ruby
      Java
      Java
      React
      React
      Python
      Python
      Node.js
      Node.js
      Rails
      Rails

      By mid-2015, around the time of the Series E, the Digital department at WeWork had grown to more than 40 people to support the company’s growing product needs.

      By then, they’d migrated the main website off of WordPress to Ruby on Rails, and a combination React, Angular, and jQuery, though there were efforts to move entirely to React for the front-end.

      The backend was structured around a microservices architecture built partially in Node.js, along with a combination of Ruby, Python, Bash, and Go. Swift/Objective-C and Java powered the mobile apps.

      These technologies power the listings on the website, as well as various internal tools, like community manager dashboards as well as RFID hardware for access management.

      See more
      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
      StackShare Editors
      StackShare Editors
      Objective-C
      Objective-C
      Gradle
      Gradle
      Swift
      Swift
      Java
      Java

      At the heart of Uber’s mobile app development are four primary apps: Android rider, Android driver, iOS rider, and iOS driver. Android developers build in Java, iOS in Objective C and Swift. Engineers across both platforms land code into a monolithic code base that ships each week.

      They use some third-party libraries, but often build their own, since “Many open source libraries available are general-purpose, which can create binary bloat. For mobile engineering, every kilobyte matters.”

      On Android, the build system is Gradle. For the UI, Butter Knife binds views and callbacks to fields and methods via annotation processing, and Picasso provides image loading.

      As for iOS, all of the code lives in a monorepo built with Buck. For crash detection, KSCrash reports crashes to the internal reporting framework.

      See more
      Conor Myhrvold
      Conor Myhrvold
      Tech Brand Mgr, Office of CTO at Uber · | 8 upvotes · 422.6K views
      atUber TechnologiesUber Technologies
      RIBs
      RIBs
      Swift
      Swift
      Objective-C
      Objective-C

      Excerpts from how we developed (and subsequently open sourced) Uber's cross-platform mobile architecture framework, RIBs , going from Objective-C to Swift in the process for iOS: https://github.com/uber/RIBs

      Uber’s new application architecture (RIBs) extensively uses protocols to keep its various components decoupled and testable. We used this architecture for the first time in our new rider application and moved our primary language from Objective-C to Swift. Since Swift is a very static language, unit testing became problematic. Dynamic languages have good frameworks to build test mocks, stubs, or stand-ins by dynamically creating or modifying existing concrete classes.

      Needless to say, we were not very excited about the additional complexity of manually writing and maintaining mock implementations for each of our thousands of protocols.

      The information required to generate mock classes already exists in the Swift protocol. For Uber’s use case, we set out to create tooling that would let engineers automatically generate test mocks for any protocol they wanted by simply annotating them.

      The iOS codebase for our rider application alone incorporates around 1,500 of these generated mocks. Without our code generation tool, all of these would have to be written and maintained by hand, which would have made testing much more time-intensive. Auto-generated mocks have contributed a lot to the unit test coverage that we have today.

      We built these code generation tools ourselves for a number of reasons, including that there weren’t many open source tools available at the time we started our effort. Today, there are some great open source tools to generate resource accessors, like SwiftGen. And Sourcery can help you with generic code generation needs:

      https://eng.uber.com/code-generation/ https://eng.uber.com/driver-app-ribs-architecture/

      (GitHub : https://github.com/uber/RIBs )

      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
      Interest over time
      Reviews of Lua and Objective-C
      No reviews found
      How developers use Lua and Objective-C
      Avatar of Instacart
      Instacart uses Objective-CObjective-C

      Basically, the trajectory was we had our iOS app, which started out native, right? It started as a native app, and then we realized you have to go through a review process and it’s slow, and at a very early stage, it made sense for us to make it a wrapped web view. Basically, the app would open, and it would be a web view inside of it that we could iterate on quickly and change very rapidly and not have to wait for app store view process to change it. It wasn’t totally a native experience, but it was as actually a pretty good experience and lasted for a very long time and was up until recently the foundation of our current mobile web experience, which is different from our app situation. So for a long time, basically, our app store iOS Instacart app was a wrapped web view of just our store, a condensed version of our store, which meant that we could add things. We could change sales. We could change the formatting. We could change the UI really fast and not have to worry about the app store review process.

      This all changed about a year ago, I would like to say, at which point it became a totally native app. We felt comfortable enough with the product and all the features that we made it a native experience and made it a fully featured app.

      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 Refractal
      Refractal uses Objective-CObjective-C

      While the majority of our stack is now using Swift, we still love Objective-C in many cases, especially low-level software manipulation, where it's just easier. It doesn't hurt that a lot of iOS/OS X Libraries out there are written in it either.

      Avatar of SmartLogic
      SmartLogic uses Objective-CObjective-C

      We like to go native with iOS development, and Objective-C has been the only game in town until recent introduction of Swift. We're keeping an eye on Swift, but we aren't giving up on the [old way:to do:things]!

      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 DailySMSCollection
      DailySMSCollection uses Objective-CObjective-C
      Avatar of Promethean TV
      Promethean TV uses Objective-CObjective-C

      PrometheanTV provides SDKs for IOS devices including support for the Objective-C language.

      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 Objective-C cost?
      Pricing unavailable
      Pricing unavailable