Ian Cooper 的个人资料Staccato Signals日志列表 工具 帮助
6月13日

Meeting London's Rubyists and progress on learning Ruby

On Monday night, as part of my learn a new language every year goal, I attended the London Ruby user group. I am always interested on how other user groups do their thing too, to see if I can pick up any tips for the London .NET user group.

There were a lot of people using Macs. I mean a lot. About a third of the audience had laptops with them and nearly every one seemed to be a Mac. I suspect there may have been some Linux distributions, but Windows boxes were conspicuous by their absence. That said, there was no hostility to me as a Windows platform guy.

There were a a lot of youngsters there, by which I mean that I have gotten used to a lot of developers being over 30. In the Ruby world there are a lot in their early twenties. Wonder where the kids are? It could be they are doing Ruby.

A lot of the people I spoke to in the pub after the meeting were working on commercial projects. I expected there to be more interested people than people from projects that were actually using it, but I was wrong. And Rails dominated; Rails seems to be what Ruby is all about right now.

In my informal and statistically irrelevant survey, 5 people, media companies seemed to dominate as the companies using Rails.
I asked who had driven adoption and they identified technical leadership within their organization. That surprised me too as I expected it to be driven by developers, often using guerrilla adoption tactics. That did not seem to be so.

The Ruby community has agile concepts baked into it. Interestingly I found folks admitted to poor agile processes and falling down on unit tests, but these guys definitely knew that there was a bar that they should be hitting, even if they were not making it. My experience has also been that genuinely agile teams often talk about their failings - that's a natural consequence of doing constant reflection. I think I sold a few of them on Crystal as an approach. So I think it is true to say that the Ruby community gets Agile, on my limited interaction with them so far.

Deployment seemed to be their major pain point, along with the pace of change, particularly around the Rails framework.

The Ruby developers all seemed like smart, switched on guys, who were interested in development. To be fair I was at a user group, which is self-selecting, and Ruby is at the early-adopter stage, so again fairly self-selecting to motivated developers.

As for me, I worked through the pickaxe book, but it did not really work for me as an introduction to getting started with Ruby. I'm having a lot more joy with Everyday Scripting with Ruby. What's not to love about a book that puts TDD with Ruby right up front in your learning experience. I'm finding Ruby interesting, but I still have a couple of areas where I remain cautious.

I appreciate that dynamic typing gives me a lot of conciseness but I like the intention revealing nature of statically typed code. I find it easier to read code that expresses its intentions through a contract of type. But that may just be because I have spent so long in statically typed languages that I have not flipped over to a scripting language way of thinking yet. To be fair to me though, I started out in Foxpro and one of the features I overjoyed to leave behind when I moved on to C++ was the lack of explicit typing. I lean on the compiler a lot, indeed regard its feedback as the first check that my code gets, before the unit test can run. It also gives me intellisense and safe refactoring, both of which I see as huge productivity drivers; I don't know that the conciseness of Ruby compensates enough for that. The Ruby guys I spoke to say that it was one of the first things newbies from Java and C# raise: "Dude, where is my intellisense!" It's also important to distinguish between conciseness that Ruby gains from language constructs and from the idioms like fluent interfaces and blocks, some of which we have now in C# 2.0, more of which we will get with C# 3.0, and some of which are just down to changing idioms in framework design.

Duck typing is interesting in that it allows low-cost polymorphism; you do not really have to make bets on when you will need that polymorphism but can choose to exploit it on demand. That's a nice feature, though again some part of me is still wired to like the intention revealing code that static typing produces. In addition, once you introduce duck-typing there is a whole class of errors that dynamically typed languages expose you to that you will only see when the code is executed (i.e. when we try and call the method on the object ). While TDD may help with this, comprehensive automated functional testing is the only way to be sure to grab these, because its only when we integrate that we see whether or not the object passed to the method can be dynamically cast. VB was proposing an interesting solution to duck typing at one point, but it got pulled from Orcas.

