Trying to decide which programming language I want to learn

In summary: C++ is considered a lower-level language, meaning that it is closer to the hardware and gives you more control over how your program runs. However, C# is a high-level language, which means it is easier to learn and use and has a lot of built-in libraries that make coding faster and more efficient. Both languages have their advantages and disadvantages, and it ultimately depends on what type of project you are working on. For gaming, C++ is often preferred because of its speed and control, but C# has become increasingly popular in game development as well. It's worth trying both and seeing which one you prefer working with.
  • #1
yungman
5,726
242
Hi

I just want to learn a language, but I don't know which one is best for me. I did programming back in the 70s and early 80s, mainly in assembly language. I learned Fortran, Basic and Pascal before, but they are so old. I since changed my career to analog and RF electronic designs and had not tough programming since. This is mainly for mind excise, I rather this than crossword puzzles for retirement.

I am thinking about C# or C++ as this is used in firmware design. Another one is like Python because both my grandkids are into gaming, I bought a book of Python for Kids to my teenage grand daughter and she is learning it. So that is like playing with grand kids. One kind I don't want is language for business, I have no interest in business, mainly scientific or maybe gaming.

Any suggestion will be appreciated. Also how to get started when I decide on one language.

Thanks
 
Technology news on Phys.org
  • #2
I think Python is a good choice, particularly if your grandkids are already learning it. The numpy and scipy libraries will give you lots of options for scientific programming, and there is PyGame as a general framework for game programming.

yungman said:
how to get started when I decide on one language

My best advice is to pick something to build and build it using the language. That way you will have a practical outcome to guide you.

You mentioned science and gaming, so I don't know if math (not particularly related to science but just math) is another interest of yours, but if it is, writing Python programs to solve Euler problems [1] could be a good exercise to learn Python.

[1] https://projecteuler.net/archives
 
  • Like
Likes Master1022, cobalt124, Dale and 4 others
  • #3
Python will be much more fun and interesting. There are a lot of hobbyists and advisors on forums. Grandchildren who like gaming may learn languages like Scratch and Mindcraft. I have mixed feelings about that, but they seem to enjoy it. If you want to coach them, you should look into that. They will not learn basic programming in Scratch without some coaching. C and C++ would have advantages in a job search, but programming with them is more tedious.
 
Last edited:
  • Like
Likes bhobba
  • #4
I guess for my interest, it's C# or C++. I designed a lot of micro controllers, Just when I was working, there were plenty of people that good in C++, I just design the hardware, they took over, everything worked and I never have to fix anything. Then I was happily going back to my analog world. If I learn C++ or C#, I can do hobby projects all by myself.

If I go this route, which one is better, C# or C++ or some newer language I don't know of?

You know how teenagers are, it's not cool to play with grandpa! What if I learn python and they don't even play with me?!
 
  • Like
Likes Klystron and DifferentialGalois
  • #5
yungman said:
If I learn C++ or C#, I can do hobby projects all by myself.

You can do programming for microcontrollers in lots of languages. I have done it in Python. It really depends on what specific kind of microcontroller you want to program and what languages are easily available for it and have the libraries you need for whatever you want to do.
 
  • Like
Likes bhobba
  • #6
There is a great deal of interest in robotics in the Python community. A lot of hobbyists are using single-board computers (SBCs) like the Raspberry Pi that are cheap, very easy to get information, tutorials, and help, and have a lot of interface capability to external hardware (including many GPIO connectors). Some SBCs even have processors that are specialized for neural networks. I suggest that you look into all this before you make a decision. It is a very exciting and fun new world.
One resource that I like to watch to keep up with these things is the youtube channel, ExplainingComputers.
 
Last edited:
  • Like
Likes bhobba and sysprog
  • #7
I decided to go with C# as I googled and seems like C# is the prefer language. It even can do gaming. I bought 3 books a year and half ago and really never get into it. Now maybe I should start seriously this time. I bought these 3 books:

