We’re steadily heading towards a web 4.0 world, better stock up on some migraine medications!  There is just so much to learn and so little time to learn it. Web 4.0 technologies are intelligent, multidimensional and time consuming. The mathematics involved could make Einstein sweat. Technically most of these technologies require a firm grasp of linear algebra which is the domain that Einstein was mostly working in.  Just when I thought my knowledge of linear algebra was enough to get me through I started working on WebGL only to find out it doesn’t have any built in text rendering capabilities. No big deal right?

How hard could it be to render a font, it’s just more linear algebra right? WRONG! The fonts are Quadratic and Cubic Bezier curves they’re not bound by linear algebra.  Keep in mind I still get a small headache just trying to keep track of the rows and columns in my matrices and the order they’re combined, but now that these matrices are becoming higher order tensors it’s no longer a matter of tracking columns and rows, but instead tracking the positioning of entire equations, and their derivatives. This seems to be way too much work for just rendering fonts but the formula’s don’t change so once they’re coded once you can pretty much forget about them. Beyond this I’m starting to see a number of projects REQUIRING machine learning, computer vision, and similar technologies.  Again requiring a firm grasp on tensors and the various levels of interpolation that can be achieved from grossly incomplete and unreliable data.

I don’t envy our next generation of programmers. We have solved many problems in the software industry and automated everything possible, including our own coding in some cases. With the power of modern processors and the huge amount of open source code available we have sky-rocketed the complexity of software engineering nearly to the point that only a computer can grasp the full complexity of the code.  We find ourselves loosing sight of the forest and only seeing the trees, or maybe only seeing the one or two trees that we’re worried about.  Soon the code will be so complex that not even a software engineer will understand it. Technically you don’t need to understand a formula to use it, you just know how to use it, just like you don’t need to know how a calculator works you just need to know what buttons to press, and in what order.  We are steadily approaching a milestone in the information age where the amount of information under our control is more than any one person can comprehend. There may even be a day where we reach the point where it will take an entire panel of experts to decide if a button should or shouldn’t be pressed.  Sure we are making a lot of guesses in the software industry, but we only need to be right once to solve a problem permanently so lets hope we are actually right and not opening up a secret backdoor into Pandora’s box.