Tuesday, March 3, 2009

What do Rubyists like about Ruby?

I put together a totally unscientific gimpy little web poll and posted it to the ruby-talk mailing list, asking Rubyists what their favorite Ruby features are. I received a little over 60 responses. Here are the top 10 (at the time this was posted):
  1. Blocks (71%)
  2. Lambdas / Procs (57%)
  3. Mix-ins / Modules (55%)
  4. Open classes / monkeypatching (53%)
  5. Duck-typing (53%)
  6. First-class regexps (49%)
  7. Metaprogramming (49%)
  8. Syntactic sugar e.g. val ||= x; array <<>
  9. Optional parens / English-like readability (44%)
  10. Object#method_missing (42%)
There's no real surprises here. Rubyists love their blocks, but perhaps even more than that, Rubyists love closures. Talking to some other people about lambdas / procs being so high, the general sentiment was that they were a feature which was used somewhat infrequently but was very handy when needed.

The mixin approach to inheritance is also quite popular. This lies alongside open classes and monkeypatching. Rubyists really seem to enjoy the ability to manipulate code inside the runtime environment, and we also see metaprogramming not too far down the list.

First class regexps have always been one of my favorites and I was glad to see they fared well. Beyond that, the type system, syntactic sugar, and method_missing were also popular.

I've left the poll open if you'd still like to vote:

  • Creating Domain Specific Languages
  • Ternary expressions e.g. foo ? bar : baz
  • Object#class / Object#is_a?
  • Object#method(s) / Module#instance_method(s)
  • Reflection
  • Lambdas / procs
  • Mix-ins / Modules
  • Object#instance_eval / Object#instance_exec
  • Redefining the behavior of core types
  • Standard library (and its use of blocks)
  • Instance-specific behavior / metaclasses
  • First class regexps
  • Optional parens / English-like readability
  • Definable MyObject#method=
  • Module#module_eval / Module#class_eval
  • Use of operators by core types (e.g. Array#*)
  • Object#method_missing
  • Operator overloading (in novel ways)
  • RubyGems
  • Open classes / monkeypatching
  • Syntactic sugar e.g. val ||= x; array << val
  • Code in class body (and metaprogramming with it)
  • Duck typing
  • Enumerators (Ruby 1.8.7+/Ruby 1.9)
  • Embedding code in strings with "#{mycode}"
  • Definable MyObject#[] and MyObject#[]=
  • Enumerable
  • Blocks
  • Singleton classes
  • Module#define_method
  • Splats e.g. method(*args)
  • ObjectSpace
  • Metaprogramming
  • Object#instance_variable_get / Object#instance_variable_set
  • Continuations e.g. callcc
  • MyObject#method? and MyObject#method! idiom


Jeremy Nicoll said...

I was going to actually take your poll, and then I realized that I would check almost every one of the boxes! I <3 Ruby.

Prateek Barn said...

avriq India

mariablack said...

Pc Optimization
Windows Installation
Data Recovery

shabnam praveen said...

Call girls in Kolkata
Call girls in Chandigarh
Call girls in Chandigarh
Call girls in Gurgaon
Call girls in Chandigarh
Call girls in Chandigarh

shabnam praveen said...

Call girls in Lucknow
Call girls in Guwahati
Call girls in Mumbai
Call girls in Jaipur
Call girls in Jaipur
Call girls in Jaipur
Call girls in Bangalore

Unknown said...

waoooo Sooo Niceeee. I really like it. shadow fight 3 mod apk hitman sniper apk geometry dash mod apk

mohit said...

nice post thanks
ivanka hot pics

ahmed said...

السيارات الهيدروكربونية الكلورية :
وهي عبارة عن مادة متبلورة شاغرة من أي شوائب ومن أشهر أمثلتها مادة DDT، وتمتاز بعدة مميزات أهمها:

غير قابلة للذوبان في الماء.
ثابتة التكوين وغير قابلة للتحول.
فرصة استعماله كمعلق مائي. قابلة للذوبان في الزيوت البترولية والزيوت النباتية وغيرها من المذيبات العضوية.شركة مكافحة الصراصير

Unknown said...

Thanks for sharing, nice post! Post really provice useful information!

Hương Lâm chuyên cung cấp bán máy photocopy và dịch vụ cho thuê máy photocopy giá rẻ, uy tín TP.HCM với dòng máy photocopy toshiba và dòng máy photocopy ricoh uy tín, giá rẻ.

Nannie Co Pam said...

IEEE Project Domain management in software engineering is distinct from traditional project deveopment in that software projects have a unique lifecycle process that requires multiple rounds of testing, updating, and faculty feedback. A IEEE Domain project Final Year Projects for CSE system development life cycle is essentially a phased project model that defines the organizational constraints of a large-scale systems project. The methods used in a IEEE DOmain Project systems development life cycle strategy Project Centers in Chennai For CSE provide clearly defined phases of work to plan, design, test, deploy, and maintain information systems.

This is enough for me. I want to write software that anyone can use, and virtually everyone who has an internet connected device with a screen can use apps written in JavaScript. JavaScript Training in Chennai JavaScript was used for little more than mouse hover animations and little calculations to make static websites feel more interactive. Let’s assume 90% of all websites using JavaScript use it in a trivial way. That still leaves 150 million substantial JavaScript Training in Chennai JavaScript applications.

angelisaka97 said...

Permainan poker pastinya banyak di kalangan remaja hingga dewasa yang sangat menggemari permainan poker, apalagi dalam 1 id game ada banyak permainan kartunya silahkan kunjungi situs kami untuk merasakan kenyamanan dalam bermain.

poker deposit pulsa

idn poker deposit pulsa

idn poker deposit pakai pulsa

cara deposit poker pakai pulsa

cara deposit idn poker pakai pulsa

download poker IDNPLAY

download idn poker versi 2.1.0

idn poker apk versi terbaru

idn poker apk versi 2.1.0

aplikasi idn poker versi 2.1.0

cara login poker idnplay

cara login idnplay

cara login IDN Poker

link login idn poker

link login idn play

link login poker idnplay

cara masuk akun IDNPLAY

cara masuk akun poker

download idn poker apk 77

cara download aplikasi poker

cara download apk idn poker

cara download idn poker 77

cara download idn poker apk

aplikasi judi kartu

judi kartu online

aplikasi idn poker

apk idn poker

Susan said...

Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I'll be subscribing to your feed and I hope you post again soon. Explore photo and video images on Instagram, latest posts and popular posts about Pictaram.

salma said...

دينا نقل عفش بالرياض دينا نقل عفش بالرياض
نقل عفش من المدينة المنورة الى مكة نقل عفش من المدينة المنورة الى مكة

casinoxo said...

อยู่ที่ไหนก็สนุกไปกับสล็อตออนไลน์ live22 เครดิตฟรี 2020

Jatin Sethi said...

Mental pressure is remembered by enhancements. Media focus, beautician, exercise center, yoga, games, other engaging wares and things is give in luxuries in liquor rehab. Exercise or other amusement help to reconstructed physical and state of mind. While considering its offices most significant are viable habit fix and treatment program. These projects might be individual or family premise as per an arrangement and generally fruitful anticipation of liquor abuse is finished by it. While you need counteraction for you or your family or for individuals who are nearest to you need to consider that do you needs private liquor rehab or not. On the off chance that the individual who will get conceded in clinic has issue in his typical life and can shoulder the costs of the entire treatment then it is a great idea to go these rehab. Trustworthiness, cooperative attitude, inventive conduct will reflect to his life in the event that he proceeds with the treatment course appropriately.
inspirational quotes for addicts
recovery quotes

Mark day said...

Nice post, Loved the content. inspired alot to polestar technologies an web development, mobile application development and enterprise software development service providing company.

DIO1337 said...

ISC888 สล็อตออนไลน์ คาสิโน แทงบอล พนันออนไลน์ สมัครง่าย เล่นง่าย ได้เงินจริง

123 xbet

Steven Salvatore said...

123 HP Officejet Pro 8610 setup information such as 123.hp.com/ojpro8610 wireless driver download, wireless network on Mac and Windows

Thirstyme said...

If you are looking most beautiful high profile Call Girls in Delhi NCR. we offers high profile Delhi NCR Call Girls at affordable range. Delhi Escorts Girls service available 24/7. Book now 9953457666.

Gurgaon Call Girls Service | Call Girls in Delhi | Delhi Call Girls | Noida Call Girls | Hauz Khas Call Girls | Hauz Khas Call Girls | Noida Call Girls Service

Aerocity Service said...

Paharganj Escorts
Dwarka Escorts
Russian Escorts Noida
Russian Escorts Delhi
Karol Bagh escorts
Delhi Escorts Service
Escorts in Delhi
Call girls in Delhi
Delhi escort
Aerocity Escorts

BravoSmith said...

Get the assignment writing service UK facility for your academic task which is given by teacher.

Harryjames said...

I had all sorts of problems in writing my assignment, and I wanted help with that. Assignment Writing Services UK suggest by a companion was an excellent deal I received a brilliantly written assignment within 2 days

Isabell Kiral said...

Ruby is used for building web applications. However, it is a general-purpose language similar to Python, so it has many other applications like data analysis, prototyping, and proof of concepts. Do you like it? Dissertation writing services.

R1se Hluoluo said...

mengetahui tidak ada yang bisa dilaksanakan untuk selamatkan orangtua saya. Saya memiliki perasaan yang menakutkan jika satu hari nanti mereka berdua akan mati karena pola hidup mereka. Sayang, ayah saya akan bunuh diri selang beberapa saat.

Mengapa Ini Penting: Langkah ini penting karena duka cita masuk hidup Anda di tingkat yang dalam; tingkat yang lebih dalam dari yang dapat dilihat siapa saja. https://gayaselebindo.com/ Penting sepanjang langkah ini untuk memahami jika stres adalah tanggapan yang pas pada trauma.

hektorhamelton said...

Thanks to the author for writing the post, it was quite necessary for me and liked it. I wrote a note on the assignmentace reviews about this. I will be happy if you read it and accept it. Thank you for your concern.

jasonbob said...

lebron james shoes
kyrie 5
stephen curry shoes
supreme outlet
kd shoes
michael jordan shoes
curry shoes
yeezy boost 350 v2
jordan shoes
curry 6

jasonbob said...

jordan shoes
kevin durant
yeezy boost 350 v2
golden goose
yeezy 500
lebron james shoes
curry 7 sour patch
curry shoes
cheap jordans
golden goose shoes

Unknown said...

Especially if you’re unfamiliar with the different types jackets and coats than we are here only to provide you our men distressted brown vest at your doorstep worldwide.

alsamotive said...

One of the most important maintenance services for your car, truck or SUV is none other than the oil and filter change. Scheduled maintenance will keep your car running smoothly for years, and it can even Engine repairs and fittings Abu Dhabi help increase the value if you ever decide to sell your car. ALSA Automotive Repair is pleased to assist you with a complete oil change, lube and filter service.

Unknown said...

Compared to concrete pavements, Cement Treated Base is an affordable and time-saving solution for a variety of construction projects that rely on evenly distributed load-bearing platforms to remove sub-grade fatigue. CEMENT TREATED BASE What’s more, it has been demonstrated that Cement Treated Base exceeds the structural proprieties of a thicker crushed aggregate base, making it a standard choice for modern road construction.

sex honey uae said...

A natural aphrodisiac turkish epimedium honey uae that gives you energy and relief from erectile dysfunction and enhances both female arousal and male performance

Unknown said...

We have worked for many general contractors, school regions, municipalities, and even companies over the years. From small repairs to large expansions, Elite Fencing Systems can help you meet all your commercial fencing needs.commercial fencing edmonton

Ban Yen said...

Definitely will likely turn out to be spine to get additional. Thanks a lot เกมสล็อตออนไลน์

Exterior Stone Alberta said...

Hasten is uniquely positioned to maximize the success of its customers by utilizing its vast network of relationships along with its unwavering focus on its core principles of honesty, reliability, quality, credibility, and trust. With the goal of providing quality products, safely, and on a timely basis, Hasten will ensure you are satisfied with the end result.
fly ash new mexico

Exterior Stone Alberta said...

Tile renovation is no small undertaking. Tile renovation services in Edmonton or anywhere is a makeover we are skilled at doing. We have seen it all and done it all. For an easy-care tile floor, go for porcelain or glazed tiles, and avoid porous tiles such as limestone on floors. You will never regret tiled floors. For a non-slip floor, let us help you choose textured tile surfaces, matte finishes, or glazes containing sand.
Wall Tiling Installation Edmonton

Unknown said...

What a information of un-ambiguity and preserveness of valuable
knowledge concerning unexpected emotions. 토토

Unknown said...

스포츠토토 If some one needs to be updated with latest technologies then he must be pay a visit this web page and be up to date

Unknown said...

Pretty! This was an extremely wonderful article. 바카라사이트 Thanks for
supplying this info.

Unknown said...

Quality content is the crucial to interest the viewers to go to see the site, 온라인카지노 that’s what this website is providing.

Unknown said...

Nothing ia better than finding quality tree service honolulu, hi because the majority of these big companies don't even care!