LINUX.ORG.RU
ФорумTalks

Ментальный вирус

 ,


0

4

Языки типа Ruby или Io — это тяжелые наркотики вирус, поражающий мозг.

Когда я пишу код на PHP, я думаю о том, насколько же компактнее и понятнее был бы такой же код на Ruby (или на Io).
Когда я пишу код на JS, я думаю о том, насколько же компактнее и понятнее был бы такой же код на Ruby (или на Io).
Когда я пишу код на Пейтоне (что случается раз в полгода, но всё же), я думаю о том, насколько же компактнее и понятнее был бы такой же код на Ruby (или на Io).
И даже когда я вижу случайную строчку кода на Перле, я думаю о всё том же.

Есть ли более тяжелые наркотики вирусные языки, чем Ruby? Лиспы пробовал курить — не штырит.

coffee?

надо бы запилить еще один транслятор в js, чтобы стало приятно, хочу транслятор который гораздо ближе к js чем coffee, чтобы ставил ";" за меня, например.

special-k ★★★
()

SASS/SCSS (Тьюринг-полный язык).

resurtm ★★★
()

аффтар слегка укурен

kto_tama ★★★★★
()

Есть ли более тяжелые наркотики вирусные языки, чем Ruby?

Бейсик. После него тебя будет тошнить от избыточного синтаксиса и переусложнённых конструкций других языков.

Многие прелести руби кстати, напоминают мне именно бейсик.

yu-boot ★★★★
()

на Пейтоне
понятнее был бы такой же код на Ruby

No. Just no.

Nanodesu
()
Ответ на: комментарий от drBatty

когда я пишу на C, я думаю о коде, а не о всякой ерунде.

ЧСХ, когда я пишу на Си, я о всякой ерунде не думаю. Си довольно хорошо подходит в свою нишу. Т.е. можно было бы конечно вообразить на месте Си несуществующий язык, который чуть более удобен, но в целом Си и так хорош.

А вот в той области, где рулит Руби, все эти ПХП и Перлы выглядят как привет из эры динозавров.

geekless ★★
() автор топика
Ответ на: комментарий от XVilka

Для сложных программ проще будет $your_favourite_PL

buddhist ★★★★★
()
a.each |b| do
 blabla
end

тебе понятней, чем

for b in a:
  blabla
?

Шестинедельный курс эвтаназепама и разупорина по 2 мг 3 раза в день вместо еды этому господину.

GateKeeper ★★
()
Ответ на: комментарий от GateKeeper

да лол, еще как понятнее, потому что

a.each do |b|
 blabla
end
a.map do |b|
 blabla
end
a.all? do |b|
 blabla
end
a.any? do |b|
 blabla
end
a.my_personal_blabla do |a, b, c, and_as_much_as_i_want_lol|
 blabla
end
- это универсальная удобная конструкция,
а это ваше
for b in a:
  blabla
костыль для одного случая.

special-k ★★★
()
Последнее исправление: special-k (всего исправлений: 2)

Всё правильно сказал! Пойду понюхаю этот ваш Io.

science ★★☆
()
Ответ на: комментарий от special-k

for b in a: blabla

Читается человеком. И человек понимает, что здесь написано. Что написано в

a.my_personal_blabla do |a, b, c, and_as_much_as_i_want_lol|
 blabla
end
понять невозможно.

Xellos ★★★★★
()
Ответ на: комментарий от Xellos

Читается человеком.

Читается человеком вот это:

array.select{|v|v[/someregexp/]}.each_slice(3).map{|v| "#{v[0]} blabla #{v[1]} blablabla #{v[2]}"}.join("\n")

В этом алгоритме происходит ровно то, что написанов коде: выбрать из массива все элементы по регэкспу, объединить по 3 штуки, для каждой тройки сформировать строку, и строки объединить в одну с разделителем в виде перевода строки.

А теперь напиши то же самое на этих ваших циклах.

geekless ★★
() автор топика
Ответ на: комментарий от GateKeeper

тебе понятней, чем

Никто так не пишет на руби. Я вообще не помню, когда последний раз использовал циклы или each. Всё делается гораздо проще, понятнее и лаконичнее.

Но если у человека мозг поврежден процедурным пейтоном, и он пишет по 5 вложенных циклов, и считает, что всё понятно - это уже не лечится. Разупорин не поможет.

geekless ★★
() автор топика
Последнее исправление: geekless (всего исправлений: 1)
Ответ на: комментарий от special-k

Ты тоже не осилил элементарные конструкции питона?

for (a, b, c) in blabla:
    do_smth(a, b, c)

Хоть бы почитал доку на официальном сайте, что ли

In [4]: for (a, b, c) in [[1, 2, 3], [2, 3, 4]]:                                                                                                                                                               
    print a                                                                                                                                                                                                    
    print b
    print c
    print "---------"
    print a
    print b
    print c
    print "---END---"
   ...:     
1
2
3
---------
1
2
3
---END---
2
3
4
---------
2
3
4
---END---
GateKeeper ★★
()
Ответ на: комментарий от GateKeeper

Ты тоже не осилил элементарные конструкции питона?

Пока питонисты пытаются осилить элементарные конструкции, весь нормальный мир давно пишет так:

