I was communicating with my local Python User group, and got an opinion from 
one of the members a lot like this.  Unfortunately I don't have the 
experience to answer effectively.  Here is the response that I got: 

I don't really have time to get into an epic religious discussion but
I'll try and sum it up nicely:

1. Think of exec/eval tools as weird magic best left alone. Regardless
of the complicated arguments, the truth is that simply debugging code
in an exec/eval argument is much harder. It means your variables are
stored in variables of variables. Web framework building is hard
enough without tossing in that sort of complexity.

2. I'm no security expert, but I do know that security experts always
raise the flag on Security-by-JavaScript (cough... facebook...
cough...) and exec/eval statements. If your code ever gets audited by
someone competent and they see exec/eval statements in your underlying
framework they are going to go postal.

3. SQLAlchemy, libcloud, psychopg, flask, Pyramid, Django, Zope,
pygame, scipy, and 99% of the Python world does things as explicitly
as possible. They don't do extra imports for you in their controllers
or modules, which seems like extra work in the short term. In the long
run, you know EXACTLY what is going on in a file - and that counts for
so much.

4. JKM's major rant on reddit was that this behavior defined in point
#1 above makes Web2py different than the rest of the Python world. And
that they are training a breed of new python developers who expect
different behavior in code then the rest of us. Call me a fanboy (and
employee), but he's right. If you have a problem with Web2py the
majority of the people on this list or any python list will be
crippled in their ability to help you. On the other hand, any of us
can figure out the individual components of flask, sql alchemy and
more because it is following the common pattern. So that means while I
may not know much about SQLAlchemy, I can figure out what's going on
inside.

Reply via email to