Use the right tools for the right job. And feedback all the way!
I present my set of tools.
In no way do I claim these are the supreme tools. As always, your mileage may vary.
The only claim I make is that they make me fast.
As I already explains time and time again (links to add), I'm feedback driven.
I want to:
- have feedback immediately after I executed a command/function
- know if I'm wrong now, not later
- believe… (oops, bad context)
Because ideas are as fast as poping out of nowhere as disappearing into nowhere…
Sometimes, it's right to think and think again and go implementing later… And sometimes, it's better to go think and tinker along the way too…
I believe that this feedback loop is the very nature of mouvements like:
- agility (as in `small sprint to show rapidly to the users something that works`)
- devops (as in `reproducible environment as soon as possible to avoid later trouble`)
- tests culture (as in `testing the runtime now and not when the application will be deployed)
I'd need to revisit this video but what at some point showed me I was hitting in the right direction was this particular video: Bref Victor - Inventing on principles and some consequences it had.
As a result, Chris Granger reacted immediately (it appeared as much to me) and came up the very next day with an equivalent demo in clojurescript. Then some time after that, Chris Granger came up with LightTable, to try and exercise what he thought was possible.
It is an awesome idea which embraces further the notion of feedback.
Here is my non-exhaustive list of tools I use to:
Stable, user-friendly, extendable, reproducible… These are unavoidable qualities.
It's not an editor, it's an environment extremely extendable.
The emacs like window manager!
Note I switched to XMonad but I'd recommend anyone to give it a try.
In a graphical world, one has to display graphical software and what a pain it is to manually place windows. XMonad takes care of this for me. What a nice dude!
Also I kept the way I called my applications from the stumpwm window manager (that is, I use a prefix key, `C-;` then another binding and this triggers the run or raise action for the particular application).
To do things, one has to organized
The emacs terminal session manager!
Firefox, the emacs way!
No mouse (as much as possible, unfortunately, some site use some shitty js/css thingy that force the user to use his/her mouse)
Versioning every bit of data!
Virtualize or test in sandbox environment!