News for hackers. Stuff that matters.
Re:Go 1.8 Release Notes by dragonwriter on Thursday February 16, 2017 @03:25PM (#13663264)
Go has exceptions, though it doesn't call them that; it's just not idiomatic to let them propagate across public API surfaces.
Re:Go 1.8 Release Notes by candiodari on Thursday February 16, 2017 @09:40PM (#13665531)
They certainly do propagate across API surfaces. People just ignore that.

Just like Go error handling : looking on github you see that Go mostly makes it easy and less visible if people totally ignore errors.

Re:Go 1.8 Release Notes by dragonwriter on Thursday February 16, 2017 @11:56PM (#13666041)
Go's exceptions are called panics; the recommended practice is generally not to let them cross API surfaces, and the standard library (again, generally) follows that.

It is, of course, possible to create libraries that don't follow the idiom.

Re:Go 1.8 Release Notes by candiodari on Monday February 20, 2017 @05:21AM (#13686093)
> It is, of course, possible to create libraries that don't follow the idiom.

Yeah. Thing is though, there are these libraries who access pointers (especially in Go where lots of stuff are implicit pointers, like maps and interfaces). Or, may God strike them down where they stand, people who use division. Or allocate. Or cast. Or use interface{}. All such code has implicit (non-visible) panics in them.

What I mean to say is: in practice, Go code is not fundamentally different from Java/C++ code : everything can throw. Everything. Yes even that thing that you're thinking of right now that couldn't possibly ever think about throwing. There's just people who admit this and people who don't.

That the Go authors come up with idioms that are so incredibly shortsighted is emblematic of everything else about the language.

This is how Go works. They claim they are perfection, and know better than anyone.

For instance, compare:

https://blog.golang.org/go15gc

with

https://blog.plan99.net/modern-garbage-collection-911ef4f8bd...

(just to put up something other than the generics discussion. But everything about go suffers from both massive deficiencies and an extremely arrogant development defending deficiencies ...)