After doing new development mostly in C# for the past couple of years, I’ll be creating some major additions to a (legacy) Delphi application soon. I already got Delphi XE7, so I figured what better way to catch up than attending the Delphi Tage which happened to be fairly close again (I attended once before in 2011, when they were held in Cologne).
In the end, I didn’t learn that much about Delphi (except for Marco Cantu’s keynote). Instead, of the sessions offered, the ones that interested me most, were actually not about Delphi at all.
Part of the reason is that I’m skeptical of dynamic languages in general. I have done some Python development and on more than one occasion I have tripped over issues that would have been easily avoidable in a language with strong typing and compilation.
Enter Anders Hejlsberg.
He’s one of my favorite people in software development. That’s not very surprising as he is the “father” of Turbo Pascal, Delphi and C#, the three languages that have determined my path as a software developer from my very first line of code till now.
So in an effort to branch out and learn something new this year, I really want to learn TypeScript and develop something useful in it.
Distributed Version Control
I’ve been an avid reader of Joel Spolsky’s Joel on Software since the beginning of college (i.e. for more than ten years now). So I first heard about distributed version control when his company FogCreek was developing Kiln and he published Hg Init, a Mercurial tutorial.
I didn’t think much of it, because I was mostly a coder then and didn’t care about the tools used throughout the development lifecycle other than my IDE. Today, I know what an impact the right choice of tools has on workflow and productivity. This is why I was particularly interested in this session and hearing peoples’ experience with real-world DVCS usage.
I mostly use Perforce, though for some things I have to put up with CVS (which I’d rather not talk about). Looking at a DVCS such as Mercurial I can see how someone coming from CVS or Subversion could get a lot of value out of switching to a DVCS. However, a lot of the supposed advantages of using a DVCS, I think, are really things you can do with a centralized version control system; such as larger number of smaller check-ins instead of just one check-in a day or one a week. It’s really just a question of how you and your team decide to work. With the way I use Perforce, I think I’m already doing 90% of what’s supposedly so great about DVCS.
One thing I was quite shocked by was learning how many people in the audience did not use a real version control system at all. Instead they used group messaging to tell others what they are working on and thus “lock” a file, or resorted to regularly zipping and archiving their code manually.
As a next step, I want to give Kiln a try (it’s free for up to two users) by storing my .NET Gadgeteer code there. This is a project I stared about two years, yet never really finished. But once the code is there, I want to improve it and finally get it working with Wifi. For that, I’m also going to get the latest version of Visual Studio Express as that comes with full support for TypeScript and I can play with that, too. We’ll see how it goes.
It was a fun day and even though I don’t do much with Delphi these days, it’s nice seeing the community. I like the fact that it’s rather small and you have the same people popping up everywhere. If you’ve ever asked a Delphi question on Stack Overflow, you’ve probably interacted with some of them already.