What types of programming should I know in order to build an app?

Hey Everyone.

I’m just starting out and went through the fundamentals course of programming.  I’m still trying to figure out what type of app I’d like to create, but not sure what programming languages are necessary in order to build an efficient app?

Any advice on which language courses I should take?

Thank you for any and all advice in advance.

Sincerely,

April

Dawn,

Well, if you want to make apps and games with Corona you’re only going to need to understand Lua.  

If you’re looking to have a rough grasp of the fundamentals of most modern programming languages, C is the one to study (the father of modern structured languages). C#, perl, html, Java, Lua, and on and on… Most modern programming languages derive from C developed at Bell Labs by Kernigan and Ritchie.

The C programming language book by K&R is pretty short… And the constructs of the language very straightforward. Languages developed since then tend to add data and process abstraction concepts on top of this foundation (such as polymorphism). The syntax is *slightly* different between them, but the structure - the concepts - the same. (not equals is ~= in lua, != in C)

But all of the languages that have been derived from C that I’ve seen don’t significantly add to it at all - they just create mechanisms that make doing/defining some of the basics of C easier.

Using a language like Java is like choosing a more specialized tool (version of C) suited to your task (and with how bare bones C is for libraries, you would often want a more specialized tool). And people usually pick the more specialized too (hence the popularity of things like Java).

But there are occasions where you need the raw tool - such as developing for an embedded system, where these is no Java support… To develop a C compiler would be far quicker, and could easily be used to build device drivers for the embedded system… And the code would run native, many times faster than a java app… Anyways - C, the father of modern structured and Object Oriented languages, ain’t dead yet…

So – you asked what types of programming to know to build apps… If you’re looking for a base, something that has the underlying concepts of not just Lua, but perl, php, java, c#, html, and most other modern programming languages… C was the father.

Thanks guys.  Had some additional questions.  Really hope you don’t mind.

I will add Lua to my list of languages to learn, and c but I noticed on the corona website there are instances where you can access libraries in obj-c and java.  Why would you need to?  What can those languages do that Lua can’t?

Also, is Lua good for all applications such as games, business, etc?  If no, why?

Thanks everyone for your advice.

I really appreciate it.

:slight_smile:

Objective C, a derivation of C (that uses lots of [] and looks real st00pid) is the official language Apple supports / uses to develop Mac and iOS software… So, you would use something in your app to interface to their obj c code (or develop iOS libraries like the add ons to corona for advertising, gamecenter, etc, using obj c)

And on the Android side, Java is the official language. To make a gamecenter library corona (or others) could use for android, you’d need to build the android gamecenter code with java (also a descendent of C).

Objective C can’t do much more than c that I know of. They changed the syntax though so that it would compile and execute a little faster (and the code is terribly unreadable imho). But it runs fast, gotta give it that.

Java is kind of the opposite. It reads more like BASIC, and doesn’t ever really compile (read as slow, comparatively, to C). I probably should mention all of the security issues of java… It’s got so many little features built into it, and runs on so many platforms that hackers have had a field day finding ways to exploit the vulnerabilities.

Lua is somewhere in the middle. It doesn’t compile like obj-c, but is a much more streamlined language than java.

Finally, lua seems just fine for all types of applications (except database I think, but you can get libraries to help out there – there’s a mysql library added to corona for example). Perhaps it wouldn’t be the greatest at hard core computations (like cracking primes) where ultimate speed counts. For apps like that, a compiled language like C would provide better speed.

But for moving sprites, popping bubbles, or throwing birds around - Lua works just great.

Speaking of libraries - that’s probably one of the more important things to consider before approaching an application. Choosing the right tool. If you’re making a twitch game, choose a tool that would make it easier (like corona). If you’re making a program to calculate the positions of every star in our galaxy 200 years from now… Maybe not so much… So look around at the libraries/features any particular platform you’re considering has. If it’s not in there, you’re going to have to either modify your design, find a library that provides it, or build the support yourself.

