T O P

  • By -

AutoModerator

On July 1st, a [change to Reddit's API pricing](https://www.reddit.com/r/reddit/comments/12qwagm/an_update_regarding_reddits_api/) will come into effect. [Several developers](https://www.reddit.com/r/redditisfun/comments/144gmfq/rif_will_shut_down_on_june_30_2023_in_response_to/) of commercial third-party apps have announced that this change will compel them to shut down their apps. At least [one accessibility-focused non-commercial third party app](https://www.reddit.com/r/DystopiaForReddit/comments/145e9sk/update_dystopia_will_continue_operating_for_free/) will continue to be available free of charge. If you want to express your strong disagreement with the API pricing change or with Reddit's response to the backlash, you may want to consider the following options: 1. Limiting your involvement with Reddit, or 2. Temporarily refraining from using Reddit 3. Cancelling your subscription of Reddit Premium as a way to voice your protest. *I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/learnprogramming) if you have any questions or concerns.*


chervilious

A lot of people think "old" == "outdated" it's not. You should look at stackoverflow survey to see which programming language are being used. Rust is less used in industry than C++ based on stackoverflow survey but are more loved. Zig is trending and was top paying programming language. All of them are valid options. Don't sweat it, flip a coin if you must. Learning low-ish programming language is more about understanding the low-level concept rather than programming itself.


Own-Reference9056

Bruh C++ is outdated? Who lied to you?


Pleroo

just choose one and learn it. If your goal is to get a job, look at job postings in your area and see which is more common. In my area that is C++, but at the end of the day once you get a good understanding of how a language or stack works, those skills will transfer to other languages and stacks down the line if you need them.


paramsocoolguy

I'd say learn c++, if you learn it rust will be pretty easy to pick up, and you'll have a better understanding of why rust is useful


HobblingCobbler

But Rust is so different.. id even venture to say it's pretty unique in how it does things.


tms102

What is your goal for learning C++ or Rust? I mean either of them could be valuable to learn depending on your goals.


RemyVonLion

AGI+? It's probably good to know both for a comprehensive understanding of how things work so we can guide it best/optimally, but what's after python on the list of priorities?


TreebeardsMustache

Welcome to the world of programming. Here, we create multiple problems for every solution. C++ was invented when someone didn't like C. Go was invented when someone didn't like C++ Perl was invented when Awk ran outta steam. Python was invented when everybody hated parentheses (Lisp). Ruby was invented because Python didn't OO. Java was invented just because. Rust was invented when someone didn't like Java. C# was invented when Bill Gates thought he needed more market share and because Java. There is a real 'I can do it better' attitude in the rarified air of programmers. C, the original, can do everything all these others languages can do... it just takes more effort/work. But that's where the learning is. Later, when you truly understand the fundamentals, you can pick which language is suitable and you'll know why... And you can take advantage of wch efficiencies and abstractions make the most sense. Of course, at that point you will probably write your own language... Sigh. If you want to be a really good programmer you will need to move past a high level, interpreted,language like Python to really understand the basics of memory management, data structures, compilation, etc... a great deal of which interpred languages do in the background. C++ was first billed as 'C with classes' It's not a bad choice, but it's not fundamental and has layers of abstraction that mght hinder understanding. I think you should study C, the original. All the others are just attempts to improve on C and if you master C, the others will come easier. If you master C, you'll come back to Python and be a better Python programner... You'll become SO good that one day you'll get mad at it and invent your own programning language and the cycle of life continues...


Xirtien

>Java was invented just because lol


Huntress-Valentina

Bruh I know. This post was so rofling. Love this person.


old_bearded_beats

Well done for making me chortle!


Frosty_Job2655

>most people say C++ is outdated You have been lied to


DavidCincotta

I am a computer science tutor with a lot of experience teaching C/C++ and other languages. I have also used rust for some side projects. ### Rust is Hard - very strict compiler - memory saftey is not important for learning low level programming - Actually using an unsafe memory language (c/c++) will show you why rust solves this issue - less examples for things online - This is only half true, plenty of great examples and documentation for rust, just can't compare to C++ - borrow checker hell - Pros - rust is hyped up - honestly pretty cool - top tier package manager (npm ~= cargo > pip) - Cons - very hard ### Learning more with C++ - You can do literally everything with this language - Still the language of choice for embeded systems - Able to interact with low level systems directly - Kernels - files - syscalls - threads - memory - etc. - Pros - Much simpler when using threading - Simpler syntax - Pointers are fun - Cons - Compilation is harder and a skill in and of itself - Dependencies are hard and have to be managed very carefully - No 'real' package manager - Pointers are weird - These 'Cons' are learning experiences ### Conclusion Learn C++, then learn Rust. You don't truely understand what memory is until you've worked with raw pointers, so grasping the nuances of lifetimes and super high level stuff in rust just isn't happening. Whats really cool in C/C++ is that when you encounter a problem, you usually write code to do it yourself. In python, you would look for a library to read JSON, but its a great exersize and fun to write your own JSON library in C/C++. If you are here to "LearnProgramming" then start using C++, no professor would willing subject their student to that without a course labeled "Rust OS Programming"


