News for hackers. Stuff that matters.
Re:Java 8’s new Optional type doesn't solve anything by valarauca1 on Monday October 26, 2015 @11:26AM (#10452037)
>Requiring that really dilutes the value/meaning of errors.

No. You have already diluted the meaning of errors, and you want them elevated to _your_ standard.

>Index out of bounds on every array op

These are removed if you build a rust program with --release.

>Integer overflow on every arithmetic op

Add the Wrapping class if you expect overflow. Overflow _shouldnt_ normally happen on an Integer operation. It is a hardware error when it happens, and can cause massive pain-in-ass bugs when it happens unexpectedly.

I'd rather get errors when it does happen, rather then find out 6 months into a production run.

>OOM on every allocating op

C does this also.

Re:Java 8’s new Optional type doesn't solve anything by Gankro on Monday October 26, 2015 @11:35AM (#10452095)
What have I diluted the meaning of errors to?

Rust doesn't remove bounds checks in --release. It's wrapping that gets turned on in release. I'm not sure why you're distinguishing overflow as truly exceptional, as opposed to any other "this should never happen" error?

Also I don't think many C libraries that allocate expose that as a failure condition (I've certainly seen some which don't even check!)

Re:Java 8’s new Optional type doesn't solve anything by valarauca1 on Monday October 26, 2015 @11:47AM (#10452172)
>Also I don't think many C libraries that allocate expose that as a failure condition (I've certainly seen some which don't even check!)

This is a very common mistake in most C code. Malloc can fail, and it return NULL when it does.

Re:Java 8’s new Optional type doesn't solve anything by kibwen on Monday October 26, 2015 @03:17PM (#10453735)
IMO the more important example that Gankro failed to mention is division, where your language has to do something when the denominator is zero.