Jump to content

Should I Learn C, C++, Go, or Rust?


pacman9090

Recommended Posts

I know C and C++ are two fast, efficient, and mature computer languages that can be used to create operating systems, applications, and games. Are Go and Rust, two fast and efficient computer languages, that are also less mature than C and C++, good, if not better, alternatives, when it comes to speed and efficiency, for programming operating systems, applications, and games? I also know C++, Go, and Rust are considered modern computer languages, while C is not.

Link to comment
Share on other sites

If your goal is to be "that" guy... The one that software engineers fear and gossip about when you arrive at the office, you'll want to go with C to start. You'll also want to learn x86/64 Assembly and LOAD your C applications up with unnecessary functions written in Assembly for the purpose of speed.  When you create your GitHub account, you'll want to create things in Lisp, Cobol, and Fortran (mention that its for fun). You'll want to post random rants on your twitter about how C++ is TRASH, treating it like a disease that needs to be eradicated.

Go and C# are fun and pretty cool too. At some point you'll realize its ALL bullshit and doesn't even matter any more what you're using.

Link to comment
Share on other sites

Use the right tool for the right type of work you intend to do.

If you want to write end-client Windows applications (freeware,shareware,commercial, sold to individuals or companies) then you should consider using C/C++/C#/C++ Managed

If you want to develop front-end web-server applications (installed on a virtual hosting service) then you should consider using PHP (it will generate HTML, eventually CSS, eventually JavaScript, eventually other file-formats). PHP is installed on all/most virtual hosting services (other technologies are not)

