Worst ideas/features in programming languages?

bauss jj_1337 at live.dk
Thu Oct 14 10:55:14 UTC 2021


On Wednesday, 13 October 2021 at 19:55:29 UTC, Jacob Carlborg 
wrote:
>
>     (int, int) point = (x: 2, y: 4);
>     auto x = point.x + a;
>     ```
>

This would be better if the identifier was tied to the type.

Like below:

```d
(int x, int y) point = (2, 4);
auto x = point.x + a;
```

Because with your example the following fails:

```d
(int, int) getPoint1() { return (x: 2, y: 4); }
(int, int) getPoint2(bool shouldGetPoint1) {
   if (shouldGetPoint1) return getPoint1();

   return (left: 2, top: 4); // Possible error since the named 
values will be different??
}
auto point1 = getPoint1();
auto point2 = getPoint2(true);
auto point3 = getPoint2(false);

writeln("%d %d", point1.x, point1.y);
writeln("%d %d", point2.left, point2.top); // Error
writeln("%d %d", point3.left, point3.top);
```

However it wouldn't fail if it worked like below:

```d
(int x, int y) getPoint1() { return (2, 4); }
(int left, int top) getPoint2(bool shouldGetPoint1) {
   if (shouldGetPoint1) return getPoint1();

   return (2, 4); // Ok
}
auto point1 = getPoint1();
auto point2 = getPoint2(true);
auto point3 = getPoint2(false);

writeln("%d %d", point1.x, point1.y);
writeln("%d %d", point2.left, point2.top); // Ok
writeln("%d %d", point3.left, point3.top);
```


More information about the Digitalmars-d mailing list