On Sunday, 1 September 2013 at 14:37:13 UTC, Manu wrote:
On 1 September 2013 20:22, Gary Willoughby <d...@nomad.so> wrote:
On Sunday, 1 September 2013 at 02:05:51 UTC, Manu wrote:
We all wanted to ability to define class member functions
outside the
class
definition:
class MyClass
{
void method();
}
void MyClass.method()
{
//...
}
It definitely cost us time simply trying to understand the
class layout
visually (ie, when IDE support is barely available).
You don't need to see the function bodies in the class
definition, you
want
to quickly see what a class has and does.
Uggh! I absolutely do not agree with this. You should rely on
documentation or an IDE class overview for these things *not*
alter the
language. In lieu of IDE support just use ddoc comments for
methods and
properties and compile the documentation for each build.
I think that's unrealistic. People need to read the code in a
variety of
places. Github commit logs (limited horizontal space),
diff/merge clients,
office communication/chat tools.
If the code depends on an IDE to be readable, then that's gotta
be
considered an epic fail!
Give me one advantage to defining methods inline? I only see
disadvantages.
Lots of them.
That's because you're suggesting that if we can't get an
immediate overview of class code then it's unreadable which is
complete nonsense. Classes do sometimes grow and become large and
getting an overview is hard but that doesn't mean the code is
unreadable or of low quality. In fact if the developers have
bothered to write the associated ddoc comments while developing
the code, creating overviews is as trivial as adding -D to the
compile command.
An overview of the class's interface should be the job of the
documentation or a nice tool such as DDOC, an IDE class overview
(there are many), class diagrams, ctags, etc...
IMHO it's total folly to further complicate the language to
provide you with something that already exists and i think this
particular point is just because of your personal preference on
how code should be structured which is obviously drawn from C++.