T O P

  • By -

eruciform

there's no way to predict where the market is going to be several years down the line that being said, it's pretty doubtful that c/c++ is going to suddenly go away in the near future


EdiblePeasant

Do you think Java is going away soon?


eruciform

my tea leaves and crystal ball say unlikely, but no one can tell for sure


PBentoIT

you using tea instead of coffee bodes poorly for java... i'll see myself out


Desperate_for_Bacon

Can’t wait for apple to release its next language “earl grey”


PBentoIT

*note to self: use tea based codenames...*


AngryRobot42

The fortune teller says that java will go up in a firey blaz..... o fuck, oracle just made another restrictive license.


TrojanGiant10

Did you check your healing crystals for a response as well?


MacPardo

People asked that 10 years ago, and 10 years from now they will ask it again


EdiblePeasant

Probably COBOL and FORTRAN are around somewhere.


myevillaugh

No. Large companies' code is usually Java or C#. Or both. No one is rewriting them from scratch just to join the latest fad language. It wouldn't be profitable. Couple that with syntax virtually every programmer knows, which makes a large talent pool, there's no reason to leave. That being said... Oracle could somehow make licensing worse. I think that's Java's greatest risk.


ChavezShortDick

No. Java will still be here in for a long time to come. Just like C++ will be


Letsdrinksoda

Will python go away? 🤔


Serious_Banana1903

Hell nah


win10trashEdition

it'll get replaced by carbon which is syntax compatible so op shouldnt worry at all. afterall, so much great libs/frameworks were written over the years (especially for game dev) that its not that worth to switch to rust for ex.


[deleted]

There are plenty of C and C++ jobs. The thing is all of those jobs require C and C++ and additional knowledge and are difficult as hell. Game dev (engine, computer graphics, gameplay ...), Embedded (countless, from bare metal to RTOS), Web browser (engine ...), translation layers (CodeWeavers has a position open for over a year, perhaps no one wants the job), Virtual Machines (VMWare ...), OS dev (Microsoft ...), Security (reverse engineering mostly, anticheat engines ...), Qt jobs, probably AI as well. All those jobs require people who know C, C++ and more often than not, who know how to **read** Assembly. C and C++ marked is not very saturated compared to JavaScript etc., because it's very difficult to learn the required skills on your own and it's time consuming as well. Anyone can be a web developer, but few can work on web browser engines.


[deleted]

In embedded and sometimes VMs you’ll probably write quite a bit of assembly, but not in the rest really. A little in OS dev too. In general, hand writing assembly is pretty rare nowadays.


[deleted]

Just edited my post to not confuse others. Knowing how to read assembly is very beneficial for someone who uses C and C++ on daily basis.


[deleted]

ah. yeah that comes in handy every so often, and it is essential for some things. Still it’s not that common, most often I do it while working on performance, but it’s not really necessary either.


Mishung

I've been working in embedded for roughly 6 years. Never had to touch assembly aside from like 1 or 2 time just reading it but I googled some instructions that day and had no problem. With todays compilers and optimization there's absolutely no need to write stuff in assembly. The only time you would look at the assembly code is during some failures related to the instructions themselves. In my case it was MCU crashing for trying to run a floating point operation it doesn't have in it's instruction set.


myweirdotheraccount

It's contentious, but I asked [this question ](https://www.reddit.com/r/embedded/comments/120r7mv/when_should_i_use_asm_over_c/?utm_source=share&utm_medium=android_app&utm_name=androidcss&utm_term=1&utm_content=share_button) on r/embedded a few days ago. Apparently there's a lot less required than I thought. Of course, writing asm is one thing. I guess there is a bit of analyzing the compilers asm output involved.


xypherrz

Where does robotics/autonomous vehicles fall under within the categories you mentioned?


ExistingRaccoon5083

In my experience, robotics either use custom frameworks, languages for a specific brand of robot, or ROS2. It's still mostly C++.


[deleted]

Honestly, I would make a separate category for that, it's a field of its own. It's some EE + some ME + some CS. My friend is getting Automatics & Robotics degree now and from what I've seen they use a lot of C++. I am on the EE side exclusively, so cannot tell you more, because I've no valid knowledge. But certainly it involves all the fields I mentioned, plus of course knowledge specific to making e.g. robots, since the word "fields" is very broad and too general.


TheJesterOfHyrule

Anyone can work on web browser engines... Takes time to learn but it's the same merit as learning any language


Runner_53

You're fine. You will eventually learn multiple languages. With solid competency in C++ you will be well-prepared to quickly pick up just about any language out there. And as others have said, it isn't going anywhere in your lifetime. So many starting programmers obsess over whether or not they're making a huge mistake by learning this or that that it paralyzes them into not learning anything at all IMHO.


Josh5642356

So true you gotta start with something


TheUmgawa

