What I've learned this (And several past) Week

Virtual Machines - why you should want them

Here's the one cool thing about working with a virtual machine (Like VMWare):
You can copy it for somebody else to work with.
Say you're part of a dev team, and your environment needs some adjustments: You need your Eclipse to use some specific configuration to work with your custom build tools, and to connect to the version-control server with a specific protocol - the whole thing might take a day or two to setup when a new member joins the team.
But if you use a VM as a standard, you can do this setting once, and just copy it for any new member, and they're all set.

Dynamic Languages, Done Wrong

I've been working with "Dynamic languages" for a very short time, but I know what bugs me about it: The code is very non-self-documenting.

There's a lot of "overhead" when coding in the more traditional "static" languages: All that annoying decelerations of types, and function parameters, and generally having to specify for each element what it can get and what it has to give - all the good reasons to use a dynamic, "just works," language. Because, really, the computer can figure it out - so why must I write all that junk?

Because the source code was never meant for the computer. The source was only there for humans - especially the human that would come after you've gone, and try to make heads and tails from your program. Maintainability, I believe it's called.

When reading code, all these pesky constraints act as documentation - they help figure out what that function expects and what it might give you back. That's even more important as your program turns bigger, and uses several layers of framework: you end up with functions that don't directly do things, but rather just pass their arguments to all sorts of other functions. Sometimes you need to dig 3-4 layers down, just to figure out if some function needs a specific string or a set containing that string. Or possibly a functions that returns a string? Or maybe it can handle each of them? If only it had some sort of hint about it - like maybe a typed argument, I wouldn't have to guess...

Comments

You're right twice and wrong once

The problems you describe in the second part of the article, apply to the first part too. Once you have your dev platform ready and you can copy it to your peers, there's no way you'd remember , there's no way anyone will ever know how to make things work, when the next version of the IDE arrives or when you need to add a subproject or something.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.