https://www.amazon.com/gp/product/1975745086/?tag=pfamazon01-20

Shown is volume 1, I have vol 2 and 3. It's cheap.

Question is where can I get a compiler, where do I write the program? How do I get started? Any free software or do I have to buy it?

Thanks
 
  • #9
yungman said:
I decided to go with C# as I googled and seems like C# is the prefer language. It even can do gaming. I bought 3 books a year and half ago and really never get into it. Now maybe I should start seriously this time. I bought these 3 books:

https://www.amazon.com/gp/product/1975745086/?tag=pfamazon01-20

Shown is volume 1, I have vol 2 and 3. It's cheap.

Question is where can I get a compiler, where do I write the program? How do I get started? Any free software or do I have to buy it?

Thanks
https://docs.microsoft.com/en-us/visualstudio/get-started/csharp/?view=vs-2019
 
  • Like
Likes yungman
  • #10
sysprog said:
Thanks

So I just download Visual Studio and I can write the code and compile C#?

My grandson told me just now that C++ is better for writing game programs, is that true? I have no idea.

I went on google, it said C++ is more compact thereby run faster, C# needs a lot of library, it's slower and bigger. That C++ is superior for needing speed and much smaller. Maybe I should look into C++ instead.
 
  • Like
Likes Klystron
  • #11
PeterDonis said:
The numpy and scipy libraries
You just make that up. :biggrin:
It's funny, and sort of describes it too, IMO.
 
  • Haha
Likes DifferentialGalois
  • #12
256bits said:
You just make that up. :biggrin:
It's funny, and sort of describes it too, IMO.
That is what they are called. Numpy SciPy
 
  • Like
Likes DifferentialGalois, Janosh89 and 256bits
  • #13
yungman said:
Thanks

So I just download Visual Studio and I can write the code and compile C#?
Here's a good tutorial that is designed for beginners: https://www.homeandlearn.co.uk/csharp/csharp.html
My grandson told me just now that C++ is better for writing game programs, is that true? I have no idea.

I went on google, it said C++ is more compact thereby run faster, C# needs a lot of library, it's slower and bigger. That C++ is superior for needing speed and much smaller. Maybe I should look into C++ instead.
C# is easier to get started with, largely because of the .NET framework, but I think that you will need to read up some more in order to acquire a sound basis for having a preference.
 
  • #14
yungman said:
My grandson told me just now that C++ is better for writing game programs, is that true? I have no idea.
For serious graphic games on Windows?
You should then have to learn the criptic Windows Win32 API library.
( even so, for any graphics you will be using the Windows features to put something on the screen for other than a text console )
Not easy.
Also something like OpenGL, Blender, DirectX or other 2D, 3D graphics libraries, sound, etc for the nice scenery.

Here is an older book that de-mystifies some of it - games are 2D video arcade type.
https://www.oreilly.com/library/view/sams-teach-yourself/067232461X/
Perhaps you can pickup a copy and the code disk on the cheap.

EDIT - Kind of weird.
The book is from 2003, and amazon has it listed for 37.99$, should be about 5$.
https://www.amazon.com/dp/067232461X/?tag=pfamazon01-20
 
  • Like
Likes sysprog
  • #15
FactChecker said:
That is what they are called. Numpy SciPy
Oh, OK, sorry for the off direction post from above.
Not like Ren and Stimpy cartoon, I thought it was a play on words.
https://en.wikipedia.org/wiki/The_Ren_&_Stimpy_Show
" the adventures of title characters Ren, an emotionally unstable Chihuahua, and Stimpy, a good-natured yet dimwitted cat. "
which was Python years ago.
Maturity has come with age though.
Ren and Stimpy were just cancelled.
 
  • Haha
Likes FactChecker
  • #16
sysprog said:
Here's a good tutorial that is designed for beginners: https://www.homeandlearn.co.uk/csharp/csharp.html
C# is easier to get started with, largely because of the .NET framework, but I think that you will need to read up some more in order to acquire a sound basis for having a preference.
The moment I read about C# being slower and size is much bigger, it really turns me off already. I don't know what is the modern terms called, in my days long time ago, we called "calling subroutine" to perform certain task to speed up programming. That is people can write all different subroutine and you just import a whole bunch of subroutine and call them so it make programming simpler and can be written much faster. The problem is the more you call, the slower it gets particularly if you pull in a whole bunch of subroutines that you don't use that come in the whole package. that makes the program very large and get slower and slower to run.

This is like when the computers get more advanced, the slower it run. True, it might have a lot more bells and whistles, but it just gets slower and slower compare to the older days when old computers running old programs.( emphasize running old programs that don't have all the bells and whistles...but do get the job done). I suspect calling a whole bunch of subroutine has something to do with the speed of running ( or the lack of).

The other example that really turns me off is like in the new cars, the response of the control is so so slow. You start the car, for the first 15 seconds, I cannot change the radio station, change the volume and all, it just has to wait for it do display " make sure you do this and do that"! Like I cannot control the fan speed, and other simple things. It's like it can only do one thing at a time and you have to wait for it to go through all the start up before you can gain control. My 2014 car is nothing like this. It's like the more advance the computers are, the slower it gets. Not to mention all the bugs! Like all of a sudden, the control lose all controls, I had to stop the car, put the transmission to neutral then everything start working again.

Sorry about the ranting. My 2018 car was in the shop for like 5 weeks in the first 9 months, all computer problems. Never really got fix, just got better with new software updates.
 
  • #17
Comparing the speed of old computers with modern ones is comparing apples and oranges. The old computers are not in the same league as modern ones. Judging the speed of computer languages is tricky and often meaningless. One significant factor is the difference between interpreted code (essentially compiled as it runs) versus compiled code (compiled before it runs and then runs unimpeded.) But even interpreted code often can be compiled and run fast. IMO, for most use in a hobby, the speed difference between C# and C++ should not make a significant difference. But it is slower (see this)
 
  • #18
You can't use C# on a microcontroller, the only "advantage" C# (which is a Microsoft product) has over any other version of C is that it can create interfaces that look the same as any other Microsoft product.

You would be much better off with C++, and if you are already familiar with microcontrollers and electronics then this would be a great way to get into it: I recommend one of the Elegoo Arduino kits available on Amazon.

But Python would also be a good way to go and as has already been mentioned this can run on (more powerful) microcontrollers too - check out the Adafruit Feather M4 Express which ships with CircuitPython, and there is also the alternative MicroPython ecosystem.

However microcontroller programming has its own quirks, and is possibly not the best place to start. I'd start with Codecademy: you can get through the "Hello World" tutorials and more in both C++ and Python in an evening (and I'd throw in my current favourite JavaScript too) which will give you more of an idea where you want to go next.
 
  • Like
  • Informative
Likes Klystron, bhobba, yungman and 1 other person
  • #19
pbuk said:
You can't use C# on a microcontroller, the only "advantage" C# (which is a Microsoft product) has over any other version of C is that it can create interfaces that look the same as any other Microsoft product.

You would be much better off with C++, and if you are already familiar with microcontrollers and electronics then this would be a great way to get into it: I recommend one of the Elegoo Arduino kits available on Amazon.

But Python would also be a good way to go and as has already been mentioned this can run on (more powerful) microcontrollers too - check out the Adafruit Feather M4 Express which ships with CircuitPython, and there is also the alternative MicroPython ecosystem.

However microcontroller programming has its own quirks, and is possibly not the best place to start. I'd start with Codecademy: you can get through the "Hello World" tutorials and more in both C++ and Python in an evening (and I'd throw in my current favourite JavaScript too) which will give you more of an idea where you want to go next.
Thanks for the info. The fact I cannot use C# in microcontroller seal the deal. That's what I was to get into in the future as I am really a hardware/analog engineer at heart. Ultimately it's the whole project that matter to me. Electronics is my ultimate passion, I have been designing and built high end hi-fi amps for years and I pretty much hitting the ceiling already. That's the main reason I am looking for another hobby in electronics as my "crossword puzzle" to keep my mind from turning into jello!

