Комментарии 94
Пора переносить в Ruby. Спасибо!
+2
не прошло или суток:)
Надеюсь что получится полный каплями стакан-главное не останавливаться.
Спасибо, очень увлекательно:)
Надеюсь что получится полный каплями стакан-главное не останавливаться.
Спасибо, очень увлекательно:)
+3
Спасибо. С таким ненавязчивым и толковым объяснением, начинаю опасатся, что упаду все таки, в объятья Руби
0
ru.wikibooks.org/wiki/Ruby
по моему для начала самое оно.
по моему для начала самое оно.
0
«Массив лучше всего вообразить как гусеницу или поезд с лапками-запятыми вместо колёс. Ползёт он всегда влево, на левом же конце его локомотив — первый элемент.»
Убило.
Дальше решил читать
Programming Ruby The Pragmatic Programmer's Guide
Убило.
Дальше решил читать
Programming Ruby The Pragmatic Programmer's Guide
+1
> регулярное выражение в переменной (expression interpolation)
Expression interpolation это скорее «интерполяция выражений». Regex'ы из совсем другой оперы. :)
Expression interpolation это скорее «интерполяция выражений». Regex'ы из совсем другой оперы. :)
+5
Почему каждому новому языку каждый раз придумывают новый синтаксис…
Вот почему я убил Луа, вот почему не смотрю в строну Руби
Вот почему я убил Луа, вот почему не смотрю в строну Руби
-2
О да, надо писать в только синтаксисе ассемблера.
-1
Почему С и Java имеют схожий синтаксис.
Почему ПХП тоже имеет похожий синтаксис.
Почему даже паскаль особо далеко не ушол от этого синтаксиса…
Хотя конечно по сравнению с луа — руби сказка :)
Почему ПХП тоже имеет похожий синтаксис.
Почему даже паскаль особо далеко не ушол от этого синтаксиса…
Хотя конечно по сравнению с луа — руби сказка :)
-1
А когда-то кто ругался на Си и «потомков» после фортрана и бейсика :) Почему нет номеров строк, как перейти куда хочу :)
0
>Почему ПХП тоже имеет похожий синтаксис.
Если синтаксис пхп на что-то и похож, то разве что на исковерканый синтаксис перла из которого выбросили за недомыслием причину префиксов перед переменными, но оставив зачем-то эти самые префиксы, которые в отсутствии причины стали совершенно лишними и уродливыми до тошноты. Ну, а нынешние добавлятели всякой всячины в пхп явно идут по явскому пути словестного поноса :). Скоро уже станет необходимым писать:
public static final function void main() :) :) :)
>Почему даже паскаль особо далеко не ушол от этого синтаксиса…
Паскакаль имеет синтаксис унаследованый от алгола-60, на сишный он даже издали похож крайне слабо :).
А чего такого непохожего в рубишном синтаксисе? По-моему, он даже ближе к сишному, чем пхп-шный.
Если синтаксис пхп на что-то и похож, то разве что на исковерканый синтаксис перла из которого выбросили за недомыслием причину префиксов перед переменными, но оставив зачем-то эти самые префиксы, которые в отсутствии причины стали совершенно лишними и уродливыми до тошноты. Ну, а нынешние добавлятели всякой всячины в пхп явно идут по явскому пути словестного поноса :). Скоро уже станет необходимым писать:
public static final function void main() :) :) :)
>Почему даже паскаль особо далеко не ушол от этого синтаксиса…
Паскакаль имеет синтаксис унаследованый от алгола-60, на сишный он даже издали похож крайне слабо :).
А чего такого непохожего в рубишном синтаксисе? По-моему, он даже ближе к сишному, чем пхп-шный.
+3
Наверное годы параллельной работы на С и ПХП притупили мой взор и посеяли предвзятое отношение к другим языкам.
-1
После моей первой и последней попытки написать «hello, world!» для интернета на C (в конце 90-х) я понял, что надо изучать другой язык, после небольшого анализа понял, что выбирать нужно между perl и php. Взял с пяток скриптов (госетвухи, счетчики и т. п.) на том, и другом, скачал мануалы и засек время, которое понадобится чтобы написать простейший скрипт, как сейчас говорят, фотохостинга. На PHP понадобилось часа 3, синтаксис после C прозрачен был, с Perl часов за 15 так и не разобрался. И на мой неразобравшийся до сих пор в Perl'е (хотя изучал регулярки по книге, где 90% кода было на нем) взгляд PHP и C (да и Java туда же) практически один язык по сравнению с Perl'ом. Хотя, конечно, тому, кто владеет одинаоков хорошо всеми тремя, виднее :)
0
Я на перле, конечно, уже несколько лет ничего не писал, но, по памяти, из перла легко выделить небольшое подмножество, которое будет практически полностью совпадать с пхп по синтаксису (с совсем небольшим отличиями) и легко писать на нём в «стиле пхп» :). Я ни в коем случае не призываю так делать :), но, всё-таки, пхп — это донельзя упрощённый перл (основы, основы — нововведения весьма отличны уже). И на перл он, на мой взляд, похож больше, чем на си. Хотя, конечно, если исходить из того, что синтаксис самого перла имеет сишную природу, пхп, несомненно, c-like язык, синтаксически :).
0
Не буду спорить, но точно помню свои впечателния от первых взглядов на два аналогичных (функционально, вроде валидация формы и запись ее БД) листинга на php и perl. PHP — да это ж си практически, только $ ставить перед переменными и function писать (потом, конечно, больше различий нашел), Perl — хм… а это с какого конца читать вообще надо
0
Да не о том я. На перле можно написать функциональный аналог почти текстуально совпадающий с таковым на пхп. Ещё и регэкспы будут человечьими, а не это пхп-шное уродство с безумным размножение палок.
Но можно написать и короче. Удобнее. Красивее. Если не поленился изучить как это делать, конечно. Если знаешь язык, запись будет понятна. Если не знаешь… Ну, зная только какой-нибудь кобол, с пхп будут ровно те же затрудния :).
Тут, главное, в ряду «короче-удобнее-красивее» вовремя остановиться, поскольку выразтельные возможности перла позволяют впасть в состояние крайней степени тяжести и писать write-only код :). Ну, это расплата за мощнось…
Но можно написать и короче. Удобнее. Красивее. Если не поленился изучить как это делать, конечно. Если знаешь язык, запись будет понятна. Если не знаешь… Ну, зная только какой-нибудь кобол, с пхп будут ровно те же затрудния :).
Тут, главное, в ряду «короче-удобнее-красивее» вовремя остановиться, поскольку выразтельные возможности перла позволяют впасть в состояние крайней степени тяжести и писать write-only код :). Ну, это расплата за мощнось…
+1
затем что это другой язык, и синтаксис в языке играют немаловажную роль
+1
Синтаксис силен в перле, скажем так — он краегольный камень языка…
А тут хмм — мелочи, да не приятно
А тут хмм — мелочи, да не приятно
-1
почитайте получше описание синтаксиса руби и вы поймете что данный синтаксис дает нам много-много сахара… и возможностей для этого сахара… что в свою очередь очень сильно влияет на сам язык в целом и конструирует его.
+1
Руби я конечно же узучал. Для сайтов полезнее быть написаными на Руби…
Но есть такая чтука — спинной мозг. Очень сложно заставить его писать в другом синтаксисе.
Он сам будет вбивать так как привык.
Переучивать его — это время и нервы.
Время — деньги.
Но есть такая чтука — спинной мозг. Очень сложно заставить его писать в другом синтаксисе.
Он сам будет вбивать так как привык.
Переучивать его — это время и нервы.
Время — деньги.
-3
а вы пишите программы не спинным мозгом а головным;) оно как-то полезнее
+3
А вы попробуйте воспринимать это не как затраты, а как инвестиции.
0
Потому что иначе это будет не новый язык. Вот почему я не смотрю на новые языки, пишу в двоичном коде. 0110101101010011111одинодинодин
+1
> во-вторых она не базируется на Java, что положительно отражается на скорости работы
Я, конечно не говорю, что GUI-софт на джаве быстрый, но все же… сравни eclipse/idea/netbeans с VS2008 по производительности )
По крайней мере у меня джавовские быстрее работают.
Я, конечно не говорю, что GUI-софт на джаве быстрый, но все же… сравни eclipse/idea/netbeans с VS2008 по производительности )
По крайней мере у меня джавовские быстрее работают.
+1
вот спасибо… то, что доктор прописал. параллельно начал изучать.
в избранное…
в избранное…
0
Жду третью каплю и все последующие!
0
А кому не надо 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/»],…
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/»],…
+1
Смотрю список пакетов с 'ruby' в репе убунту вижу версии 1.9 уже, а метапакеты ставят 1.8, причем с 1.8 на 1.9 обновляться не хотят, только ручками. Просто недоработка мейнтейнеров или есть что-то в 1.9 плохое?
P.S. может кому пригодится из начинающих юнксоидов, я минут 15 разбирался:
запускать в шелле .rb файлы можно командой ruby hello.rb, а можно ./hello.rb если дать права на выполнение и написать в первой строке .rb файла #!/usr/bin/ruby
P.S. может кому пригодится из начинающих юнксоидов, я минут 15 разбирался:
запускать в шелле .rb файлы можно командой ruby hello.rb, а можно ./hello.rb если дать права на выполнение и написать в первой строке .rb файла #!/usr/bin/ruby
0
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.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
+2
NetBeans уже 6.5 вышел www.netbeans.org/downloads/index.html
Жаль, конечно, что не что-нибудь открытое и кроссплатформенное в качестве среды для «капель» выбрали.
Жаль, конечно, что не что-нибудь открытое и кроссплатформенное в качестве среды для «капель» выбрали.
+3
Если есть необходимость, то я могу написать и о NetBeans. Там еще проще — после установки среды не нужно загружать ни руби, ни рельсы, ничего. Сразу создаем проект, следим, чтобы путь к проекту на содержал кириллицы, в качестве Ruby Platform выбираем встроенный JRuby. Так как мы отложили рельсы, до этого пока будет достаточно
-1
ну насчет необходимости не знаю, лично я уже разобрался почти, так, может пару абзацев для тех, кому точные пункты меню нужны :)
0
действительно, бОльшой необходимости нет, но было бы неплохо (и даже хорошо) «капать» и в свободном ПО ;)
0
тока писал о NetBeans 6.5 для Ruby, мега весч paxer.habrahabr.ru/blog/48515/
0
Друзья, я думаю, можно очень долго холиварить на тему: использовать ли IDE для Ruby. Только вот я вчера свою сборку Aptana променял на gedit.
И, да, чего же все под vim и emacs сидят? :) от вселенской глупости? попробуйте…
Спасибо за топик :)
И, да, чего же все под vim и emacs сидят? :) от вселенской глупости? попробуйте…
Спасибо за топик :)
0
Я тоже фанат gedit'a :). Все хочу приобщится к vim или emacs, но что то как то не выходит пока.
0
ну холиварить пока не начинали, мне так не с руки, только что первую строчку на руби написал, в gedit, кстати, который сегодня променял на netbeans (правда не знаю надолго ли, уже один баг отправил на багзиллу, если так и дальше пойдет, то наверное придется вернуться :( )
А под vim и e-macs, имхо, сидят те, у кого либо выбора не было когда-то, либо было много свободного времени и энтузиазма на изучение хотя бы основ их, или я такой тупой, что мне часа не хватило на то, чтобы понять как элементарные операции (открыть/создать файл, закрыть/сохранить, набивать текст, перемещаться по нему, редактировать, копи-пастить и т. п.) выполнять.
P.S. Вот только что еще раз попробовал, 5 минут слушал пиканье, потом все-таки зашел в хелп где написано, что хелпа нет, и еще 5 минут оттуда выходил, а потмо две минуты опять назад в шелл выходил… видать совсем тупой я, раз мне проще через cp /dev/stdin file.txt набить если уж nano хотя бы не будет :)
А под vim и e-macs, имхо, сидят те, у кого либо выбора не было когда-то, либо было много свободного времени и энтузиазма на изучение хотя бы основ их, или я такой тупой, что мне часа не хватило на то, чтобы понять как элементарные операции (открыть/создать файл, закрыть/сохранить, набивать текст, перемещаться по нему, редактировать, копи-пастить и т. п.) выполнять.
P.S. Вот только что еще раз попробовал, 5 минут слушал пиканье, потом все-таки зашел в хелп где написано, что хелпа нет, и еще 5 минут оттуда выходил, а потмо две минуты опять назад в шелл выходил… видать совсем тупой я, раз мне проще через cp /dev/stdin file.txt набить если уж nano хотя бы не будет :)
0
vim осиливается с потом, а рассаёшься с ним со слезами
+2
Ну в принципе человек глазом то учится управлять пару лет, так что несколько дней на освоение инструмента — это нормально.
И странная ситуация с хелпом у вас, на емаксе туториал на русском в поставке идет, а у вима вимтутор есть.
И странная ситуация с хелпом у вас, на емаксе туториал на русском в поставке идет, а у вима вимтутор есть.
0
набрал 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
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
0
Ну какие «все», считаные единицы особо бородатых одминов под ними сидят… :)
Сам сейчас занимаюсь насильным пересаживанием себя за emacs, никаких практических причин для этого у меня нет, а чисто в порядке самоистязания, чтобы сила духа окрепла… Запретил себе писать код в чём-либо кроме емакса, уже недели три держусь, возможно, и вообще останусь… Думаю, может, статью какую-нибудь накатать, не туториал, а скорее хронику перехода и обзор того, что приобретаешь, переходя на emacs с типичных Windows GUI IDE. А то обычно если кого спросишь об этом — он либо еще не знает, либо уже не помнит :)
Сам сейчас занимаюсь насильным пересаживанием себя за emacs, никаких практических причин для этого у меня нет, а чисто в порядке самоистязания, чтобы сила духа окрепла… Запретил себе писать код в чём-либо кроме емакса, уже недели три держусь, возможно, и вообще останусь… Думаю, может, статью какую-нибудь накатать, не туториал, а скорее хронику перехода и обзор того, что приобретаешь, переходя на emacs с типичных Windows GUI IDE. А то обычно если кого спросишь об этом — он либо еще не знает, либо уже не помнит :)
+1
Кстати, насчет Ruby IDE.
Есть еще RubyMine www.jetbrains.com/ruby/index.html
Притом еще и бесплатная(пока).
Любителям IDE думаю стоит посмотреть, т.к. она от того же разработчика что и IntelliJ IDEA, одной из лучших Java IDE.
Есть еще RubyMine www.jetbrains.com/ruby/index.html
Притом еще и бесплатная(пока).
Любителям IDE думаю стоит посмотреть, т.к. она от того же разработчика что и IntelliJ IDEA, одной из лучших Java IDE.
0
Приятная RubyMine заставила мой комп буксовать. В то же время даже более способный NetBeans работает намного быстрее
0
А еще в викиучебнике, есть отличный учебник по раби ru.wikibooks.org/wiki/Ruby
+1
он Руби а не Раби:)
0
Да :) они называют его именно руби. подкасты / скринкасты тому подтверждение )
0
Да и вообще, «u» как «а» читается только в закрытом слоге, например bus.
А тут открытый слог, так что Руби!:)
На подкасты/скринкасты тоже полагаться нельзя, их не всегда англоязычные люди читают.
Слушал доклад японца с rubyconf2008, дак там вообще ужас с произношением:)
А тут открытый слог, так что Руби!:)
На подкасты/скринкасты тоже полагаться нельзя, их не всегда англоязычные люди читают.
Слушал доклад японца с rubyconf2008, дак там вообще ужас с произношением:)
0
да какая разница как мы называем, есть важнее вещи
0
Само собой :) Там индусы и японцы в перемешку))) По акценту же сразу слышно, native english это, или подстава :)
0
Японец не Матц случаем?
0
Нет, Матц достаточно нормально говорит:)
Вот этот доклад:
www.rubyconf2008.confreaks.com/future-of-rubyvm.html
Вот этот доклад:
www.rubyconf2008.confreaks.com/future-of-rubyvm.html
0
Ruby in steel выходила бесплатная.
0
насчет «глупых» строк — в большинстве книг, которые я читал (и по Руби, и по PHP, и по чему-либо еще) они назывались «lazy» («ленивые»)
0
Хотя нет, «глупая» строка понимает \' и больше ничего.
Неправда :) Она понимает еще
\\
:) ЗЫ: Удачи в дальнейшем освоении. И не забывайте про
"инлайны в строках #{2+3}"
:)0
Ой, а подскажите, что такое инлайны :-[
0
Ну то что я написал выше в строке. Очень удобно во всякого рода выводах при форматировании строк. Ну скажем один и тот же пример на 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"
Паскаль (делфи):
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"
0
NetBeans 6.5 весьма советую.
0
\s это не пробел, и не аналог \n и \t. :)
Это из регулярных выражений. :)
Это из регулярных выражений. :)
+1
The Book Of Ruby by Huw Collingbourne
www.sapphiresteel.com/The-Book-Of-Ruby
А про IDE их много. Но мое мнение то, что во время изучения языка лучше использовать текстовой редактор.
www.sapphiresteel.com/The-Book-Of-Ruby
А про IDE их много. Но мое мнение то, что во время изучения языка лучше использовать текстовой редактор.
0
Покурим Ruby вместе! Капля вторая
+1
Why's (Poignant) Guide to Ruby
Очень интересная книга.
Очень интересная книга.
+1
.., и даже немного познакомились с работой со строковыми переменными в Руби, обойдясь при этом без ООП.
Позанудствую, но вам никак бы не удалось обойтись без ООП. В Руби же все есть объект. =)
0
Третья каплЯ уже здесь :-)
0
Так начало не плохое хочу больше
+1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Покорим Ruby вместе! Капля вторая