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