Can you give me a suggestion to download the software to write and compile C++? Just like Visualstudio that Sysprog suggested.

Thanks

Alan
 
  • #20
If you want optimal efficiency ##-## https://docs.microsoft.com/en-us/cpp/assembler/masm/masm-for-x64-ml64-exe?view=vs-2019
yungman said:
Thanks for the info. The fact I cannot use C# in microcontroller seal the deal. That's what I was to get into in the future as I am really a hardware/analog engineer at heart. Ultimately it's the whole project that matter to me. Electronics is my ultimate passion, I have been designing and built high end hi-fi amps for years and I pretty much hitting the ceiling already. That's the main reason I am looking for another hobby in electronics as my "crossword puzzle" to keep my mind from turning into jello!

Can you give me a suggestion to download the software to write and compile C++? Just like Visualstudio that Sysprog suggested.

Thanks

Alan
It's not quite accurate to say that you "can't" run C# on a microcontroller, e.g. https://en.wikipedia.org/wiki/Netduino, but C and C++ don't require .NET ##-## Visual Studio is well-adapted for C and C++ ##-## https://visualstudio.microsoft.com/vs/features/cplusplus/
 
  • Like
Likes yungman and pbuk
  • #21
I'd get started in codecademy because you don't need to set anything up, it all just works online. Where you go from there depends on whether you go the microcontroller route or desktop programming.

If its the latter (i.e. desktop), and you are on windows then Visual Studio is still a good way to go if you want a modern development environment. If you are happier on the command line, then whilst you can do this in Windows I'd recommend Linux which is going to take you down a whole other route. I'd leave this until you find that VS is not doing what you want.

For the microcontroller you will start off in the Arduino IDE which does all the compiling and linking and transferring for you - just follow the tutorial provided by whoever supplies the kit (I have suggested Elegoo).
 
  • Like
Likes yungman and sysprog
  • #22
sysprog said:
It's not quite accurate to say that you "can't" run C# on a microcontroller, e.g. https://en.wikipedia.org/wiki/Netduino
Well, who knew. Doesn't make sense to me - the key point of using C++ on a microcontroller is that I am always in control of what the hardware is doing without a complier runtime getting in the way with garbage collection etc. If I don't need to worry about my IoT device hanging in GC for a couple of microseconds I may as well use a HLL like CircuitPython or Espruino. I do think the look of the Wilderness Labs kits though - much sexier than Elegoo (but 3x the price).
 
  • Like
Likes yungman and sysprog
  • #23
If you use C++ be sure you are also a good C programmer. Many typical microcontroller task are just a simple
while(true) loop with lots of interrupt driven I/O. You don't really need to use a full OOP abstraction with simple 'bare metal' register level sequential tasks. Less abstraction at the source code level simplifies chip-level hardware (breakpoint style) debugging.
 
  • Like
Likes Klystron and sysprog
  • #24
pbuk said:
Well, who knew. Doesn't make sense to me - the key point of using C++ on a microcontroller is that I am always in control of what the hardware is doing without a complier runtime getting in the way with garbage collection etc. If I don't need to worry about my IoT device hanging in GC for a couple of microseconds I may as well use a HLL like CircuitPython or Espruino. I do think the look of the Wilderness Labs kits though - much sexier than Elegoo (but 3x the price).
Thanks for your link.

I understand what you are say, it's not like you cannot use C#. You can make any language do anything, it's the matter of how convenient to use, if you have to go through more trouble to use C#, then it's not a good choice. It's like I am sure the Pascal in my days can do everything today, it's just do you want to use it? Do you have the support to use it, anyone writing subroutine that you can pull into use it? these are all important to consider for choosing a language.

