I have a kind of love hate relationship with Stack Overflow (SO).
I love that I get answers. I hate that I spend so much time writing answers and then see SO make bank from my work.
I’ve probably spent over 1000 hours writing answers on SO. Most of that time is spent writing working samples for answers. In fact webglfundamentals.org was started because of answers I wrote on SO where it they seemed too long for SO. Read more…
which if I understand correctly and a very interesting point of view which in one way could be summed up as “write more code and less libraries”. Yea I know that sounds controversial. Watch the video and see what you think.
If I tried to summarize here’s what I took away:
It seems like writing libraries is a good thing. It makes your code smaller. It makes it easier to read. It makes it possible edit the library and affect lots stuff. The problem is, especially if you’re a company like Facebook with thousands of programmers working on the same code base is that there’s no way to organize all the libraries. Everyone is going to write their own libraries. That means someone using their code has to first go learn their libraries. Whereas, if you had just written the code instead of using a library and you had use common patterns to write your code then the code would be understandable by others quicker.
Now, he wasn’t saying write zero libraries. What he was saying though is make sure your library is solving a problem and not adding more problems. He gave some examples, one being AngluarJS which I haven’t used but it is/was all the rage for web dev for the last 2-3 years. He claims that while it solves some big issues and therefore solves lots of bugs it also is a very complex api with a very large number of functions and that complexity in his opinion outweighs the benefits. In other words it’s a net negative.
I have a feeling I’m not going a good job of summarizing his POV.
Anyway I’m not sure how much I agree with this idea. I think it totally makes sense for Facebook and possibly for Google and other giant teams. But, I wonder if the same is true of a small team or a team of 1. Maybe it does. Or maybe at least thinking about “is this library going to add more problems than it solves in the long run” before writing one.
(*) 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…
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:
Stage #3: Time T = +3-5 years:
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++!
I wrote an article for webglfundamentals.org 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.
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.
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…
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.