Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If (API Copyrightable) = False THEN Google Not Guilty

If (Google Violated Copyright) = False THEN Google Not Guilty

If Google has Fair Use THEN Google Not Guilty

Google Guilty

The judge needs to rule on the first statement, the jury came back on the second statement, but the jury could not decide on the third statement.

(Edit: Wording)



GoogleGuilty = APICopyrightable && GoogleViolatedCopyright && !GoogleHasFairUse

optimized (and corrected, because in your flow Google is always guilty since everything drops through to that anyway).


Strictly speaking, wouldn't it be GoogleGuilty = GoogleViolatedCopyright && !GoogleHasFairUse && ApiCopyrightable

In the sense that false short-circuits anything to the right, and ApiCopyrightable is only a factor if Google is held to have violated copyright under the assumption that Apis can be copyrighted.


Hmm, are those values synchronous, though? Maybe an event-based architecture is a better model, though I don't really understand how the law works.


Oddly, I find your one-liner more readable than the parent's. Probably because I don't know when to follow the English grammar or the pseudocode grammar.


Not if Google Not Guilty is equal to an exit statement :)


I wish someone would always translate groklaw's cryptic articles to something understandable like that. :-)


Missing semicolons.


It is written in Go.

:)


Then you're missing a colon

    GoogleGuilty := ...


Yeah, true, but only if GoogleGuilty's type was previously undefined (but this is getting way off topic).


Ported to CoffeeScript:

GoogleGuilty = APICopyrightable and GoogleViolatedCopyright and not GoogleHasFairUse


That is very nicely readable!


The CoffeeScript syntax is nicely readable, but IMO the C-like syntax is far more easily 'scannable'.

Quickly scanning over the C-like syntax I can more easily notice the ! and the && than I can make out the 'not' and the 'and' while scanning the more natural-language-like CoffeeScript because of the clear separation between ! and && and the alphanumerics commonly used in variable names. IMO the 'and' and 'not' keywords kind of get lost in the noise of all the other characters.

YMMV here. I've been programming in C-like languages for quite a long time so maybe that's rewired my brain in a way that doesn't hold for people who don't program in C-like languages.


Typically syntax highlighting will color the "and" and "not" differently so they stick out too.


This is actually a very helpful analogy--I'm stealing it. :)

The law tends to be framed in conditions like this. That's why "the jury found X" isn't necessarily news--the real story could be in other parts of the conditional expression.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: