Hi,
lets get straight to the point and answer your questions:
jonikster wrote:1. For whom is C ++?
In general, I are interested in your IMHO who need to learn C ++.
If I want to develop games, including those that do not require high performance, text-based online MUD games, while I do not want to write the engine from scratch, and use the ready one, can C ++ approach me?
I will explain more specifically. The matter is that I need to develop a server on Linux. There are 3 options. C / C ++ / Python.
C - Many MUD game engines are mostly just in C. But there is an opinion that C is harder to write than C ++.
C ++ - many engines are also there, but the capabilities of the language are wider, which slows down the learning process.
Python - as a whole is good, on syntax, on libraries, but it is not reliable. I want to avoid it, but I consider it in extreme cases. Low productivity.
MUD engines are mostly in C, because they are pretty old today and they started development in the 1980s or 90s, so they had to use the most professional language at those times, which was C. They probably wouldn't use C today if they had to develope a MUD engine all new.
You didn't tell us what kind of server it should be, but one thing makes me really sad here.
Python is the most easiest and straight forward to approach it, and still you say that it isn't reliable, whatever this means in your case, but its totally fine. Google developes almost all of their websites in Python (Google, YouTube and more). Thanks to already finished frameworks (like Twisted), server development using Python takes maybe a fourth of the development time you'd need with C++, and maybe a sixth of the time you'd need with C. Its also much more fun and stuff. But anyway, you asked for C++ right?
C++, as well as C, is for people you want to get most of the power possible out of their machines, for whatever they want to do. C++ and C are probably the most low-level programming languages (except Assembly) we got today. While scripting languages like Python come with a (compared to low-level programming languages) massive overhead, C and C++ are incredibly fast, but thus harder to develope. C++ already shields you from tricky problems like memory leaks, which C doesn't, but its still easy to brick things easily here.
C++ and or C are used in time-critical things like Graphics Drivers, emulators and stuff, where you want to get the most out of your machine, while Python (or any other scripting language) is used if you want a stable system, many tools you can rely on (frameworks built by other people for you to use). Development in scripting languages usually goes much faster than development in C/C++, because they got a far-fetched standard library which contains all the tools you need to build your App. Code which got 10 lines in Python might actually need 100+ lines in C/C++ in some cases, or even more.
I don't think that your server really needs C/C++ to function properly.
Note: even though MUD engines are written in C/C++, they mostly assemble an additional language to use while coding for this MUD engine (like LPMud requires you to use LPC to work with it), so knowing C/C++ won't help you very much with developing for such a MUD engine.
jonikster wrote:2. The same question that was the first. Only with C. For whom C? Should I even consider C?
C is older than C++, as long as you aren't an expert and know a reason you need to absolutely prefer C over C++, I guess you should stick with C++ instead. It has OOP capabilities, more reliable data types and more. It should be fine to only know C++ in general.
jonikster wrote:3. It is said that the development of C is much more difficult than in C ++. How much is true about application software?
All of this is true. Developing application software in C can take loads of time, and probably doesn't offer any advantages. You don't really do this anymore nowadays. Use C++ instead if you want to go low-level for your App.
jonikster wrote:4. Both with respect to C and C ++, how much should I know, if I do not intend to develop from scratch, but use ready-made tools?
In general, I saw the same circlemud of 2000, there is more than the base C variables, conditions, loops, pointers, not used. Basically the C library itself.
Thats the problem with C/C++, the introduction is much harder. While you can learn languages like Python during 2 days and at least use any given library to do what you want, you'll probably only cause trouble if trying the same thing with C. Thanks to constructs like pointers, and pointers to pointers and what more, because they aren't understood that easily. C doesn't have that many keywords/constructs that Python got, but the few it has can be more complicated, and you don't need to know all possible things in scripting languages either to reach your goal. At least there are always multiple ways to get things going, and the most easiest way might still be a good one.
jonikster wrote:5. I do not know about C, but about C ++ they say that it takes many years to study it for the solution. On how much is this true in my cases? If I'm aiming at ready-made tools, do I need to know a lot?
You know, the thing with "how long takes it to" always depends on the person learning it. I just needed a few days to get an idea of C++, but thats of course not all, because the real training starts. Just because you know the syntax and the constructs doesn't mean you're good with that language. It usually takes time developing things in this language so you get a glimps on how to do things right with it. And thats the time which differs from person to person. Some people never learn it, some people only need a few weeks.
I'd say to use ready-made libraries in C/C++, you'll need to learn more than in scripting languages like Python, Ruby or what else. You at least need to know alot, even for those easy things.
jonikster wrote:6. Is it possible to study C and C ++ simultaneously?
Hm. All the C things can be done in C++ as well, because C++ is just built on top of C, but all C++ things cannot be done in C. And C++ got many better attempts for things C already knows. So yeah, you can probably learn both things simultaneously, but I wouldn't do it.
Hope that helped a bit.
Best Regards.
Hijacker