500 karma · joined June 11, 2012
Another good example of this is Trenki's software renderer for the GPX2[1], which implements a shader architecture if memory serves. I haven't looked at it for many years, but I remember it being a useful resource when learning this stuff.
Other useful resources are, of course, Michael Abrash's Graphics Programming Black Book[2] (despite it's age, is still a great read filled with useful information), and for a really deep dive into the graphic's pipeline, ryg's (of Farbrausch fame) A Trip Through the Graphics Pipeline[3].
[1] http://www.trenki.net/content/view/18/38/
[2] https://github.com/jagregory/abrash-black-book
[3] https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-...
You're probably used to extracting information you want in a very short period of time via sites like StackOverflow or Wikipedia or whatever. If you're like me, when you encounter something that isn't going to give you the gold quickly, you probably move on to something that will.
You're used to the quick turnaround, so when something takes longer it makes you feel like you're squeezed for time.
For example, I have plenty of physical programming books. A lot of the time I know that the answer I seek is in one of those books. Sometimes I even know which book and the location in that book. But guess what? I still go to StackOverflow first because it's quicker and someone will have already summarized the book. I'm so used to getting information quickly, that actually having to look for it is unthinkable. It _feels_ like I don't have enough time to read the book myself, but that's really not true at all.
Programs written in C and C++ may have issues because the languages assume the programmer knows what they are doing. This assumption leads to some great solutions to hard problems because the programmer is essentially free to do what they want.
Of course, this assumption, as with most others, doesn't always hold true. This doesn't mean there is a problem with the language. The problem is with the programmer.
If you're going to write something like "return ({goto L; 0;}) && ({L: 5;});", no language is going to save you.
C and C++ are still used today, in part, because modern languages try to restrict the programmer. Rather than assume the programmer knows what they are doing, they assume the programmer is stupid and needs help to cross the road. By assuming stupidity, the restrictions modern languages put in place prohibit certain solutions and as such C and C++ will remain the go-to systems languages.
We do not need new languages. What we need is programmers who won't abuse the languages we already have.
http://research.edm.uhasselt.be/jori/phd/phdthesis_jori_web....
"If you insist on sticking to a conventional C style of C++ code, you’ll get conventional C-style problems" - Bjarne Stroustrup (http://www.informit.com/articles/article.aspx?p=2080042)
http://cbloomrants.blogspot.co.uk/2013/10/10-04-13-reality-o...
Anyone who works with Linus does so freely and can stop at any time they choose.
Furthermore, applying today's morale standards to civilizations thousands of years old doesn't strengthen your point as well as you think it does.
I explained in a written letter how the phone would crash at frequent intervals (especially when playing or recording video). Being a developer I even wrote the letter as I would write a bug report with steps on how to replicate the problem and what not.
They returned the phone to me with a standard letter saying how they fixed the phone by upgraded the OS to the latest version.
The OS was of course already updated to the latest version before I even sent it to them. They even tried ringing me on the broken phone I had sent them so I could explain what my problem was. I'm not sure how they thought I would answer it exactly...
I tried again and received the same response. Needless to say, my phone is still broken.
The "boring" tasks are purposefully programmed to the minimum requirement so he can spend more time on the interesting tasks, to ensure his motivation stays high.
Admittedly, he could just outsource the GUI stuff, but for better or worse, he clearly wants to keep the code close to his chest.
http://msdn.microsoft.com/en-us/library/6t66728h%28v=vs.80%2...
http://stackoverflow.com/questions/3490823/why-msvc-generate...