Linked by Thom Holwerda on Wed 7th Mar 2007 22:27 UTC
Java "Although the .NET vs. Java war is basically over for control of the Windows desktop, where .NET is sure to become the managed language of choice for new Windows desktop applications, there is a new battle brewing. That battle is for the Linux desktop. Now that Java has been open sourced under the GPL, even the most strict of the 'free software only' distributions can start bundling it and integrating it into their Linux distributions out of the box."
Thread beginning with comment 220251
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[7]: Only Two Choices?
by Mystilleef on Sun 11th Mar 2007 00:54 UTC in reply to "RE[6]: Only Two Choices?"
Mystilleef
Member since:
2005-06-29

Your claim that dynamically typed languages is not good for "complex" projects/problems is bogus. I could care less if Python is your most or least favored language.

Reply Parent Score: 1

RE[8]: Only Two Choices?
by msundman on Sun 11th Mar 2007 02:25 in reply to "RE[7]: Only Two Choices?"
msundman Member since:
2005-07-06

> Your claim that dynamically typed languages is not good
> for "complex" projects/problems is bogus.

I can't speak for the guy making that claim (or for anyone else for that matter), but I personally think types add readability, a lot.

E.g., consider these two lines:
var perms = getPerms()
Map<User, Set<Permission>> perms = getPerms()

Which one conveys more information?

The added information brings with it the burden of having to write more (although good code completion support helps a lot). If typing is optional many people don't use it, so as long as I don't have complete control over all code I use I want the language to have static typing.

Reply Parent Score: 1

RE[9]: Only Two Choices?
by Mystilleef on Sun 11th Mar 2007 03:53 in reply to "RE[8]: Only Two Choices?"
Mystilleef Member since:
2005-06-29

If by readability, you mean more noise and clutter in source code, then I agree. If by readability, you mean the ability to decipher code, then I disagree.

Programmers don't decode code linearly, or one line at a time. Code is decoded in context of modules, classes, functions, blocks and surrounding code. Lets take your example:

perms = getPerms()

As far as I'm concerned "perms" is just a reference to data containing information about permissions. Cognitively speaking, that's perhaps all I need to know. Information about its type, size, properties, methods, attributes or behavior is almost likely irrelevant and thus a cognitive burden or distraction.

What's most important is if I can figure out the purpose of "perms" in the context it is being used. I don't see how prepending type information before "perms" makes code easier to decipher. Does it really matter whether "perms" is a float, string, list, vector, integer or custom object? Or is all we need to know that "perms" is just data containing information about permissions? My response to the last two questions is No and Yes for most situations.

The reality is that type information in source code has historically and conventionally been used to aid archaic compilers (especially for performance and optimizations), not to promote readability. The good news is that Modern sophisticated compilers can now determine, or "infer", type information without you having to litter source code with noise and largely irrelevant information (e.g. type information). Hopefully, the next generation compilers will have this as a mandatory feature.

I just don't see the correlation between adding type information in source code and improved readability. In fact, I see just the opposite.

Reply Parent Score: 1

RE[8]: Only Two Choices?
by ma_d on Sun 11th Mar 2007 04:34 in reply to "RE[7]: Only Two Choices?"
ma_d Member since:
2005-06-29

I said it posed a problem, that's a very different statement. However it's good to know that you are all knowing. Thank you for your grand wisdom, it has truly enlightened me.

Reply Parent Score: 2