Is it normal to immediately start hating C++ as soon as you start learning it?

Is it normal to immediately start hating C++ as soon as you start learning it?
It's just so antiquated and stupid.

Other urls found in this thread:

gotw.ca/gotw/005.htm
twitter.com/SFWRedditGifs

Only if you're a brain-dead mongoloid.

I'm not a brainlet, I just know how much better other languages are.

It is true that C++ has lots of really shitty convoluted features that rarely assist the programmer. The only feature of C++ i can think of that is helpful is probably templates.
Problem is that it only gets worse with more modern languages.

sure C++ is good for large OO projects with large teams of programmers, but it sure is a bitch to use.

name one.

Give 5 reasons why it's better than C++


2/10 troll, I responded.

>antiquated
There are many reasons to hate C++, but that's not one of them.

>i prefer writing python and javascript

the hardest part about learning C++ is to stop hating every single thing about it

Damn that's a good wojak

C++'s STL leaves much to be desired however the language is clearly superior to Java.

C++ isnt outdated. Whatever you're learning it from is.

Rust

No technical/standard debt (yet)
Memory safe
Low cost memory management
Understandable by anyone who has touched a systems language in the last 40 years
Rust generics > C++ Templates

It absolutely is. You need to know the old stuff because it's backwards compatible. You're useless to a code base in current year if you don't understand C++98 and C++11.
Most don't even adopt C++17 simply because you need to push the tool chain. Clang had recently taken initiative to ease this process so you don't have 5 years between updates.

>Any language without a makefile + header files bullshit

You faggots who claim to know C++ don't even know what the fuck you're talking about

gotw.ca/gotw/005.htm

lol.

bingo. C++11 and beyond are very modern. C++17 is essentially Java without being tied to a shitty VM or Oracle.

It's not stupid because it is antiquated.
It's stupid because it's made by "intelligent" retards.
Just learn C.

I agree with the general intent of this post but virtual functions as an example of horrible C++ is misguided.
If you use virtual functions in C++ you're using the wrong language.

>If you use (insert C++ feature that everyone and their mom (ab)uses) in C++ you're using the wrong language.
If you are using C++ you are always using the wrong language.

Mate you can't fucking escape virtual functions. Even in tons of C code there are v-tables implemented as structs of function pointers.

Gromin8 is that you?

>It's just so antiquated and stupid.
Give an example

i don't understand virtual functions or why you would use them, the post

>If you use virtual functions in C++ you're using the wrong language.

Barring bar tricks like type erasure, how do you do runtime polymorphism in C++ without virtual functions?

dynamic_cast, but that's still using the vtable... The only method dispatch that's supported directly is through virtual. Hell, to do multiple dispatch, we need to build visitors.

A lot of tutorials for C++ are really just teaching C.

A community filled to the brim with cocksuckers.
No job offers.

No, it's much better than Java.

Yes because it gives you actual programming vibes, where you basically fight against the computer to do what you want it to do and bend it to your will whatever that may be

>Is it normal to immediately start hating C++ as soon as you start learning it?
Only if you've been consuming too much soy in your diet.

>You need to know the old stuff because it's backwards compatible
This is by far the biggest meme from millennials who have no idea what they're talking about.

NAMESPACE, MOTHERFUCKER, DO YOU READ IT?

Everything under the std:: namespace is good shit, C++17 deprecates/obsoletes all the crap.

>how do you do runtime polymorphism in C++ without virtual functions
just don't do it
don't even use inheritance for that matter
why make things needlessly complex?

No unless you're mentally challenged.
It's not even normal to hate a programming language. It's afterall what you as a programmer can do that counts. Not the language.

It's normal to hate C++, but you probably don't have the right reasons yet.

>Everything under the std:: namespace is good shit
std::unordered_map is garbage and probably the worst dictionary type in a standard library

std::variant is a piece of shit and a fresh new failure in C++17

Well to clarify this post.
Any time you're using a virtual function one of two broad intents are there.
To dynamically dispatch to different systems for a large task. Or to handle many small objects dynamically without regard for their individuality.
Since we're using C++ we care about performance.
The case where you want different systems is usually more cleanly handled by other things. More explicit control flow usually. Such as switch statement. To make a simple example. They're not that offensive there in fairness but I certainly prefer the clarity.
For the other case you're eating a virtual function call on every single object you handle. The larger your objects grow the less costly this is because a virtual function call is overhead, so it gets dwarfed. But if you handle large objects, unless they're actually in the former category you've made it extremely hard on yourself to make this code fast by splitting it out into classes. For smaller object the virtual function call costs can easily dwarf the actual work. There you're praying for devirtualization or other object trait convergence techniques the compiler can employ (which due to C++ being C++ is very hard actually). You're better off just grouping them by their type and doing non virtual calls. If you "can't" you're usually lying to yourself. You just need to try harder.

And if your care for performance is so low that you don't care about the overhead you should be writing in another language. You're just hurting yourself with C++. It's a language that's fast by virtue of giving you control. Control you didn't care for apparently. I'm sure your programs will be faster in Java. They've done amazing work with the JVM.

You hate C also?

>mentally challenged
retarded

spoken like a true entry-level brainlet

Java

>It's faster
>It's simpler
>It's use more widely
>Better documentation
>More libraries

>retarded
>spoken like a true entry-level brainlet

>this car is full of problems, you have to turn the key just right to start it and it dies if you honk for longer than 0.2 seconds
>wow there's no such thing as a bad car, it's the driver that matters!

>make a bad analogy with no logic behind
>"haha I showed him"

I think that's a good analogy. C++ lacks robustness. The problem with the post is that robustness costs. Which you don't want in C++.

Since you just called it a bad analogy you're clearly just as retarded as your avatar makes you look.

>The only feature of C++ i can think of that is helpful is probably templates.

I assume you mean in comparison to C. In which case lambdas are definitely useful.

>building my project with Makefile
>preserves obj files to speed up compilation when no change happened
>rewrite type of member variable in header file
>#include is just copy-paste, nothing changed in code regardless of copy-pasting different thing
>no files importing that header file got recompiled
>Segmentation fault because calling destructor of old type

Op, is right.

>just be a brainlet and implement it manually, like all these turd-tier C GUI toolkits do

Been doing some work on a c++ codebase and it's fucking cancer. I think it's just because they were bad at writing c++ though.

Depends if you need to use a lot of external dependencies.
If you do, do youself a favor and learn to use cmake as your build generator and conan as your package manager. It will save you a lot of pain.

Haskell

Has never been used for a serious application yet

...

you think std::unordered_map or std::variant aren't crippled by the garbage spec?

C#

>what is Firefox?
>what is RedoxOS?

Servo is one beta component to Firefox. The rest is all sepples.
Redox is a toy.

C

of course, i meant in terms of ease of use.

Nevermind that. Everything that isn't vector or array is shit. And vector is sub optimal. No small vector optimization allowed.