3 ms·
I think we're in agreement without quite realizing it. These are examples of efficiency, not scalability. This distinction isn't quite binary, and Ahmdal's law
by jasonwatkinspdx 18y ago
I think we're in agreement without quite realizing it.
These are examples of efficiency, not scalability. This distinction isn't quite binary, and Ahmdal's law is a good approximation. But for the discussion at hand we can generally ignore the serially dependent portion of the workload.
Also, I'm speaking of systems architecture, not program architecture, so whether tail calls are interpreted or compiled doesn't really apply.
To make my point more clear: I'm absolutely certain you could write twitter in pure ruby, even at it's current traffic level. It's also likely this wouldn't make sense, as the economics would be wrong. But the economics would be due to efficiency * hardware costs as compared to programmer staff costs, not any limitation of scalability.
I would grant you that there are a few exceptional cases where the language really does constrain the system's architecture (non turing languages and jailed languages with limited connectivity options) but those are never the languages being discussed in "does it scale" debates.
- ilkhd2 18y agoI have to disagree. Let us take an extreme example - Erlang. It has very interesting design, which enables you to create highly scalable but quite ineffecient program. There is something in Erlang, that affects _system_ architectures that you can create with it. The notion of scalabiliy - it is how it scales, how fast the performance degrades with number of users, and for some paradigms there is a necessity of support of them in the language. erlang exists only because people wants scalable solutions even though quite slow. From what I said it seems for me that it is obvious that some _languages_ do scale and some do not.