Question
How much of the content of this course is the latest and greatest?
Answer
None of it; we’re mostly teaching a subset of 2008 technology, where the subset was picked in 2012 and wrapped in the API we’ll use in 2017
Question
Why not the latest and greatest?
Answer
So many reasons…

1 Hardware and Drivers

Suppose I decided to teach a course on the very latest technology available. The problem is available is a relative term in graphics. Unlike many other fields in computing, the latest interactive graphics techniques generally require hard investment: cutting-edge graphics cards, latest operating systems, patched drivers, etc. Of course, many courses require students to invest in textbooks or other supplies and we could too, but the latest tech for graphics dwarfs those expenses by a wide margin.

Instead, we’re using a very widely available tech, WebGL2. Part of its wide availability is achieved by its being based on old tech: several years old when it was released1 and released several years ago. It is also based on a simple subset of available tech: tessellation, geometry, and compute shaders were common when WebGL2 was released but were not included in WebGL2 in part to make it smaller and easier to implement on resource-constrained platforms.

Thus, one reason we’re teaching older tech is that it’s the newest tech that we know you can all access.

2 Teachability

The latest and greatest advances are made by people deep in the current technology and described for other people deep in the space to consume.

Specs
The official specifications for each standard is a stand-alone document, but not good learning material.
Release guides
When new releases are made, they are accompanied by a collection of what’s new documents and here’s something you can now do demos which help people who knew the previous version learn the new version. They’re a great resource if you used the previous version, but as of 2023 they’re more than 25 versions deep and not a great place to start.
Tutorials
Tutorials help you get started without having to puzzle through official specs or re-tread three decades of history. They typically are organized around a series of example programs with some explanation. They are a great way to learn how to operate, but they tend to get stale: when new features are added it’s a lot of work to go back through a tutorial and change all the examples to use it, and even when that work is done it often leads to code no professional would be proud of, archaic designs ported to use current tech. Many, though not all, tutorials also omit context, limiting learners’ ability to go beyond the tutorials’ scope and making future changes come as surprises.
Courses
Courses like this one are similar to tutorials but with more emphasis on context, principles, and explanations and less emphasis on current best practices. The hope is they provide greater forward flexibility and ability to go beyond what is directly covered.

There’s a lag in each of these steps representing the additional cognitive effort needed to create the later items. Specs are generally stable for several months before release guides are produced; for more than a year before tutorials are created; and for several years before courses are ready. However, their duration of usefulness follows a similar trend: old specs are rapidly obsolescent, old release guides remain useful for a year or two, old tutorials remain useful for several years, and old courses can remain useful for decades2

3 Change

Computer graphics is fortunately still in a space with strong competition. At the time of writing (2023) we have

  • API competition (Vulkan, DX12, and Metal in the lead, others as well)
  • Hardware competition (Nvidia, AMD, and Intel in the lead, others as well)
  • Engine competition (Unreal Engine, Unity, and CryEngine in the lead, many others as well)
  • Application competition (far too many to list or tell what’s in the lead)

This diversity of options may seem annoying for someone having to chose between similar-sounding options, but it fosters a rapid growth in technology at all levels. Without competition development tends towards the safe options, favoring keeping current customers over attracting new ones. But with competition every company has a vested interest in getting something new out that can give them an advantage over others, resulting in a much more rapid pace of development.

One result of this is that by the time you finish a multi-year development project (or multi-year degree program), odds are that even if you started working with the very latest tech available, something new has come along during the process and it is not longer the latest tech when you’re done.

Perpetual obsolescence is one side effect of a healthy, thriving field.