Pull to refresh

Comments 94

Да как-то стесняюсь :))
Да я вам завидую! Проходил тот же путь, а описать не могу :(
Срочно в Ruby!
Перенос на вашей совести!!! :))))
Спасибо за тёплые слова!
Совесть пропил. Кармы нет. Нечего терять :)
Впервые добавляю кому-то карму — так приятно, оказывается ;)
не прошло или суток:)
Надеюсь что получится полный каплями стакан-главное не останавливаться.
Спасибо, очень увлекательно:)
Спасибо. С таким ненавязчивым и толковым объяснением, начинаю опасатся, что упаду все таки, в объятья Руби
ru.wikibooks.org/wiki/Ruby
по моему для начала самое оно.
«Массив лучше всего вообразить как гусеницу или поезд с лапками-запятыми вместо колёс. Ползёт он всегда влево, на левом же конце его локомотив — первый элемент.»

Убило.
Дальше решил читать
Programming Ruby The Pragmatic Programmer's Guide
Правильный путь паддаван :)
Pickaxe для начинающих самая лучшая книжка!:)
Да и не только для начинающих, например глава про сишные расширения.
вот если бы перевод еще
Кстати, про IDE: тем, кому люб OS X, очень рекомендую взглянуть на TextMate. Ядрёная штука!
это не IDE, а текстовый редактор
Для ОсХ конечно это круто, но у большинства людей не маки

Windows/Linux IDE:

Мой выбор Aptana with a RadRails plugin. Плагин тот же что и

texteditors like TextMate:

e-editor ( платный, но удобств столько как и textmate )
gedit ( проплагинить и будет как textmate )
забыл дописать

*Плагин тот же что и для eclipse
VIM
Emacs
на кой ещё что-то платить?)
> регулярное выражение в переменной (expression interpolation)

Expression interpolation это скорее «интерполяция выражений». Regex'ы из совсем другой оперы. :)
Ввело в заблуждение пособие:
Double quoted strings also offer another interesting feature: expression interpolation. As fancy as that sounds, it simply means this: you can insert the value of pieces of Ruby code into strings directly.
Исправляю.
Почему каждому новому языку каждый раз придумывают новый синтаксис…
Вот почему я убил Луа, вот почему не смотрю в строну Руби
О да, надо писать в только синтаксисе ассемблера.
Почему С и Java имеют схожий синтаксис.
Почему ПХП тоже имеет похожий синтаксис.
Почему даже паскаль особо далеко не ушол от этого синтаксиса…

Хотя конечно по сравнению с луа — руби сказка :)
А когда-то кто ругался на Си и «потомков» после фортрана и бейсика :) Почему нет номеров строк, как перейти куда хочу :)
>Почему ПХП тоже имеет похожий синтаксис.
Если синтаксис пхп на что-то и похож, то разве что на исковерканый синтаксис перла из которого выбросили за недомыслием причину префиксов перед переменными, но оставив зачем-то эти самые префиксы, которые в отсутствии причины стали совершенно лишними и уродливыми до тошноты. Ну, а нынешние добавлятели всякой всячины в пхп явно идут по явскому пути словестного поноса :). Скоро уже станет необходимым писать:
public static final function void main() :) :) :)
>Почему даже паскаль особо далеко не ушол от этого синтаксиса…
Паскакаль имеет синтаксис унаследованый от алгола-60, на сишный он даже издали похож крайне слабо :).

