On Friday, 1 June 2012 at 17:07:57 UTC, Sandeep Datta wrote:
I would add that "fptr = &function;" makes it _clear_ what is going on there, otherwise I would have to go and find what "function" is...

There are two contradictory issues at work here which need to be balanced with each other...

1. While writing code we expect the compiler to understand what we want to do without writing a lot of code. Compiler inference is a boon here. D has some features supporting this (like auto).

2. While reading code and while trying to reason about the program we want the program to be self documenting and simple. Often as is the case with natural languages some redundancy is required to accomplish this. This makes a language verbose and increases the difficulty / effort required for writing programs.

We don't have many tools which can help us with item #1 but we do have tools which can help significantly with item #2 (eg. IDEs, static code analyzers etc) so IMHO we should design our languages to help us with item #1.

Removing the ampersand is one small step in this direction. Though I agree upfront I have not mastered all the nuances of D to even know if this is possible at all at this point of time.

Wrong. Preferring #1 over #2 completely ignores real life usage.
What actually happens is that we read code more often than writing it (orders of magnitude more) and we also read other people's code as well. Obviouisly we only write our own code.

This raises nightmares of my time as a junior developer maintaining code written by some morrons that decided to name functions with 4-letter abbreviations without any form of documentation what so ever. While I'm sure the original code was very clever and made perfect sense to those original developers and those abreviations were trivially obvious to them, it certainly has no meaning whatsoever to a new guy 30 years later.

So no, prefering ease of writing over ease of reading is a STUPID MORONIC WRONG idea. In fact, all those fancy modern tools such as IDEs help write more readable code by auto-completeing long function names, aleviating the need to used criptic abreviations for faster writing sake.

/rant

Regarding the specific issue of the & - I think that it's a little more consistent to not have it but given the technical issues raised by others it ain't worth it at this time.

Reply via email to