[#32009] merging nokogiri to ext/ — Aaron Patterson <aaron@...>

I would like to merge nokogiri to ext for the 1.9.3 release. I spoke to

82 messages 2010/09/02
[#32010] Re: merging nokogiri to ext/ — "U.Nakamura" <usa@...> 2010/09/02

Hello,

[#32012] Re: merging nokogiri to ext/ — Ryan Davis <ryand-ruby@...> 2010/09/02

[#32030] Re: merging nokogiri to ext/ — "NARUSE, Yui" <naruse@...> 2010/09/03

Hi,

[#32033] Re: merging nokogiri to ext/ — "NARUSE, Yui" <naruse@...> 2010/09/03

2010/9/3 NARUSE, Yui <naruse@airemix.jp>:

[#32155] Re: merging nokogiri to ext/ — Yusuke ENDOH <mame@...> 2010/09/08

Currently, we're discussing three different topics:

[#32189] Re: merging nokogiri to ext/ — Aaron Patterson <aaron@...> 2010/09/09

On Thu, Sep 09, 2010 at 01:40:34AM +0900, Yusuke ENDOH wrote:

[#32056] [Ruby 1.8-Bug#3788][Open] URI cannot parse IPv6 addresses propertly — Adam Majer <redmine@...>

Bug #3788: URI cannot parse IPv6 addresses propertly

16 messages 2010/09/04

[#32110] Ruby 2.0 Wiki/Wish-list? — Joshua Ballanco <jballanc@...>

Hi all,

41 messages 2010/09/07
[#32114] Re: Ruby 2.0 Wiki/Wish-list? — "NARUSE, Yui" <naruse@...> 2010/09/08

2010/9/8 Joshua Ballanco <jballanc@gmail.com>:

[#32117] Re: Ruby 2.0 Wiki/Wish-list? — Joshua Ballanco <jballanc@...> 2010/09/08

On Sep 7, 2010, at 5:21 PM, NARUSE, Yui wrote:

[#32143] Re: Ruby 2.0 Wiki/Wish-list? — Roger Pack <rogerdpack2@...> 2010/09/08

> So, for example, a few things I've wanted for a long time:

[#32135] [Ruby-Bug#3802][Open] freeaddrinfo not found in WS2_32.dll — Thomas Volkmar Worm <redmine@...>

Bug #3802: freeaddrinfo not found in WS2_32.dll

16 messages 2010/09/08

[#32154] Making custom_lambda() work — Magnus Holm <judofyr@...>

A tiny suggestion for how we could make it possible to call lambdas

15 messages 2010/09/08
[#32159] Re: Making custom_lambda() work — Nikolai Weibull <now@...> 2010/09/08

On Wed, Sep 8, 2010 at 18:21, Magnus Holm <judofyr@gmail.com> wrote:

[#32156] Can we convert the standard library to gems? — James Edward Gray II <james@...>

Taken from the bundle Nokogiri thread:

98 messages 2010/09/08
[#32161] Re: Can we convert the standard library to gems? — Marcus Rueckert <darix@...> 2010/09/08

On 2010-09-09 01:45:43 +0900, James Edward Gray II wrote:

[#32166] Re: Can we convert the standard library to gems? — James Edward Gray II <james@...> 2010/09/08

On Sep 8, 2010, at 12:03 PM, Marcus Rueckert wrote:

[#32173] Re: Can we convert the standard library to gems? — Marcus Rueckert <darix@...> 2010/09/08

On 2010-09-09 02:54:26 +0900, James Edward Gray II wrote:

[#32249] Re: Can we convert the standard library to gems? — Aaron Patterson <aaron@...> 2010/09/09

On Thu, Sep 09, 2010 at 05:26:54AM +0900, Marcus Rueckert wrote:

[#32278] Re: Can we convert the standard library to gems? — Lucas Nussbaum <lucas@...> 2010/09/10

On 10/09/10 at 02:41 +0900, Aaron Patterson wrote:

[#32162] Re: Can we convert the standard library to gems? — Yusuke ENDOH <mame@...> 2010/09/08

Hi,

[#32216] Re: Can we convert the standard library to gems? — Ryan Davis <ryand-ruby@...> 2010/09/09

[#32229] Re: Can we convert the standard library to gems? — Yusuke ENDOH <mame@...> 2010/09/09

Hi,

[#32260] Re: Can we convert the standard library to gems? — Ryan Davis <ryand-ruby@...> 2010/09/09

[#32275] Re: Can we convert the standard library to gems? — Urabe Shyouhei <shyouhei@...> 2010/09/10

I'm off today so sorry if I missed some mails.

[#32293] Re: Can we convert the standard library to gems? — James Cox <james@...> 2010/09/10

Urabe,

[#32316] Re: Can we convert the standard library to gems? — Urabe Shyouhei <shyouhei@...> 2010/09/11

(2010/09/10 23:48), James Cox wrote:

[#32322] Re: Can we convert the standard library to gems? — James Tucker <jftucker@...> 2010/09/11

[#32335] Re: Can we convert the standard library to gems? — Urabe Shyouhei <shyouhei@...> 2010/09/12

I'm at an airport back to my home so in short,

[#32343] Re: Can we convert the standard library to gems? — James Cox <james@...> 2010/09/12

On Sun, Sep 12, 2010 at 6:51 AM, Urabe Shyouhei <shyouhei@ruby-lang.org> wr=

[#32382] Re: Can we convert the standard library to gems? — Urabe Shyouhei <shyouhei@...> 2010/09/14

(2010/09/13 3:54), James Cox wrote:

[#32383] Re: Can we convert the standard library to gems? — James Cox <james@...> 2010/09/14

On Tue, Sep 14, 2010 at 12:37 PM, Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:

[#32393] Re: Can we convert the standard library to gems? — Urabe Shyouhei <shyouhei@...> 2010/09/15

How difficult to make myself understood in English.

[#32396] Re: Can we convert the standard library to gems? — James Cox <james@...> 2010/09/15

On Wed, Sep 15, 2010 at 1:43 AM, Urabe Shyouhei <shyouhei@ruby-lang.org> wr=

[#32399] Re: Can we convert the standard library to gems? — Yusuke ENDOH <mame@...> 2010/09/15

Hi,

[#32400] Re: Can we convert the standard library to gems? — James Cox <james@...> 2010/09/15

On Wed, Sep 15, 2010 at 12:07 PM, Yusuke ENDOH <mame@tsg.ne.jp> wrote:

[#32401] Re: Can we convert the standard library to gems? — Marcus Rueckert <darix@...> 2010/09/15

On 2010-09-16 01:42:39 +0900, James Cox wrote:

[#32402] Re: Can we convert the standard library to gems? — James Cox <james@...> 2010/09/15

On Wed, Sep 15, 2010 at 1:35 PM, Marcus Rueckert <darix@opensu.se> wrote:

[#32411] Re: Can we convert the standard library to gems? — Marcus Rueckert <darix@...> 2010/09/15

On 2010-09-16 03:36:56 +0900, James Cox wrote:

[#32412] Re: Can we convert the standard library to gems? — James Cox <james@...> 2010/09/16

On Wednesday, September 15, 2010, Marcus Rueckert <darix@opensu.se> wrote:

[#32414] Re: Can we convert the standard library to gems? — Lucas Nussbaum <lucas@...> 2010/09/16

On 16/09/10 at 11:02 +0900, James Cox wrote:

[#32248] Replacing stdlib Date with C version — Jeremy Evans <code@...>

I've recently been working on a replacement for the stdlib Date class,

15 messages 2010/09/09

[#32290] [Ruby 1.9.2-Backport#3818][Open] Seg fault with ruby tmail and ruby 1.9.2 — Karl Baum <redmine@...>

Backport #3818: Seg fault with ruby tmail and ruby 1.9.2

10 messages 2010/09/10

[#32453] Why doesn’t Enumerable define a #last method? — Nikolai Weibull <now@...>

Hi!

9 messages 2010/09/17

[#32454] [Ruby 1.9-Feature#3845][Open] "in" infix operator — Yusuke Endoh <redmine@...>

Feature #3845: "in" infix operator

20 messages 2010/09/17
[#32489] Re: [Ruby 1.9-Feature#3845][Open] "in" infix operator — Benoit Daloze <eregontp@...> 2010/09/21

On 17 September 2010 12:30, Yusuke Endoh <redmine@ruby-lang.org> wrote:

[#32529] [Ruby 1.9-Bug#3869][Open] Logger#log does not handle or escape new-line characters. — Hal Brodigan <redmine@...>

Bug #3869: Logger#log does not handle or escape new-line characters.

9 messages 2010/09/23

[#32585] Proposal for Optional Static Typing for Ruby — Martin Pilkington <pilky@...>

Hi,

47 messages 2010/09/27
[#32588] Re: Proposal for Optional Static Typing for Ruby — Yukihiro Matsumoto <matz@...> 2010/09/27

Hi,

[#32592] Re: Proposal for Optional Static Typing for Ruby — Martin Pilkington <pilky@...> 2010/09/28

Hi Matz

[#32595] Re: Proposal for Optional Static Typing for Ruby — Asher <asher@...> 2010/09/28

Martin,

[#32611] Re: Proposal for Optional Static Typing for Ruby — Loren Segal <lsegal@...> 2010/09/28

Hi,

[#32628] Re: Proposal for Optional Static Typing for Ruby — Eleanor McHugh <eleanor@...> 2010/09/29

It strikes me that much of the premise behind this thread is misguided =

[#32634] [Ruby 1.9-Bug#3889][Open] Incorrectly detected i686-w64-mingw32 as x64-mingw — Luis Lavena <redmine@...>

Bug #3889: Incorrectly detected i686-w64-mingw32 as x64-mingw

21 messages 2010/09/29

[ruby-core:32616] Re: Proposal for Optional Static Typing for Ruby

From: Martin Pilkington <pilky@...>
Date: 2010-09-28 23:07:47 UTC
List: ruby-core #32616
Hi Loren, Joshua

I think it might be worth pointing out that the availability of type =
information, be it through static typing in the language or adding it =
via a DSL to be accessed on live objects or some other suggestion, =
should be considered a separate issue to how that information may be =
used. The issue at the moment is that to get this information requires a =
lot of work and isn't always reliable. If that information was available =
an an easy and reliable format then there are all sorts of interesting =
things that could happen.

Personally, I've had no experience with multiple dispatch beyond the =
theory of it. It sounds like an interesting idea, but I'm never too keen =
on overloading a method purely based on argument types or number. But =
that isn't to say that someone else wouldn't find it interesting or =
useful.

Ultimately it isn't really a case of being "fully duck typed" or not or =
"fully statically typed" or not. Neither one in their pure form are =
perfect. Myself, I'd always tend towards duck typed for the extra =
freedom it gives me. However, there are benefits to both and the trick =
is to find a middle ground where you get as much of these benefits with =
as few of the disadvantages.

Hopefully, even if people disagree about how this information should be =
used, there can be some agreement that actually having the information =
there is worth considering.

Thanks

Martin



On 28 Sep 2010, at 10:47PM, Loren Segal wrote:

>=20
> On 2010-09-28, at 4:04 PM, Joshua Ballanco wrote:
>=20
>> On Sep 28, 2010, at 12:35 PM, Loren Segal wrote:
>>=20
>>> We've all seen and written these methods before. They're annoying to =
write, they're even harder to document. Why couldn't we just do (forgive =
me, I'm using a different syntax to that which was proposed in this =
thread):
>>>=20
>>>  def run(opts: Hash)
>>>    Server.new(opts).start
>>>  end
>>>=20
>>>  def run(server: Server)
>>>    server.start
>>>  end
>>>=20
>>> Before all the duck-typists go nuts, there's no reason why you =
couldn't specify a duck-type here.
>>=20
>> The problem is that this proposal fundamentally misunderstand the =
concept of Duck typing. What if I create a class which behaves exactly =
as a Hash, has all the same methods with the same signatures as a Hash, =
but I call my class FunTimeCrazyDuckyHash? Which of these methods should =
be called?
>=20
> If you read my next example (which you conveniently left out of your =
quote) you can see how duck types can be expressed. You also seemed to =
miss my statement (which you did quote) that ducktypes *could* indeed be =
used. This situation, however, is not a duck-typing situation. The =
Server class is not meant to "act like a hash". In the example above, =
the run() command takes a convenience hash and constructs a server =
object for you (a common idiom for Ruby factory methods).
>>=20
>> If you're testing your arguments against a specific class, you're =
"Doing it wrong".
>=20
> That's a little extreme. There are plenty of uses cases that require =
specific classes, or use inheritance instead of duck-typing to specify =
an interface. Ruby is still an object-oriented programming language, =
last time I checked. There's no reason not to merge the strengths of =
each paradigm.
>=20
>> And all of us have done this at some point, but that still makes it =
wrong. The "duck type" way to write the above is:
>>=20
>> def run(thing)
>> if thing.respond_to? :start
>>   thing.start
>> else
>>   Server.new(thing).start
>> end
>> end
>=20
> This is just as messy. You're putting dispatching logic that could =
easily be handled by your interpreter into your business logic. Again, =
the solution here could still be expressed with type annotations:
>=20
> 	def run(thing: #start)
> 	  thing.start
> 	end
>=20
> 	def run(thing)
> 	  Server.new(thing).start
> 	end
>=20
> This is similar to the next example I showed. Of course this skews the =
discussion of typed annotations into something it's not. We're not =
talking about the "best" way to implement something in Ruby. There is no =
"one" way in Ruby, and the idea that you should never need to type by =
classes is as naive as the idea that you should never need to duck-type. =
Ruby is a useful language because it's multi-paradigm and can be used to =
express more than one problem-space.=20
>=20
>>=20
>> Mostly, if you find yourself doing this sort of checking too often, =
it's probably symptomatic of a larger issue with the structure of your =
code.
>=20
> Again, I would disagree. There are plenty of fairly proper codebases =
that use the above examples a lot. Particularly for convenience methods, =
which Ruby libraries have plenty of-- far more than other languages I've =
seen.
>=20
> - Loren


In This Thread