Sure. It has a community. I didn't say it did.
But it is small. This can't even be argued. Relative to the communities for all the mainstream languages, it is small. There are a few sites for it. That is all. All the other more mainstream languages have thousands of blogs, dedicated Stackoverflow tags, multiple books, the list goes on. This part of my statement is not opinionated. I can find 10x-100x more documentation for the mainstream languages. And as for referring to the manual, I'd be willing to bet quite a lot that you referred to the PB one just as much at the beginning. You have to. It's how you learn the language in the first place.
I'm just not seeing why, when the question "which programming language should I learn?" comes up, people jump off the good community to help me do it bandwagon, not to mention all the other bandwagons that don't really get replaced in most cases. I'm not thinking about professionalism here, and I suppose there's something for "because I can use it". But those who use it are able to do so because they learned it and, if the coin toss went a different way, I don't see why anyone wouldn't be saying the same things about Python. Or assembly. I really believe that we could substitute assembly in for Purebasic in this thread and, if enough people in this community had used it, have the same exact conversation.
Python and C++ are what I've seen called multiparadyme. You can but do not have to use object-oriented features in either. As of C++11, you have the ability to do the same level of functional programming in both, as both now have good support for first-class functions (see Python's filter for a good example of why this matters). If you want, you can sort of get such features in any language with a function pointer, but it's almost meaningless without the syntactic sugar and you can't do a lot of the advanced stuff.
And to be honest, you can fake OO in C-like languages, too. But it requires knowing a lot about memory representations. The idea is to create a "vtable", to have all instances of the "class" have a pointer to the vtable, and to then call your functions by referencing the vtables directly. You can wrap this up nicely in macros, if you want and, if you put in the effort, you get inheritance and polymorphism out the other side. These are however complicated enough that people switch to C++ rather than make their own. I can assure you that you will want them for a game, too: it's how you can treat all the enemies as enemies and yet have them behave differently.
As for code size with C++, yes, it's a bit larger. But only because of the #include statements. I do not count boilerplate code. I do not suggest C++ to people looking for productivity, but the reasons for this are the same as those I would cite for Purebasic-i.e. code size is not the big one or really even on the table. What happens is, as your project gets larger, the extra lines from hello world become less and less compared to the rest. Libaudioverse is somewhere around 3000 lines now. At the beginning, the #includes were indeed numerous compared to it, but I'd say they're easily only 0.5% of the project at this point. Perhaps I should do a specific analysis, but every language has something analogous anyway, so it doesn't really matter. The rest of the code size question comes down to how good of a coder you are, not so much the language; if adding a feature comes out the other side with *less* lines than when you started, it's a good sign you just did something majorly right.
Twitter: @ajhicks1992