Trying this out.

Well, I am a programmer. I am not really a new programmer, but I have also never been employed as one. For, there is this issue: I write stuff on my own. In this world, no degree, and no prior work experience, means no job. Left starting classes for CNC Machining, at least then maybe someone will hire me (and I can have some semblance of income).

I have written two 3D engines, an older engine (BGBTech) which grew organically but became a bulky, slow, and difficult to maintain mess. I have a newer 3D engine (BGBTech2), which I am trying to make a more cleanly engineered piece of technology, taking lessons I have learned in my earlier years and trying to turn them into something a little more polished (well, by my standards, by more general standards it is more like a pile of feces given a shiny coating of acrylic floor wax). But, it regularly shows its lack of maturity, as I haven’t yet re-implemented many things from the old engine, and bugs/crashes are hardly an uncommon occurrence.

GitHub profile, for those feeling brave.

I have custom codecs, which go reasonably fast (in more recent iterations, I am getting speeds measurable in gigapixels/second for multi-threaded encoding/decoding, on the CPU). This is not via some epic optimization, so much as by doing a bit of retro-90s engineering. Though taken for granted, we now have around 20 years of people using progressively more expensive designs in the name of being “better”, then people are like, “well, you gotta use the GPU and/or dedicated hardware for this stuff?”

But, what if one sacrifices a little compression, and a little elegance, making something that looks like a monster which crawled out of 1993 and then grew some Cthulhu like appendages? Well, it isn’t pretty, but it can be fast.

I also have scripting languages for my 3D engines. The older engine used a language which started off resembling JavaScript but later on incorporated a lot more features (and a syntax more like ActionScript3). The newer engine used a reboot of the language, which more or less took the old language design and moved it over to a statically-typed core with manual memory management, in a way being sort of like if a mongrel of C and C# had a mixture of AS3 and Java style syntax.

It is not a language design meant to inspire, or to upset the status quo, it is a language to hopefully get “real work” done in, and to hopefully not perform like garbage. In some sense, conventional language design works well here. However, it is a scripting language in the sense that, at least at present, its dominant use-case is being loaded directly in the form of source code.

In a way, it is at odds with its “compiled” siblings which assume an explicit compilation step (even if they are to be JIT compiled from bytecode), and dynamic languages which are more frequently loaded from source but have performance which ranges between lackluster and dismal (“Wow, it is so fast! It is only 30 or 45 times slower than what it would have been had we written it in C!”). How about a scripting language where, for code which resembles C, it isn’t too drastically slower? Like, maybe we can have a language design which isn’t at odds with making it fast?

Granted, explaining much about these things may be a matter for another time.

Maybe next I will try to address some of these topics individually.



Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s