Previous | Next --- Slide 12 of 73
Back to Lecture Thumbnails
trip

Here, productivity refers to the amount of code that a developer is able to write, as a function of the accessibility of the language's features. A "productive" language will offer more high-level support for devs so that they can focus more on the behavior side of the abstraction boundary.

bmo

This is another reminder that system design usually involves making trade-offs. So in this case, it is hard to provide all 3 properties. These languages provide 2/3. For example, the C++ architect preferred to go with generality and performance, and gave up on productivity.

fizzbuzz

I think productivity can be particularly tricky to quantify. Here we have Python categorized as a highly productive language, and I would agree that this is true especially for prototyping, hacking around, scripting, and some other specific tasks. However, I think that the lack of safety and static semantics in Python makes it highly unproductive for larger projects and systems. On the other side of this tradeoff is a language like Rust which has a very strict and powerful type system, and thus is harder to write simple algorithms in than Python, but for larger projects that live longer the safety guarantees and compiler errors end up being a productivity boon.

Please log in to leave a comment.