Ha ha, I am an old fart, I came from days of writing assembly language. I can have full control, it's fast also. I remember we did time slicing so we service everything very fast. Why is it like in my car, the first 15 seconds after starting, I have no control of the center console of the car on radio, sound and everything. Even the sales person during the test drive said you have to be patience with the car.

Some times, seems like laptops are like that too, it's just so slow if there's something running in the background. I swear, it's like every new laptop I buy, it just gets slower and slower with the new programs. ( Of cause I know it's the newer programs that cause the problem. If you run new programs in old computer, it's much worst. That's a given).
 
  • #25
Coming from the language side alone think my recommendation would be C++. The language stretches a long history from C programming to newer concepts that keep getting added. And you can mix all of these programming types seamlessly depending on your preferences. C-style C++ is very similar to Pascal, for example. So starting from there and subsequently adding newer features as you like could work well. Many modern c++ programmers would look down on approaching the language from C for good reasons, and I would not recommend it for beginners. But I think it fits for someone who already knows C-style programming. Disclaimer: I don't know much about C#. I always considered it as Java for Windows users. Real Java may be a strong contender to C# (I guess "real Java" it kind of a tell about my opinion on this :). But I believe the more low-levelable c++ is the better fit for you.

I started writing long parts about other relevant features, but I don't think that yet-another random voice on the Internet really adds much. So in brief: I already mentioned why C++ is a good fit as a language. Its main weakness for you may be that other languages' ecosystems have better 3rd party libraries available. Much of modern software development (say, a web application to show the current number of Corona cases in different countries) is essentially gluing together libraries of other people (web interface, plotting), and not so much actual programming. Java and Python are probably the kings of "stick parts together"-programming (and Javascript/Typescript, if you also like having LSD for breakfast), while c++ is rather average in this aspect. And finally: Performance in the context of programming languages it is overrated and mostly irrelevant.
 
  • #26
nsaspook said:
If you use C++ be sure you are also a good C programmer. Many typical microcontroller task are just a simple
while(true) loop with lots of interrupt driven I/O. You don't really need to use a full OOP abstraction with simple 'bare metal' register level sequential tasks. Less abstraction at the source code level simplifies chip-level hardware (breakpoint style) debugging.
I have not been doing any programming for almost 40 years. The last language I learned was Pascal. It wasn't hard, took me like 2 weeks to learn and play with it. I don't know C at all, I can't comment, Is C much harder to learn?

Seems to me, in computer language, you learn one, learning the second one is very easy. The hardest is to learn how computer "think". I learn fortran first in college, the second language is assemble, I found it very easy already because of the Fortran. Then Basic is just common sense. Then Pascal is just straighter and needs to be more specific in defining everything. Other than than, it's mainly learning the syntax.

Later on, I did some FPGA AHDL programming, again, the idea is still the same, it's more difficult in the sense that there can be multiply signal running at one time instead of software going one line at a time. You need to worry about timing, race condition that software don't have to worry. That's where a lot of software engineer run into problem trying to program FPGA, they think it's all the same and run into timing problem and race condition that make the system unreliable.

Please let me know if I miss something in learning C++ that I need to watch out and learn.
 
  • #27
C# has a lot of goals that are related to running on web sites. If that is not of interest to you, it may not be a language that you should learn first. C++ can always be written a lot like C. You can have good control of what it is doing when you want that. If you want to have a lot of control over what is happening and want a lot of free programming tools, you might consider using a Linux-based operating system on your work computer instead of a Microsoft Windows system.
 
  • Like
Likes bhobba and sysprog
  • #28
FactChecker said:
C# has a lot of goals that are related to running on web sites. If that is not of interest to you, it may not be a language that you should learn first. C++ can always be written a lot like C. You can have good control of what it is doing when you want that. If you want to have a lot of control over what is happening and want a lot of free programming tools, you might consider using a Linux-based operating system on your work computer instead of a Microsoft Windows system.
Honestly, I don't know what I want, I am just guessing. Got to start somewhere and learn the first modern language first. I am sure after the initial learning, learning another one later should not be that hard. I'll worry about it later. Like I said, this is my crossword puzzle, not as if I am going back to work and need something that fit the best. Time I have.

