

Comparing Ruby and C#: Equality - skorks
http://blog.carrion.ws/2010/03/17/comparing-ruby-and-c-equality/

======
barrkel
This post is full of inaccuracies. Some that leap out:

* Ruby isn't weakly typed

* C# value types are described as being allocated on the stack; but fields of value types, and boxed value types are on the heap.

* Re C#: "there is no need to explicitly release or allocate memory, unless the programmer wants to do so" - there is no explicit way to release GC memory, apart from manually invoking a GC.

* Worse: "Object.Equals [...] Is used to test reference equality in reference types and bitwise equality in value types" - This is completely made up. Object.Equals is a virtual method, it does whatever the descendant specifies it to do; it is resolved dynamically, at run time.

* "Operator equals (==) Is, basically, a synonym of object.Equals, same rules apply" - completely incorrect, it can be overloaded and is resolved statically, at compile time.

