29
pihu
5y

I am learning c++ . Everyone says to me "why to learn outdated language" but i feel that knowledge is good and somewhere or the other it will be useful maybe during applying for the job

Comments
  • 3
    @irene for them python is god🤣
  • 12
    @pihu Well, Python is good, but its purpose is different. Always use the right tool for the right job.
  • 3
    @Jilano yeah. But c++ is also not that bad. Irrespective that i really have no idea if it is still helpful in today's life or not.
  • 0
    @irene oh my god. These language stil have the power
  • 6
    Same as /irene, a big chunk of blockchain development is on C
  • 3
    Welp. Easy answer, no C/C++, no everyother language based on it.

    Also, it's alive and well
  • 7
    @Jilano "right tool for the right job" pleasesay it louder for all the ppl in the back posting "omg use xyz it's so much better" after one has stated that ombre has to use that one tool for good reasons. (Yes i mean all the arch kids)

    Also c++ is widely used today. I was mad at my uni teaching us java for a year and having a one week crash course on c/c++ only. And then all the projects being "you're fluent in c++ right" bitch, from where?
  • 8
    If you have started learning c++, then it's awesome. C++ is not outdated as stated by many people here, if you have started learning it then keep learning it, don't fall on the which-language-to-learn trap and hopping from x language to y language. You can make cool stuff in cpp easily and thanks to github, we can now see a lot of new cpp libraries popping up.
    A really nice example is CROW which just like flask written in cpp.
  • 5
    c/c++ are not as hot as they used to be, and they're not surrounded by a cloud of hipster buzzwords these days, but "outdated language".... c'mon, there's not such a thing kiddos, i mean, NOT EVEN REMOTELY CLOSE

    web and client/server stuff are only a fraction of IT
  • 1
    @irene me neither, but I saw few examples on crow's repo and they seem really cool.
  • 6
    In my experience, C/C++ folks like to actually solve hard problems instead of chasing the latest fad. Also, a lot of core technology (even said fads) is implemented in them (language VMs and runtime environments, OS kernels and drivers, browser engines, game engines, a lot of performance related libraries like Numpy etc.) and also obviously resource constrained systems. They're not dead or irrelevant at all. Great languages to learn.
  • 3
    Actually if you look at it deep enough, more or less everything is based on C/C++
  • 2
    We once asked a candidate to complete a take home test in any language of their choice. The candidate returned the test completed in C++. They were hired almost immediately. Keep it up! It’s a great platform to build your knowledge off of.
  • 2
    Almost every thinkable field of CS except the fucking web is outdated by that logic. Don't listen to em. It's a great first language.
  • 2
    Don't let some kiddy's talk bother you. Question yourself what the benefits and disadvantage of a language are and be confident in your opinion - but open minded for others explanation.

    Usually people or kids saying 'That's outdated' don't have any good explanation for this opinion. It's just talking.

    As the other guys said: Proper tool at the right situation. 😉
  • 0
    @hashedram really? Thanks 😁
  • 2
    @Manao exactly😏people keep on talking😉 i will learn what i have to😎
  • 4
    Incredible...

    If I may give you a tiny piece of advice, start keeping as close to the C core as possible. Become familiar with the preprocessor, and what a plain C program would look like.

    Then extend your learning to classes. Ignore templates until you are familiar with classes, visibility and inheritance.

    This way you will have it much easier moving forward.

    And when you start templating, start with functions, they can be templated, too.
  • 1
    Well any high lever language is an abstraction for assembly. If the language compiles to all the architectures you want, it's just a matter of preference (and if not, you can always make the compiler). So, there's nothing you can't do with C++, and there's nothing "outdated" to it.
  • 1
    @lunorian ...and bring so much bloat and overhead costing performance...

    You do not want "high level" languages of that type in science where speed matters due to the extreme amount of calculations.

    And the last thing you want for crunching a very large amount of data is relying on a garbage collector coming around when they see fit. You need the memory when you free it. Not sometime in the future. (Microseconds mean ages!)

    Oh, and garbage collectors and security have nothing to do with each other. The garbage collector is keeping your data around too long, at least while a C/C++ dev has already freed&poisoned the data. That's the opposite of "more secure"

    Btw: C and C++ are both "High Level" languages, too. ;-)
  • 1
    @Haxk20 dude i didnot stated it outdated.i am learning c++ and i am curious to learn but the software engineers in my contact adviced me that it's outdated and nowdays python is ruling the world so they confused me
  • 2
    If I see c++, or especially C on a resume/CV, then I know that the candidate can learn any language and apply principles of good programming practice to it.
  • 0
    @Haxk20 haha🤣🤣🤣 no actually i am a beginner so i got confused that's it
  • 0
    @bahua really?
  • 1
    C++ is outdated! Hah, I'm learning C over here.
  • 0
    @pihu

    I mean, unless the candidate is lying.
  • 1
    I hope it's not outdated 'cause I have to learn it to graduate 😅
  • 0
    People have the resources and with that should always strive for knowledge regardless. So learn what you want and apply yourself to help the community. You are your own competition. I wouldn't mind seeing a post where someone posts to use x because of y and just noone commenting. Noone upvoting. Noone downvoting. Just do Nothing
  • 1
    @irene Well, C is a "Lower Level High Level Language", which does not equal "Low Level". That would be machine code or assembly.

    Yes, its confusing, and I like to refer to C as "low level" myself. 😉
  • 2
    Languages like Java wouldn't be able to run without C.
  • 2
    C++ is absolutely worth learning. Modern languages actually abstract away too much in an attempt to make them easier to program with (namely, avoiding memory management) but it takes away from the control you have using a language like C++. Yes you have to think about a few more things, but you feel 100% in control of your code.

    It’s a little analogous to driving a manual vs. automatic transmission. At any rate the skills are absolutely worth learning.
  • 1
    C++ is about as outdated as sunshine.
  • 2
    @irene well calling them script kiddies isnt better either.
    These stupid language wars can fuck right off in my opinion.
    Use what you think its best for the job & makes the most sense to you.

    Just because people write C doesnt make them superior programmers. Different tools for different jobs
  • 2
    I'm a dev using C/C++ for High Performance Computing. I also work with DPI engines which handles up to 100Gbps network traffic. Guess what language it's written in. Don't even think about coming close to even 1Gbps or 10Gbps in python. C++ gives you a nice abstract layer and OOP, but it is very slow compared to C in my use cases. So I use C++ for the structure and write all the functions in pure C code. C is the way to go for heavy lifting HPC, python for quick scripting. Right tool for the right job.
  • 1
    Check out "handmade hero" in YouTube, that guy creates a game using C++ from scratch, I just don't code using that, it's cool to watch that sometimes.

    Also if you like it learn it.
  • 0
    @zerouplink Really? C++ is noticeably slower than C for what you do? What would you say is the culprit of that? Virtual tables and polymorphism? Or is it just that you can fine-tune more easily in C?
  • 1
    @zerouplink @devios1 you are both wrong.
    If you stick to the C core, C++ is at least as fast as C, only much more convenient.
    But if you throw full blown classes at every tiny thing where a struct would do (buzzword "Design Patterns"), and then copy objects around because you neglect both references and move semantics, then yes. Your C++ code will crawl. 😉
    Inexperienced devs often copy large amounts of objects into std::vector, and then wonder why everything is slow as fuck.

    Thanks to TMP, C++ can even be *faster* than C, because it allows you to have the compiler pre-calculate stuff, although very limited, that your C-Program has to do at runtime. 😁

    And finally, C++ can do the same pointer arithmetics C can do.

    So, no. C++ isn't slower at all.
  • 1
    @Yamakuzure How am I wrong? I was asking him to clarify what he was talking about.
  • 1
    @devios1 oh, sorry, I misinterpreted your text! Shame on me, then!
  • 0
    @irene *tehehe* 😁 Yeah!
  • 1
    @devios1 I must first admit that I'm relatively inexperienced in C++. What I experienced was that in C++ is that it gives you a lot of conveniences over C by sugarcoating everything in abstract layers. So it is very easy for the devs to get lost in the implementation and end up using very inefficient data types and functions. For instance, replacing std::string with char* improved my performance by at least two folds (maybe I'm just using it wrong). And @Yamakuzure is right, but coming from OOP languages like java and python, it's a dev's first instinct to create a class as soon as it requires more than a single function. My opinion is that it's easier to write efficient code in C than C++ as everything is bare-bone and not under different layers of classes.
  • 1
    @zerouplink Well C++ is a superset of C, so really anything you can do in C you can do in C++. C++ does have a lot more abstraction given that it is object-oriented, but that abstraction is still very efficient compared to other modern languages that require runtimes, garbage collection, etc.

    I’m surprised switching from std::string to char* would have that much of an improvement. For one thing, char* is not exactly a drop-in replacement. The benefit of std::string is its resizability. But if you’re not doing those things with strings I don’t see why it would be any slower.

    If I’m not mistaken, std::string is just an abstraction over vector<char>, which would use a char* under the hood anyway.

    C++ is not designed to be a foolproof language. It’s designed to be a powerful language that gives you a lot of control over your code. But you do have to be aware of what it is doing a lot of the time in order to use it efficiently.
Add Comment