Every language has its negatives.  English its awkward spelling;  French its impossible-to-acquire “chanson”; and Japanese its multiple alphabets.

And C#?   What about it? It has no preprocessor macros!  And unlike the natural languages, C# lacks the excuse of having acquired this flaw by accident.  Designed with guidance from ancestor languages – C, Java, FORTRAN, C# corrected their flaws in many areas.

But as is often the case with remakes – think Psycho and Breathless – the baby gets thrown out with the bath water.  In this case the designers of C# wanted to avoid the bad coding practices of preprocessor macros … by eliminating them altogether!

Yup, what Hutus did to the Tutsis, the CUP (Turks) to Armenians, the Nazis to Jews, Mao to free-thinkers and so on, that was the solution the C# designers came up with.  The final solution.  That is so 20th century.

So now we have our Microsoft apps packed with long-winded, hard-to-read monstrosities like this:

public short ContactMethodTypeId
{
get
{
CanReadProperty("ContactMethodTypeId");
return _contactMethodTypeId;
}
set
{
CanWriteProperty("ContactMethodTypeId");
if (_contactMethodTypeId != value)
{
//_oldcontactmethodtypeid = _contactMethodTypeId;
_contactMethodTypeId = value;
PropertyHasChanged("ContactMethodTypeId");
}
}
}

In previous generations we could have just replaced all those lines with something as short as “qprop ContactMethodtypeId”.

Faster development.  Easier maintenance.

Tags: Staffing Software