Også tilgjengelig på norsk: Ekte Programmering
Spread the word! Send these free chapters to friends and/or enemies. Either is good.
Chapter 7: Research is Hard (PDF, 351KB)
Chapter 15: The GPU Raytracer (PDF, 617KB)
All source code and images used: Details
Based on the
version, this is a book about real programming for real programmers. Or for those who have an interest in programming but have grown tired of the available selection in bookstores. Yes, they still exist. Bookstores, I mean. And books.
Real programming has existed since the dawn of time, a.k.a. the mid 70s with the launch of the 6502 and Z80 CPUs. Back then, code was written by hackers in real languages like assembler and C. With the launch of the 68000 based Commodore Amiga in the 80s, another hacker revolution was born. Unfortunately, in the middle of the 90s the internet grew popular and ruined it. And then the smartphones ruined it all again in 2007. Someone had the dubious idea that programming should be easy and for everybody, and new programming languages and methods were developed with that in mind.
Corneliusen and Julin claim the result was a disaster, since everything, at best, turned average: The code, the speed, the programmers, the managers, and the salary. And people still wonder why their smartphone batteries drain so quickly. Or why companies flush money down the toilet by writing software in programming languages similar to Duplo, and then run them in the cloud where they pay per CPU second used.
Programming is like playing a guitar: It's possible to do it for years without becoming better than well below average. To be really good, everything has to be questioned. And that's what this book is about: Instead of forcing the reader to memorize complex methods and formulas, assorted problems are broken down to their essence and reassembled in new ways. Not because it's necessary, but because it's important to figure out how things work. The authors claim that by doing this, even the hardest problems become simple. Sometimes the presented solutions are improvements, and sometimes they're just entertaining.
It should be noted that the book contains a lot of real code in C, Assembler, and GLSL for the architectures ARM and Neon, Intel SSE2 and AVX2, and the slightly obscure mega-multicore CPU formerly known as the Tilera TILE-Gx.
Nils Liaaen Corneliusen
Corneliusen has been programming since he got his first computer, a Sinclair ZX81, in 1982. He studied and got a degree at the University of Oslo in the 90s, but quickly discovered that abstract code was the path to the dark side. He's written high performance code for numerous architectures, and also written several articles about how complex problems can be solved in new ways.
Julin pulled the short straw when trying to find someone to break Corneliusen's endless rants into publishable form, and he has tested and verified that all the code in the book actually does something useful. He has been programming for many years as an Amiga hacker and professionally. He also has extensive experience in 3D graphics and animation and has made some of the illustrations in the book.
Size: A4 (210x297 mm)