Re: Speed obsession
Leaving AI aside for the moment, in the practical world, time is money. If you're doing something for a client or customer, then the number of man hours to get the job done is going to have a direct effect on the cost to the customer, and customers have finite budgets.
The big advantage to humans when developing something in Python is that you can write incrementally, testing as you go. If you are dealing with a problem that is a bit tricky, or something that you are unfamiliar with, you can very easily work on that one little bit separately, including typing (or copy-pasting) directly into the interpreter window, test it thoroughly, and then copy it into the part of the application you are working on, then then so on for the next bit.
This is a much faster way of working than typing a mass of code into an editor for a few hours, hitting compile, and then wading your way through masses of compiler errors, followed by wading your way through masses of seg faults and the like. It's faster that is if you measure things in terms of time to getting a final working product as opposed to just counting number of lines of code written (and re-written, and re-written) per day.
That doesn't mean that Python is suited to every problem. It does mean though that it is particularly suited to problem domains where a key criteria is developing working code and delivering it to a client on a tight schedule.
If you read the summary of the talk which Scarf gave about why they originally adopted Haskell, even then he stated that Haskell's build times were a major problem for humans to deal with. He also mentioned very limited library support, painful dependency upgrades, and "type safety" not actually working as well in practical terms as it does in theory (same type does not necessarily mean compatible meaning).
This doesn't mean that Haskell is bad, but it does imply that it was a poor choice for what they were doing.
A lot of the benefits that he now thinks he is seeing from switching to Python may in fact be the benefits of switching to a language which is more suited to the problem domain that he is working in.
This is not to say that Haskell is bad, it just means that it wasn't the right language for what he was trying to do. In fact the title of his talk implied that he was aware of that at when he started using it, but that he chose Haskell anyway because he thought it was the "cool" thing to do. He now apparently realized that it was a mistake to put "feelings" ahead of practicality.
I believe that there is no one size fits all language that is best for everything. I have used at least a dozen different languages for commercial projects at various times, and I don't think that having an emotional attachment to a language is a good idea.
The reasons that he gives for why Python is good for AI also happen to be the reasons why it is good for humans to use in the right sorts of problem domains.
So far as AI is concerned, I make very limited use of it and have been very disappointed in how it works out in practical terms. I suspect that a major problem is that English is in fact a very poor means of communicating ideas when it comes to programming, and that some other means of expression will have to be developed to make effective use of AI. That is, I think we need a programming language that operates at a higher level such that AI is just another stage in the compiler, rather than trying to figure out how to put concepts into English and hoping the AI can figure out what it is we were trying to say.