puts File.read('/etc/passwd').lines.
       map{|v| v.split(':').values_at(0, 5)}.sort_by{|v|v[0]}.
       select{|v| v[1] != '/' && File.directory?(v[1])}.
       map{|u, h| "#{u} => #{h}"}.join("\n")

А ты осиливай, осиливай...

geekless ★★
() автор топика
Ответ на: комментарий от GateKeeper

Ну так осиль генераторы, map, list/tuple comprehensions, лямбы, наконец.

С вашим идиотским нечитабельным синтаксисом и порядком аргументов шиворот навыворот? Нет, спасибо.

geekless ★★
() автор топика
Ответ на: комментарий от geekless

Нечитаемая каша, как по мне. Это как с перлом, пока в тонкости не вникаешь - вполне себе отличный язык, стоит войти в клуб perlmonksперлобезянок - баста, write-only.

В общем, то перлистов тебе еще далеко.

GateKeeper ★★
()
Ответ на: комментарий от geekless

С вашим идиотским нечитабельным синтаксисом

А вот и табы подтянулись.

порядком аргументов шиворот навыворот?

Показывай на примерах.

GateKeeper ★★
()
Ответ на: комментарий от geekless

При чем, у Ruby еще и не совсем чистый синтаксис. Если представить, что Io имеет аналогичную страндартную библиотеку (на самом деле, он сильно отличается), то алгоритм выглядел бы так:

File read('/etc/passwd') lines \
     map(split(':') values_at(0, 5)) sort_by(at(0)) \
     select(v, v[1] != '/' && File directory?(v[1])) \
     map(v, v join(" => ")) join("\n") print

geekless ★★
() автор топика
Ответ на: комментарий от GateKeeper

Нечитаемая каша, как по мне.

Когда ты то же самое на «более читаемом» языке запишешь на экранную страницу текста, оно внезапно станет более читаемым? Лол.

geekless ★★
() автор топика
Ответ на: комментарий от GateKeeper

А вот и табы подтянулись.

Домысливание за собеседника - отличный способ сесть в лужу.

Показывай на примерах.

str.join(array)

geekless ★★
() автор топика
Ответ на: комментарий от special-k

Нет, это понять можно. Здесь написано - определить (def) my_personal_blabla с аргументами (в скобочках) как:

Xellos ★★★★★
()
Ответ на: комментарий от ZuBB

http://www.opennet.ru/opennews/art.shtml?num=36168

О_О

Чо я могу сказать... Ахринеть. Это хороший, годный способ развития - так они могут действительно сделать тулкито-независимую libfm, и разработать годный фреймворк для построения ФМов.

geekless ★★
() автор топика

Когда я пишу, я вообще не

minakov ★★★★★
()
Ответ на: комментарий от geekless

Это читается, возражать не буду. Ну то есть почти читается - что происходит внутри функций, мне непонятно, какие-то волшебные пайпы и диезы. Но в перле тоже волшебные доллары и проценты, с другой стороны.

Xellos ★★★★★
()
Ответ на: комментарий от thesis

Не делай так, у меня от этого перл умер.

А теперь учимся читать простые английские слова:

array.select{|v|v[/someregexp/]}. # ВЫБРАТЬ ПО someregexp
each_slice(3). # КАЖДЫЙ КУСОК ПО 3 ЭЛЕМЕНТА
map{|v| "#{v[0]} blabla #{v[1]} blablabla #{v[2]}"}. # ПОДСТАВИТЬ ЗНАЧЕНИЯ В СТРОКУ
join("\n") # ОБЪЕДИНИТЬ
geekless ★★
() автор топика
Ответ на: комментарий от geekless

ВЫБРАТЬ ПО someregexp

То что там регексп, это видно. А вот к чему он, не видно. |v| это ваш способ для явного именования $_, да?

Xellos ★★★★★
()
Ответ на: комментарий от Xellos

что происходит внутри функций, мне непонятно, какие-то волшебные пайпы

{|a, b, c| blabla} - это лямбда, принимающая аргументы a, b, c и выполняющая код blabla. «Волшебные пайпы» - всего лишь скобки вокруг аргументов.

geekless ★★
() автор топика
Ответ на: комментарий от PolarFox

Я понял, руби — ментальный вирус, который заставляет писать однострочники.

Ага, sh 21-го века. :-D

geekless ★★
() автор топика
Ответ на: комментарий от PolarFox

Согласен, вариант {a, b, c: blabla} смотрелся бы лучше. Но проблема в том, что апрсеру надо точно знать, идёт после { список аргументов или сразу код. Поэтому был выбран такой символ, который не может начинать новое выражение - |.

geekless ★★
() автор топика
Последнее исправление: geekless (всего исправлений: 1)
Ответ на: комментарий от special-k

Мне непонятно, почему аргументы идут после do. Я не рубист, я когда читаю текст, я понимаю do как «делать, выполнять».

Xellos ★★★★★
()
Ответ на: комментарий от PolarFox

Ага, потому что у него нет направленности. «|v|v[/someregexp/]» я сначала вообще понял как три элемента (первый пустой), разделённые пайпами.

Xellos ★★★★★
()
Ответ на: комментарий от Xellos

Мне непонятно, почему аргументы идут после do. Я не рубист, я когда читаю текст, я понимаю do как «делать, выполнять».

do (или {, что тоже же самое) - это ключевое слово, которое говорит «щас будет лямбда, которую надо подставить в аргументы указанного ранее метода».

geekless ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.