I got a very frustrating experience with C++, realized it's not the tool I'm looking for but now I'm left without knowing what that tool is. So I came here to ask your help if someone here knows what exactly I am looking for.
Before I'll explain my frustration with C++. I was always told that there were libraries for almost everything in C++ and that's one of the reasons I started learning it, but I also realized that it's not as simple as that. For instance, those are a few things I once needed to do:
1. A 3d program with a ball looping to visualizate some physics concepts (study purposes).
2. Make a simple 2d shooter program to play with my friends.
3. Make a program to login in a site, process it's contents, store the results in mysql and saves a png image of the site's visual in my pc. (for statistical analysis, study purposes again).
Those should, in principle, be easy tasks. But in C++ they are definitelly not. I had to:
1.
Search for libraries for everything - a library for mysql, for graphics (allegro), for online communication (raknet), for containers manipulation (didn't find, had to make my own), for 3d graphics (tried ogre and irrlicht - realized the program wasn't worth the effort of learning both) to download a url (libcurl++), to process a url (didn't find, my program lacked the feature of saving the visual of the site), to save images (used allegro) and the list goes on.
2.
After finding every library I needed I had to compile and install them all and this is insanely frustrating in C++. Every library have different ways of installing, one worse than the other. I spent whole days reading through endless documents trying to compile some of them.
3.
After installing every library I needed to LEARN them. I realized, for instance, that it would take some good days to learn to make even simple 3d stuff with irrlicht or ogre. It was certainly not worth the effort as everything I wanted to do a 3d program to visualize a few balls floating around! Good old imagination beated it this time.
4.
After everything is allright I end up with lots of unrelated libraries that often don't integrate (for instance: a 3d vector in a 3d api library is something and, in the collision library, it's another) and, worse yet, in an anti-intuitive, time consuming, hard to write language that gives an error for almost everything.
The result is: I spent days of work to make things that (I belive) could've been done in a few hours. So I just realized C++, while doubtlessly one of the most powerful languages, isn't the right tool to make things where productivity, not perfection, is necessary. My question is: what is?
I would like to illustrate things I would like to do without worrying about installing libs or anything:
Find all instances of the class Birds where the modulus of their velocity > 3.
fastBirds = Birds.find(|velocity|>3)
A 3d world with a ball rotating around
1 2 3 4 5
|
word3d = World3d.create
cam = Camera.create(pos=[40,40,40],direction=[0,0,0])
my3dball = Ball.create(pos=[3,3,3])
3dball.velocity = [2,0,0]
3dball.velocity:rotate(pi/20)
|
A tool to download a
1 2 3 4 5 6 7 8
|
siteTool = SiteCoolNiceTool.create()
window2d = Window2d.create()
mysite = siteTool.download('www.blabla.com')
mysite.makeImage.save('c:/blabla_index.png')
datas = mysite.source.regexMatch('something')
for data in datas do
doSomething(data)
end
|
Do you get it? It had to be a language with either a strong syntax that makes the programmer worry more about the program than with the programming syntaxes, and with a really, really gigabytes worth pre-build library where I could trust that anything essential (database, vectors, math, sound, string functions, 2d/3d graphics, networking, etc, etc).
I don't know if what I'm asking for exists but I know it could exist as all those things already exist. It would just be a question of integrating and standartizing them all in a single 'syntax', idea, or whatever. You got it.
Please any thoughts on what I said!
Thank you very much.