My concerns here amount to cost of maintenance, particularly as Ruby moves out from the domain of the early-adopters into the mainstream. How easy is Ruby going to be to maintain by comparison to statically typed code? The fact that TDD, automated acceptance tests etc are baked into the community seems to be a part of making Ruby successful. Part of me suspects that the success of Ruby is partially down to the Agile philosophy being relatively coterminous with it and I wonder whether organizations that do not adopt Agile could adopt Ruby successfully. Most of the teams I spoke to only seemed to have been working in Ruby for a year, so I guess that the feel for cost to use Ruby over the complete product ownership period may still be in question. I don't have the background to offer any kind of opinion at this point.

I do find myself wondering though if the community and the ethos is at the heart of what is making Ruby a success more than Ruby the language. The fact that commercial projects seem to be all about Rails, a framework, leads me to ask whether the success is that the Rails story is all about the right time with the right framework for the right community instead of advantages in Ruby itself. Can Rails be built with other languages - i.e. Monorail? If so the question to ask would be does Ruby have legs outside Rails once the paradigms that made Rails a success cross over into other platforms? I don't pretend to know the answers on this one either.

Still, I'd recommend the experience of learning a new language and meeting new communities as a positive one for expanding your horizons.







评论 (11)

请稍候...
很抱歉,您输入的评论太长。请缩短您的评论。
您没有输入任何内容,请重试。
很抱歉,我们当前无法添加您的评论。请稍后重试。
若要添加评论,需要您的家长授予您相应权限。请求权限
您的家长禁用了评论功能。
很抱歉,我们当前无法删除您的评论。请稍后重试。
您已超过了一天之内允许提供的评论数上限。请在 24 小时后重试。
因为我们的系统表明您可能在向其他用户提供垃圾评论,您的帐户已禁用了评论功能。如果您认为我们错误地禁用了您的帐户,请联系 Windows Live 支持部门
完成下面的安全检查,您提供评论的过程才能完成。
您在安全检查中键入的字符必须与图片或音频中的字符一致。

若要添加评论,请使用您的 Windows Live ID 登录(如果您使用过 Hotmail、Messenger 或 Xbox LIVE,您就拥有 Windows Live ID)。登录


还没有 Windows Live ID 吗?请注册

