News for hackers. Stuff that matters.
Re:Go Contracts – Draft Design by ksec on Monday July 29, 2019 @03:08PM (#20558210)
>One of Go's core strengths is simplicity.

I also remember reading some one said their Software has increased complexity due to Go's Simplicity. ( Or something similar along the line )

It really is a balancing act. And it seems there is no one size fit all solution.

Re:Go Contracts – Draft Design by mbrumlow on Monday July 29, 2019 @06:33PM (#20560170)
> Software has increased complexity due to Go's Simplicity.

Which way are you meaning this. The way I read it was that because GO was simple, we were able to build more complex systems. But you seemed to indicate that was a bad thing?

Yes making complex that can be made simple is the way you want to do things, but some things simply are not simple, and thus require complex software.

Re:Go Contracts – Draft Design by ikiris on Tuesday July 30, 2019 @01:02PM (#20566801)
No, that the simplicity of the language forces complexity in the code written in it.
Re:Go Contracts – Draft Design by mbrumlow on Wednesday July 31, 2019 @10:28AM (#20574662)
I have thought about this for about a day, and I can't agree with you.

Every time I have seen complex GO code and investigated how it got that way it was simply the result of one of the following. 1) Writing GO code before fully understanding the language. 2) Trying to write GO code like it was some other language.

I have seen some crazy complex GO in my days, and after spending hours and hours of trying to figure out what the code was doing -- I have always been able to simplify the program to a nice concise bit of code -- and I can assure you there are much better programmers out there than me.

Often the complexity is people trying to implement generics in some crazy round about way, or have prioritized dependency injection, or code coverage test to a extreme.

My favorite example of this is https://github.com/rdadbhawala/dutdip -- and here is a good talk on it https://www.youtube.com/watch?v=HBLJV0cPRBM

The code base that implemented this in production is an amazing mess, I can assure you of that.

Re:Go Contracts – Draft Design by pjmlp on Tuesday July 30, 2019 @01:35AM (#20562344)
For example check Kubernetes talk from FOSDEM.
Re:Go Contracts – Draft Design by zik on Monday July 29, 2019 @06:46PM (#20560268)
That's not been my experience of Go. Complexity is contagious - if your language is complex your code tends to be complex. Go's language design intentionally avoids complexity and Go code is some of the most readable code I've ever seen.
Re:Go Contracts – Draft Design by joelfolksy on Wednesday July 31, 2019 @02:30PM (#20576924)
"Complexity is contagious - if your language is complex your code tends to be complex."

Going from assembly language to Go (increasing language complexity) decreases code complexity.

Stated a different way, would removing a feature from Go (say Goroutines) necessarily make a Go codebase simpler? If so, then I have to question why they added it in the first place.

Maybe your statement could be defended given enough context and caveats, but the overall relationship between language and code complexity is clearly more... complex... than you imply.