top | item 27355755

(no title)

gagege | 4 years ago

I use D every day at work (inherited codebase) and the UFCS bothers me to no end. I try not to use it.

discuss

order

0dyl|4 years ago

That's understandable. Not for everyone.

Different situation, but I do admit when I first got into D I was wary of the UFCS feature and I avoided it, too.

Over time it felt a bit more natural and I began to appreciate it.

schveiguy|4 years ago

There are "bad" uses of UFCS, and good ones (sometimes depending on preference). For example, I hate code like `1.writeln`.

The major feature that it provides is pipelining (as shown in the article)

crazypython|4 years ago

Adding a method to a class you don't control is also useful.

zombinedev|4 years ago

> I hate code like `1.writeln`

Meh... after not more than my first month into D this syntax grew on me and now I just use `1.writeln` everywhere. More than a few years later, I can't think of a single issue this has ever caused me.

jimbob45|4 years ago

Can you expound upon why you feel that way?

gavinray|4 years ago

UFCS as a concept is fantastic but the one hangup is that D's language server implementation by the community and its IDE integration can't handle it because of the complexity.

https://github.com/Pure-D/serve-d

https://github.com/Pure-D/code-d

(I can't remember if the Visual Studio extension, VisualD handles UFCS or not)

http://rainers.github.io/visuald/visuald/StartPage.html

It's possible to implement, because Nim's language server handles UFCS, but atm D's doesn't do it (it's written pretty much by one people)

So personally I avoid UFCS except for very simple/common function like "to!" because it breaks the intellisense for that call.

Though if I knew the language inside and out probably I wouldn't care.

It's still my "favorite" language.

-----

SIDE NOTE: This single person wrote the D lang server, and has maintained it, written and maintained the VS Code extension, and other fundamental tooling + libs for years.

https://github.com/sponsors/WebFreak001

If you use D and feel like sponsoring someone, consider sponsoring them, or Rainers (VisualD), or the maintainers or LDC or GDC, also single individuals for the most part.

LDC Maintainer: https://github.com/sponsors/kinke

GDC Maintainer: https://github.com/sponsors/ibuclaw

jhvkjhk|4 years ago

Can you explain why? I have never used D, but I think UFCS is really convenient.

p0nce|4 years ago

I don't know for GP, but UFCS functions just litter the auto-completion tab for me. It's also not always readable.