http://www.shopgogo.ca/gateway/8msbg.htm gateway 8msbg battery
http://www.shopgogo.ca/gateway/m680.htm gateway m680 battery
http://www.shopgogo.ca/gateway/m360.htm gateway m360 battery
http://www.shopgogo.ca/gateway/m460.htm gateway m460 battery
http://www.shopgogo.ca/hp/nc8430.htm hp nc8430 battery
http://www.shopgogo.ca/hp/dv6000.htm hp dv6000 battery
http://www.shopgogo.ca/hp/hstnn-db42.htm hp hstnn-db42 battery
http://www.shopgogo.ca/hp/dv9000.htm hp dv9000 battery
http://www.shopgogo.ca/hp/dv9700.htm hp dv9700 battery
http://www.shopgogo.ca/hp/hstnn-ib44.htm hp hstnn-ib44 battery
http://www.shopgogo.ca/hp/510.htm hp 510 battery
http://www.shopgogo.ca/hp/530.htm hp 530 battery
http://www.shopgogo.ca/sony/vgp-bps2a.htm sony vgp-bps2a battery
http://www.shopgogo.ca/sony/vgp-bps2b.htm sony vgp-bps2b battery
http://www.shopgogo.ca/sony/vgp-bps2.htm sony vgp-bps2 battery
http://www.shopgogo.ca/sony/vgp-bps2c.htm sony vgp-bps2c battery
http://www.shopgogo.ca/toshiba/pa3399u-1brs.htm toshiba pa3399u-1brs battery
http://www.shopgogo.ca/toshiba/satellite-a100.htm toshiba satellite a100 battery
http://www.shopgogo.ca/toshiba/pa3536u.htm toshiba pa3536u battery
http://www.shopgogo.ca/dell/inspiron-1300.htm dell inspiron 1300 battery
http://www.shopgogo.ca/dell/xps-1330.htm dell xps 1330 battery
http://www.shopgogo.ca/dell/xps-m1330.htm dell xps m1330 battery
http://www.shopgogo.ca/dell/inspiron-6000.htm dell inspiron 6000 battery
http://www.shopgogo.ca/dell/inspiron-9300.htm dell inspiron 9300 battery
http://www.shopgogo.ca/dell/e1705.htm dell e1705 battery
http://www.shopgogo.ca/hp/nc8230.htm hp nc8230 battery
http://www.shopgogo.ca/hp/dv9500.htm hp dv9500 battery
http://www.shopgogo.ca/hp/dv2000.htm hp dv2000 battery
http://www.shopgogo.ca/dell/latitude-d620.htm dell latitude d620 battery
http://www.shopgogo.ca/hp/dv6000.htm hp dv6000 battery
http://www.shopgogo.ca/hp/dv2700.htm hp dv2700 battery
http://www.shopgogo.ca/dell/inspiron-b130.htm dell inspiron b130 battery
http://www.shopgogo.ca/toshiba/pa3534u-1brs.htm toshiba pa3534u-1brs battery
http://www.shopgogo.ca/dell/inspiron-1525.htm dell inspiron 1525 battery
http://www.shopgogo.ca/dell/d9200.php Notebook Laptop Battery for Dell D9200 D5318 G5260 laptop battery ,
http://www.shopgogo.ca/acer/tm4200.php Battery ACER BATBL50L6 Travelmate 4200 4203 4230 4260 4280 laptop battery ,
http://www.shopgogo.ca/dell/inspiron-1200.htm dell inspiron 1200 battery
http://www.shopgogo.ca/toshiba/pa3534u-1brs.htm toshiba pa3534u-1brs battery
http://www.shopgogo.ca/toshiba/pa3399u-1bas.htm toshiba pa3399u-1bas battery
http://www.shopgogo.ca/toshiba/pa3399u-2bas.htm toshiba pa3399u-2bas battery
http://www.shopgogo.ca/gateway/m320.htm gateway m320 battery
http://www.shopgogo.ca/toshiba/satellite-a105.htm toshiba satellite a105 battery
http://www.shopgogo.ca/compaq/nc4400.htm compaq nc4400 battery
http://www.shopgogo.ca/compaq/tc4200.htm compaq tc4200 battery
http://www.shopgogo.ca/compaq/nc4200.htm compaq nc4200 battery
11 月 7 日
没有名字发表:
It was not long <a href="http://www.gold4power.com/">cheap wow gold</a>before some one knocked at<a href="http://www.gold4power.com/">wow gold cheap </a> <a href="http://www.gold4power.com/">wow gold for sale</a>the house-door and called, open the door, dear children, your mother is here, and has brought something back with her for each of you. But the little <a href="http://www.wowpoweron.net">wowpoweron</a>kids knew that it was the wolf, by the rough voice. We will <a href="http://www.gold4power.org/">gold4power</a> not open the door, cried they, you are not our mother. She has a soft, pleasant voice, but your voice is rough, you are the wolf.

