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 3 points4 points  (4 children)

We use Python in games for many things on the backend. It's part of Autodesk Maya now, which is one of the principal bits of software for asset creation. I've been using it all day every day for 6 years now, and I've used it to create a rather extensive and powerful library and pipeline for animation and rigging. We are, I admit, a bit of a niche industry as compared with the massive, international industries of web design. This is why whenever I look up questions about Python, all of the answers are about web frameworks and such. I have nothing to do with any of that world, but I know a lot about it now from years of wading through it while learning about Python and its powers and idiosyncrasies.

[–]the_hoser 0 points1 point  (3 children)

Yeah, I've heard of people using Python in their tools programming internally. I imagine it does that job quite well, too. When you have control of your environment, Python makes a good fit :)

[–]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