我正在就Ruby语言和环境的.NET(C#)开发团队进行一系列的讨论.我认为这是一个强调Ruby优于C#的好处的机会.首先,我想在进入环境之前专注于语言本身(RoR vs ASP MVC等).您将涵盖Ruby语言的哪些功能?
我刚才给一个.NET用户组发了一篇关于IronRuby的演讲,并遇到了类似的问题.我关注的是:
鸭打字.没有什么比这更愚蠢了List
;
表达和简洁的语法.简单的事情,比如遗漏括号,数组和散列文字等等(结合鸭子打字,你得到string_list = []
的显然更好).所有小东西都在很大程度上加起来.
元编程.从简单的事情开始,attr_accessor
如果他们没有立即看到好处,那么可能会更先进一些.不要尝试将事情与lisp相比较,并对编写其他程序的程序进行比较......人们会认为你在抽烟.保持简单,锤回家的重点是你不必继续编写相同的糟糕样板代码
作为一个很好的"结局",向他们展示一些正常的NUnit样式测试以及Assert.NotEqual
他们通常所拥有的所有混乱,然后说"这里是用ruby编写的相同代码"并显示它们使用rspec编写(它将是一半的长度和10次更容易阅读...如果不出售它们,什么都不会.
我认为这是一个强调Ruby优于C#的好处的机会.
我不确定这是正确的做法.如果谈话的基调是,"Ruby很酷,因为你可以在其中做x!" 你会很快失去你的C#观众.他们会回答:" 如果我们愿意,我们可以在C#中模拟x,但在我们的设计中我们没有太多使用x." 或许,"如果你认为你需要做x那么你做错了!"
在理解Ruby之前,他们不会理解Ruby如何帮助他们.为什么不让他们解决一些玩具问题并向他们展示Ruby程序员如何解决它们?教他们Ruby方式.一周后,当他们看到他们遇到的问题时,他们中的一个会说,"好吧,我知道如何解决这个问题,但如果我使用Ruby,那将会更容易...... ".