Thanks
 
  • #29
yungman said:
I have not been doing any programming for almost 40 years. The last language I learned was Pascal. It wasn't hard, took me like 2 weeks to learn and play with it. I don't know C at all, I can't comment, Is C much harder to learn?

Seems to me, in computer language, you learn one, learning the second one is very easy. The hardest is to learn how computer "think". I learn fortran first in college, the second language is assemble, I found it very easy already because of the Fortran. Then Basic is just common sense. Then Pascal is just straighter and needs to be more specific in defining everything. Other than than, it's mainly learning the syntax.

Later on, I did some FPGA AHDL programming, again, the idea is still the same, it's more difficult in the sense that there can be multiply signal running at one time instead of software going one line at a time. You need to worry about timing, race condition that software don't have to worry. That's where a lot of software engineer run into problem trying to program FPGA, they think it's all the same and run into timing problem and race condition that make the system unreliable.

Please let me know if I miss something in learning C++ that I need to watch out and learn.

Your FPGA example makes an important point. Most programming languages are designed by and used by programmers solving algorithmic problems on hardware. A large part of embedded/hardware software engineering is solving hardware state problems in software (firmware) so the mindset needed to be good at that level is usually filled with hardware engineers taught to directly program low-level hardware as a requirement for building hardware systems. C was designed for this sort of task while the types of problems C++ solves doesn't really help at the hardware bootstrap stage.
 
  • Like
Likes sysprog
  • #30
  • #31
pbuk said:
You can't use C# on a microcontroller, the only "advantage" C# (which is a Microsoft product) has over any other version of C is that it can create interfaces that look the same as any other Microsoft product.

You would be much better off with C++, and if you are already familiar with microcontrollers and electronics then this would be a great way to get into it: I recommend one of the Elegoo Arduino kits available on Amazon.
Although C# isn't suitable for writing microcontroller code, you can mix C# and C++ together in the same program.

@yungman, if the last language you learned was Pascal, you'll have a bit of a learning curve with C or C++. Since C is more-or-less a subset of C++, you'll probably have an easier time learning C than C++.
 
  • Like
Likes FactChecker
  • #32
Mark44 said:
Although C# isn't suitable for writing microcontroller code, you can mix C# and C++ together in the same program.

@yungman, if the last language you learned was Pascal, you'll have a bit of a learning curve with C or C++. Since C is more-or-less a subset of C++, you'll probably have an easier time learning C than C++.
Thanks, this is the first time I use Visual Studio, that's a learning curve already. I have no interest in Visual Studio, I am going to see how little I have to learn to do C++.
 
  • #33
Since everyone else has gone through all the boring stuff:

You mentioned pascal - you may want to check out Lazarus -I like it for windoze general programming. (its a RAD IDE system based on FPC) You can do impressive things very quickly with it.

and the opposite for smallest and fastest...

