On Wednesday, 15 June 2016 at 12:14:45 UTC, Ola Fosheim Grøstad wrote:
On Wednesday, 15 June 2016 at 11:33:23 UTC, Chris wrote:
But Python for example doesn't care.

Python is fairly dynamic and static analysis tools such as PyCharm helps a lot when you write larger Python projects.

What you describe is basically trying to mimic static typing.

No, you can have something like this:

var  x = f(42);

if(x>100) freeze x;

// whether x is immutable or not is not statically known at this point

But 'freezing' ain't got nothing to do with the type. It's basically D's `immutable`.

In my experience, statically typed languages prevent a lot of silly and time consuming bugs by simply checking the type. If, after a few changes, function arguments don't match, the compiler (or interpreter) complains immediately. In Python the code may still work:

`
def loophere(variable):
  for i in variable:
    print (i)

loopy = "Ola, mundo!"
loophere(loopy)
# Developer decides that `loopy` should be a list of strings
loopy = ["Ola", "mundo", "!"]
loophere(loopy)

`


Reply via email to