Thank you for the input.  Wow…it’s alot to take in for a newbie.

So where can I find the libraries?

Hope to hear from you soon.

Thanks again.

Dawn,

Well, if you want to make apps and games with Corona you’re only going to need to understand Lua.  

If you’re looking to have a rough grasp of the fundamentals of most modern programming languages, C is the one to study (the father of modern structured languages). C#, perl, html, Java, Lua, and on and on… Most modern programming languages derive from C developed at Bell Labs by Kernigan and Ritchie.

The C programming language book by K&R is pretty short… And the constructs of the language very straightforward. Languages developed since then tend to add data and process abstraction concepts on top of this foundation (such as polymorphism). The syntax is *slightly* different between them, but the structure - the concepts - the same. (not equals is ~= in lua, != in C)

But all of the languages that have been derived from C that I’ve seen don’t significantly add to it at all - they just create mechanisms that make doing/defining some of the basics of C easier.

Using a language like Java is like choosing a more specialized tool (version of C) suited to your task (and with how bare bones C is for libraries, you would often want a more specialized tool). And people usually pick the more specialized too (hence the popularity of things like Java).

But there are occasions where you need the raw tool - such as developing for an embedded system, where these is no Java support… To develop a C compiler would be far quicker, and could easily be used to build device drivers for the embedded system… And the code would run native, many times faster than a java app… Anyways - C, the father of modern structured and Object Oriented languages, ain’t dead yet…

So – you asked what types of programming to know to build apps… If you’re looking for a base, something that has the underlying concepts of not just Lua, but perl, php, java, c#, html, and most other modern programming languages… C was the father.

Thanks guys.  Had some additional questions.  Really hope you don’t mind.

I will add Lua to my list of languages to learn, and c but I noticed on the corona website there are instances where you can access libraries in obj-c and java.  Why would you need to?  What can those languages do that Lua can’t?

Also, is Lua good for all applications such as games, business, etc?  If no, why?

Thanks everyone for your advice.

I really appreciate it.

:slight_smile:

Objective C, a derivation of C (that uses lots of [] and looks real st00pid) is the official language Apple supports / uses to develop Mac and iOS software… So, you would use something in your app to interface to their obj c code (or develop iOS libraries like the add ons to corona for advertising, gamecenter, etc, using obj c)

And on the Android side, Java is the official language. To make a gamecenter library corona (or others) could use for android, you’d need to build the android gamecenter code with java (also a descendent of C).

Objective C can’t do much more than c that I know of. They changed the syntax though so that it would compile and execute a little faster (and the code is terribly unreadable imho). But it runs fast, gotta give it that.

Java is kind of the opposite. It reads more like BASIC, and doesn’t ever really compile (read as slow, comparatively, to C). I probably should mention all of the security issues of java… It’s got so many little features built into it, and runs on so many platforms that hackers have had a field day finding ways to exploit the vulnerabilities.

Lua is somewhere in the middle. It doesn’t compile like obj-c, but is a much more streamlined language than java.

Finally, lua seems just fine for all types of applications (except database I think, but you can get libraries to help out there – there’s a mysql library added to corona for example). Perhaps it wouldn’t be the greatest at hard core computations (like cracking primes) where ultimate speed counts. For apps like that, a compiled language like C would provide better speed.

But for moving sprites, popping bubbles, or throwing birds around - Lua works just great.

Speaking of libraries - that’s probably one of the more important things to consider before approaching an application. Choosing the right tool. If you’re making a twitch game, choose a tool that would make it easier (like corona). If you’re making a program to calculate the positions of every star in our galaxy 200 years from now… Maybe not so much… So look around at the libraries/features any particular platform you’re considering has. If it’s not in there, you’re going to have to either modify your design, find a library that provides it, or build the support yourself.

Thank you for the input.  Wow…it’s alot to take in for a newbie.

So where can I find the libraries?

Hope to hear from you soon.

Thanks again.