From: "James, Roshan (Cognizant)" Date: 2004-04-22T04:12:45+09:00 Subject: Re: A Ruby WishList ------=_NextPartTM-000-59c60049-1daa-4375-b42e-ac8eb5bc077e Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable // http://www.ruby-talk.com/blade/2710 // http://www.ruby-talk.com/blade/5961 Thank you, these were awesome reading.=20 // //> - Ruby on .Net // //There has been some efforts on this. This will require at least a=20 //partial rewrite of Ruby probably to C#. I'd rather see Ruby=20 //being ported=20 //to Parrot first though (Parrot will also run on Windows and a myriad=20 //others that .NET/Mono won't). I beg to disagree that Ruby'd rather be ported to Parrot. When it comes to .net, I (would like to think I) understand somethings. See Ruby is a lovely language, truly. Where Microsoft is taking the .Net framework is indicatoive of making the framework the future runtime for the windows operating system, at par if not better than the services offered to the C runtime. Like for example some of the new API available in Loghown will be completely managed API. Also the way Miguel's (Mono) team is working, Mono will be fairly mainstream on *nix boxes as well.=20 The popularity of ruby will depend less on how many diverse machines it runs on and more on how many populist systems it can embrace.=20 Don't get me wrong, all I am saying is that the .net is geared to go places and it already is in the enterprise spehere. The merits of platform that provides a true level playing field across languages is slowing showing its strenght in the enterprise. That is probably an amazing oppurtunity for Ruby to leverage because the expressive power that the language provides is awesome. To be at par with enterprise computing with C# or VB.net will only ensure Ruby's survival for a long time.=20 Please do give it some thought before you let it go.=20 //> - Auto initialisation of variables // //If you don't declare variables first, Ruby can't know if it's=20 //a method=20 //or a local variable: // // def sum; ...; end // def sum=3D; ...; end // sum =3D sum+1 # this will invoke the sum and sum=3D methods. // // sum =3D 2 // sum =3D sum+1 # this will increment the sum local variable. // // sum # now if you don't declare it first, what is sum? a // # method or a local variable // //However, you don't need to predeclare $global or Constant=20 //because they=20 //can't be confused with methods. Well the syntax I suggested with <> simply could apply primitive value intialisation to types that have not been declared before, without much ambiguity. Or am I missing something?=20 Let me paste it here: Like I could probably replace: sum =3D 0=20 prod =3D 1 10.times {|n| sum =3D sum + n; prod =3D prod * n } with 10.times {|n| sum =3D sum<0> + n; prod =3D prod<1> + n; } ------=_NextPartTM-000-59c60049-1daa-4375-b42e-ac8eb5bc077e Content-Type: text/plain; name="InterScan_Disclaimer.txt" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="InterScan_Disclaimer.txt" This e-mail and any files transmitted with it are for the sole use of the intended recipient(s) and may contain confidential and privileged information. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. Any unauthorised review, use, disclosure, dissemination, forwarding, printing or copying of this email or any action taken in reliance on this e-mail is strictly prohibited and may be unlawful. Visit us at http://www.cognizant.com ------=_NextPartTM-000-59c60049-1daa-4375-b42e-ac8eb5bc077e--