# Why Lua++?

Recognizing the shortcomings and limitations of Lua, the author felt the time was ripe to create Lua++ for general application development. The impetus behind this was threefold:

* **Environmental Impact:** Running on hundreds of millions of computers worldwide, inefficient and slow classic Lua code has an outsized negative impact on the environment. Such scale could be responsible for anywhere between 20 and 90 million tons of carbon dioxide per year ([CarbonDigital](https://sustainablewebdesign.org/calculating-digital-emissions/)). An efficient compiler and virtual machine can get rid of most of those emissions. Low-power hardware devices such as smartwatches and fitness trackers will benefit from a high-level language, without sacrificing battery life.
* **Empowerment:** Low computational requirements will allow use on affordable hardware devices and thereby make advanced programming accessible to historically disadvantaged populations in both developed and developing countries.
* **Educational Opportunities:** In 2020, more than half of American children under the age of 16 played Roblox ([NYTRoblox](https://www.nytimes.com/2020/08/16/technology/roblox-tweens-videogame-coronavirus.html)), a game platform that encourages players to create their own three-dimensional first person games using Lua as a scripting language. Even though writing primitive games in Python and assembling robotics kits are all the rage, chances are that the first language that a child will encounter and relate to will actually be Lua. State-of-the-art programming techniques should be easily available to them at the opportune teaching moment.

As the rest of the paper will demonstrate, Lua++ retains all the benefits of Lua while making it possible to run code close to the speed of today’s fastest programming languages, while drastically improving code maintainability and enabling effective development of large code bases.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.luaplusplus.org/overview/why-lua++.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
