Every week here and in our newsletter, we feature a new developer/blogger from the DZone community to catch up and find out what he or she is working on now and what's coming next. This week we're talking to Steven Lott, a Python developer, author, and frequent DZone contributor. Some of his most recent posts on DZone include:
- Architectural Principles, Spring Framework, and Jersey JAX-RS
- MongoDB and Schema Validation
- Declarative Programming
1. What have you been working on lately?
Right now, I’m working on two things. My day job is writing public-facing API’s for a major bank. I’m finishing a book on Function Programming in Python. I’ve just submitted an outline for another
Python book to Packt publishing. Hopefully, I can limit myself to just this. The On The Water Cruising Guide publisher has an interesting content management problem. That’s something I’d like to tackle someday.
2. You seem to identify mostly as a Python developer, although you write on several topics. What are some of the most enjoyable and least enjoyable things about coding for Python? Where do you see Python development going in 2015?
I’ve been using Python for the last decade because Python has many advantages over other languages. The rich ecosystem of add-on libraries and products is important. The lack of any barrier
to entry is very appealing. One download of the Python runtime, and you’re good to go. You can use any programming editor. You can write finished code at an amazing rate. You can create technical spikes so quickly that it feels like cheating. Even though my day job is centered on Java, I use Python for modeling, experimentation, one-off data crunching, and other non-deliverable tools and support.
3. Are there any particular developer tools or resources you couldn't live without?
As a contractor, I worked on just over a hundred different customer projects. I’ve used a lot of tools. I’m old: I started with punched cards (really!) I haven’t been able to lock onto any particular tool or tool suite because I haven’t been in one place long enough. I’m a big fan of Active State products, however, and make heavy use of Komodo Edit. But, I also use BBEdit because it does a few things Komodo Edit doesn’t do.
4. Do you have a favorite open source project (or projects) that you've contributed to recently?
I haven’t been able to get deeply into too many of the open source projects. I’m far too casual a user of most components: if it works, I’m happy. If it doesn’t work I move on rather than propose fixes. There are two tiny changes I’d like to make to one of the modules on the Python logging package, but I haven’t even taken the time to look closely at the source.
I’ve got a few small things that I’ve uploaded to GitHub ad SourceForge. These have a few downloads and some associated bug-fixes. I’m a fan of literate programming, and one of my literate programming projects misused a Python feature. The feature was deprecated and finally removed in Python 3.4 leading to breakage. Embarrassing for me to have so casually depended on a deprecated feature.
5. Do you follow any blogs or Twitter feeds that you would recommend to developers?
I think that the “Civic Hacking” folks are doing some of the best work around. What’ best is the way they are doing good things for their communities. I’m a fan of @mheadd, @kmcurry, and @waldojaquith. I think this is important work. I encourage everyone to locate their local group of hackers and see what can be done to help their community.
6. Did you have a coding first love -- a particular program, gadget, game, or language that set you on the path to life as a developer?
I look back with fondness on my old Apple ][+ and the UCSD P-system. I can’t emphasize how much I learned from having this resource available. I think the Lightspeed C compiler on the original Macintosh was also important. Today, it’s hard to imagine that legendary Epoch Before PC’s. In the Olden Days, it was very difficult to learn new technology when there was only one computer for an entire corporation. I hesitate to think what my career might have been like if I hadn’t climbed out of the corporate box using the P-System, GraForth, and Lightspeed C.
7. Is there anything else you'd like to mention?
I think another thing of interest to devs are resources like Steve Skiena’s http://www.algorist.com. I think a great many developers don’t have enough background in the fundamentals of data structures and algorithms. I’m often slowed down having to explain something like Levenstein distance to team members who don’t have a good set of resources they can learn from. I think that the Introduction to Algorithms is another epic work that should be available in every sprint team room.