2019-06-10 14:10:56

Hello.

Many beginners in programming ask here what programming language to choose for audio game development.
I was one of those beginners in the past.
Here I would like to express my opinion on programming languages.
I propose to make one topic for discussing programming languages. For this reason, I suggest that moderators stick this topic.
So. What is the best programming language for audio games?
There are many popular programming languages. I would like to talk about the programming languages with which I worked.

C++. The best programming language for games in my opinion. Using this programming language, you can develop various applications at various levels.
Pros:
Performance. Your applications developed in C++ will be fast. C++ was used to develop popular video games.
Many programmers have worked with C++. Many libraries, API, engines were developed in C++. You can easily find the tools to design your project.
If you learn C++, then other programming languages will be very easy for you.
You can program your applications for different platforms.
Cons:
It's real, really hard, to program in C++!
It will take you several years before you become a professional in C++.

Java. Programming language for cross-platform applications, embedded systems and Android.
Java is the number one programming language in the world, and it is difficult to argue with that.
Pros:
Syntax. I believe that java has the correct syntax. Clarity and structuredness, this is about Java.
Java has a good built-in library. Without third-party libraries, you can do a lot with Java.
Java is a programming language for cross-platform applications. You can write not only for Windows, but also for Linux and other operating systems.
Android is one of the popular operating systems. And Java is the main programming language for Android.
Cons:
Not easy to learn. Java is not as difficult as C++, but you will need to spend time studying.
Lots of code. If you are programming in Java, there will be a lot of uniform code. However, you can generate this code automatically with programming environments.
Oracle has started such a policy regarding Java, which from now on, Java from Oracle will be paid. But there is OpenJDK ...
P.S.
I don’t know about Java, but I would advise you to wait, perhaps for Android, better solutions than Java would be Kotlin or Xamarin.

C#. My favorite programming language for applications.
Pros:
The syntax is similar to Java. But it's easier than java. It has syntactic sugar.
NETFramework has many features.
Applications on C# is more fast than Java, Python and other programming languages.
C# is actively developing.
Visual Studio. Yes, I think it should be attributed to the advantages of C#.
Cons:
Lack of full cross-platform. But I think this is a temporary problem ...

Python. Python, Python, everywhere about Python on this forum!
I have a feeling that lazy people have gathered here who are looking for simple solutions.
What is Python?
Pros:
Simple syntax. It's true. Python has a very simple syntax.
The built-in Python library allows you to do many things. In addition, there are many third-party libraries.
Pip. I attribute this to the advantages of Python.
Cons:
Performance. A regular program in Python is slower than in Java or C#.
Errors. There are many bugs in third-party Python libraries that need to be fixed by yourself.
Syntax. It is simple, but also difficult. Decorators, Lambda and more.
Python teaches you to program incorrectly. For example, in Python there is no proper object-oriented programming!

Everything I said here is my opinion. I'm open to discussions and holywar.

Thank you!

2019-06-10 17:48:01 (edited by kianoosh 2019-06-10 17:50:39)

Dude, dude! Please, for the sake of those who You want to help. Decorators are harder to learn or delegates? Who told you other libraries have bugs that you have to fix yourself? Well that might be true at some point, but this is the same for every, other, programming, language. I can right a dll in c# that produces a bug that the developer can never run their application if they use that dll. It's the developer who chooses to work with a library. Why do you think libs are usually being constantly updated? For instance IrrKlan for c# or soloud ofr c++ or the famous bass, or the other famous one openal.
Python is used in developing artificial intelligence and machine learning, which if you are a programmer whose not a beginner, you know how much code a normal ai needs, and how good the performence of the language that the ai is written with should be. That should clarify python's performance.
For instance, check out one of the best robots in the world, sofia on github. See how much python is used in it.
Java is the number one programming language in the world? A simple google search about people's opinions on java can tell you that it's not, even though that is used in a variety of platforms.
Excuse me if I was so harsh on this post. If this post is gonna be even 1 percent helpful to someone, I had to clarify some things.

---
Co-founder of Sonorous Arts.
Check out Sonorous Arts on github: https://github.com/sonorous-arts/
my Discord: kianoosh.shakeri2#2988

2019-06-10 19:35:11

kianoosh, Dude, you never thought that in artificial intelligence, machine learning, Python is not the only language!
Yes! Python is very good if the main code in C++. But Python is almost never used as the main programming language.

2019-06-10 20:33:38

and there, my friend I have to entirely disagree.
Want an example?
The dropbox client is made with python.
it's backend is made with python.
bit torrent is made with python
Instagram uses django
Reddit, quora and bitbucket are made with python.

