Jan Mercl
unread,Oct 7, 2013, 2:57:36 PM10/7/13Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Kevin Gillette, golang-nuts, Robert Johnstone, chris dollin
On Mon, Oct 7, 2013 at 8:34 PM, Kevin Gillette
<
extempor...@gmail.com> wrote:
> On Monday, October 7, 2013 11:00:35 AM UTC-6, Robert Johnstone wrote:
>>
>> Oops. I had read the line to indicate that both the call to Lock and the
>> call to Unlock would be part of the deferred expression, but that is clearly
>> wrong.
>
>
> Exactly, emphasis on the "oops" effect that this style would lead to if
> frequently used. Go avoids other oopses by:
>
> requiring braces around even single statement control structures ("well in
> my defense, you can see that the second line is indented too")
if expr1 { stmt } else if expr2 { stmt2 } // control "structure" w/o
braces exist
> avoiding inheritance ("gee, I just spent 2 days arranging my inheritance
> hierarchy, but am still trying to reconcile theory with practice in deciding
> whether square should subclass rect, or vice versa")
Go has complete OOP inheritance. Show me where structural inheritance
is a necessary feature of "OOP". Hint: It was originally defined by
the means of message passing. That's clearly a behavioral concept.
> not supporting implicit conversions (this could especially cause issues in a
> type-inferenced language like Go)
Go uses implicit conversions widely and probably more often than you
realize. Have you recenlty fmt.Printf'ed? ;-)
> not providing user-configurable operator overloading ("why does my program
> cause a network spike and then hang whenever I multiply these two MyInt
> variables?")
-j