On Fri, May 30, 2014 at 2:01 AM, Oleg Eterevsky <[email protected]> wrote:
> > Since browsers were brought up, here is the Google C++ style guide on > exceptions: > > > http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Exceptions > > As someone who works for Google, I can attest, that exceptions are > encouraged in Google style guides for Python and Java and the main > reason they are forbidden in C++ is their memory safety. Google has a > big amount of pre-exceptions C++ code, and it will break in unexpected > places if exceptions are allowed. > > Yes, which is a common issue. Exception usage requires exception-safe code. But then, exception-safe code is also code resilient in the face of introducing other return paths so it's just overall better whether in the presence of exceptions or not... > Go is a different story. It deliberately refuses to support exceptions > even though it has GC and hence has no problems with exception memory > safety whatsoever. The lack of exception might be one of the main > reasons (if not the main reason), why Go is not so popular even within > Google. > > Personally, I've found exceptions too unwieldy. As I mentioned, the issue of catching an exception is "now, how do I recover ?". Note that Rust and Go do have exceptions (and unwinding), it's just that you have to create a dedicated task instead of a try/catch block. Indeed, it's more verbose (which is mostly a matter of libraries/macros) and it's also less efficient (which could be addressed, though at compiler level); however it's just plain safer: now that shared-state/updates to the external world are explicit, you can much more easily evaluate what it takes to recover. > On Thu, May 29, 2014 at 4:39 PM, comex <[email protected]> wrote: > > On Thu, May 29, 2014 at 7:10 PM, Oleg Eterevsky <[email protected]> > wrote: > >> The projects in C++ that forbid exceptions are doing so not because of > >> some prejudice, but because exceptions in C++ are unsafe. In Java > >> standard library exceptions are ubiquitous. > > > > If you mean checked exceptions, I hear that they're quite unpopular, > > although I don't use Java. > > > > Since browsers were brought up, here is the Google C++ style guide on > > exceptions: > > > > > http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Exceptions > > > > It bans them due to a variety of downsides which would only be > > partially addressed by checked-exception-like safety systems. I think > > Google Java code does use exceptions, but that's language culture for > > you. > > > > As a related data point, Go eschews exceptions entirely due to prejudice: > > > > http://golang.org/doc/faq#exceptions > > > > Not that I agree with most of Go's design decisions... still, I think > > these examples are enough to demonstrate that there are legitimate > > reasons to prefer a language designed without exceptions. > > > > I think it may be good for you to get more experience with Rust, > > although as I mentioned, I also lack experience. > _______________________________________________ > Rust-dev mailing list > [email protected] > https://mail.mozilla.org/listinfo/rust-dev >
_______________________________________________ Rust-dev mailing list [email protected] https://mail.mozilla.org/listinfo/rust-dev