Paul

2019-06-10 20:45:41 (edited by Ethin 2019-06-10 20:57:20)

OK, about to go on a rant. I'm sorry about this but I am getting sick of the OPs constant language-hopping and then posting misinformation about various things he clearly hasn't taken the time to understand (hint: I was like this once too and got ripped apart by many programmers on here). I'm sorry if I went a bot overboard on this one, but this is getting ridiculous. I also appologise if I've made any personal attacks in this post -- I did not mean to.
Begin rant:
@3, I would love to know your research, and this is why I doubted you in the other topic you made about creating a social network -- you always, always, always do stuff like this. Let's correct your misinformation:

Jonikster wrote:

C++. The best programming language for games in my opinion. Using this programming language, you can develop various applications at various levels.
Pros:
Performance. Your applications developed in C++ will be fast. C++ was used to develop popular video games.
Many programmers have worked with C++. Many libraries, API, engines were developed in C++. You can easily find the tools to design your project.
If you learn C++, then other programming languages will be very easy for you.
You can program your applications for different platforms.
Cons:
It's real, really hard, to program in C++!
It will take you several years before you become a professional in C++.

This quote is inaccurate in a few areas:
1) Performance in C++ varies on who's writing the code and the libraries your using. If you've been writing code for years in it and have mastered all of the ways of maximizing performance, then your pro on performance is correct. However, it is just as easy for a professional to mess up and make C++ code far slower than necessary -- parallelisation is a good example of this. If you parallelise too much in your code, your code will be slower than if you hadn't parallelised a thing.
2) Your second, third, and fourth pros contradict your future ones. I'll get to those in a moment. But first, the "You can easily find the tools to design your project" pro. This is true for over 80 percent of the practiced programming languages out there. The same goes for your third pro as well -- this one is in fact more truer than 80 percent, because any programming language you learn will teach you the core foundation that you will need to learn others.
3) Your cons. Uh. "Really hard to learn C++"? This is very, very subjective. As such, it isn't necessarily a valid negative. Second, about the professional time in C++. This is, again, subjective. If someone was good enough they could become a professional in under a year.
And now, for your next one...

jonikster wrote:

Java. Programming language for cross-platform applications, embedded systems and Android.
Java is the number one programming language in the world, and it is difficult to argue with that.
Pros:
Syntax. I believe that java has the correct syntax. Clarity and structuredness, this is about Java.
Java has a good built-in library. Without third-party libraries, you can do a lot with Java.
Java is a programming language for cross-platform applications. You can write not only for Windows, but also for Linux and other operating systems.
Android is one of the popular operating systems. And Java is the main programming language for Android.
Cons:
Not easy to learn. Java is not as difficult as C++, but you will need to spend time studying.
Lots of code. If you are programming in Java, there will be a lot of uniform code. However, you can generate this code automatically with programming environments.
Oracle has started such a policy regarding Java, which from now on, Java from Oracle will be paid. But there is OpenJDK ...
P.S.
I don’t know about Java, but I would advise you to wait, perhaps for Android, better solutions than Java would be Kotlin or Xamarin.

