Negative work is when someone does work so badly that it takes more time to correct their errors than it would have for them not to do the work at all.
Negative work is when someone does work so badly that it takes more time to correct their errors than it would have for them not to do the work at all.
For a given task, random programmers are quicker at achieving the goal with dynamic programming languages. That's why scripting languages are popular. They are also easier to learn.
You don’t have to dig through the codebase to figure out that a function should have only accepted a number, because the interpreter/compiler would have screamed at you the moment you try something else.
Scripting languages may be easier to learn, but they aren’t as scalable and efficient. In requiring less scaffolding and structure, they’re not as well suited at creating correct code in large codebases. They’re still great for prototyping, though.
I've softened a little bit about scripting languages. They are great for small functions like AWS lambdas and "scripting" like the UserData portion when you're setting up a VM in AWS.
What I have in mind is a language able to convert functions calls from dynamic to static (and the opposite). If the compiler can infer the type, the call is static else dynamic (with multidispatch for function overload).
My experience is Javascript and even PHP scale better than C++. I do a lot of type checking and I don't use OOP features.
But as far as using C++ and not using OOP, as thevold saying goes, you can write FORTRAN in any language.
I think Smalltalk is the most productive language because of its VM (builtin IDE, DB...) and not because of OOP.