Jump to content
  • Advertisement
Sign in to follow this  
Ferrosurgeon

Beginner-friendly language implementations with great portability, performance, AND actively developed?

This topic is 876 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I've read about many programming languages and don't like what I've found so far. For my personal project I'd greatly prefer a programming language with excellent performance potential and tooling/implementations with good enough documention and activity for anyone to learn to hack on. Is there any cross-platform programming language compiler/vm/runtime this good yet?

Would it be helpful to explain why LuaJIT, C#, etc. don't meet this criteria, or what I consider development practice red flags?

Share this post


Link to post
Share on other sites
Advertisement


C# and Python are frequently given as good languages for beginners. They have relatively shallow learning curves, plenty of documentation and learning materials, and are quite capable.

Lua is popular in games as a tool for people not trained as programmers to do some light programming and scripting.

What specifically about them don't you like?

I don't know if Pypy jit improvements will ever reach Cython and Numpy speed, but it's supposedly a well-written compiler.

LuaJIT also has to deal with costly dynamic abstractions, and development has slowed dramaticaly since its core developer is moving on without completing the new garbage collector.

While the parts of .NET and CLR that aren't closed-source have a couple cross-platform ports with decent community activity, there's the threat of Microsoft's patent promise changing.

 

There's always tradeoffs, so knowing what they are helps in adjusting language criteria. I'm not trying to be rigid or unrealistically demanding, just wanting to compare the best and learn about languages others here know about.

Share this post


Link to post
Share on other sites

I would recommend Python. It meats your criteria and more. 

 

I have boiled learning a programming language down into 5 phases:

 

  1. Learn a language
  2. Learn the syntax of the language
  3. Learn the built-in modules of the language.
  4. Learn popular libraries/modules made in the language
  5. Learn the popular frameworks written in the language

 

The modules of Python will lead you into all the other topics of computer programming you need. Everything from web development to databases. It will lead into regular expressions and networking. Python can do just about all of it. From Python I got more into html, css, and javascript, as well as SQL and learning about JSON. This is because Python has modules related to these subjects. 

 

I used Python to learn programming basics, and now I am looking to learn lower level stuff like C++ or C#. 

 

Thankfully, the structure of Python syntax was chosen for the Godot Game engine. So I learned GDscript in a day, and now I can practically use python to develop games!

 

Now I am thinking of using Ruby and learning Ruby on Rails.

 

I have been documenting my journeys as a tutorial. Maybe this link will help:

https://github.com/TutorialDoctor/Software_Development

 

P.S. The main thing that changes from one programming language to the next is purpose and syntax. Otherwise, some lower level languages just give you deeper access to the hardware of the computer. At the end of the day, it is all binary.

Edited by Tutorial Doctor

Share this post


Link to post
Share on other sites

I'd not recommend Python or any intepreted language to be your first language. It's very "nice" and friendly for beginners but doesn't mean it's better.

The new fashioned and popular interpreted languages of this era are very very high that is probably that you're not learning how to really code and how real programs work. I mean, you can do in 1 line of Python what a 15 lines of C++ can do. That's not good, that's terrible for beginners.

Better you learn how a really programming language works and then try a more high level language to develop something you need.

 

I recommend you to start with C++ (it's the most near to C and you'll learn object-oriented programming what is the best practice). If you dislike C++ for any reason then go with Java or C#.

Share this post


Link to post
Share on other sites
I'll just quote the well-written FAQ on this rather than trying to wordsmith it myself:


C++, although a popular language in the production of commercial games you'll see on store shelves, is generally considered to be an extremely poor choice for a first language, largely due to its advancing age, cumbersome nature, and most importantly its cultural design bias towards the idea that the programmer is always correct -- which is an assumption that is almost never true for a beginning programmer. Such traits can complicate the learning process, and while it is certainly possible to learn C++ first, it tends to be sub-optimal.

The amount of things you need to know in order to follow c++ idioms is rather large and highly technical. It is generally easier to learn the basics of programming in a language that is far more forgiving of errors.

Share this post


Link to post
Share on other sites

For my personal project I'd greatly prefer a programming language with excellent performance potential and tooling/implementations with good enough documention and activity for anyone to learn to hack on. Is there any cross-platform programming language compiler/vm/runtime this good yet?
Everyone is looking for this ultimate language, so please let us know when you found it.

 

I found that performance is mostly a non-problem in programming. A far bigger problem is understanding how to tell a computer what you want it to do. This is where everybody is spending their time on. If you don't make big mistakes there, performance comes by itself. Except for rare cases, I would even say it the other way around. If you have a performance problem, you're doing something wrong. At that time, more than often, the solution is not a faster language.

 

For the rare exceptions, the normal step is to switch to a different programming language. As you found out, there is no universal best language. Each one has different weak and strong points. Good programmers know several languages, use the right one for the job, and then combine them. Most languages even have standard facilities for that.

 

I would suggest you learn a high level language like Python, and at a later stage, a low level language like C. That will give you a proper foundation in programming.

Share this post


Link to post
Share on other sites

 

Beginner-friendly
great performance


No such language exists, and even if it did, beginners don't have experience needed to achieve great performance.

 

It used to.  Pascal had excellent performance and was very beginner friendly.  Unfortunately people went with C++.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!