One of the teams I’ve been spending a lot of time talking to lately is the folks over in the CLR who bring you IronPython. Overall, it’s been a very enjoyable experience, as they’re a smart bunch of guys who have a lot of experience with building dynamic languages and libraries and such. One of the unexpected benefits, though, has been psychological. After spending the past nine years interacting mostly with languages that were derived from C, it’s amazingly refreshing to talk to people who work in a language that has more of a cultural affinity with our own language.
After all, if the C-style languages do things one way and VB does it another way, it’s a bit like a 4-on-1 situation since you have C, C++, C# and Java all lined up on one side and VB on the other. And as much as we relish being the maverick, it sometimes helps to be reminded that there are more things in heaven and Earth than are dreamt of in Kernighan and Richie’s philosophy. (And this is no knock on those guys, BTW, they did amazing work that’s stood the test of time.) This isn’t to say that VB and Python are amazingly similar–after all, Python is still case sensitive–but still… I think it also helps that the Python folks deal with the same kind of questions that we deal with vis-a-vis our communities and backwards compatibility. After all, unlike C#, we’ve both got a lot of history to deal with!
Anyway, just a thought motivated by some discussions we were having yesterday about lambda expressions. Oh, yes, which reminds me that that’s my next topic…
Since you brought up case sensitivity. What is it’s value?
It might have value at a system level, but none for the programmer. I have seen professional level programs in C#, where the programmer distinquishes between two variables by their case. This sure does not convey any benefits to another observer.
Case sensitivity? Well for one, distictions between constants and varibles with different scopes.
I’m a C# programmer and must say that case sensitivity is very important for me because I make all my Objects, Methids or … with first big uppercase. If not I would lose myself in the code I wrote.