Chris Donnan : Programming - Brooklyn Style
software, trading, family, fun
Posted programming, python, ruby, user experience on Thursday, August 9th, 2007.
I have been spending all my time relaxing, playing with the kids, sitting on the porch reading and looking at the Atlantic. It has been a bit rainy - but still just about perfect relaxation and family bonding.
The reading time has been great. I have also been doing some programming play while my younger naps a few days this week. A good 3 hour nap makes for some good programming play. I have been trying to come up with ways to slay XML - replace with DSL or a real languaga - since we are implicitly programming in XML too often - since it is just text. They used to call this “scripting”….
My thoughts on python are pretty simple:
- __init__ is the ugliest constructor
?? Double underscores before and after?? Why ?? I know they did great things with python - why did Guido and the other smart folks leave us with that one?? - Passing of self everywhere seems to be … excise … more on that later. For those who have not played with python - if you have a class - your “constructor” (initializer) is that __init__ business, the pass of self to the constructor is needed to reference class variables. It is implicitly passed in as the 1st argument. The same goes for methods - if you want class variables - you need the self method argument.

- The whitespace handling is not an issue - I expected to be irritated by it more - but the fact that whitespace is “part of the language” is actually OK.
- Ruby is just much nicer to me. The could be in part because I have done more with it - but it is likely ruby is just more friendly to the programmer…
User experience … for programmers
Since I have been reading Alan Coopers newer book: About Face 3: The Essentials of Interaction Design and Bill Buxton’s Sketching User Experiences: Getting the Design Right and the Right Design I have been thinking again - a lot - about real user experience. While I am really into programming - and finance - I am also really into giving a great user experience. I had the opportunity to work with a really good bunch of people at one of the other financial firms that were really into actual user experience. My current effort involves making yet another end user set of applications - and I am dead set on providing a fantistic user experience.
I went through the normal Alan Cooper-isms (from his former writings) on formulating personas for the user types, understanding the users real goals, and breaking down their task flow. I have also been thinking about another Cooper-ism - “trimming the excise”.
Alan Cooper on Excise:
Each bit of interface involves a little bit of added overhead, what I call “excise,” or extra work that the user must perform merely to manage the idiom, with no benefit to the user or the business. This includes things like moving windows around or pressing OK buttons. Lots of interface elements means lots of added excise. After a while, the user spends as much time flipping between views, scrolling down lists and summoning dialogs as she does useful and productive work.
This is along the lines of “value stream analysis” from business process modeling. Your job as an experience designer is to trim the tasks between the think the user actually wants and what they have to do to get there. If they need to horizontally scroll, do 6 clicks and a few drag and drops to get to the actual thing they want - there are many steps which are “excise” and should be trimmed.
So - I am serious about putting the right info in front of my users - at the right time - so they can make the fewest clicks possible to do what they are actualy wanting to do.
Python could take away a few lessons I think…
So how does this relate to ruby and python?
Well - if you read musings on ruby - you will see that much of the original spirit of ruby (see Matts - ruby author) is simply joy, happiness and simplicity in programming. The efforts to trim the excise from ruby have been strong. Ruby’s author has made sure to give programmers a great user experience with ruby - and this sentiment is profoundly embedded in the rubyist community.
Python by contrast does not really have this feel to me. The need to __ here or there, to pass self around, the way lambda expressions are, they all feel - sub-par. They feel to some degree like there needs to be some syntactic excise trimmed away…
That said - Python is OK. I like it enough that I would use it. It is a real scripting language that has value. I would simply PREFER ruby. Too bad you STILL cannot make a trading system, or a real desktop application (yes I know - Ruby QT bindings are there)… Sometime soon I hope
-Chris
No Responses to “Thoughts from Maine - user experience, ruby, python and more”
Comment on this post below
You must be logged in to post a comment.
You can leave a response, or trackback from your own site.
















[...] Continuing thoughts from yesterdays Thoughts from Maine - user experience, ruby, python and more . . . [...]