4 ms·
Thank you for this wonderful explanation. Here are benefits that I think might justify the cost. - Easier code browsing: What is the body of this function? Wh
by jmiskovic 7y ago
Thank you for this wonderful explanation.
Here are benefits that I think might justify the cost.
- Easier code browsing: What is the body of this function? What are some optional arguments not used here? Where else is this function called from?
- When teaching, ability to chose depth of visible code means more focused learning. For example, start from overview algorithm with function code collapsed, and then expand one by one to dive into each.
- Reduced mental overhead due by eliminating concept of 'physical' location of code. No refactoring to extract common code into separate module, just reference same subtree from multiple locations.
- Persistent code structures would allow for specializing a function to work differently in one place, while other callers still point to older implementation (until you decide that new implementation is superior).
- A more strict tree-based approach to code would bring in many more visualization and manipulation techniques. It would be sort of seamless blend between text-based and visual programming.
Regarding Git capabilities, I feel that Datomic model would provide much of same benefits. It would even allow for complete history of development without manual effort of checking in. Of course, talk is cheap and these are just random ideas.
I'm not really complaining about Clojure. Its success is mostly due to pragmatic choices. I'm more curious has anyone put serious thought into purely tree-based lisp, and decided that it is somehow worse than top-level + s-expressions?
- stonemetal12 7y agoAre you suggesting an image based model like smalltalk? >Easier code browsing At the cost of throwing away all the standard tools and starting from scratch. No files means no grep, no emacs, no nothing until a replacement, plugin, or work alike is built.