I've been thinking a lot lately about Ruby vs. Python. Not the languages, but their libraries and overarching philosophies that drive their direction.
Python's culture follows a philosophy that there should only be one way to do something; one tool for the job. For example, pygame makes use of a library called
SDL (Simple DirectMedia Layer). It handles the 2D/3D graphics, sound, input, etc like Gosu does, but unlike Gosu, it is not a game library. It only has one job. As far as I know, SDL is the official Python library to use if you're dealing with graphics.
Ruby has a rich community of libraries (gems) and it seems there are new gems popping up every day. However, gem authors fight to gain popularity instead of contributing to an official library. Rails different in that it's sort of the de facto Ruby web framework which gives Rails the advantage of having lots of contributors because lots of people choose it. There are alternative frameworks in Ruby, but none as popular as Rails. I'd like Ruby to have the same success with a game engine, where people know of Ruby because it has a great framework for creating games.
Gosu doesn't currently support graphics on the Raspberry Pi (although I know work is being done to support that), but it got me thinking about whether or not Gosu is making the right choice in its custom implementation of graphics, etc. I see the value in creating/choosing a standard library that can be maintained by a large group of people, especially when it comes to graphics, versus multiple similar implementations that compete for contributors.
I came across a
Ruby implementation of SDL but not sure how up-to-date it is (or if anyone uses it). Searching google, I found many Ruby OpenGL graphics implementations and game libraries that never saw much adoption and eventually faded into "no longer maintained" status.
I've never written any C or C++ code. Lately, I've been trying to get more experience in that area. There may be many others who use Gosu who also don't have much experience in that area which means there probably aren't many contributors/maintainers of the Gosu core. Are we happy with the core graphics implementation of Gosu? Do we feel that it has enough support to be maintained as the official Ruby graphics library? Should Gosu be split into two distinct libraries: the graphics library and the game library?
This is not meant to be negative criticism but more of a constructive discussion that leads to a better library for all of us Ruby developers. What do you think?