It’s nice to from time to time check how technology has developed end what new tools are available to do your job better – or at least see where the world might be going to. Lately I’ve spent some time reading and learning about numerous things, including functional programming and distributed sourcecode versioning systems – but neither of them has yet really rocked my boat.
I’ve read something about both Erlang and Haskell, and yes – I do see some of the value and ideas in functional programming style, but somehow I feel really really hesitant to switch my Java and Python programming environments with tested and proven libraries to emerging ones in Haskell domain. Erlang is well tested in networking world, but the models to think about building applications for the domains where I work now seem little strange at the moment – not the mention the troubles I would be trying to find other people to collaborate and work with me, if the system would be built in Erlang.
But still. I have interests towards both of the languages, if not in any other sense then at least to understand why some of the cool kids are playing with those. Erlang’s concurrency model for example is something would be interesting to learn and understand better the beauty in it’s simplicity.
Ruby of course would also be a natural item to be had on the to-do -list, but somehow I haven’t really found the thing in Ruby compared to Python. And more importantly – Python people have always seem to be much nicer folk than Rubyists. I have personally nothing against Ruby, but I do have something against self centered arrogant Ruby pricks, who behave like Ruby is the last important thing after sliced bread. I pick Guido over those guys any day.
Distributed sourcecode versioning is another thing that has not yet been of great importance to me, but I’ve spent some time figuring out why other people make such a fuzz over it. At the moment my own projects are just happy to be controlled in Subversion, even though Linus says that the model would be fundamentally flawed. Let it be so, but for now the experience of using subversion with well tested gui tools and plugins for example in Eclipse is just so much better than with more experimental tools available for Mercurial or Git.
For me, the experience matters – sometimes even more than the features, since good features are useless if they are not easily usable. I hate it if I need to pay large cognitive burden with new tools, before I can do something simple. After small tests Git is definitely the most promising DVCS, and most likely will be my choise when either the Gui-tools in Eclipse improve or I get a project, where taking git into use is less of a hassle than the features it provides.
For me git’s branching features seem really, really cool and do change the workflow that programmers have or can have. For now subversion is enough for me in my and our project, but one shall see if I will make a small testproject in github and or transfer some subprojects into git if and when we share work more work between multiple partners.