indeed, the unexamined life...
Acid use means taking your life and examining it from every angle. A key point I like to get across to people I discuss acid use with is to never imagine that experiences you have whilst under the influence of LSD are as discountable as their known experience with alcohol - with LSD the reprogramming sticks (for better or worse!)
You misunderstand. I don't mean 'simple' as in base, uncomplicated, or trivial. What I mean is there's no programming problem so complex that it requires the use of a hallucinogenic to understand or solve.
It's not just about solving problems. It's also about finding the inspiration or the right approach. coding an algorithm that is predefined and coming up with something like page rank or OOP paradigm are not problems in the same category. psychadelics can definitely help in the latter category.
I understand and I agree with you taking psychedelics is not an everyday task.
One does not take a trip to solve a simple problem, but to find ideas and new viewpoints.
Those actually could be useful, even in your field. Software or not.
How do you know? Have you solved every problem there is to solve? And of all the problems you have solved, have you done so in the most elegant and efficient way possible?
If I haven't solved every problem there is to solve, is my assertion less true? Is your argument "There are problems in software engineering that can only be solved by dropping acid?"
The best programmers in the world -- those who work together to solve the most complex and aggressive problems asked of the human mind -- are those who come to work every day, solve problems, and write code, and go home. They don't spend their time justifying "lifehacks" like taking LSD for that extra "edge" over other programmers.
The concept of "getting an edge" is so not what we're talking about here.. not quite the opposite but the attitude of wanting to get an edge is the exact opposite.
It's about wanting to know more and to expand your horizons for their own sake. Look at some of the "best programmers in the world". Lots of crazy beards in that group, right?
It can't be justified, that is all. I don't know that there are problems that can only be solved only by taking LSD, but neither can I categorically say that there aren't any at all, as you just did.
How do you know? That is what I asked, and you haven't answered me. You're making assertions about the best programmers in the world that you can't possibly back up. How do you know that some of them don't take LSD?
>If I haven't solved every problem there is to solve, is my assertion less true?
Either that or you've discovered some property of 'complex' problems that precludes the use of LSD to solve them. Otherwise, yes, it is less true (i.e. baseless and false).
Not that I plan on trying it, but how do you really know that?
Such a broad statement strikes me as saying something akin to 'I can prove there is no God.' As much as I believe it to be true and want to see it proved, I just can't say for sure.
I'm sorry. You're asking me to... enumerate every single problem in software engineering? I don't see the point. How about we take one of the most impressive, extreme cases of software ingenuity: launching the Space Shuttle.
"But how much work the software does is not what makes it remarkable. What makes it remarkable is how well the software works. This software never crashes. It never needs to be re-booted. This software is bug-free. It is perfect, as perfect as human beings have achieved. Consider these stats : the last three versions of the program -- each 420,000 lines long-had just one error each. The last 11 versions of this software had a total of 17 errors."
Do you think that perfection, that stability, in the face of lives at risk for every mistake, is a suitable place to suggest that taking LSD could make them better? These are the best programmers in the world, by many standards. And they're not writing node.js servers and map-reduce queries, they're using billions of dollars of hardware to achieve manned space flight. And they don't take LSD.
"It's strictly an 8-to-5 kind of place -- there are late nights, but they're the exception. The programmers are intense, but low-key. Many of them have put in years of work either for IBM (which owned the shuttle group until 1994), or directly on the shuttle software. They're adults, with spouses and kids and lives beyond their remarkable software program.
That's the culture: the on-board shuttle group produces grown-up software, and the way they do it is by being grown-ups. It may not be sexy, it may not be a coding ego-trip -- but it is the future of software. When you're ready to take the next step -- when you have to write perfect software instead of software that's just good enough -- then it's time to grow up."
Says who? The article says 260 people worked on that part of the code. I'm sure they're all security-cleared and background-checked up the wazoo, but i'd wager that more than a handful of those 260 have had psychedelic experiences at some point.
The shuttle is an excellent example of many things, but not necessarily of a conceptually difficult task. It's hard, but it's not mind-bending. The hardest part comes from having to prove the systems correct because lives depend on it.
While I am not an expert on the shuttle flight software, these are some challenges in flight software in general: Consider the problem of orbital insertion around a moon of saturn, or around an inner planet, or an asteroid. Not only does the guidance and control subsystem have to react (i.e., actuate the thrusters whose thrust can vary by orders of magnitude) within a razor-thin margin, but each scientific instrument has requirements as well, and introduces its own perturbations (e.g., extension of an antenna boom causing vibrations). Plenty of PhDs, and PhD topics to be found in this and associated problems. ANother example, consider space network links. You can't just use TCP (it's been tried, and it simply breaks down), you need to engineer a protocol -- in fact a whole new suite of protocols -- from the ground up that provides the same reliability but over much faultier links. Although TCP is simple in concept (just ACK/NACK till you got everything, right?), 30 years of its evolution shows that it is anything but. Both of these problems necessarily involve some bending of the mind to solve, and I image there are related ones for the folks in the manned-space sector
EDIT: and among other things that I'd consider important to mention, there are significant robotics challenges, autonomous behavior and decision making (with associated problems in formal model verification), along with the general high degree of fault tolerance required in just about every software (and hardware) subsystem. I think many of the hardest problems in CS can be found in the spaceflight domain.
You're right - there's no point trying to 'find the right approach' when it comes to space flight. But not every piece of software has to get every little detail right. When the issue is more about figuring out what you're trying to accomplish with software than accomplishing something perfectly, creativity is very important.