Um... OK. So you contradict yourself even more in this one. First you say that Java has a "nice syntax" and then you contradict yourself in the cons saying its "not easy to learn". Right. Like that makes any sense at all. This is another one of your subjective pros/cons. You go on to say its "for embedded systems". Really? I'd argue that C is used far more often than Java is for embedded systems (and for systems development in general). Wheter you like it or not, Java has some memory overhead since it is an "abstract computing machine" as the JVM specification puts it. C is far better for embedded systems programming purely because embedded systems tend to have not much RAM, and C can operate in this low-constrained environment. (Apparently .NET can too.)
Also, here's where you again say that Java can be used for cross-platform development. So can C++, C, C#, and Python.
You then say that Oracle is moving to a Paid model. In case you didn't know, Oracle has had a paid JDK for years. OpenJDK has also been around for years -- the oracle JDK is not going to suddenly become paid because the users would bitch about it. Then you go on to say: "Lots of code. If you are programming in Java, there will be a lot of uniform code. However, you can generate this code automatically with programming environments." Nice way of showing how little you know about programming in general -- this applies to all the other languages on your list. Every language on your list has tons and tons and tons of code available for it. C++ and C# are the ones with the largest amount of code, I'd say, followed by Python. (Hint: the .NET framework is the largest standard library there is that I know of.)
ext you say "I don’t know about Java, but I would advise you to wait, perhaps for Android, better solutions than Java would be Kotlin or Xamarin." In other words: you don't know much about Java. Not really sure what your trying to say here...
Next up is good ol C#. Your first three pros -- "The syntax is similar to Java" (I'll ignore the second sentence because this isn't necessarily true), "syntactic sugar", and ".NET framework has many features" are all correct. However, I beg -- beg -- to differ on your pro that says, "Applications on C# is more fast than Java, Python and other programming languages." Ha! I'll give you some leeway when you say that C# is faster than Python and Java. (Hell, an algorithm for generating mazes in C# that I ported to C++ turned out to be faster in C# than it was in C++!) However, I believe this only applies to Windows and not to other platforms. I have not done any active testing on this though. C++ can, however, be faster than C# in many instances. Next you make a claim that "C# is actively developing." This is true. But C++ is too. And Python. And Java. You do know that Oracle has started a 6-month release cadence for Java, right? That means that ever six months, a new major Java release will come out. That's faster than C#, C++ and Python!
Your pro on "visual studio" is just weird. You can use C# in visual studio code or in any other IDE you like so long as you can tie in custom compilers (or it has C# support already there). You can even compile C# from the command line.
Your con on "lack of cross-platform support" is false and has been for many years. Mono has been around since 2004, and has provided cross-platform support on various operating systems, and supports the IA-32, x64, IA-64, ARM, MIPS, PowerPC, SPARC, S390 computer architectures -- that's more than Microsoft ever has! (Did you know that its also written in C, C#, and XML?) But that's not all. Microsoft started .NET core a few years ago, and that has become a rapid competitor to Mono. In fact, I'd highly recommend .NET core these days over Mono.
Next, Python. Here's where your misinformation shines. You say that "I have a feeling that lazy people have gathered here who are looking for simple solutions." Where the hell did you come up with this messed up and insane idea? Python is not for lazy people. In fact, Python is number 3 on the TIOBE index. Surprised? (Hint: last year it was number 4.) Next you bitch -- in your cons -- about its "performance" and "number of errors". You go on to say that there are bugs you need to fix yourself, Python teaches you improper programming -- wow, man, how much do you not know! Let's go over these one by one:
1) Performance. While it is true that Python code, interpreted, is slower than, say, C code, its pretty damn close to the performance of Java. And Pythoncode can be cythonized into C/C++ code, making it run at the speed of your processor. To prove this, I had a series of functions that would generate mazes for me writen in Cython. In Python these took quite a while to generate large mazes (between 5 seconds for a 20x20 maze to over a minute for -- say -- a 1000x1000 maze). I cythonized it and the performance increase was over 90 percent. Now I could generate 1000x1000 mazes in about a minute, and that was pushing it!
2) errors. Wow, man, you really don't understand this, do you? The "errors" you speak of are errors that authors have created by not maintaining there software. This goes for *everything*. Any library, in any language, can have bugs. I do not consider this a valid "con".
3) syntax. Wow. Just wow. So first in your pros you say that Python has a "Simple syntax". Then in cons you negate that by saying that it is hard to learn because it has lambdas and decorators. You do know that a decorator is a class, right? And that C++ has lambdas too?
4) "Python teaches you to program incorrectly. For example, in Python there is no proper object-oriented programming!" Where did you learn this? Python has proper object-oriented programming, as thousands of programmers would attest to. So does C++. So does D. So does C#. So does pretty much all of the other OOP-focused languages out there. How exactly does Python teach one to program incorrectly? I really want to know this now!
Next in your third post you say that Python is not the number one language for machine learning and AI. I beg to differ on that one! Python is the number one programming language for both ML and AI, as demonstrated by here and here. Oh, and this website.
End rant.
Edit: I'd also like to point out that C/C++ has far more pitfalls in syntax than Python does. C primarily, but C++ has some too.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2019-06-10 21:39:10 (edited by kianoosh 2019-06-10 21:40:01)

Thumbs up to ethin.
Jonikstr. I beg you. If you wanna make people accept your opinion fine. But don't throw false information. Before listing pros/cons of a programming language, do a proper research. A simple one can be done via google.

---
Co-founder of Sonorous Arts.
Check out Sonorous Arts on github: https://github.com/sonorous-arts/
my Discord: kianoosh.shakeri2#2988

2019-06-10 21:59:54 (edited by jonikster 2019-06-10 22:00:48)

pauliyobo, Do you remember the statistics?
1.1% of sites done with Python

Ethin, I thank you for your post.
But I really don't understand why you are protecting Python!
I have PHP for sites, about 79% of sites are developed with PHP, I have C # for applications.
On object-oriented programming.
What do you say about encapsulation? This is just a convention.
About Mono. You want to say that I can develop Android applications with C#? Then when Mono and Xamarin developers say it will be less efficient, more code than in Java.
About C and embedded systems. Mars rovers are designed in Java.
But I really don't understand why you are protecting Python.

kianoosh, What about you speak?

2019-06-10 22:10:08

@7, I am protecting Python because you are blatently slandering it and giving false information to the public. I would like you to post the link to your statistics so that we may evaluate them, for one.
Second: I highly doubt encapsulation is just a 'convention'. If it was a convention it wouldn't be so widely used.
About Mono: yes, you can develop android applications with C#. Not really sure who told you more code was needed. Seeing AI was developed in Xamrine/C#, you know.
About your claim with embedded systems: No. In fact, this website contradicts you quite nicely. Please, go do research and learn before replying.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2019-06-10 23:16:24 (edited by visualstudio 2019-06-10 23:18:24)

as an AI programmer, i'd like to contradict you as well.
Python is the number 1 for ai programming in anything from NLP to image recognition, to reinforcement learning and so on.
now, going to it's speed and how fast it is:
training ai models is one of the slowest things in ai that might take even days. but, python is used to train the data.
also, i will name some libraries for you to see that how python is popular in terms of ai:
scikit-learn, tensorflow, mxnet, pytorch
also, going to natural language processing which is one of the great things that I'm currently focusing on:
nltk and spacy, the most common nlp libraries. they are written in python. Spacy is written in cython and it is quite fast. it has support for word vectors which is one of the heavy tasks on nlp.

jonikster wrote:

pauliyobo, Do you remember the statistics?
1.1% of sites done with Python

I really don't know how did you find this out, but there are many websites are written with python. + it's main goal is not website development.

jonikster wrote:

Ethin, I thank you for your post.
But I really don't understand why you are protecting Python!

because you are spreading missinformation.

jonikster wrote:

I have PHP for sites, about 79% of sites are developed with PHP

what is the main goal of php? I remember you wanted to write your website in python and I told you php is made to develop websites. because it can embed html pages.

jonikster wrote:

What do you say about encapsulation? This is just a convention.
About Mono. You want to say that I can develop Android applications with C#? Then when Mono and Xamarin developers say it will be less efficient, more code than in Java.

so, it is possible, no matter how much code you require to write. although it is missinformation as well. because we have ndk, and it is possible to write applications for android in C++. there is kivy and python-for-android that allows you to compile your python code into android.

jonikster wrote:

About C and embedded systems. Mars rovers are designed in Java.

but that's not a good reason to use java over c.
for embedded systems. there are many parameters to consider like amount of memory, execution speed, and so on.

2019-06-11 03:41:39

Hello,
Speaking of Xamrin, do I need any java knowledge to make android apps with it? or I can just use my C# skills and learning Xamrin alone will do?
Regards,
Amit

There once was a moviestar icon.
Who prefered to sleep with the light on.
They learnt how to code, devices sure glowed,
and lit the night using python.

2019-06-11 03:57:17

@10, you just need C# skills.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2019-06-11 06:28:51 (edited by jonikster 2019-06-11 06:32:04)

8, If I made the class field private with __, I can access it anyway.
About statistics:
https://w3techs.com/technologies/overvi … nguage/all

10, Don't listen to anyone, try Java. In the future, you can try something else, but it will be easier than if you start with C# or Kotlin.

2019-06-11 06:44:41

Don't listen to 12's advice. really don't. His stats site is sketchy at best (considering they admitted that a site could use more than one programming language). They don't even explain very well how their statistics are obtained.
8, if I use __ALL__, then only that which I list in __ALL__ can be publicly available.
Also... just because Python doesn't implement visibility properly suddenly doesn't mean it teaches you how to improperly program. I'm quite happy your not an educator; I'd feel very bad for those who you teach if you were. Stop with the misinformation and actually *learn*!

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2019-06-11 07:04:46

So I'm curious about one thing if the original poster can enlighten me.
I'm going to use a saying from the old west. "i've never seen any of your graveyards"
I'd like to know what experience you have to draw on in order to make the statements you have about what is the best/worst language for game development.

Much less active on this forum than in the past.

Check out my live streams: http://lerven.me
follow me on Twitter: http://twitter.com/liamerven

2019-06-11 07:12:44 (edited by visualstudio 2019-06-11 07:13:46)

@jonikster, it depends on the programmer to choose.
your experience for the language is yours.
if you don't like python, then put it away. if you like to program in assembly, noone will stop you as well!.

2019-06-11 07:14:26

