Thoughts of a C/C++ programmer after years in JavaScript

If you haven’t read the 4 stages of a C/C++ programmer using JavaScript this is a follow up on that so you might want to read that first.

Not that anyone reads this website I only update 3 times a year now but before you get your stockings in a bunch I’m not saying JavaScript rocks. I’m only saying that after using it for many years there’s things I’ve come to love that I now can’t stand when I’m not in it. Example include

(*) no setup

Every device has a browser.

(*) useful apis that just work across platforms

including canvas, webgl, audio api, camera access, gps, etc

Think about what I’ve have to do in C++ to get a cross platform canvas2d like API. I’d probably have to build Skia which is like a gazillion lines of code. I’d have to figure out what bazillion options to pass it etc, watch it compile for 10-15-20 mins and hope no obscure errors pop out.
Read more…

The 4 stages of a C/C++ Programmer using JavaScript

Stage #1: Time T = -3 years:

What a stupid scripting language. I haven’t used it but it’s a scripting language and scripting languages suck. It’s not useful for anything other than form validation. Who cares. I’ll never use it except maybe to make a form not double submit on my personal website.

Stage #2: Time T = 0:

Ugh, I’ve got to do some stuff in JavaScript for this project. Fuck this language sucks. What the fuck is up with those global variables. What do you mean braces don’t define scope. Well at least I found some stupid way to make classes and inheritance work.

Stage #3: Time T = +3-5 years:

Wow, if I use closures creatively and everywhere JavaScript is pretty interesting. All this async stuff happening for free. And all these APIs that just work. I can put something on the screen without needing 14 libraries and spending a week trying to figure out how to get a window to appear. I don’t have to figure out how to render fonts on 7 different platforms in 17 languages. I can download images, draw stuff in canvas and WebGL, play audio, access the camera and mic and with very minor hiccups it just works. I get immediate feedback, just refresh. Stuff can be styled by my designers without my having to write tons of code and when I want to show someone I just send them a link. This is pretty awesome.

Stage #4: Time T = +5 years:

I’m going to do some C/C++ programming again. Ugh! WFT this stuff no longer compiles! Why doesn’t this project load in my IDE anymore. They must have changed the format. DAMMIT why doesn’t libglfobar link? Ugh! What? I’ve got to write 200 lines of meta-templating code just to make generic callbacks? Fuck! Why is this so tedious! Oh you want to check it out? Sorry I don’t have access to a Mac to compile it for you. Sorry. Fuck I hate C/C++!

followup here.


Tweening probably has many definitions. I heard one guy call it mapping as in mapping one
range to another range. I’ve always called that lerping. The simplest lerp is something like

     value = start + (end - start) * lerp

Then given lerp goes from 0 to 1 value will go from start to end.
Read more…


I wrote an article for called less code more fun. WebGL is a verbose language and I wanted to explain at least one way write some functions to make it less verbose. After that I wrote an article about drawing multiple things. The combination of those 2 lead me to think I really should turn those concepts into their own library. The result is TWGL.js.
Read more…

I moved all my webgl articles to their own website.

Putting them here on my blog was a pain in the ass as they weren’t a good match for wordpress. On top of that I think putting them on their own domain will hopefully encourage contributions?

Well, I can hope :)

More ranting on npm and the state of node libraries


All I friggen want to do is find out of a git managed project is clean, as in are their any modified files that need to be checked in or not. You’d think this would be easy. I can of course shell to git and parse stdout but here’s hoping there’s a library with more features in case I need them.

So I go looking by searching for “git”.
Read more…

The VR Workspace

I’m going to guess there’s already a zillion blog posts like this but …. here’s mine if only to record my thoughts so you can laugh at me in 3-5 years for dumb predictions.

A couple of weeks ago I go to see the Oculus DK3 Crescent Bay demo. Very very impressive. If you’ve used a DK2 (2014) it was mostly PS2 quality graphics. It still felt awesome to see things in stereoscopic 3D but Crescent Bay is somewhere at PS3 or PS4 level. On top of that it’s 90fps and has skewing meaning if your head moves left/right, up/down, back/forward that’s reflected in the simulation whereas DK2 (and Gear VR, Google Cardboard), currently only support head rotation. It makes a huge difference.
Read more…

When to find a library vs when to write code.

As a C/C++ programmer I rarely looked for libraries unless it was larger project. For example, I needed to read a BMP file or a TGA file it’s like literally less than 100 lines of code. Look up the format, write a little code, done. On the other hand if I needed to load a JPG file or PNG file those formats are far more complicated and so I’d end up finding a library.

But, now that I’m in JavaScript land there’s a bajillion tiny library for all kinds of things and it ends up making me always wonder if I should write some code myself or check for a library. This ends up often feeling like a waste of time.
Read more…

Tonde Iko, a 6 Screen 5 player game

This is what some friends and I made in October

You can read more here

Idea: Curated Open Source Libraries

I have a feeling this idea is a lot like documentation. Everyone wants it but no one wants to do it.
Read more…

Page 1 of 2812345...1020...Last »