Then the wolf went <a href="http://www.itemchannel.com">World Of Warcraft Gold</a>away to a shopkeeper and bought himself a great <a href="http://www.gold4power.com/">cheapest wow gold</a>lump of chalk, ate this and made <a href="http://www.mmogap.org.">mmogap</a> his voice soft with it. The he came back, knocked at the door of the house, and <a href="http://www.igsky.net">igsky </a>called, open the door, dear children, your mother is here and <a href="http://www.gold4power.com">Cheapest Wow Gold</a>has brought something back with her for each of you.
3 月 26 日
名氏发表:
<a href="http://www.hongju168.com/">仓储货架|仓库货架|托盘|仓储笼</a> <a href="http://www.hongju168.com/1.html">仓储货架|仓库货架|托盘|仓储笼</a> <a href="http://www.hongju168.com/3.html">仓储货架|仓库货架|托盘|仓储笼</a> <a href="http://www.hongju168.com/4.html">仓储货架|仓库货架|托盘|仓储笼</a> <a href="http://www.hongju168.com/2.html">轻型仓储货架|轻量型仓库货架|库房货架</a> <a href="http://www.hongju168.com/2.html">货架厂|货架公司|南京货架</a> <a href="http://www.hongju168.com/2-2.html">中量型仓储货架|中量A型仓库货架|库房货架</a> <a href="http://www.hongju168.com/2-2.html ">货架厂|货架公司|南京货架</a> <a href="http://www.hongju168.com/2-3.html">中量型仓储货架|中量B型仓库货架|库房货架</a> <a href="http://www.hongju168.com/2-3.html">货架厂|货架公司|南京货架</a> <a href="http://www.hongju168.com/2-4.html">横梁式仓库货架|重型仓储货架|货位式库房货架</a> <a href="http://www.hongju168.com/2-4.html">货架厂|货架公司|南京货架</a> <a href="http://www.hongju168.com/2-5.html">模具货架|抽屉式仓库货架|仓储货架|库房货架</a> <a href="http://www.hongju168.com/2-5.html ">货架厂|货架公司|南京货架</a> <a href="http://www.hongju168.com/2-6.html">贯通式仓储货架|通廊式仓库货架|驶入式库房货架</a> <a href="http://www.hongju168.com/2-6.html">货架厂|货架公司|南京货架</a> <a href="http://www.hongju168.com/2-7.html">悬臂式仓储货架|仓库货架|库房货架</a> <a href="http://www.hongju168.com/2-7.html">货架厂|货架公司|南京货架</a> <a href="http://www.hongju168.com/2-8.html">阁楼式仓储货架|仓库货架|库房货架|钢平台</a> <a href="http://www.hongju168.com/2-8.html">货架厂|货架公司|南京货架</a> <a href="http://www.hongju168.com/2-9.html">流利式仓储货架|仓库货架|库房货架|辊轮式货架|自滑式货架</a> <a href="http://www.hongju168.com/2-9.html">货架厂|货架公司|南京货架</a> <a href="http://www.hongju168.com/2-10.html">工作台|工作桌</a> <a href="http://www.hongju168.com/2-11.html">工具柜|工具车</a> <a href="http://www.hongju168.com/2-12.html">托盘|塑料托盘|钢托盘|铁托盘|钢制托盘</a> <a href="http://www.hongju168.com/2-13.html">仓储笼|仓库笼|折叠式仓储笼|蝴蝶笼</a> <a href="http://www.hongju168.com/2-14.html">周转箱|塑料周转箱</a> <a href="http://www.hongju168.com/2-15.html">静音手推车|铁板手推车|购物手推车|登高车</a> <a href="http://www.hongju168.com/2-16.html">手动液压托盘搬运车|不锈钢搬运车|电子秤搬运车</a> <a href="http://www.hongju168.com/2-16.html">高起升搬运车|电动搬运车|平台车</a> <a href="http://www.hongju168.com/2-16.html">手动液压堆高车|手动液压堆垛车|半电动堆垛车</a> <a href="http://www.hongju168.com/2-16.html">全电动堆垛车|油桶搬运车|圆桶搬运车|油桶装卸车|</a> <a href="http://www.hongju168.com/2-16.html">柴油内燃平衡重式叉车|电动平衡重式叉车</a> <a href="http://www.hongju168.com/2-16.html">液压升降机|剪叉式高空作业平台|固定式蹬车桥</a> <a href="http://www.hongju168.com/2-17.html">文件柜</a> <a href="http://www.hongju168.com/2-18.html">不锈钢制品</a> <a href="http://www.hongju168.com/2-19.html">零件盒|零件柜</a> <a href="http://www.njhongju.cn">折叠式仓储笼|仓库笼</a> <a href="http://www.njhongju.cn">钢托盘</a> <a href="http://www.njhongju.cn">钢制料箱</a> <a href="http://www.njhongju.cn">堆垛架</a> <a href="http://www.njhongju.cn">物流台车</a> <a href="http://www.njhongju.cn">手推车</a> <a href="http://www.njhongju.cn/index.htm">钢托盘</a> <a href="http://www.njhongju.cn/index.htm">折叠式仓储笼|仓库笼</a> <a href="http://www.njhongju.cn/hj1.htm">折叠式仓储笼|仓库笼</a> <a href="http://www.njhongju.cn/hj2.htm">钢托盘|钢制托盘|铁托盘|金属托盘|镀锌托盘</a> <a href="http://www.njhongju.cn/hj3.htm">堆垛架|巧固架</a> <a href="http://www.njhongju.cn/hj4.htm">钢制料箱</a> <a href="http://www.njhongju.cn/hj5.htm">物流台车|载物台车</a> <a href="http://www.njhongju.cn/stc.htm">手推车|静音手推车</a> <a href="http://www.njhongju.cn/stc1.htm">手推车|静音手推车</a> <a href="http://www.njhongju.cn/index1.htm">仓储笼|钢托盘|钢制料箱|堆垛架|物流台车|手推车</a> <a href="http://www.njhongju.cn/index2.htm">仓储笼|钢托盘</a> <a href="http://www.njhongju.cn/index4.htm">仓储笼</a>
3 月 13 日
没有名字发表:
http://www.a1003.com/
http://www.a1005.com/
http://www.a1006.com/
http://www.a1007.com/
http://www.a1008.com/
http://www.a1014.com/
http://www.a2101.com/
http://www.a2102.com/
http://www.a2103.com/
http://www.a2104.com/
http://www.a2105.com/
http://www.a2106.com/
http://www.a2107.com/
http://www.a2108.com/
http://www.a2109.com/
http://www.a2110.com/
http://www.a2111.com/
http://www.a2112.com/
http://www.a2113.com/
http://www.a2115.com/
http://www.a2116.com/
http://www.a2117.com/
http://www.a2118.com/
http://www.azzxx.com/
http://www.azzzzz.com/
http://www.english-no1.com/
http://www.ganka-1.com/
http://www.jyuken-1.com/
http://www.jyuku-1.com/
http://www.kaikei-1.com/
http://www.kaisya-1.com/
http://www.kaisya-get.com/
http://www.kaisya-no1.com/
http://www.kaki1.com/
http://www.kekkon-get.com/
http://www.kekkon-no1.com/
http://www.kekkon-t.com/
http://www.kekkonsiki-1.com/
http://www.kekkonsiki1.com/
http://www.party-1.com/
http://www.party-get.com/
http://www.partyget.com/
http://www.partys-get.com/
http://www.partys-no1.com/
http://www.partys1.com/
http://www.partysget.com/
http://www.wedding-no1.com/
http://www.weddingno1.com/
http://www.weddingsno1.com/
http://www.zeirisi-1.com/
http://www.auction-get.com/
http://www.baike-get.com/
http://www.beauty-1.info/
http://www.beautyget.net/
http://www.beauty-get.net/
http://www.beautygets.com/
http://www.beautyno1.net/
http://www.beauty-pp.com/
http://www.beautypp.net/
http://www.bengosi-get.com/
http://www.biyouin-get.com/
http://www.buraidaru-get.com/
http://www.english-get.com/
http://www.esute-get.com/
http://www.gourme-get.com/
http://www.gourmet-get.com/
http://www.hotel-pp.com/
http://www.hi-get.com/
http://www.implant-1.com/
http://www.implantget.com/
http://www.implant-hirosima.com/
http://www.implant-no1.com/
http://www.implant-p.com/
http://www.implant-pp.com/
http://www.implant-tokyos.com/
http://www.inpuranto.biz/
http://www.jyuku-get.com/
http://www.keiri-get.com/
http://www.kyujin-get.com/
http://www.lovehotel-get.com/
http://www.motorcycle-get.com/
http://www.nail-get.com/
http://www.no1-beauty.com/
http://www.no1tantei.com/
http://www.pet-get.com/
http://www.reform-get.com/
http://www.sihou-get.com/
http://www.sika-get.com/
http://www.sinbisika.info/
http://www.siti-get.com/
http://www.tanteiget.com/
http://www.tanteino1.com/
http://www.tantei-no1.com/
http://www.tanteipp.com/
http://www.tantei-pp.com/
http://www.uranai-get.com/
http://www.usedcar-get.com/
3 月 6 日
3 月 6 日
3 月 6 日
3 月 6 日
11 月 18 日
8 月 15 日
Ian Cooper发表:
Hi Tom,
 
I read through the article, it seems to me that you are really just providing the adapater pattern through a generic proxy as you still have to explicitly wrap your type rather than true duck typing; however, I agree with the point that the adapter pattern is an alternative in some of the cases to duck typing.
6 月 13 日
It's definately a good idea to learn a different language ever year, especially if it's not in the same family as ones rent/mortgage paying language. I'm trying to grok F# for my sins. On the subject of C# Duck Typing I had some fun a while back playing with this:
 
 
6 月 13 日

引用通告

此日志的引用通告 URL 是:
http://iancooper.spaces.live.com/blog/cns!844BD2811F9ABE9C!415.trak
引用此项的网络日志