top | item 27175076

(no title)

entire-name | 4 years ago

Isn't item (3) more of a policy thing rather than a language thing? Granted, I actually never coded in Kotlin (and very very little in Go), so if it's "encouraged" in Kotlin, then your point (3) makes sense.

discuss

order

dangoor|4 years ago

This is actually one of our reasons for choosing Go! We recognized that we'd have to come up with a fairly detailed style guide for Kotlin to reflect how we wanted to generally approach things so that it's possible to jump into another part of the codebase and not get lost.

lima|4 years ago

Yes and no - that this kind of policy is hard to enforce, and only affects your code base.

The nice thing about Go is that its simplicity permeates the entire ecosystem.

isbvhodnvemrwvn|4 years ago

I've worked with systems where some of the things were defined as a DSL within Kotlin (with implicit receivers and a shitton of extension functions), so you can definitely shoot yourself in the foot.

iudqnolq|4 years ago

I think it's ameliorated by being designed by an IDE developer, so all that magic has control+click to go to definition. I've debugged some hairy nested implicit receiver code with jetpack compose pointer events, and found it very easy to read exactly what was executed.

I'm a beginner though, and kotlin was the first language where it occurred to me I could just read the source of a library.