А чего такого непохожего в рубишном синтаксисе? По-моему, он даже ближе к сишному, чем пхп-шный.
Наверное годы параллельной работы на С и ПХП притупили мой взор и посеяли предвзятое отношение к другим языкам.
После моей первой и последней попытки написать «hello, world!» для интернета на C (в конце 90-х) я понял, что надо изучать другой язык, после небольшого анализа понял, что выбирать нужно между perl и php. Взял с пяток скриптов (госетвухи, счетчики и т. п.) на том, и другом, скачал мануалы и засек время, которое понадобится чтобы написать простейший скрипт, как сейчас говорят, фотохостинга. На PHP понадобилось часа 3, синтаксис после C прозрачен был, с Perl часов за 15 так и не разобрался. И на мой неразобравшийся до сих пор в Perl'е (хотя изучал регулярки по книге, где 90% кода было на нем) взгляд PHP и C (да и Java туда же) практически один язык по сравнению с Perl'ом. Хотя, конечно, тому, кто владеет одинаоков хорошо всеми тремя, виднее :)
Я на перле, конечно, уже несколько лет ничего не писал, но, по памяти, из перла легко выделить небольшое подмножество, которое будет практически полностью совпадать с пхп по синтаксису (с совсем небольшим отличиями) и легко писать на нём в «стиле пхп» :). Я ни в коем случае не призываю так делать :), но, всё-таки, пхп — это донельзя упрощённый перл (основы, основы — нововведения весьма отличны уже). И на перл он, на мой взляд, похож больше, чем на си. Хотя, конечно, если исходить из того, что синтаксис самого перла имеет сишную природу, пхп, несомненно, c-like язык, синтаксически :).
Не буду спорить, но точно помню свои впечателния от первых взглядов на два аналогичных (функционально, вроде валидация формы и запись ее БД) листинга на php и perl. PHP — да это ж си практически, только $ ставить перед переменными и function писать (потом, конечно, больше различий нашел), Perl — хм… а это с какого конца читать вообще надо
Да не о том я. На перле можно написать функциональный аналог почти текстуально совпадающий с таковым на пхп. Ещё и регэкспы будут человечьими, а не это пхп-шное уродство с безумным размножение палок.
Но можно написать и короче. Удобнее. Красивее. Если не поленился изучить как это делать, конечно. Если знаешь язык, запись будет понятна. Если не знаешь… Ну, зная только какой-нибудь кобол, с пхп будут ровно те же затрудния :).
Тут, главное, в ряду «короче-удобнее-красивее» вовремя остановиться, поскольку выразтельные возможности перла позволяют впасть в состояние крайней степени тяжести и писать write-only код :). Ну, это расплата за мощнось…
затем что это другой язык, и синтаксис в языке играют немаловажную роль
Синтаксис силен в перле, скажем так — он краегольный камень языка…
А тут хмм — мелочи, да не приятно
почитайте получше описание синтаксиса руби и вы поймете что данный синтаксис дает нам много-много сахара… и возможностей для этого сахара… что в свою очередь очень сильно влияет на сам язык в целом и конструирует его.
Руби я конечно же узучал. Для сайтов полезнее быть написаными на Руби…
Но есть такая чтука — спинной мозг. Очень сложно заставить его писать в другом синтаксисе.
Он сам будет вбивать так как привык.
Переучивать его — это время и нервы.
Время — деньги.
а вы пишите программы не спинным мозгом а головным;) оно как-то полезнее
пускай головные мозги программируют, а спинные кодят.
Я свои как-то за 15 лет приучил :)
А вы попробуйте воспринимать это не как затраты, а как инвестиции.
Одна фигня :)
Если захочу убить время и сделать что-то эдакое — начну писать сайты на Сях :)
Опыт и фреймворк есть…
Если решу какнить сменить свою сексуальную ориентацию — так и сделаю :)
Потому что иначе это будет не новый язык. Вот почему я не смотрю на новые языки, пишу в двоичном коде. 0110101101010011111одинодинодин
> во-вторых она не базируется на Java, что положительно отражается на скорости работы
Я, конечно не говорю, что GUI-софт на джаве быстрый, но все же… сравни eclipse/idea/netbeans с VS2008 по производительности )
По крайней мере у меня джавовские быстрее работают.
вот спасибо… то, что доктор прописал. параллельно начал изучать.
в избранное…
Жду третью каплю и все последующие!
А кому не надо IDE, можно так
Windows:
Сам руби — fhttp://rubyforge.org/projects/rubyinstaller/
Rails — gem install rails

Debian based
sudo apt-get install ruby1.8 ruby1.8-dev ri1.8 rdoc1.8 irb1.8
sudo gem install rails

Что бы быстро посмотреть на руби, можно использовать интерактивный интерпретатор — irb (аналог питоновского)
Например получить все ссылки на статьи с главной хабра:
ivs@debian:~$ irb
irb(main):001:0> require 'open-uri'
=> true
irb(main):002:0> open(«habrahabr.ru/»).read.scan(/href="([^"]*)" rel=«bookmark» class=«topic»/)
=> [[«habrahabr.ru/blogs/google_chrome/48638/»],…
Смотрю список пакетов с 'ruby' в репе убунту вижу версии 1.9 уже, а метапакеты ставят 1.8, причем с 1.8 на 1.9 обновляться не хотят, только ручками. Просто недоработка мейнтейнеров или есть что-то в 1.9 плохое?

P.S. может кому пригодится из начинающих юнксоидов, я минут 15 разбирался:
запускать в шелле .rb файлы можно командой ruby hello.rb, а можно ./hello.rb если дать права на выполнение и написать в первой строке .rb файла #!/usr/bin/ruby
1.9 это эксперементальная ветка, 1.8.6(уже 1.8.7, но там были баги, хотя профиксили уже вроде) — стабильная.
По-этому они на два пакета разделены. На 1.9 новые идеи обкатываются, которые потом в 2.0 появяться.
Хотя 1.9 быстрее, так как там уже добавили YARV — виртуальную машину.
Для обучения впринципе безразлично, только что в 1.9 новые фичи есть, еоторых в 1.8 нет.
А для продакшена практически всегда используют 1.8.6

>из начинающих юнксоидов
Для начинающих тогда уж полностью расписать:)
Первая строка в файле #!/usr/bin/ruby или #!/usr/bin/env ruby
Потом в терминале
$ chmod u+x test.rb — делаем файл исполняемым, нужно сделать только один раз
$ ./test.rb — запускаем