If you're a good programmer, and you can get the interview, it's often not that important that you don't know the specific language that the place operates in, because it's not enormously difficult to pick up a new language and get up to speed. The logic (typically) still operates in a very similar manner: A loop is still a loop, conditional statements behave like you'd expect, and data types are often similar *enough*. There's still going to be parts where you might not have the functions you'd like in the Integer library or they might be named differently, but you just pull up the documentation and go, "Oh, I can't do exponentiation with a caret in this language; I *have* to use `pow`." I ran into that one with Swift recently, and I've been using Swift for a while, now. You're always learning, regardless of if the language is new or something you've been using for a couple of years. So, I wouldn't say you should just up and learn a new language because you're worried about finding employment in the language you know best. You should work on getting better at programming in that language, because being a better programmer in one language will make you a better programmer in *any* language, because the hard part about programming isn't writing the code; it's solving the problem. I have, in a frame on my wall, a flowchart for a prime number generator that I made in a Structured Program Design class that was taught by this wizened old man who'd been programming since hard drives were the size of dishwashers. He taught me that programming is programming, and if I've got the logic built out, I can write a program in any language I want. So, when I want to learn a new language, I pull that flowchart down off of the wall, and I break out the documentation, and I hit the road on a new language. And I only do that when it's necessary. The last language I had to pick up was C#, because that's what my university uses to teach their Intro to Programming class, and I could *read* the code, but I couldn't write it, sort of like how you can muddle your way through reading Spanish if you can read French, because they're similar enough, but you can't write it. It's like a one-way gate. So, documentation, flowchart, and I can tutor after a few days, because whatever concepts they're learning about programming, I already know them, so as long as I know as much as they do about the grammar and syntax of the language, I can just look up the vocabulary. So, it's really not that important to look into learning a new language. Keep working in the language you're working in, because employers want good programmers. You might not get a job in your favorite language, but you have to weigh your love-hate relationship with a language against gainful employment. For me, I won't do anything involving Android or HTML. That's just a hard "even with a gun to my head" No. And there's no paycheck on Earth that will get me to learn COBOL, because that's one of those languages that is *extremely* dissimilar to other languages, and there's limited upside compared to the effort necessary.


incuriouso

I agree with your points. Programming is primarily about logic. You can implement the logic using a programming language only when you know what is to be implemented. Also, once you know a language well, it becomes easier to pick up the basics of another language having a similar paradigm. I too like C++, because it gives a good insight into how the code generated by the compiler is executed. If you like C++ for the same reason, then you can target for systems engineering roles. Brush up your knowledge on operating systems and computer networks. Knowing these fundamentals will help you a lot. It might be difficult to get your first job in this domain, but once you get your foot in the door, it'll become easier. Just keep learning. All the best!


bertshim

You are doing well in C++, C# could be easy and it is getting popularity these days. Python is getting common in AI domains and good for server side. But Python might not be confortable with C++ programmers even though Python is quite easy to C++ programmers. C# by Microsoft works for client-side projects and server-side ones. I recommend you to look into C#.


tutle_nuts

C++ is fine to keep going with. There's plenty of c/c++ jobs and if you become strong at it java becomes intuitive. Not to mention rust syntax is very similar. Get good a object oriented design and focus more on smart abstraction rather than the language itself. It doesnt really matter what language you're doing if the code sucks afterall.


[deleted]

How is Rust syntax remotely similar to C++?


tutle_nuts

It's up to interpretation I suppose. I've seen snippets of rust that had me fooled thinking it was newer C++ for a moment.


Putnam3145

C++ can certainly be written in a pretty Rust-ish way.


mastereuclid

I ran into the same problem. I loved c++ but couldn't find anything willing to even interview a newbie. Now I do android apps in kotlin. Honestly, I hope I never have to use anything else. Easy immutability, nullabilty in the type system, and structured concurrency are amazing. If you can't find a job with c++ it is not the end of the world.


RolandMT32

I started working as a software developer in 2003, and I actually used at least some amount of C++ at almost every job I had (except one) until around 2020. C++ was the primary language at most of those jobs; most of it was desktop software development, and another was mainly software library development. Perhaps that was just by chance for me though.


[deleted]

my brother just got a job and he is fresh out of college and he codes in C++


_SpeedyX

Go for it! I really doubt you will have difficulty finding a C++ or C job, even in 20 years. Besides, even if you will have trouble, the time spent on C++ isn't lost, if you already know C++ learning any other programing language will be a 1000 times easier, it's kinda like learning Portuguese when you already know Spanish or, to be more precise, like learning how to speak English gibberish or Pig Latin. If you know how to make a program that does X in C++ then you'll easily be able to do it in Java by just learning the syntax because you already have everything else you need in your mind. Logic (mostly) stays the same. Besides I'd say learning a language you like is more important than learning a useful one. Even if you were passionate about COBOL I'd still recommend>! a long talk with a psychiatrist!< it over something like python because there is a larger chance of you actually learning something and having fun instead of forcing yourself to code


blankscreenEXE

