| ▲ | atomicnumber3 5 hours ago | |||||||||||||||||||||||||
Something I have always (even pre-LLMs) found funny to think about is - all code possible to run on a computer already exists. It's some permutation of all the bits of available memory. It's in there somewhere. So, suppose you want a specific program. 1. Some huge % of those possible programs are obviously not the one you want (most don't even compile). 2. Remaining programs might look similar to the one you want, but are buggy enough to be completely unusable, unreadable to the point of intractability, and so on. 3. Remaining programs look substantially correct but upon using for > a few mins you note major bugs that make it still not correct enough. 4. Remaining programs look substantially correct and seem to generally do your will but contain a long-tail showstopper subtle bug that corrupts saved data, or makes all the output subtly incorrect, etc. 5. Remaining programs might be useful, even if they're mildly annoying. 6. This process can probably continue for several thousand iterations until you finally find "it." The program you wanted. Or... one of them. There's probably still 10k+ candidate programs left at this stage. Our job has always been to get to 5 and aspire to 6. Indeed most of software development is just doing 5->6 in a loop. I think LLMs help us get to somewhere between 3 and 5 faster than we used to. And a big problem with them is that programs in 3 vs 5 all already look substantially correct and there's no way to know if you're getting 3 or 5. Generally, the above is not how it _felt_ to write software pre-LLMs, it was just a cute way to imagine what you're doing. Now it's weirdly apropos. | ||||||||||||||||||||||||||
| ▲ | atn34 4 hours ago | parent | next [-] | |||||||||||||||||||||||||
One of my professors used an example like this to encourage you to pause if you ever find yourself doing something like "maybe if I just flip this < to > the tests will pass". The space of incorrect programs (even ones that pass your tests) is enormous compared to the space of correct programs. If you like thinking about this and haven't seen this before, check out the busy beaver problem[1]. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ▲ | chubot 5 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||
all code possible to run on a computer already exists. It's some permutation of all the bits of available memory. It's in there somewhere This seems either mathematically impossible or vacuous, depending on what you mean ... | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ▲ | Merad 2 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||
> It's some permutation of all the bits of available memory. It's in there somewhere. True, but the number of possible permutations is so large it's incomprehensible. Let's limit ourselves to say a 50 MiB program, meaning the size of the compiled binary. If I'm remembering the math correctly, that amount of memory can hold 2^(2^20 * 50 * 8) different states. That's 2^419430400 or roughly 10^126000000. For comparison, the heat death of the universe is predicted to occur in about 10^100 years, or 10^107 seconds. You'd need to be able to look at more than a million programs per second to examine them all before the end of the universe. | ||||||||||||||||||||||||||
| ▲ | dpoloncsak 4 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||
I once saw a YouTube video where two beginners were learning the basics programming, and upon opening a cmd prompt, one of them said "It's insane if you just type the right words into this box, you can steal someone's 401K in Arkansas" (Or something along those lines). It's always stuck with me that technically that's pretty correct. It's probably not how you'd go about it, but with the correct magic words in the right order it would work | ||||||||||||||||||||||||||
| ▲ | agentultra 4 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||
You should check out Borges’, The Library of Babel. Basically if you have an infinite string of characters in some language then you have every possible book, tweet, script, scribble, and scrap of everything ever written. You just have to find it. Thats already a large universe to cover. Programs? Much bigger set. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ▲ | adrianN 4 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||
> all code possible to run on a computer already exists You have to be careful; that line of thinking might get you trapped in L-space. You’d need a very skilled librarian and possibly a bag of peanuts to get back out. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ▲ | lilbigdoot 3 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||
I think this is a great abstraction of the process I've never considered in those terms and I like it. It explains a bit of how software development differs from some other building processes where the desired outcome is being discovered as you figure out how to make something that produces that outcome | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ▲ | Xmd5a 4 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||
yes and if you want to code a little swimmer that explores program-space, you'll find there too! | ||||||||||||||||||||||||||
| ▲ | oblio 3 hours ago | parent | prev [-] | |||||||||||||||||||||||||
Reality is a fractal (Mandelbrot?) and this is where LLMs will help science. They will help us explore the fuzzy edges faster. LLMs probably won't find new "leaves", but they should be able to cover a lot of useful but "boring" fuzz. | ||||||||||||||||||||||||||