Debt is a tradeoff with the future, and ideas come back ground when the tradeoff shifts. Always ask: what problem are we trying to solve, and what's the tradeoff? Be curious about the past and the present. When assumptions change, look for the opportunities #QConLondon
Developer hiring is on the up, even though UK labor market is on the decline. Not all roses, though. Sleep debt now a problem. In 1826, the average work week was 66 hours. That was the highest in the UK ever, at the peak of industrial revolution productivity gains. #QConLondon
Taking a dig at COBOL now Jevon's Paradox: making something more efficient makes it used more. Software is not going away, unlike other professions obsoleted by technology, like knocker-ups. The more software we have, the more we want #QConLondon
Now we're seeing enormous investments in centralized AI. Mac is instead licensing AIs for a "fraction of the cost it would take to run a datacenter", and instead putting AI capabilities in its hardware. Then it sells it to us and we can run AI computations on our decentralized hardware #QConLondon
This matters b/c the digital world creates more carbon emissions than aviation. Data centers (w/o network traffic) use about as much electricity as South Korea. Green energy helps, but it can't be the whole solution. We also need to reduce tech energy consumption #QConLondon
---- Closing keynote: "The Free-Lunch Guide to Idea Circularity", @[email protected], #QConLondon In 1858, Thames was an open-air sewer, and a hot summer lead to the "great stink". Parliament couldn't use their new building. Invested a lot of money in embankments and pumping stations
now a weird JIT trap: ``` while i > 0 do x = ... i = i - 1 end print(x) ``` if i starts < 0, possible to start tracing but then not stop it, and then trace way past the useful point. #QConLondon
So how does yk optimize a programming: 1. Inlining 2. Standard(ish) compiler optimisations 3. Interpreter hints, like "this function is idempotent". Hints like these are why yklua was so much faster than lua Now looking at Lua's OP_ADDI. Take a program that increments by 64 500k times #QConLondon
Tracing: manually record hot loops at run-time Meta-tracing: record the interpreter executing loops at run-time. "This is so weird I will look at this from a couple of different directions and hope one makes sense to you." 1: C is AOT (ahead of time). Compiled with ykllvm to make Exe #QConLondon
Often you can eke out some extra performance by dropping in a faster language implementation. Pypy is 3-4x faster than CPython ...There are at least 16 JIT compilers for Python. Almost all are dead. JITs are *hard*. And expensive. And often incompatible with mainstream implementations #QConLondon