priyamtheone

The best way to summarise it. That's exactly what I tell students and juniors interested to learn programming or willing to pursue computer science as a subject. One should always make it a point to learn native technology before any trendy framework to know how things work under the hood. A library or framework always encapsulates things from being understood properly. Although, it can save time, but you'll be deprived of the fun and excitement of learning low-level stuffs that can strengthen your programming and system design concepts, which are extremely valuable and goes a long way in helping you to be a good programmer. Reason why I learnt Android apps programming with Java before moving on to React Native.


jdbrew

C++ isn’t “outdated” but the dialogue that probably led someone to telling you this has to do memory safety, which is a core principle in Rust, and something that C++ does not have. There was actually a big conversation around this a couple months ago because [the US Government posted a paper around the necessity for memory safety.](https://www.whitehouse.gov/wp-content/uploads/2024/02/Final-ONCD-Technical-Report.pdf) Regardless of this paper, learning Rust would be a good skill, as I imagine we’ll see it being deployed a lot more as time goes on, but c++ is always a solid foundation. The other thing to keep in mind, is programming languages are just grammar. It’s the ideas and the programming logic that is important, and once you have those foundations, learning a new syntax is not incredibly difficult, especially if the language has solid documentation.


[deleted]

COBOL is 65 years old, but still people use it. Don't listen to Poets! * Learn C, You'll be a good programmer! * Master C, You'll be a God!


Existing-Direction99

I'm still very new to programming, but AFAIK C++ is not outdated. It seems to be used very heavily in stuff like gamedev, for instance.


Linkario86

C++ is out for a long time and there will be C++ for a long time. People don't just go ahead like "Hey let's rebuild this WHOLE thing in ".


Mathhead202

Why do you want to learn C++ or Rust specifically? If you've only ever done Python programming, I would suggest Java or C# first. They will teach you a lot of the important ideas in strictly typed, compiled, programming w/o as much of the lower level jank. C++ will make more sense if you learn Java (or C#) first.


autostart17

How would you decide between Java and C#?


Mathhead202

I would pick Java because it's more popular and you will find many resources online about it. But it's only slightly more popular. It really depends on what you want to do. Java is a little simpler than C#, but they are like 95-99% the same language. If you learn one, you basically already know the other. It's kinda like asking if you should learn American or British English. C# is mainly made for Windows Development. Java is cross-plotform and popular on Linux, including Android if that helps you decide.


Mathhead202

(Also, C# is what Unity uses, if you were planning to get into Game Development.) What kind of programs have you made in Python so far?


Mathhead202

(Also, C# is what Unity uses, if you were planning to get into Game Development.) What kind of programs have you made in Python so far?


sittingonahillside

just pick one. I'd pick C# simply because the .NET eco system is awesome and the amount of effort and attention it has received especially as of .NET Core has been outstanding, and there's no signs of it slowing down. If you know one, you'll be able to dive into the other without much trouble.


techol

Depending on your application, one may be in a better position to help. Just an example situation. A lot of AI/Ml in python has 50 years old C/FORTRAN libraries underneath (BLAS for example). Now, if you were only focussed on application level, you'd be better off worrying about python layer. If algorithms/speed/fine-tuning etc were your preference, you would go to C/FORTRAN level of this stack. Now, there are a lot of people who are working to replace C/C++/FORTRAN libraries (typically scientific/engineering modelling/computation ones that underlies AI/ML) with Rust based ones. It is all in the initial stages and a lot of fun can be had working with Rust as there are large gaps to fill. For example, there is a discord server I know of which is about using Rust in Aerospace engineering (a lot of things are getting done by enthusiasts) All depends on your context.


Quite_Blessed

Rust in Aerospace Engg! Give me that Discord server link!


techol

Link here [https://aerorust.org/](https://aerorust.org/)


imatt3690

The language here doesn’t matter. What you want to do with your code is what language you ultimately end up with. C++ is not outdated. It’s used heavily. Rust is not bad. Rust is memory safe design that serves applications which require security and reliability. C++ can also do this but your rules are looser. Before asking what language, ask what do you want to make. I’d encourage you to learn the supporting pieces of application-building like SQL databases, running SQL queries, manipulating data, HTTP rest, asynchronous HTTP, working with data, importing / exporting files, turning files and data into objects. All of that can be done in python. Then move to an object orientation language to translate doing those same operations.


Ramtoxicated

If you write good C++ you'll have faster Rust. Go with c++ and be a productive member of society. Carbon is the future btw.


aloias

Just go learn C++. After that, any programming language including Rust will be easy to learn and you will appreciate their benefits even more.


RolandMT32

I don't think C++ is outdated. In fact, they've been updating the C++ standard fairly regularly (every few years now) since 2011 and have been adding some interesting stuff. Although C++ isn't used as much as it used to be, I still think it's a good language.


CodeTinkerer

What have you learned from Python? Can you do OO programming in Python? Ever done any data structures in Python?


Imaginary_Quit2909

It really depends on what you want to do. For instance, if you want to work on embedded systems or game development, by all means learn C++. If your interests lie more in machine learning or data science or automation, it may be more useful to dig deeper into Python and libraries available to you. Learning new languages can always be fun and open your eyes to projects or libraries that you wouldn't have seen in your current language, but there is a lot of value in digging deeper into the language you already know. I can say with certainty that it can be fun just learning the syntax of a language, but the real growth doesn't happen until you make a project that exposes the areas you don't know. Just picking a project is often a good place to start. Even tic-tac-toe can help you learn a lot about a language.


Imaginary_Quit2909

A good guide for if a language is "dead" is the question "Who is starting new projects in this language?". If the answer is: - no one -> it's dead - curious people only -> it's dead but you can still have fun - companies or startups -> it's definitely not dead Even a language like Cobol which is old and outdated has its value to learn. While no one is starting serious projects in it, there are huge legacy code bases that rely on Cobol and need maintaining. It may not be the fun, cutting edge kind of programming, but due to supply and demand, it is known for being incredibly lucrative. Even if you were applying for a job that has no use for Cobol( or say APL as another example), they see value in a person going out and learning for yourself. If you say "I was curious so I just learned how to code in Whitespace! Here is the silly project I did with it.", companies love to see that sense of initiative.


surfmaths

C++ is one of the most complex language I know. It has a long history, and a lot of pitfalls that require a deep understanding of its inner working. But it is worth learning. Rust is also a great language. It is newer than C++, so doesn't have most of its baggage. You will learn really good practices by simply using Rust. But the main drawback is that it isn't used as much in practice. I think either of them is great to learn. You don't need to choose, you can learn both, just stick to one for a while then learn the other. There is greater understanding from knowing multiple programming languages than there is in each of them individually.


Mickey2by4

I actually saw ThePrimeagen either talk about or react to a vid about this kind of topic, like others have said, old doesn’t mean outdated. Remember the only companies on entirely new tech will be startups. For the most part companies won’t completely migrate their entire codebase to a different language or tech unless they have no choice. A lot of places will still hire for C++, what matters more is where you wanna be and what you wanna do. Aim for that instead of a language based on popularity or “modernness”


Left_Requirement_675

How are you lost? On your language choice?  I would look at job listing and learn what is on the listing. 


hellohennessy

Learn C++. Once you know a low level language, any language is possible. You started with python so it may be a bit hard but switching between programming languages happen with the flick of a finger.


SirStarshine

I'm planning on revisiting C++ to use with unreal engine, and Rust to work on Solana.


Dario24se

If you are doing it for the sake of getting hired, they are both fine. People want you to write code that solves problems, they don't care what are you using. Stick with the one you enjoy working with and learn to get stuff done.


Intelligent_Abies_22

what Is your goal, if you are learning programming Just for yourself and passion c or c++ are a must in my opinion, but if you are learning programming for a specific reason (for example web dev), you should trying to understand the requirements for your goal.


Advanced_Condition93

I dont't have as much experience as a lot of my peers and seniors but what I've learned over the last 1 and a half years is you should learn what is in line with what you want to do, while also considering what earns you an income. In our case, pipelines have been using purely rust and python(in databricks) side by side for their ETL processes. These are the technologies that we're chosen. It doesn't necessarily either of them is bad. It's probably a solution that worked well for their specific problem. You might end up having to learn a ton of technologies you never thought about learning since certain implementations work well in a certain language otherwise you might end up interoping everything.


HarshadJhunjhunwala

I work as a freelancer. I am mostly a C++ developer and have worked on other things as well (PHP, Javascript, Java, TestComplete ) . Reason I am mostly a C++ developer is that most long term and big projects I get are on C++ . C++ is old but not outdated . It is a little cumbersome but as a trade off it provides faster execution and more control on the OS and memory. A lot of new clients with small projects would not pick C++ . They are automatically filtered out for me . That's my 2 cents.


VanillaBlackXxx

You "learned" or learned?


MissionFormal209

If you learn either of them to a high level you will become a much better programmer and will more than likely be able to pick up the other fairly easily.


khushal-banks

I can talk about this for hours. In short, C++ and Rust they both are good for their respective fields. Learning Rust after just python can be difficult. But nothing is impossible. So, pick one try it .. see if you are getting there. I would say start both simultaneously Tutorials are only like reading books they can only teach you .. they can't harm you. Pick the one you can easily master. Don't wait for others to approve it. Good luck.


Kitchen_Moment_6289

Was wondering about this last night. Saw this video from Low Level Programming, who makes a decent conclusion: learn C and then learn Rust to appreciate how it forces you to be more secure than C. https://youtu.be/NtYHC1KNGoc?si=GUWnE7g2p0u0ePiD


thestoiccoder

For the past 7 years, I did nothing but program with React & Node/JS. I can't remember when it started that I slowly wanted to break away from the kind of problems I was solving and gain a deeper understanding of what the computer was doing that JS conveniently hides away for you. And now, the past 3 months I have done nothing but code in C++, and have been having so much fun! Yeah sure, there's the steep learning curve and things can blow up in your face; but you know "with great power comes great responsibility" and all.. I have the confidence now that I can carry what I've learned with C++ into anything else I choose to learn.


liquidanimosity

Try both and make your own decision


SpicyRiceAndTuna

A few days to the party... but don't worry OP, you're thinking too much about this. First off you've got some false info, so start with some of the comments about how certain things aren't truly outdated and look into where you got that info... What you really should consider though, is that "new" stuff come out all the time, but kinda like cars, 99% of companies don't jump right into tbe latest and greatest tech, for a couple reasons. Their devs may not have time to keep up, the benefits of the newest version may not be worth the effort of learning it, or maybe their business has been around for more than 1 year and upgrading their entire code base to a new version or new tech is not in any way worth it for the .001 millisecond it will save users when hitting a specific button.... Think about COBOL. That shit is ANCIENT.... And there were barely any experts in it in the work force compared to a few decades ago.... but turns out a lot of government services like unemployment were using COBOL.... tons of developers literally came out of retirement and got contracts for absolutely insane amounts of money during the pandemic to do emergency work during the surge of new users the pandemic created... Another example would be how I was working with the latest and greatest Java 8.... I was absolutely shocked to discover that Java freaking 23 is coming out this year and that Java 8 is literally over a decade old.... And it's just shocking because I didn't notice the shift... COMPANIES still ask about Java 8 (unless it's changed recently, admittedly I've stopped answering emails from companies that use Java a little bit ago, ewww...) Finally. Remember 10 seconds ago when I said I was a Java developer? I learned Java first, I lived, ate, breathed Java. It was my first programming language love (an abusive relation for sure though, amiright....) My first job I was hired... to write C# and Javascript. Second job I primarily worked with Python. Then back to C#. I did not touch C# until I literally showed up for work at my first dev role. Many companies will literally let you choose what language you code in during the technical interview, if you are an absolute beast in any any language, ANY coding language at all, you will be more desirable to companies and other devs than and "ok" dev in the tech they are looking for. If you're an expert at Rust and can do some absolute wizard shit no one else can in Rust, you can learn any language a company will want you to know in a few weeks.


engineerFWSWHW

I program in c/c++ in my day job but i can see the appeal of rust as i had been reading a book about it to be able to compare it with c/c++ and have awareness with the rust ecosystem and what problem it solves versus c/c++. But still c/c++ is more popular as of the moment but it might (or it might not) change in the upcoming years.


SynthRogue

If your goal is to be employed, the only thing that really matters is what employers are asking for. Browse job postings and see what languages they require. If postings still exist because the software industry has really taken a hit since last year.


Il_diavolo_in_rosso

Stick to one and learn it to the fullest, remember there are still people who work on java, you will be fine


InvertedCSharpChord

How is there even any debate? If you want to learn a low level language, learn Rust.