


When I say end users, I mean people who are just loading packages and writing scripts where they plug variables into functions from the package. Well written pure julia programs tend to be about as fast as C, or in other words about 100 times faster than Python or R.īefore that gets you too excited or sceptical, let me say that end users will not really see many significant speed boosts. That's the way to solve the problem for good - so you can avoid the downsides while reaping the benefits at the same time. they just realize their mistakes are a natural artifact of being in the learning process and instead of abolishing gears, they keep practicing more so that they eventually get the muscle memory to use their vehicle properly and don't have to think about this problem every time. I mean, that's definitely one way to live your life, but most people don't do it that way. If I can make an analogy, it's a bit like saying bicycles should only have fixed gears as a "safety net" because you've broken or slipped your variable gears in the past and now you've just learned to take a car or train if you want to go faster than first gear. In all brutal honestly I think you just need to realize this is just you being upset at having shot yourself in the foot at some point (don't worry, we've all done it) and then trying to blame it on closures somehow, in this case by saying this makes them a "less useful abstraction". Whereas I'm actually not even sure it is possible to construct a situation in scheme (not at the top level) where you could induce a situation similar to the one in python.
Julia 1.1.1 in atom for mac free#
In theory the implementation of closures is the same, but in python's case you are free to mutate yourself into unexpected situations. In a source file you have to explicitly use set! to mutate a so it is harder to shoot yourself in the foot. Your example is true at the top level in scheme, but semantics in top (REPL) are different (at least in Racket ).
Julia 1.1.1 in atom for mac full#
Fair enough, I think my complaint is more about the fact that closures and python are not accompanied by a safety net the way they are in some other languages, that doesn't make them not closures, it just makes them a less useful abstraction (I've basically given up on using anything other than full objects and list comprehensions in python due to the countless subtle and often silent irregularities in how a form behaves when used in different contexts).
