823 karma · joined August 2, 2021
If you have to encode the exact if-else conditions, then how it is different than regular software development.
So we want a system which we want it to behave in just about "perfect" manner (i.e. intelligent but not going astray). What passes as "perfect" is subjective and there will be different definitions of it.
Now to control this you want a capability to precisely define the allowed and dis-allowed behaviour. At this point we are essentially circling back to the software systems before the AI.
I think it requires a combination of things: a good taste, a sense of visual design and programming. The first two is more of art form.
Most of the developers on these projects are really good at programming but its rare to get a good combination mentioned above AND willing to work on open source over multiple years consistently.
Update: Also someone in the decision making hierarchy needs to have a keen sense of design. Example: Steve Jobs learnt calligraphy and even though he did not actually designed it he would certainly veto and pass feedback to the developers.
Try traffic in India [1][2] If it were a game, then India will be the last boss fight in ultra-hard mode.
As someone sold on Rust, I really want Zig to succeed.
Indian philosophy is diverse and vast. See the comparison of these philosophies [2]
[1] https://en.wikipedia.org/wiki/Charvaka
[2] https://en.wikipedia.org/wiki/Indian_philosophy#Comparison_o...
Software development involves:
1. Understanding the requirement
2. Solving the problem with given constraints (and thereby innovate)
3. Talking to stakeholders
4. Code (& unit tests)
5. Review #4
6. Troubleshoot in testing
7. Troubleshoot in prod, both perf & subtle issues (this is hard)
8. Take the input from #6 & #7 and use it as a feedback back to #2
9. Answering questions from users/support which involve suggesting workarounds and not just factual answers. Suggesting a workaround itself is a mini-problem solving which is an intersection of domain knowledge, knowing code at hand, understanding customer's situation, etc.
Coding is hardly taxing and time consuming when there is clarity what needs to be done and how it needs to be done.
Point #4 itself has sub-dimensions like performance, maintainability, test-ability, security, etc and it involves lot of subjective calls. Sometimes you have to deal with undocumented behavior of an API which is a tribal knowledge.
To troubleshoot in prod (esp subtle issues) require deep knowledge of the code at hand. This itself is a challenge when you are dealing with generated code and something you have not written yourself. Think about a human dealing with an existing large code-base when joining a team.
I understand all of the above is a spectrum and there are jobs in SWE which do not require so much rigor.
Key ability for breakthrough and the rest will fall in place: Code generated by AI is consistently put to production without human intervention for a sufficiently complex problem considering all good attributes (like backward compatibility, performance, etc)
Software development involves:
1. Understanding the requirement
2. Solving the problem with given constraints (and thereby innovate)
3. Talking to stakeholders
4. Code (& unit tests)
5. Review #4
6. Troubleshoot in testing
7. Troubleshoot in prod, both perf & subtle issues (this is hard)
8. Take the input from #6 & #7 and use it as a feedback back to #2
9. Answering questions from users/support which involve suggesting workarounds and not just factual answers. Suggesting a workaround itself is a mini-problem solving which is an intersection of domain knowledge, knowing code at hand, understanding customer's situation, etc.
Coding is hardly taxing and time consuming when there is clarity what needs to be done and how it needs to be done.
Point #4 itself has sub-dimensions like performance, maintainability, test-ability, security, etc and it involves lot of subjective calls. Sometimes you have to deal with undocumented behavior of an API which is a tribal knowledge.
To troubleshoot in prod (esp subtle issues) require deep knowledge of the code at hand. This itself is a challenge when you are dealing with generated code and something you have not written yourself. Think about a human dealing with an existing large code-base when joining a team.
I understand all of the above is a spectrum and there are jobs in SWE which do not require so much rigor.
Key ability for breakthrough and the rest will fall in place: Code generated by AI is consistently put to production without human intervention for a sufficiently complex problem considering all good attributes (like backward compatibility, performance, etc)
I agree but so far mainly philosophers & intellectuals used to ponder. With advancement in tech many believed that intellectual or creative work is safe. I think now this is a jolt to a lot of white-collar folks who are looped in with the recent advancements in AI.
Its not that intellectual or creative work will vanish but a lot of the current work will be commoditized.
PS: It will be fun to do in "damn nature u r scary" voice & style [1]
Interviewer: What would you say if man walked in here with no shirt, and I hired him? What would you say?
Will Smith: He must have had on some really nice pants.
Go has some really nice pants i.e Simplicity with good enough performance, backed by big corp.
Simplicity scales!
[1] Assuming that the merge has happened since the announcement was on Oct 16
> drivers unfamiliar with the layout People familiar with the layout drive even when the markings are completely faded. It causes lot of anxiety if you are not familiar. It happened to me once where I was in a wrong lane. I continued on it as it was the most safest thing to do but the next exit was onto a motorway :). I was so angry with myself.
If you are in a wrong lane, the safest thing is to continue on it, exit the roundabout and comeback again or go around the roundabout.
This is the round-about layout [2]
None of the above tell the precise lane to take. Only when you enter the roundabout you will know. See.[3]. Imagine cars waiting on these markings. This is what frustrates me the most.
[1] https://www.google.com/maps/@51.5066257,-0.5789164,3a,75y,32...
[2] https://www.google.com/maps/@51.506316,-0.5784722,3a,37.5y,2...
[3] https://www.google.com/maps/@51.5076664,-0.5804344,3a,75y,29...
When visiting for the first time on a specific spiral roundabout:
1. Lane markings are faded
2. You do not know the specific lane unless you come very close to it and have to make a quick decision
3. Often due to queued traffic you cannot even see the lane marking until its too late.
Because of this I have seen people change lanes on a roundabout because they made a mistake and its dangerous.
[1] https://www.google.com/maps/place/Sainsbury's/@51.5080462,-0...
Increasing test duration means the backlog (which is already huge) will increase. Keeping same will mean less road features will be tested.