Или же просто без всех этих махинаций(а в windows только так)
$ ruby test.rb
спасибо, значит пока оставим 1.8
NetBeans уже 6.5 вышел www.netbeans.org/downloads/index.html

Жаль, конечно, что не что-нибудь открытое и кроссплатформенное в качестве среды для «капель» выбрали.
Если есть необходимость, то я могу написать и о NetBeans. Там еще проще — после установки среды не нужно загружать ни руби, ни рельсы, ничего. Сразу создаем проект, следим, чтобы путь к проекту на содержал кириллицы, в качестве Ruby Platform выбираем встроенный JRuby. Так как мы отложили рельсы, до этого пока будет достаточно
ну насчет необходимости не знаю, лично я уже разобрался почти, так, может пару абзацев для тех, кому точные пункты меню нужны :)
действительно, бОльшой необходимости нет, но было бы неплохо (и даже хорошо) «капать» и в свободном ПО ;)
Друзья, я думаю, можно очень долго холиварить на тему: использовать ли IDE для Ruby. Только вот я вчера свою сборку Aptana променял на gedit.
И, да, чего же все под vim и emacs сидят? :) от вселенской глупости? попробуйте…

Спасибо за топик :)
Я тоже фанат gedit'a :). Все хочу приобщится к vim или emacs, но что то как то не выходит пока.
ну холиварить пока не начинали, мне так не с руки, только что первую строчку на руби написал, в gedit, кстати, который сегодня променял на netbeans (правда не знаю надолго ли, уже один баг отправил на багзиллу, если так и дальше пойдет, то наверное придется вернуться :( )

А под vim и e-macs, имхо, сидят те, у кого либо выбора не было когда-то, либо было много свободного времени и энтузиазма на изучение хотя бы основ их, или я такой тупой, что мне часа не хватило на то, чтобы понять как элементарные операции (открыть/создать файл, закрыть/сохранить, набивать текст, перемещаться по нему, редактировать, копи-пастить и т. п.) выполнять.

P.S. Вот только что еще раз попробовал, 5 минут слушал пиканье, потом все-таки зашел в хелп где написано, что хелпа нет, и еще 5 минут оттуда выходил, а потмо две минуты опять назад в шелл выходил… видать совсем тупой я, раз мне проще через cp /dev/stdin file.txt набить если уж nano хотя бы не будет :)
vim осиливается с потом, а рассаёшься с ним со слезами
Ну в принципе человек глазом то учится управлять пару лет, так что несколько дней на освоение инструмента — это нормально.
И странная ситуация с хелпом у вас, на емаксе туториал на русском в поставке идет, а у вима вимтутор есть.
набрал vim, появился «сплэш» с надписями типа
type :help iccf to help children in Uganda
type :help for help
type :q to exit
f1 нажал (и то не сразу, уж очень дети уганды заинтерсовали :) ), в хелп попал, потом долго соображал как выйти из него, потом из редактора (надо еще! в конце поставить), в общем нельзя все-таки такие длинные каникулы делать :))))
оказывается надо двоеточие нажимать, это не знак пунктуации, а часть команды, причем нажимать его с шифтом надо, то есть смотрит не нажатую клавишу, а ascii код, и вообще интерфейс основан на командной строке похоже. В общем сложно вникнуть во что-то абсолютно отличающиеся от того к чему привык за 20 лет, даже в дос в edit, не говоря уж о лексиконе примерно те же принципы интерфейса, что и в каком-нибудь ворде 2007

