270 karma · joined February 1, 2022
Your comment about programming historically being 1% judgement and 99% effort is interesting. I'm not sure I agree with those exact percentages, but nonetheless, I think the more consequential part of your comment is that the 99% is being reduced by a couple of orders of magnitude. I think that's what ought to trouble us as software engineers. Expending effort is often how we learn and grow. This is true in the context of physical activity (e.g., going to the gym to strengthen muscles) as well as in the context of intellectual activity (e.g., struggling through a problem set). If I go to the gym with my forklift, I can lift things, but I'm not likely to get stronger. Similarly, if I have Claude write all my code, I'm probably not learning much.
I'm not sure I agree with that. Many (or most) of the software engineers I know find the heavy reliance on AI coding agents/assistants pretty soul-sucking and uninteresting. I feel the same, and I'm looking for some kind of middle ground. For example, I will only use agents when doing so would not deprive me of learning and discovery.
I'm very bullish on the long-term prospects of Rust in computational biology—as well as research computing more generally.
(1.) The overall level of complexity. For example, I think (today) you would need to do an extreme amount of hand-holding to get an AI to write a browser, an OS, or anything with similarly very high level of complexity.
(2.) The representation in the AI's training set. Anything that is common in the training set (e.g., to-do app in JavaScript) will be trivial for an AI to one-shot. Anything that is rare, or absent in the training set is going to be much, much harder for the AI. If I try to ask an AI tool to develop a automated, ultra-low-latency high-frequency trading system, it's probably going to struggle because those kinds of applications aren't in the open-source domain. The same is true for completely novel algorithms. So maybe things that are essentially new science/engineering.
I'm very curious to hear others' thoughts on this, as I've been wondering about this, too.
curl cheat.sh/grep # fetches brief grep cheat sheet
Public clouds have enabled thousands of companies to put their products into the world without having to build and maintain hardware. They've completely changed the landscape of computing.
But then again, I'm probably guilty of anthropomorphizing the lawnmower. [1]
What is changing?
When a researcher at a university gets a grant, that's the federal government hiring that researcher and their team to complete a specific research project. The research team has a particular research question that the federal government has deemed important enough that U.S. tax payers would benefit from getting an answer.
[1] https://www.chronicle.com/article/the-white-house-sent-its-c...
And moreover, I would be even more supportive if we found a way to change the incentives for tenure and promotion such that reproducibility was an important factor in how we make decisions about grants, tenure, and promotion.
Scientific innovation happens because countries invest in basic and applied research. This research largely happens at research universities, hospitals, and national labs. If research universities can't afford to conduct research, the scientific innovation—along with the training of the next generation of scientists—all grinds to a halt.
[1] https://doc.rust-lang.org/book/ch19-06-macros.html
[2] https://doc.rust-lang.org/book/ch19-06-macros.html#procedura...