To excercise your brain in a microcontroler way (I'm suprised you didnt mention it) : read
https://www.forth.com/starting-forth/
the PDF download seems to be free now. There are many "free" Forths and a couple of commercials ones.
(which may have free variants)

PS I don't think you can really say there are any "new" languages - they mostly seem
to be the same just with different syntaxes to make them appear different. There are probably
no more than about four different types of languages I'd guess but Forth is about as different to those
you mention as you will probably get.
 
  • #34
jack2020 said:
Since everyone else has gone through all the boring stuff:

You mentioned pascal - you may want to check out Lazarus -I like it for windoze general programming. (its a RAD IDE system based on FPC) You can do impressive things very quickly with it.

and the opposite for smallest and fastest...

To excercise your brain in a microcontroler way (I'm suprised you didnt mention it) : read
https://www.forth.com/starting-forth/
the PDF download seems to be free now. There are many "free" Forths and a couple of commercials ones.
(which may have free variants)

PS I don't think you can really say there are any "new" languages - they mostly seem
to be the same just with different syntaxes to make them appear different. There are probably
no more than about four different types of languages I'd guess but Forth is about as different to those
you mention as you will probably get.
I don't dare to say anything about the new language as I have been out of the loop for so long. But yes, that's how I felt when I learned even Assembly, Pascal after I learn Fortran. They are pretty much the same, they work the same way. Didn't take much time to learn the new language even Assembly. It's learning the way computer think...that it is dumb, no common sense, you have to specify everything...BUT, it has infinite patience to repeat the process over and over and over...! Hope I can pick up C++ reasonable fast, I am sure my brain is nothing like when I was in my 20s. Those days, I could pick up new things just like that. Now is like going in one side and leak out from the other side.

I don't get what you mean by "exercise brain in a microcontroler way. You mean designing the hardware? That's very easy, I designed enough CPU boards and microcontroler boards already.
 
  • #35
One of the main selling points of C# is the built in support for GUI development on Windows and other systems stuff. Another selling point is that the popular game development engine (unity) is done using C#. That and compared to C++, it is a little higher level, like it manages memory for you in the background, whereas in C++ you have flexibility to use manual memory management, although modern C++ supports some level of automatic memory management. You need to install the .NET framework, and maybe need specific versions of the .NET framework to be installed along with your program. I never actually used C# before, because I don't care about automatic memory management and don't like the proprietary nature of it, and need to have .NET. There is a thing called Mono, which is an open source cross platform version though.

People complain that C++ is too large and complex, and takes a ton of time to learn the whole thing. There are many details you need to worry about and opportunities to make mistakes. You can do cross platform GUI development pretty easily in C++ using QT. And you can get away with never touching windows API's (which I never, ever want to do) if you use third party libraries. I generally only use cross platform libraries and mainly use linux. You can use glwf to just make windows and do graphics rendering directly, or use a library like SDL. Or you can use the state of the art game engine like Unreal engine. That all said, C++ will require a lot of learning the complexities of the language. It might be a little bit of a drag if you want to do it for fun.

For making games on a Mac, there might be some special considerations, because they keep getting rid of support for stuff and forcing people to use their proprietary API's for certain things.

I agree Python is a good choice, because of the wide array of packages available for things like mathematics, statistics, science, and machine learning. The syntax and overall language is simple and easy to use. It is a really convenient language compared to C++ or C#. It's become one of the preferred language for mathematics researchers, scientists, data scientists, etc. It's slow in the sense that the code you write in Python will not be as fast, but functions can be coded in C or C++ and cuda, and then be used in Python to get all the performance bennefits of the faster compiled language and parallelism. And a lot of the libraries you use have already done that.

Actually, I would suggest considering javascript and then you can use three.js to do graphics/games. The reason is that three.js makes it really easy to do GPU accelerated 3D graphics compared to others, and you can even do VR this way.
https://threejs.org/

You can always learn multiple languages.

For fun, and mental stimulation, a functional language could be worthwhile. They force you to think in a different and pretty neat way.
 
Last edited:
  • Like
Likes atyy and yungman

Similar threads

  • Programming and Computer Science
Replies
15
Views
2K
  • Programming and Computer Science
4
Replies
107
Views
5K
  • Programming and Computer Science
Replies
8
Views
1K
  • Programming and Computer Science
Replies
16
Views
2K
  • Programming and Computer Science
Replies
11
Views
2K
  • Programming and Computer Science
2
Replies
54
Views
3K
  • Programming and Computer Science
Replies
13
Views
1K
  • Programming and Computer Science
2
Replies
58
Views
3K
  • Programming and Computer Science
Replies
16
Views
2K
  • Programming and Computer Science
Replies
9
Views
1K
Back
Top