I've been learning c++ recently and I really want to do something more with this language but I have a problem that I just have no idea what can I do. Does anyone have any ideas what I could make in c++? I can also do stuff in Nim or Pascal.
It sounds like an insignificant problem but I have it very often and it is the main thing that keeps me away from programming. I would be really grateful for every idea you may have.
> Does anyone have any ideas what I could make in c++?
"A list of systems, applications, and libraries that are completely or mostly written in C++ ...
... that might give a novice an idea what is being done with C++" - Stroustrup https://www.stroustrup.com/applications.html
Linus is good with his kernel, but so am I with my own project and so are you with your own code because everyone is the best with on what he is focusing on, others don't understand it as good.
We can write high performance programs with C++ as well, there is really no need to do it in C, it just takes more time to grasp different language constructs and performance benefits, which is I think harder than in C because...
For example I know std::function is less performant than using hand crafted raw function pointers, but downside is flexibility and reuse.
If the section of code isn't time dependent I'll use std::function, if not I'll go ahead and invent my own specific class and run performance tests.
Linus seems to be unhappy because people don't do that, people don't reinvent the wheel with C++ because the language already offers easy to use solutions and the result may be less performant code where performance may be gained but at the expense of more work and testing.
So same can be said about linus and C programmers, they are substandard because they don't do it in assembly, because well low level = better code according to him.
I don't think that's the conclusion Linus is making in his mailing list rant. I think he's saying all the features injected into C++ tend to make programmers produce unmaintainable C++ code. That and his specific concern about C++ exception handling not being zero-cost.
In other words, the only way to do good, efficient, and system-level and
portable C++ ends up to limit yourself to all the things that are
basically available in C. And limiting your project to C means that people
don't screw that up, and also means that you get a lot of programmers that
do actually understand low-level issues and don't screw things up with any
idiotic "object model" crap.
My understanding is he doesn't like high level language features because it leads to inefficient or slower code.
Torvald's problem with C++ is threefold, methinks:
1. When he first looked at C++, it was still pretty basic, and a lot of it wasn't anywhere near as efficient or capable as it is now. Further, it had (and still has) linkage problems that C simply doesn't.
2. He thinks C++ coddles programmers into doing things the Wrong Way, which is exactly as malibor reads it: programmers rely on a magic black box to do stuff. Even now the magic black box needs help to avoid some bloat. Fortunately g++ and Clang both have some pretty sophisticated helps now, like LTO — but again that requires a careful and knowledgeable programmer.
3. He's an arrogant a**.
Torvalds knows C and can tweak it up very fine.
Learning C++ as well as he knows C is a very steep hill that not many can match.
Some of his snottiness may be justified.
a lot of it wasn't anywhere near as efficient or capable as it is now.
IMO one big performance issue that still remains is file stream i/o - especially stream insertion/extraction and getline() (with VS) for large files (Gigabytes) . Really, in a race a tortoise could beat it. For 'proper' programs we use WIN32 file handling and get far superior performance.