5 ms·
I don't understand why the ACM is so perturbed by Python. Why did the SEC choose Python to begin with? I'm sure that they weren't concerned with the few millise
by agentultra 16y ago
I don't understand why the ACM is so perturbed by Python. Why did the SEC choose Python to begin with? I'm sure that they weren't concerned with the few milliseconds you might lose on Monte Carlo simulations vs a compiled language implementation. While all valid points in one way or another, their criticisms of Python appear to lack context. Did the SEC choose Python for its speed and security?
- kd0amg 16y agoI don't understand why the ACM is so perturbed by Python. I'm only half way through reading it, but these don't seem to be Python-specific objections. A big part of it seems to be contesting the logic behind choosing Python, and they also suggest that there should be a process for having other languages declared acceptable for this purpose. They also worry that differences in versions/implementations of a language may lead to problems with reproducibility
- Natsu 16y agoTrying to let them implement it in any language they want doesn't seem bright. Wonder if someone would try implementing one of these in LOLCODE or Brainf$*%? If it were me, I would be tempted to say that they can write it in anything, so long as they offer a compiled version that targets the JVM. But I might not have given it enough thought and they probably need more requirements than that.
- stcredzero 16y agoTrying to let them implement it in any language they want doesn't seem bright. Wonder if someone would try implementing one of these in LOLCODE or Brainf$%?* My advice: don't buy that one! I say let people code however they want, and the market will decide!
- nkassis 16y agoAgreed, I'll only buy Lisp and Ruby ;p
- stcredzero 16y agoThere's good reasons to have immutables in your financial agreement's code model.
- sqrt17 16y agoKnowing what you can do in Python, I guess they'd like something where you can't do the fancy metaclass things that you can do with Python, because they are rather tedious to implement - ask the Jython and IronPython people. None of their arguments seems to preclude some compiled subset of Python, e.g. what you can feed into the shed_skin compiler (plus some sandboxing...)
- yummyfajitas 16y agoSIGPLAN (the guys who wrote this report) is the ACM special interest group on programming languages. For this reason they will focus their attention on the specific programming language used. It's Phil Wadler's version of "what color is your bikeshed?"
- btilly 16y agoThe SEC probably chose Python because it has a reputation of being easy to read and write. For me the deal killer about Python in particular is that it uses native arithmetic, which means that going from machine to machine, and operating system to operating system any program that uses floating point will have unspecified behavior. I've worked in finance and dealt with programs that use floating point. I've encountered the fact that behavior changes on different machines. Now a 1 or 2 penny difference on a several million bond flow may seem unimportant, but it is unfortunately very important because the first thing anyone in finance does to verify that two numbers match is look at the first digits, the length of the number, and the pennies. If those agree, you move on. So those insignificant penny differences are unfortunately the first thing that gets noticed. Been there, done that, not fun.
- jacobolus 16y agoIf you want, you can use the decimal module: http://docs.python.org/library/decimal.html http://docs.python.org/library/decimal.html
- btilly 16y agoYes, you can code these things properly in Python. However my point is that random code produced by a random bond issuer may not behave in a consistent way. And this could have unexpected consequences.
- jacobolus 16y agoAre there many popular languages which have easy support for floating point decimal numbers? (As in, number literals are interpreted as decimals?) Or do you just want them to use a language with floating point binary numbers, but with a consistent implementation on every platform? (That seems pretty far from ideal to me, too.) Or perhaps a better generalization of my question: is there any language which won’t be abused horribly by Joe random bond issuer? Python seems like a pretty good choice for minimizing the damage a clueless guy can do, and making it as possible as can be hoped for others reading even awful code to figure out what it does.
- protomyth 16y agoACM seems to favor languages with a "complete and rigorous mathematical specification". Python is standardized by having a main implementation, not a formal standard.