ну а в самом хелпе надпись что vim online help not installed on this system, оказывается у меня стоял vim-tiny без хелпа, сейчас поставил vim-runtime, но что-то все равно не верится, что даже через неделю исходники скажем на том же php буду набирать и править быстрее чем даже в gedit, не говоря уж о netbeans или eclipse

Ну какие «все», считаные единицы особо бородатых одминов под ними сидят… :)

Сам сейчас занимаюсь насильным пересаживанием себя за emacs, никаких практических причин для этого у меня нет, а чисто в порядке самоистязания, чтобы сила духа окрепла… Запретил себе писать код в чём-либо кроме емакса, уже недели три держусь, возможно, и вообще останусь… Думаю, может, статью какую-нибудь накатать, не туториал, а скорее хронику перехода и обзор того, что приобретаешь, переходя на emacs с типичных Windows GUI IDE. А то обычно если кого спросишь об этом — он либо еще не знает, либо уже не помнит :)
Поверьте, гигов хватает :) там не только и не столько бородатые дядьки. половина Merb и Rubinius команды О_о
> гигов хватает

ЩИТО? :)
О_о гиков, пардон.
Кстати, насчет Ruby IDE.
Есть еще RubyMine www.jetbrains.com/ruby/index.html
Притом еще и бесплатная(пока).
Любителям IDE думаю стоит посмотреть, т.к. она от того же разработчика что и IntelliJ IDEA, одной из лучших Java IDE.
Приятная RubyMine заставила мой комп буксовать. В то же время даже более способный NetBeans работает намного быстрее
Хм, когда писал на Java, использовал только InelliJ IDEA, нк тормозило и норм работало.
А RubyMine я даже не смотрел, меня вполне gedit устраивает:)
Но очень странно что у RubyMine такой регресс по сравнению с IDEA…
он Руби а не Раби:)
Да :) они называют его именно руби. подкасты / скринкасты тому подтверждение )
Да и вообще, «u» как «а» читается только в закрытом слоге, например bus.
А тут открытый слог, так что Руби!:)
На подкасты/скринкасты тоже полагаться нельзя, их не всегда англоязычные люди читают.
Слушал доклад японца с rubyconf2008, дак там вообще ужас с произношением:)
да какая разница как мы называем, есть важнее вещи
Само собой :) Там индусы и японцы в перемешку))) По акценту же сразу слышно, native english это, или подстава :)
Японец не Матц случаем?
насчет «глупых» строк — в большинстве книг, которые я читал (и по Руби, и по PHP, и по чему-либо еще) они назывались «lazy» («ленивые»)
А у меня в книгах они называются «silly» :)
ну и бог с ними, суть ясна. статья кстати хорошая, тоже все собираюсь заняться Руби, книжек почитал, а рабочей идеи которую стоило бы начать реализовывать никак не придумаю
Мне бы ваши проблемы :) Идей много, а вот с реализацией все затруднительно
Хотя нет, «глупая» строка понимает \' и больше ничего.


Неправда :) Она понимает еще \\ :)
ЗЫ: Удачи в дальнейшем освоении. И не забывайте про "инлайны в строках #{2+3}" :)
Ой, а подскажите, что такое инлайны :-[
Ну то что я написал выше в строке. Очень удобно во всякого рода выводах при форматировании строк. Ну скажем один и тот же пример на 3х языках:

Паскаль (делфи):
ShowMessage('2 + 3 = ' + IntToStr(2+3));

С/С++:
printf(«2 + 3 = %d», 2 + 3);

Руби:
puts(«2 + 3 = #{2+3}»)

То есть, выражение втыкается прямо в строку. Естественно, инлайнов может быть сколько угодно и они даже могут быть один внутри другого.

puts(«координаты цели (#{myobj.x}, #{myobj.y})»)

В общем случае строку с инлайном можно развернуть в выражение:
«foo #{X} bar» эквивалентно «foo » + (X) + " bar"
Блин, редактор преобразовал кавычки =) Ну в общем надеюсь понятно
Спасибо — действительно понятно :)
\s это не пробел, и не аналог \n и \t. :)
Это из регулярных выражений. :)
The Book Of Ruby by Huw Collingbourne
www.sapphiresteel.com/The-Book-Of-Ruby

А про IDE их много. Но мое мнение то, что во время изучения языка лучше использовать текстовой редактор.
.., и даже немного познакомились с работой со строковыми переменными в Руби, обойдясь при этом без ООП.

Позанудствую, но вам никак бы не удалось обойтись без ООП. В Руби же все есть объект. =)
Об этом я написал в третьей части ;)
Так начало не плохое хочу больше
Sign up to leave a comment.

Articles