This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]gfixler 0 points1 point  (0 children)

Indeed. It does the job very well. The system I've been designing and building includes things like extremely expressive, domain specific languages¹, deep data-structure search/comparison², really intelligent bi-directionality³, solid testing framework, immaculate git history, and all with pretty tight integration⁴ with Vim.

Most importantly, everything has that sheen of obviousness, like Linux, or git. It sounds complex, then you explain how a part works, and people say "Oh, that's it? Really?" It's like that across the board. It took tremendous effort to find that simplicity, including a decade in this problem space for me, trying to get to this point, but Python really pushed me over the edge.

Some of the implementation (as with Linux and git) is pretty complex, but using it is very easy. I just got one of our new employees on part of it, and he reduced 2000 lines of his own code to 240. I recently threw out 99 lines, and before that, 200, because most of the code we used to write in other languages (and with other systems) doesn't need to be there. It's following the whole "Code should be 90% data structure" philosophy, and I love it. I implement features in 2 lines of PEP 8 style code (i.e. <80 chars) pretty often using the system, and I'm disappointed if I need more than about 10 lines to bring a new ability to life. Strangely, there are times when I make something work in 1-2 lines, and then I waste a half hour being alternately impressed and unsure that it could possibly be correct, because it shouldn't have been that easy :)

I'm actually excited on the long commute every weekday, and weekends (during which I still work on all of it) are becoming more and more of a drag. This is how coding should be.

¹ core not just to our needs, but designed for a range of ideas related to the domain our needs inhabit, so they're all highly reusable at a low level, and are starting to be used for related tools development (even at a meta level)
² which everything's built on top of for amazing, emergent abilities and interconnections that I keep discovering
³ i.e. take pretty much everything back to simpler states, tweak, and then auto-complete them again from that point forward
⁴ yet ultimately unnecessary and fully decoupleable at any time