Comments 94
Пора переносить в Ruby. Спасибо!
не прошло или суток:)
Надеюсь что получится полный каплями стакан-главное не останавливаться.
Спасибо, очень увлекательно:)
Надеюсь что получится полный каплями стакан-главное не останавливаться.
Спасибо, очень увлекательно:)
Спасибо. С таким ненавязчивым и толковым объяснением, начинаю опасатся, что упаду все таки, в объятья Руби
ru.wikibooks.org/wiki/Ruby
по моему для начала самое оно.
по моему для начала самое оно.
«Массив лучше всего вообразить как гусеницу или поезд с лапками-запятыми вместо колёс. Ползёт он всегда влево, на левом же конце его локомотив — первый элемент.»
Убило.
Дальше решил читать
Programming Ruby The Pragmatic Programmer's Guide
Убило.
Дальше решил читать
Programming Ruby The Pragmatic Programmer's Guide
> регулярное выражение в переменной (expression interpolation)
Expression interpolation это скорее «интерполяция выражений». Regex'ы из совсем другой оперы. :)
Expression interpolation это скорее «интерполяция выражений». Regex'ы из совсем другой оперы. :)
Почему каждому новому языку каждый раз придумывают новый синтаксис…
Вот почему я убил Луа, вот почему не смотрю в строну Руби
Вот почему я убил Луа, вот почему не смотрю в строну Руби
О да, надо писать в только синтаксисе ассемблера.
Почему С и Java имеют схожий синтаксис.
Почему ПХП тоже имеет похожий синтаксис.
Почему даже паскаль особо далеко не ушол от этого синтаксиса…
Хотя конечно по сравнению с луа — руби сказка :)
Почему ПХП тоже имеет похожий синтаксис.
Почему даже паскаль особо далеко не ушол от этого синтаксиса…
Хотя конечно по сравнению с луа — руби сказка :)
А когда-то кто ругался на Си и «потомков» после фортрана и бейсика :) Почему нет номеров строк, как перейти куда хочу :)
>Почему ПХП тоже имеет похожий синтаксис.
Если синтаксис пхп на что-то и похож, то разве что на исковерканый синтаксис перла из которого выбросили за недомыслием причину префиксов перед переменными, но оставив зачем-то эти самые префиксы, которые в отсутствии причины стали совершенно лишними и уродливыми до тошноты. Ну, а нынешние добавлятели всякой всячины в пхп явно идут по явскому пути словестного поноса :). Скоро уже станет необходимым писать:
public static final function void main() :) :) :)
>Почему даже паскаль особо далеко не ушол от этого синтаксиса…
Паскакаль имеет синтаксис унаследованый от алгола-60, на сишный он даже издали похож крайне слабо :).
А чего такого непохожего в рубишном синтаксисе? По-моему, он даже ближе к сишному, чем пхп-шный.
Если синтаксис пхп на что-то и похож, то разве что на исковерканый синтаксис перла из которого выбросили за недомыслием причину префиксов перед переменными, но оставив зачем-то эти самые префиксы, которые в отсутствии причины стали совершенно лишними и уродливыми до тошноты. Ну, а нынешние добавлятели всякой всячины в пхп явно идут по явскому пути словестного поноса :). Скоро уже станет необходимым писать:
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 код :). Ну, это расплата за мощнось…
Но можно написать и короче. Удобнее. Красивее. Если не поленился изучить как это делать, конечно. Если знаешь язык, запись будет понятна. Если не знаешь… Ну, зная только какой-нибудь кобол, с пхп будут ровно те же затрудния :).
Тут, главное, в ряду «короче-удобнее-красивее» вовремя остановиться, поскольку выразтельные возможности перла позволяют впасть в состояние крайней степени тяжести и писать write-only код :). Ну, это расплата за мощнось…
затем что это другой язык, и синтаксис в языке играют немаловажную роль
Синтаксис силен в перле, скажем так — он краегольный камень языка…
А тут хмм — мелочи, да не приятно
А тут хмм — мелочи, да не приятно
почитайте получше описание синтаксиса руби и вы поймете что данный синтаксис дает нам много-много сахара… и возможностей для этого сахара… что в свою очередь очень сильно влияет на сам язык в целом и конструирует его.
Руби я конечно же узучал. Для сайтов полезнее быть написаными на Руби…
Но есть такая чтука — спинной мозг. Очень сложно заставить его писать в другом синтаксисе.
Он сам будет вбивать так как привык.
Переучивать его — это время и нервы.
Время — деньги.
Но есть такая чтука — спинной мозг. Очень сложно заставить его писать в другом синтаксисе.
Он сам будет вбивать так как привык.
Переучивать его — это время и нервы.
Время — деньги.
а вы пишите программы не спинным мозгом а головным;) оно как-то полезнее
А вы попробуйте воспринимать это не как затраты, а как инвестиции.
Потому что иначе это будет не новый язык. Вот почему я не смотрю на новые языки, пишу в двоичном коде. 0110101101010011111одинодинодин
> во-вторых она не базируется на Java, что положительно отражается на скорости работы
Я, конечно не говорю, что GUI-софт на джаве быстрый, но все же… сравни eclipse/idea/netbeans с VS2008 по производительности )
По крайней мере у меня джавовские быстрее работают.
Я, конечно не говорю, что 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/»],…
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
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.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
NetBeans уже 6.5 вышел www.netbeans.org/downloads/index.html
Жаль, конечно, что не что-нибудь открытое и кроссплатформенное в качестве среды для «капель» выбрали.
Жаль, конечно, что не что-нибудь открытое и кроссплатформенное в качестве среды для «капель» выбрали.
Если есть необходимость, то я могу написать и о NetBeans. Там еще проще — после установки среды не нужно загружать ни руби, ни рельсы, ничего. Сразу создаем проект, следим, чтобы путь к проекту на содержал кириллицы, в качестве Ruby Platform выбираем встроенный JRuby. Так как мы отложили рельсы, до этого пока будет достаточно
ну насчет необходимости не знаю, лично я уже разобрался почти, так, может пару абзацев для тех, кому точные пункты меню нужны :)
действительно, бОльшой необходимости нет, но было бы неплохо (и даже хорошо) «капать» и в свободном ПО ;)
тока писал о NetBeans 6.5 для Ruby, мега весч paxer.habrahabr.ru/blog/48515/
Друзья, я думаю, можно очень долго холиварить на тему: использовать ли IDE для Ruby. Только вот я вчера свою сборку Aptana променял на gedit.
И, да, чего же все под vim и emacs сидят? :) от вселенской глупости? попробуйте…
Спасибо за топик :)
И, да, чего же все под vim и emacs сидят? :) от вселенской глупости? попробуйте…
Спасибо за топик :)
Я тоже фанат gedit'a :). Все хочу приобщится к vim или emacs, но что то как то не выходит пока.
ну холиварить пока не начинали, мне так не с руки, только что первую строчку на руби написал, в 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 хотя бы не будет :)
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
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. А то обычно если кого спросишь об этом — он либо еще не знает, либо уже не помнит :)
Сам сейчас занимаюсь насильным пересаживанием себя за emacs, никаких практических причин для этого у меня нет, а чисто в порядке самоистязания, чтобы сила духа окрепла… Запретил себе писать код в чём-либо кроме емакса, уже недели три держусь, возможно, и вообще останусь… Думаю, может, статью какую-нибудь накатать, не туториал, а скорее хронику перехода и обзор того, что приобретаешь, переходя на emacs с типичных Windows GUI IDE. А то обычно если кого спросишь об этом — он либо еще не знает, либо уже не помнит :)
Кстати, насчет 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.
Приятная RubyMine заставила мой комп буксовать. В то же время даже более способный NetBeans работает намного быстрее
А еще в викиучебнике, есть отличный учебник по раби ru.wikibooks.org/wiki/Ruby
он Руби а не Раби:)
Да :) они называют его именно руби. подкасты / скринкасты тому подтверждение )
Да и вообще, «u» как «а» читается только в закрытом слоге, например bus.
А тут открытый слог, так что Руби!:)
На подкасты/скринкасты тоже полагаться нельзя, их не всегда англоязычные люди читают.
Слушал доклад японца с rubyconf2008, дак там вообще ужас с произношением:)
А тут открытый слог, так что Руби!:)
На подкасты/скринкасты тоже полагаться нельзя, их не всегда англоязычные люди читают.
Слушал доклад японца с rubyconf2008, дак там вообще ужас с произношением:)
да какая разница как мы называем, есть важнее вещи
Само собой :) Там индусы и японцы в перемешку))) По акценту же сразу слышно, native english это, или подстава :)
Японец не Матц случаем?
Нет, Матц достаточно нормально говорит:)
Вот этот доклад:
www.rubyconf2008.confreaks.com/future-of-rubyvm.html
Вот этот доклад:
www.rubyconf2008.confreaks.com/future-of-rubyvm.html
Ruby in steel выходила бесплатная.
насчет «глупых» строк — в большинстве книг, которые я читал (и по Руби, и по PHP, и по чему-либо еще) они назывались «lazy» («ленивые»)
Хотя нет, «глупая» строка понимает \' и больше ничего.
Неправда :) Она понимает еще
\\
:) ЗЫ: Удачи в дальнейшем освоении. И не забывайте про
"инлайны в строках #{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"
Паскаль (делфи):
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"
NetBeans 6.5 весьма советую.
\s это не пробел, и не аналог \n и \t. :)
Это из регулярных выражений. :)
Это из регулярных выражений. :)
The Book Of Ruby by Huw Collingbourne
www.sapphiresteel.com/The-Book-Of-Ruby
А про IDE их много. Но мое мнение то, что во время изучения языка лучше использовать текстовой редактор.
www.sapphiresteel.com/The-Book-Of-Ruby
А про IDE их много. Но мое мнение то, что во время изучения языка лучше использовать текстовой редактор.
Покурим Ruby вместе! Капля вторая
Why's (Poignant) Guide to Ruby
Очень интересная книга.
Очень интересная книга.
.., и даже немного познакомились с работой со строковыми переменными в Руби, обойдясь при этом без ООП.
Позанудствую, но вам никак бы не удалось обойтись без ООП. В Руби же все есть объект. =)
Третья каплЯ уже здесь :-)
Так начало не плохое хочу больше
Sign up to leave a comment.
Покорим Ruby вместе! Капля вторая