If you want to develop back-end web-server applications (installed on a dedicated server) then you should consider using Bash, Python, Perl, CGI (obsolete, it's compiled C/C++), jNode (server-side JavaScript) and endless list of new technologies. Actually, you can use any language to generate HTML/CSS/JS for users (visiting WWW), because you own the dedicated server and can install anything (unlike virtual hosting, where you are limited to the software installed by the IT company where you bought the hosting).

If you want to develop applications for smartphones then you should learn (Android) Java, Kotlin, (iPhone) Swift.

 

To start, install Visual Studio Community

https://visualstudio.microsoft.com/pl/vs/community/

and use one of many template projects.

 

1 hour ago, rathlin said:

You'll also want to learn x86/64 Assembly and LOAD your C applications up with unnecessary functions written in Assembly for the purpose of speed. 

Nowadays, people use GPUs (OpenCL,CUDA) to accelerate applications.

 

Edited by Sensei
Link to comment
Share on other sites

Thanks, rathlin and Sensei. I was leaning more towards C and C++ to start because they are fast, efficient, and mature, meaning they are well documented and supported across platforms, which would make them perfect languages for creating games. Rust and Go both seemed like more modern choices, C++ is also modern, but C is not, but I was afraid all those modern features would slow down C++, Rust, and Go. I also have an interest in learning about technologies like Raylib, SDL2, OpenGL, Vulkan, and DirectX 12. C is an easier language to learn than C++, so I would normally prefer beginning with C, over C++, but C++ is considered better for game development, while C is better for OS kernel development than game development. There is just so much to consider.

Link to comment
Share on other sites

1 hour ago, pacman9090 said:

Thanks, rathlin and Sensei. I was leaning more towards C and C++ to start because they are fast, efficient, and mature, meaning they are well documented and supported across platforms, which would make them perfect languages for creating games.

People use Unity and Unreal engines to develop games. They are indeed written in C/C++. But do you ("beginner") really want to make your own game engine? I don't think so.. Having such heavy projects at the beginning of the journey would most likely put you down..

Scripts that extend game engines are usually written in C# and Python.

These days, to make a game you need 3D assets and/or 3D gfx artists, and almost no programming skills.

1 hour ago, pacman9090 said:

Rust and Go both seemed like more modern choices, C++ is also modern, but C is not, but I was afraid all those modern features would slow down C++, Rust, and Go. I also have an interest in learning about technologies like Raylib, SDL2, OpenGL, Vulkan, and DirectX 12. C is an easier language to learn than C++, so I would normally prefer beginning with C, over C++, but C++ is considered better for game development, while C is better for OS kernel development than game development. There is just so much to consider.

C/C++/C#/Java is 75-90% the same stuff. Unless by "learning language" you meant "learning built-in and 3rd party libraries/modules/extensions". Really, you find out what libraries are available when you create a project. For example, you need to open a file, you search the web for "how to open a file in [the language you are writing the project in today].". You can't learn all the methods/functions from all the libraries in advance, because programmers (counted in the tens of thousands) create these libraries faster than you can read them.

Really, start writing program, instead of talking about it.

For example, follow this tutorial ("how to create a calculator in C#"):

There are many such tutorials:

https://www.youtube.com/results?search_query=how+to+create+a+calculator+in+C%23

The difference between this C# code and C++ Managed (C++ which uses .NET Framework) is marginal (99% the same).

 

Edited by Sensei
Link to comment
Share on other sites

Thanks for the info, and C# calculator coding tutorial, Sensei. Unreal and Unity are great game engines, but they are not completely free. Godot would be better for me. I was interested in coding a game engine and games in C, C++, and Raylib. C and C++ are fast and efficient, so they are perfect for coding games. JavaScript, Python, Java, and C# are slower and less efficient than C and C++, but they are easier to work with when coding games. I was also interested in eventually creating my own game engine and games in C, C++, OpenGL, and Vulkan, but that goal is a bit ambitious for me, at this stage in my coding development.

Link to comment
Share on other sites

  • 2 weeks later...
On 2/1/2023 at 9:50 AM, gulshan212 said:

Hi this is Gulshan Negi 

Well, I will recommend you to start with C, then move to C++, Go, or Rust depending on the type of development you want to do and your specific interests.

Thanks 

Thanks. I know C is quicker and easier to learn than C++, but I am unsure if C is quicker or easier to learn than Rust or Go. C is a popular computer language for systems programmers, but I it is great for application development too. C++, Rust, and Go can be used for systems programming, if I am correct, but they are more popular for application development. I am interested in game programming so I believe either C, C++, Rust, or Go would be perfect for that because they are high-performance. JavaScript, Python, Java, and C# are not as high-performance as C, C++, Rust, or Go but they are great computer languages that are great for developing applications and games quickly and easily.

Link to comment
Share on other sites

On 1/22/2023 at 4:02 AM, pacman9090 said:

I know C and C++ are two fast, efficient, and mature computer languages that can be used to create operating systems, applications, and games. Are Go and Rust, two fast and efficient computer languages, that are also less mature than C and C++, good, if not better, alternatives, when it comes to speed and efficiency, for programming operating systems, applications, and games? I also know C++, Go, and Rust are considered modern computer languages, while C is not.

Assuming equal proficiency in both C++ and Rust, it would seem to be simpler to build multithreaded/concurrent code in Rust than it is in C++ that is valid and causes no undefined behaviour. It is "easier" in that regard. No, trying to learn it is considerably harder than you might think. In other words, Rust is simpler because it is more challenging to introduce certain classes of dreadful errors into it. Therefore, it's simpler because making mistakes is more difficult. It's tougher because it's harder to do anything at all, particularly if you bring preconceived beliefs with you and try to impose them on how you operate in Rust.

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 weeks later...
On 3/3/2023 at 6:05 AM, JohnathanSpike said:

I think C would be the best one to start with. But then maybe it would be cooler to continue with Rust. 

C, C++, Rust, and Go are all high-performance middle-level languages. JavaScript, Python, Java, and C# are high-level languages. C and C++ are more mature than Rust and Go. C++, Rust, and Go are more modern than C. C is probably easier and quicker to learn than C++, Rust, and Go. C++, Rust, and Go have more modern features than C. Because C lacks these features it may be higher-performance and lower-level than C++, Rust, and Go.

Link to comment
Share on other sites

  • 2 weeks later...

 

Yes, Go and Rust are good, if not better, alternatives to C and C++ for programming operating systems, applications, and games. Go and Rust are fast, efficient, and modern computer languages and offer advantages over C and C++, such as better memory management, improved garbage collection, faster compilation times, and more flexibility. However, they are still less mature than C and C++, so they may require more debugging and may lack features and libraries. Ultimately, it depends on the type of project and the programmer's experience and preferences.

Link to comment
Share on other sites

13 minutes ago, Bunty12 said:

such as better memory management, improved garbage collection,

..which means that the programmer will not learn how to do it correctly so as not to lose memory and how to reduce memory consumption..

 

Link to comment
Share on other sites

On 3/24/2023 at 2:33 PM, Sensei said:

..which means that the programmer will not learn how to do it correctly so as not to lose memory and how to reduce memory consumption..

 

If a programmer does not learn how to manage memory properly, it can lead to several problems such as memory leaks, inefficient memory usage, and poor application performance. Therefore, it is essential for a programmer to have a good understanding of memory management concepts and techniques to optimize memory usage and reduce memory consumption.

Link to comment
Share on other sites

33 minutes ago, Genady said:

What do you mean, optimize? Minimize? If so, it is a very narrow programmer's perspective.

If it is used for customers, it is just such wordplay i.e. marketing bullshit.

 

Link to comment
Share on other sites

  • 4 weeks later...

I had done some research and discovered using a game engine like Unreal Engine, Unity, GameMaker, or Godot is a great way for a beginner to learn how to make a game because you do not have to waste time programming your own game engine.

Link to comment
Share on other sites

  • 1 month later...

Go for C if you want to become an electrical engineer, to learn basics or create operating systems. C++ is best for game development. C# is best for enterprise applications. 

My advice is to don't develop games in unreal engine, gamemaker or godot, instead use a rpg maker when making a game, it is more rewarding and more fun. 

Link to comment
Share on other sites

  • 2 months later...
On 6/13/2023 at 5:14 PM, noobinmath said:

Go for C if you want to become an electrical engineer, to learn basics or create operating systems. C++ is best for game development. C# is best for enterprise applications. 

My advice is to don't develop games in unreal engine, gamemaker or godot, instead use a rpg maker when making a game, it is more rewarding and more fun. 

C and C++ are well established in the game development community. Many game development frameworks are compatible with C and C++. Rust and Go are newer languages but are also well supported for game development and have memory safety features that make them better choices for beginner game developers than C or C++. Go Is also considered high-level while C, C++, and Rust are considered low-level. Game engines will save you time in building a game, because you can focus on the game and not the game engine, but building a game engine from scratch will give you full control over your game engine and game.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.