Hacker News new | past | comments | ask | show | jobs | submit login
The Wizardry Frontier (chriskrycho.com)
56 points by signa11 on Dec 9, 2023 | hide | past | favorite | 8 comments



I'm a reductionist. When the LOC I need to write to accomplish my goals go down, I consider that progress.

Zero LOC? Ideal, but frequently I later find my goals fall out of alignment with what I can do there. 1 LOC, like a shell invocation? Fantastic. 100-1_000 LOC? Pretty good, especially because at that scale I can usually still effectively wrap all the functionality into some CLI arguments and turn future invocations into 1 LOC.

The billions and billions of LOC that underlie my operating system, my text editor, my compiler, etc.? There's still work to be done on that front. Perhaps some of those lines are inevitable. But we can keep pushing forward until the day where the computer reaches its ideal form: There is a single button, and when I press it, it does what I want.

s/LOC/keystrokes/g, or mouseclicks, or whatever else constitutes the smallest atom of work you care to measure.


There aren't many sweeter moments in this game than reaching a new understanding which allows for pages of code to fall to the cutting room floor.


There is progress.

The next near frontier for Rust is to try to figure out how to do back references that are checked at compile time. The contortions required to work around the lack of back references are painful and distort program design. You can use reference counts for everything, like Python. You can put all the structs into an array and use array indices, which means you get pointer type errors in indices. Or you can use unsafe code, which means you're back at C++ bug levels.

This is probably a PhD thesis sized problem, to figure out a set of rules and an analyzer to enforce them.


While I agree that manually maintaining objects in memory through indexes is less than ideal sometimes, it's nowhere close to it being the same as managing raw pointers (ie errors are less catastrophic)!


You still terminate the program or get pointed to the wrong object. You just crash more gracefully and in a more-debuggable way.

I am currently using a Rust crate which uses indices for object ownership and just crashed this evening with a subscript error.


I feel like this ought to also be the purpose of academic research in e.g. math and physics but for some reason it is not: the most advanced concepts seem to just get further and further away from the grasp of mortals.


As an example, category theory is an attempt to distill concepts common to all of math but nobody has taken on the task of articulating that function clearly. To me it's like beer is drinkable but 200 proof will burn your throat but for strange reasons nobody really thinks it's necessary to point out


I was waiting for a conclusion but was left hanging.

How is any of this magic? Maths is the least magical thing I can think of. It’s literally the antithesis of such thinking. And yet, here we are. Proving why your argument is sound is, “magic,” that only the chosen few are capable of because reasons.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: