Джонас Ніклас: «Мені сумно бачити, як виходить щось типу Dart ...»

Сьогодні ми представляємо вашій увазі інтерв'ю з Джонасом Никласом (Jonas Niklas), відомим розробником, прихильником Ruby, одним із переможців Ruby Hero Award цього року. Нагадаємо, ця нагорода присуджується переможцями минулого року тим учасникам спільноти, які найбільшою мірою проявили себе: створили значимий навчальний контент, розробили плагіни і геми, брали участь у проектах з відкритим кодом.

Поспілкуватися з Джонасом особисто можна буде на конференції RubyC 5-6 листопада цього року.

- У наші дні в співтоваристві програмістів PHP-розробники постійно сперечаються з рубістамі про відповідні ситуаціях коли вони можуть/їм варто було б використовувати Ruby. На вашу думку, в яких випадках, якщо такі є, така дискусія - PHP або Ruby - має сенс?

- Я вважаю, що ви повинні використовувати будь-який інструмент, який вам підходить. Я думаю, що ми пишемо кращий код за більш короткий час використовуючи Ruby, ніж могли б, використовуючи PHP; просто язик не дуже добре сприяє супроводу коду. В Ruby-співтоваристві дуже сильно фокусуються на якості і поліпшення процесів; я не бачив, щоб це виходило з світу PHP. Якщо люди можуть зробити відмінний продукт на PHP, щоб із ними сила.

- У якому напрямку, на ваш погляд, слід розвиватися Rails? Чи думаєте ви, що є якась чудова ідея, яка повинна бути втілена на Rails, або зараз все добре і нічого концептуального додавати не варто?

- Rails застаріє на якомусь етапі. Ми бачимо сильний зсув у бік важких додатків на стороні клієнта, і я думаю, Rails 3.1 дуже правильно рухається в цьому напрямку із засобами джерела інформації. У мене є відчуття, що в певний момент хтось прийде і зробить краще, ніж можуть Rails; можливо, скоро.

- Як ви думаєте, з приходом таких технологій, як Ruby і Scala, чи можемо ми сказати що розвиток програмування стає більш об'єктно-орієнтованим? Як це може вплинути на програмістів та програмування?

- Я думаю, великою зміною в ці останні кілька років стала думка про те, що мова програмування може збирати і відбирати різні фічі з різних парадигм. Ruby, насправді, і функціональний, і об'єктно-орієнтована мова, як і Scala. Ми тут дійсно повертаємося до старих ідей, адже той же SmallTalk існував задовго до Ruby.

Мені сумно бачити, як виходить щось типу Dart, - здається, його автори нічому не навчилися за ці останні роки.

Я дійсно вірю, що для більшості людей концептуально легше змоделювати поведінку складної системи як зберігають стану об'єкти, і я думаю, що популярність Rails в порівнянні з більш функціональними підходами є доказом цього.

- Цитата з однієї книги: «Популярність, як така, мови програмування нічого не говорить про його якість. Це тільки свідчення його ефективності та доступності. »Ви згодні з цим? Це так для Ruby?

- Поняття якості досить складне. В Ruby є багато наростів і дивних крайнощів. Є точно можливості поліпшення мови та її застосувань. Для мене Ruby - тріумф прагматизму, самовираження і людяності над чисто теоретичним підходом. Але це не означає, що ми не можемо вивчити одну або дві речі з мов, які «краще розроблені» чим Ruby.

- Ви великий фанат Test Driven Development (TDD), і це буде головною темою вашої доповіді на RubyC. Як буде розвиватися ця методологія в майбутньому?

- Я думаю, наше розуміння про те, як тестувати софт, ще досить незріле. Напевно, ми відкриємо для себе нові чудові інструменти на нашому шляху. У спільноті Ruby останнім часом я часто чув, що багато людей говорять про швидкість виконання їхніх тестів. Я думаю, що це важливий аспект, який ми дуже довго ігнорували.

- Чи можете ви назвати свої улюблені стартап-проекти, написані на Ruby? Можливо, ви самі брали участь в деяких з них?

- Я не дуже занурений в стартап-спільноти. Для мене всі інструменти розробника, які надає Ruby, - дивовижні. Heroku, EngineYard, GitHub, Pivotal Tracker, всі ці речі. Я б набагато менше зробив без них.

- Ваші найпопулярніші бібліотеки - Capybara і Carrierwave. Розкажіть, що спонукало вас почати роботу над ними? Яка у проектів історія і передісторія?

- Я почав Сarrierwave як навчальний проект. Я хотів працювати з Merb в ті дні, і зауважив, що немає хороших рішень для завантажених файлів. І я вирішив взятися за це. Я почав робити Capybara, будучи засмучений тим, що було з біса складно правильно тестувати JavaScript. Мій друг Kevin Fitzgerald працював з нами в той час і скликав мітинг, щоб виправити проблему. Ось тоді я вирішив переписати Webrat з нуля і змусити його працювати так, як я того хочу.

- У середовищі розробників Capybara стає де-факто стандартом при інтеграційному тестуванні веб-додатків. Як плани щодо розвитку цього проекту? Чи є якась подоба roadmap'a?

- Остання складова - це повідомлення про помилки. Зараз повідомлення про помилки дійсно погані, вони не говорять вам про те, що насправді зламалося, або як ви можете це полагодити. Я думаю, як тільки це буде зроблено, у мене особливо не буде подальших планів. Я вважаю, здебільшого фічі проекту готові.

- Capybara дуже популярна: нині налічується близько 80 людей, які зробили свій внесок у розвиток бібліотеки. З якими проблемами вам довелося зіткнутися, приймаючи патчі і пул-реквести від спільноти? В даний момент на гітхабе у Capybara близько 15 пул-реквестов. Чому вони ще не прийняті або не закриті? Що гальмує процес розвитку бібліотеки?

- Я приділяю стільки часу, скільки можу, і хочу продовжувати робити Capybara, але в мене є й інші інтереси. Я часто роблю роботу по шматках, так що на певному етапі я сяду з відкритими пул-реквестамі і питаннями і пропрацюю їх, але я не проти того, якщо вони залишаться незайманими деякий час. Я думаю, це ведення такого популярного проета - унікальний досвід. Я не дуже-то розумів, який це обсяг роботи поки не зайнявся ім. Найважче у схваленні патчів - це підтримка якості. У мене дуже високі стандарти для тих патчів, які я прийму. Зазвичай я відразу відхиляю патчі, якщо у них немає тестів.

- Не так давно Aslak Hellsoy повідомив, що видаляє з свого проекту (cucumber) web_steps.rb. Це ускладнить новачкам процес вливання в ряди фанатів cucumber'a і змусить сильніше вивчити Capybara DSL. Що ви думаєте з приводу такого рішення?

- Я думаю, це правильне рішення. Веб-кроки були опорою на яку навіть я сильно покладався. Я радий, що цього більше немає.

- Нещодавно ви опублікували файл (gist.github.com/1233365 ) з прототипом нового DSL, що нагадує Cucumber DSL. Розкажіть про це детальніше. Коли ми побачимо (і чи побачимо) бібліотеку, що реалізує запропонований вами підхід?

- Ха-ха, я взагалі-то працював над супер просунутим першим прототипом, використовуючи Gherkin parser, просто для розваги. Я сумнівався що це побачить світ, це була просто весела ідея.

- Що ви думаєте про DataMapper? Це залишається актуальним, коли є Rails v.3?

Я думаю, DataMapper має безліч цікавих ідей, і як і раніше робить багато речей, які не робить ActiveRecord. Коли я використав його, він мав кілька крайнощів, які, напевно, прийшли з-за того, що використовували його менш активно, ніж ActiveRecord.

Кожен повинен спробувати використовувати DataMapper. Я не так переконаний, що один ORM, «щоб усіх відшукати, воєдино скликати і єдиною чорною волею скувати», є правильним рішенням; я думаю, було б дуже цікаво мати один ORM, який дійсно використовує всі дивовижні фічі PostgreSQL, наприклад.

- Відомо, що багато успішних розробники пробували програмувати в дитинстві (деякі - у віці до 10 років). Яка мова програмування ви б стали вчити чи порадили б спробувати своїм дітям?

- Python або JavaScript. Варто вчити мову, яка концептуально простий і за допомогою якого можна робити круті речі. HTML Canvas і PyGame - саме те. Ruby-класний мову, а й дуже складний.

Якщо ви захочете відвідає нашу дводенну , на якій ви зможете поспілкуватися зі справжніми професіоналами мови Рубі і супутніх технологій, відвідати майстер-клас Джонаса Нікласа, послухати доповіді провідних розробників, яким була присуджена нагорода Ruby Heroes, то у вас є унікальна можливість зареєструватися за Промокод # dou20, який дає 20% знижку першим 20 використали її учасникам.

Опубліковано: 27/10/11 @ 09:47
Розділ Різне

Рекомендуємо:

29-й випуск подкасту «Відверто про IT кар'єризм». Бесіда з Надією Плахова, керівником відділу розвитку Promodo
Освіта та IT: інтерни в CQG
Кращі движки сайтів для створення соціальної мережі
Как найти партнера
3 листопада, Херсон - Осіння зустріч IT Talk Kherson