halgari/clojure-py — Issue #25: Remove nested classes and static methods
Author: halgari
Created: 2012-02-20 14:18:33+00:00
State: open

At first, I thought that nested classes would work well in several places where a given class is only used by a parent class. However it seems that some systems, like Pickle, don't agree with this viewpoint. In addition, it often doesn't make much sense to have to do ```Symbol.intern``` instead of sym("foo") to create a new symbol. So I suggest the following guidelines:

1) No nested classes
2) All static methods should be created as module-level functions. Functions that construct a given type should be named in lowercase and given a logical name.

```Symbol.intern``` becomes ```symbol``` or just ```sym```
```PersistentList.create``` becomes ```persistentList```

etc.