I'm almost completely inexperienced with programming, so there might be stupid questions incoming.
Why do I almost exclusively see Lua referred to as a scripting language instead of a programming language? I know it can be embedded quite easily in other applications, but how good is it for writing applications alone? It seems to me that people only consider it for small pieces of embedded code.
What limitations does Lua have? Is there anything I can't do with it that I can do with other languages? I want to learn it, but it feels like my time will be better spent with another language if I'm going to realize in 6 months that I can't do something with Lua that I want to do.
I've messed around a bit with it, and the syntax seems really simple, easier to learn than Python. I'd like to keep going, but I want to make sure that I wouldn't be getting more out of going with another language instead.
Considering picking up Lua
Re: Considering picking up Lua
just learn whatever language u want.
but pick 1, focus at that language until u feel enough.
if u master it u can easy learn other language fast.
language just syntax only need to convert it, but algorithm n logic is one for all. this is your only need.
sry for my english.
but pick 1, focus at that language until u feel enough.
if u master it u can easy learn other language fast.
language just syntax only need to convert it, but algorithm n logic is one for all. this is your only need.
sry for my english.
- Robin
- The Omniscient
- Posts: 6506
- Joined: Fri Feb 20, 2009 4:29 pm
- Location: The Netherlands
- Contact:
Re: Considering picking up Lua
This is because it is often used in those situations, but there is no hard line between scripting and programming. How Lua is used in LÖVE could be considered either.Spade wrote:Why do I almost exclusively see Lua referred to as a scripting language instead of a programming language? I know it can be embedded quite easily in other applications, but how good is it for writing applications alone? It seems to me that people only consider it for small pieces of embedded code.
Lua is perfectly fit for writing applications. The only problem might be libraries: Lua typically has less libraries for specific tasks, which makes it harder to use, but that really depends on what you want to do with it. In general, Lua should be more than fine.
Lua can do everything any other language can do. It has two limitations (which can be advantages):Spade wrote:What limitations does Lua have? Is there anything I can't do with it that I can do with other languages? I want to learn it, but it feels like my time will be better spent with another language if I'm going to realize in 6 months that I can't do something with Lua that I want to do.
- It's simple. Which means that a lot of data types that other languages typically have built in, need to be constructed from tables and metatables in Lua.
- It's light. Which means: batteries not included. It doesn't have a very comprehensive standard library, which may complicate things that are one import away in Python for example.
Either is fine as a first or second programming language. In fact, I would recommend learning both (eventually).Spade wrote:I've messed around a bit with it, and the syntax seems really simple, easier to learn than Python. I'd like to keep going, but I want to make sure that I wouldn't be getting more out of going with another language instead.
Help us help you: attach a .love.
Re: Considering picking up Lua
It's mainly used in the games industry. In World of Warcraft, for example, Lua is used for the graphical user interface. All of the core game logic is written in C++. It's referred to as a scripting language because it "scripts" or "controls" parts of the game engine. Programming languages write the actual game engine. Lua can be either.Spade wrote:Why do I almost exclusively see Lua referred to as a scripting language instead of a programming language? I know it can be embedded quite easily in other applications, but how good is it for writing applications alone? It seems to me that people only consider it for small pieces of embedded code.
Technically, Lua is Turing complete, so it can do anything that any other language can do. Learning it will prove massively useful. Lua has a beautiful blend of functional and procedural/imperative programming behind it. Learning it, and learning how to use things like first-class functions effectively, will give you an edge-up on the competition who have only learned, say, C++ or Java. Make sure that you learn a lower-level language (assembly, C, C++ -- Java and C# do not count) to understand more of what's going on behind the scenes when you program. Then try tackling a purely functional language (I like Haskell) to really bend your mind.Spade wrote:What limitations does Lua have? Is there anything I can't do with it that I can do with other languages? I want to learn it, but it feels like my time will be better spent with another language if I'm going to realize in 6 months that I can't do something with Lua that I want to do.
Languages should be viewed as tools. The more languages you know, the more tools you have to solve problems. The sole purpose of programming is to solve problems (the problem games solves is entertainment).
I tried to address this earlier. Love is an absolutely beautiful framework, so it's great that you found it. Python is a great language too, but Lua is much simpler. For just starting programming, either will work, but as you have already found Love, I would recommend sticking with Lua. Make sure to pick up Python later on too (it should take only a couple days when you know a couple of languages). The simplicity of Lua is refreshing, as it's precisely that which makes it so elegant.Spade wrote:I've messed around a bit with it, and the syntax seems really simple, easier to learn than Python. I'd like to keep going, but I want to make sure that I wouldn't be getting more out of going with another language instead.
If you really like Lua, make sure to look into Lisp (Clojure is the "trendy" dialect as of now).
Re: Considering picking up Lua
To be honest I really think the most important thing to consider here the type of application you are planning to create.
Löve is great for almost all types of games (not just games either!) and I wholeheartedly endorse the use of it where possible. It's a great place to start at any rate. Aside from migrating from other languages (in which case most of my struggles involved underestimating the sheer simplicity of Lua and Löve), the only problems I can foresee with using Löve are OOP and network-functionality. Both of these issues, however, are pretty much negated. There are lots of workarounds, scripts and helpful people around, and to be honest someone new to programming need not worry about such things, though I would recommend learning the fundamentals of object-orientation as early as possible. Our resident bartbes has written 2 OOP scripts that seem to work flawlessly anyway. I'm trialling his newest one and I can say that it works and is incredibly simple/easy to use.
If you're looking for a gateway into the world of programming/indie-game development or just looking for somewhere to settle for a while, you've come to the right place. Löve is such a.... well, lovely framework and I think you'll enjoy learning lua too. They are both simple, yet powerful technologies that are fun, exciting and rewarding. Not to mention multi-platform!
Löve is great for almost all types of games (not just games either!) and I wholeheartedly endorse the use of it where possible. It's a great place to start at any rate. Aside from migrating from other languages (in which case most of my struggles involved underestimating the sheer simplicity of Lua and Löve), the only problems I can foresee with using Löve are OOP and network-functionality. Both of these issues, however, are pretty much negated. There are lots of workarounds, scripts and helpful people around, and to be honest someone new to programming need not worry about such things, though I would recommend learning the fundamentals of object-orientation as early as possible. Our resident bartbes has written 2 OOP scripts that seem to work flawlessly anyway. I'm trialling his newest one and I can say that it works and is incredibly simple/easy to use.
If you're looking for a gateway into the world of programming/indie-game development or just looking for somewhere to settle for a while, you've come to the right place. Löve is such a.... well, lovely framework and I think you'll enjoy learning lua too. They are both simple, yet powerful technologies that are fun, exciting and rewarding. Not to mention multi-platform!
Do you recognise when the world won't stop for you? Or when the days don't care what you've got to do? When the weight's too tough to lift up, what do you? Don't let them choose for you, that's on you.
- BlackBulletIV
- Inner party member
- Posts: 1261
- Joined: Wed Dec 29, 2010 8:19 pm
- Location: Queensland, Australia
- Contact:
Re: Considering picking up Lua
What language you should learn is up to you. If you want to use LOVE, then you've gotta know Lua. Lua is a great little language, but because it's made to be simple and fast, it can be annoying sometimes.
However, if you want to make a standalone application, Lua will prove to be hard to work with (unless you compile it will libraries included... but then you can't distribute widely because you'll have your own version of Lua). Trust me, I've tried to do it, and Lua provided to be an absolute nightmare (especially dealing with files). So my suggestion for standalone applications, is most certainly Ruby. Ruby has an awesome community around it, with tonnes of libraries, and so on. When I scrapped my Lua code for the application I was trying to make, and then restarted with Ruby, it was really easy. But if you don't like Ruby for some reason, Python is next best I reckon.
However, if you want to make a standalone application, Lua will prove to be hard to work with (unless you compile it will libraries included... but then you can't distribute widely because you'll have your own version of Lua). Trust me, I've tried to do it, and Lua provided to be an absolute nightmare (especially dealing with files). So my suggestion for standalone applications, is most certainly Ruby. Ruby has an awesome community around it, with tonnes of libraries, and so on. When I scrapped my Lua code for the application I was trying to make, and then restarted with Ruby, it was really easy. But if you don't like Ruby for some reason, Python is next best I reckon.
- Jasoco
- Inner party member
- Posts: 3726
- Joined: Mon Jun 22, 2009 9:35 am
- Location: Pennsylvania, USA
- Contact:
Re: Considering picking up Lua
Before I found Löve I went through a few different "easy to learn" languages for programming games including TNT Basic (Gaming-centric BASIC) and PyGame (Python). I even paid for TNT Basic ($25) when I discovered it. TNT eventually went open source and all development pretty much stopped. It was missing so much stuff too. And PyGame wasn't easy to just pick up and go. It required too many hoops to test out a project. I even tried a GUI-based game devloping environment called "Power Game Factory" which cost $44. And is also pretty much dead. (It's been at 1.1 for years and is far from done.)
Löve is much better. Much more flexible. Much easier to pick up. And a much better choice than using one of the many platform-specific languages and SDK's (Like GameMaker which you see all the time) since it can be customized much better and will work across platforms.
Lua is so easy to start with and can be much more complex once you learn it. It's one of the only languages (Scripting or programming) I've been able to stick with besides BASIC.
Löve is much better. Much more flexible. Much easier to pick up. And a much better choice than using one of the many platform-specific languages and SDK's (Like GameMaker which you see all the time) since it can be customized much better and will work across platforms.
Lua is so easy to start with and can be much more complex once you learn it. It's one of the only languages (Scripting or programming) I've been able to stick with besides BASIC.
Re: Considering picking up Lua
I'm actually going to disagree completely with these two statements. Here is why you want to avoid OOP as a beginner. Here is why Love rocks at network-functionality.Lafolie wrote:. . .the only problems I can foresee with using Löve are OOP and network-functionality. . .
- kikito
- Inner party member
- Posts: 3153
- Joined: Sat Oct 03, 2009 5:22 pm
- Location: Madrid, Spain
- Contact:
Re: Considering picking up Lua
The article can be resumed to the sentence "The shift from procedural to OO brings with it a shift from thinking about problems and solutions to thinking about architecture."sient wrote:Here is why you want to avoid OOP as a beginner.
If you leave out architecture, you must leave out functions, too.
Besides, the article looks very biased. It calls OOP "faux-engineering busywork" and "nonsense".
The reason why you don't start with OOP is that you first need to understand functions. And before that, you need loops. And before that, you need conditionals. And before those, variables. And that takes some time to understand, depending on the person.
When I write def I mean function.
- Robin
- The Omniscient
- Posts: 6506
- Joined: Fri Feb 20, 2009 4:29 pm
- Location: The Netherlands
- Contact:
Re: Considering picking up Lua
Haha, it looks like you're not familiar with Programming in the 21st Century. James Hague is rather opinionated, I give you that. His blog is well worth reading, though, even if you don't always agree with him.kikito wrote:Besides, the article looks very biased. It calls OOP "faux-engineering busywork" and "nonsense".
Help us help you: attach a .love.
Who is online
Users browsing this forum: Bing [Bot] and 5 guests