ネーミング

YaneuraoGameSDK.NETもGW明けから本格的に開発が始まるようなので、出来そうなところからやっておこうとちまちま作業。SDLOpenGLのラッパーはyaneSDK4Csのモノがそのまんま使えるので抜き出して独立したアセンブリにすることに。さて、アセンブリ名ですが、良いアイディアが浮かばないので安直に「YaneSDK.SDL.DLL」として名前空間も「YaneSDK.SDL」としてみることに。ここまでは良かったんですがクラス名で行き詰まってしまいました。SDLは関数ライブラリなのですが、C#はグローバル関数を定義出来ないので関数はどこかのクラスのメンバーにしなければなりません。クラス名を付けるとすればSDLが妥当だと思うのですが、これでは名前空間と衝突してしまいます。大文字小文字が違っていれば大丈夫なので、色々組み合わせを考えてみたのですがどーにもスッキリしません。どれが一番違和感ないでしょうか?

1.
namespace YaneSDK.sdl {}
class SDL {}

2.
namespace YaneSDK.SDL {}
class Sdl {}

3.
namespace YaneSDK.Sdl {}
class SDL {}

4.
namespace YaneSDK.SDL {}
class sdl {}

SDLのネーミングが決まればOpenGLも合わせることになります。こっちもOpenGLとかGLとかGlとか悩ましいんですけどね。それにGluとかもあるし・・・。ネーミングセンスが無いので開発でもクラス名やらメソッド名で悩む時間が長い長い(^^;

ところでC#とかJavaとかって何でグローバル関数が使えないのでしょうか?純粋な関数はMath.Sqrtとかみたいにクラスメソッドとしているけど、これはクラスを名前空間みたいな用途で使っている気がして好きじゃないです。せめて名前空間内なら関数が定義できるようにして欲しかった・・・