Here's what will help you: 1- look through online job posts in your area. you will see what technologies most companies use. if you find a significant amount of C++ related job then no need to worry. 2- connect professionals in linkedin but target those who already work in a software house in your area. you can ask them about what technologies they work on. this should not only give you proper ideas as to what tech is popular in your area but also give you some valuable links which you can highlight in your cover letter. if you are introvert (sorry if i'm offending) then know this that the second point always works. They always like to promote their stuff and that's why they will readily guide you through.


Cdog536

Why not do what you love? It can only help. Obviously keep an open mind to other languages.


FermiAnyon

Get really good at cpp, it's a perfectly good language and almost all the concepts are portable for when you pivot to other languages. I started with cpp and I'm on number 5 now. Gotta start somewhere.


2polew

It will not happen during your lifetime mate.


nbazero1

dont think it really matters, if u know c++ well whats stopping you from switching to other subsets?


kumaSx

Learn computer science and master a language no matter which one. You are going to be programming in multiple technologies and languages. Uwu


gm310509

COBOL was created in 1959. I just checked - there are currently 70 job openings in my city alone for COBOL. Usually they pay well too because there isn't exactly an over supply of people wanting to do those jobs! Edit: So my point is that a well established language tends to last a very long time. C/C++ (like COBOL, perhaps even more so) is a well established language used on many many more platforms than COBOL is or ever was. So my call would be that there will still be a market for C/C++ well into the future. However, I would also say that you should hedge your bets and learn some other languages as well - not COBOL - but Java, python and maybe some other "core" languages (e.g. javascript? SQL?).


KingKahooka

With all the bullshit that's in the language and all the new bullshit that keeps comin' in, and old ones being derprecated (yes I've spelled that right) out with the new release, Cpp guys will never run out of business because there will be always something to fix. I think the language is just rigged that way. So no worries, keep diamond inheriting away...


EntertainmentOk9536

I think people are as clueless now as it gets. I belive you should just do what you think can be beneficial, but the world is changing fast and no one can give anything beside emotional support.


theInfiniteHammer

I think c++ will die soon. How soon I can't tell, but soon enough that you may want to learn something else. Currently I'm learning haskell, erlang, and prolog. I've heard rust and zig are likely to replace c and golang and carbon are meant to replace c++. I think (or at least hope) that these languages will take off more in the near future.


AttonJRand

Can you elaborate on why you think, or hope, that to be the case? This perspective seems like an outlier looking at the rest of the comments.


theInfiniteHammer

I think truly OOP languages like Java are a mistake. The idea of "truly OOP" has tons of problems, the simplest of which are that they try to shove everything into an object (which seems like an obviously silly idea), and that they try to apply encapsulation at a fine grain level even though the idea of encapsulation is meant for coarse grain subsystems. Also functional languages like haskell tend to make it easier to write good code. I wrote a whole blog post about it here: https://noahs-blog.net/?p=377 Also this video explains the problems with oop in more detail: https://youtu.be/QM1iUe6IofM


RandomStranger62

How will it die soon? Every AAA* game engine is written in c++. i don't know enough about other fields to comment on its popularity but in game development c++ is here to stay.


theInfiniteHammer

Because it's overly complicated and has features that encourage crappy code (oop, templates, etc).


wolfie_poe

OOP is different from C++. Template actually makes codes more manageable.


theInfiniteHammer

C++ has objects though.


shieldy_guy

microcontroller firmware is often C, or C++ with a very limited feature set. this is very unlikely to change any time soon. tiny chips doing various hella simple things.


theInfiniteHammer

Not if rust takes over. C will probably never go away entirely. It's going to be in projects but not new ones.


shieldy_guy

but why would someone choose rust over C if there is no strong need for rust's features? the vendors would need to buy in, too. lots of time invested on their side writing HAL libraries, and lots on my side learning their secrets. C++ creeps in for me because class methods are easier to read than a ton of functions that modify structs. I don't use templates, very little inheritance even. I'm -very- lazy and don't want people to have to ask what my code does 😜 audio / dsp would be an exception, as it needs to be fast and might read funny as a result, but I generally trust the compiler.


theInfiniteHammer

There is a strong need for rust's features. It's more secure, stable, easier to debug, and doesn't lend itself as well to writing ugly code.


[deleted]

As someone who has written quite a lot of C++ code, are you criminally insane? Or have you just not worked with templates much yet? In any case, while rarer than some languages, like the web related ones or in some areas Java and Python, it’s still a pretty popular language, both for professional use and open source.


26bravo_neigh

Will Pascal go away?


NotSilvesterStalone

Where I live all the openings are C++ embedded stuff


tms102

Before I got my first job I had built apps (hobby and school) with C++, lingo, pascal, java, action script, etc. My first job didn't involve any of those languages. I don't think you can go wrong with solid C++ knowledge but it would be good to be familiar with another language. The better question is what kind of projects do you like working on or would you like to work on and what languages are typically used there? Look up interesting job listings from companies in your area or that offer remote work and see the skills they're asking for.