Totally agreed with liam. Like seriously dude. You're now just trying to bash python although you fail at it(don't try).
For audio games, I recommend python along americranian's soundpool(I know I didn't spell your name correctly sorry for that),
Or c# windows forms, or monogame.
There's also electron out there that you need to know node.js(I think), People made cool stuff with it such as cycle path and beatstar
lastly, bgt is also out there, but you have to keep its abilities in mind and don't go further than what its capable to do. It is also outdated. However, still there are good stuff written on it such as mason's endless runner and sbyw from the same developer. There's also stw

---
Co-founder of Sonorous Arts.
Check out Sonorous Arts on github: https://github.com/sonorous-arts/
my Discord: kianoosh.shakeri2#2988

2019-06-11 08:32:31

Ethin, I teach programming on my Russian Youtube channel

2019-06-11 09:11:09 (edited by Ethin 2019-06-11 09:11:49)

@17, Yeah. Right. And I doubt your "students" no much if anything that is actually correct if this topic is anything to go off of. Your sources are extremely questionable at any rate, which makes me wonder how good you are as an educator. If you get any students at all that is. And please, answer Liam's question -- I'd like to know as well.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2019-06-11 09:27:42

Ethin, My English is not very good, and I didn't understand his question.

2019-06-11 09:41:37

Major props to you for post 5 Ethin, someone needed to do that and you did it right.  I'm not trying to be condescending  here so please don't take me wrong, and remember this is coming from someone who's also had to step back and fix fuckups too, but at least right now you seem to be doing really well as compared to the past.
I can see the progress in a big way.  You took his arguments apart without allot of arrogance or anger, and when you weren't 100% sure of something you said so.  You admitted you might have gone too far at the start (IMO the only time you got a bit too into it was the intro to the Python section) and your seemingly not letting him get under your skin even after several replies.
And though I don't know enough to say for sure, it seems like the rebuttals you gave were legit and you brought good sources to the table to back them up.
You didn't go off on any unrelated tangents or get really personal/drag up unrelated things from the past either, even though you could have.
I think you showed allot of restraint while also doing a valuable service to the community by debunking his bad info in a human readable, unbiased, non emotional manner, and I can really respect that.

2019-06-11 09:42:54

one thing I will give you credit for.
Based on this your claim seems to be right.
But honestly I prefer quality over quantity. Pretty much a lot of websites developed with python are by big brands.
Netflix, dropbox, spotify, google, youtube, instagram, bittorrent, pinterest, quora and reddit are the one I can think of.
So true, the websites powered with python are a minority, but most of the time those sites are large and complex websites which generally incorporate machine learning as well.

Paul

2019-06-11 17:24:48 (edited by visualstudio 2019-06-11 20:49:55)

agreed with @21
also, let me clarify liam's question to you:
what do you recommend for game development? at least audio game development. what is recommended, what isn't at all!.
easy and simple.

2019-06-11 19:03:34

No, Liams question was: what experience do you have to draw on to say what language is better or worse for audio game development? This topic really makes me think that the OP clearly has no idea what he's talking about when it comes to programming languages, which is why I said in one of the posts on hee that I felt bad for his "students" because he would be teaching them misinformation and not actually teaching them the correct information. This is bad on every single level; you are deliberately giving the wrong information out to future software developersbecause you are too lazy to go and do research. That causes damage, and damage like that can be very, very hard to undo. I especially feel bad for the OPs students because they will find it very difficult to get a job involving their skills because their skills will be wrong!

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2019-06-11 19:23:59

22. My question was.
Why should the original poster's recommendations be ones people follow. I would like to know what games (audio or otherwise) this poster has created to make them an expert in the field of audio game development.

Much less active on this forum than in the past.

Check out my live streams: http://lerven.me
follow me on Twitter: http://twitter.com/liamerven

2019-06-11 19:54:11

@Ethin, thumbs-up for post five! I'm glad we have people like you in this community to debunk things like this.
@Jonikster, What gives you the right to talk about programming languages as if you know about them? You have posted dozens of topics asking real programmers how to do this or that In various programming languages. If people subscribe to your channel, they should read your topics because I believe you give the same misinformation that you give here. I'll admit I'm not much of a programmer, but I do know that most of what you said in the original post wasn't true. If I know something that can help somebody, I'll post, but I always stick to what I know and nothing else, sometimes I get things wrong, and when I do I'll be happy if someone corrected me on my mistakes. You do the same things over and over, asking questions and then coming up with your own silly answers. I hope for your sake you grow up, because your not helping anyone with what your doing now.

Guitarman.
What has been created in the laws of nature holds true in the laws of magic as well. Where there is light, there is darkness,  and where there is life, there is also death.
Aerodyne: first of the wizard order