metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-11-29 10:20 am
Entry tags:

"Читать код, не зная языка"

Основной критерий выбора технологий программирования: "Чтобы вас можно было заменить на васю, не знающего языка и он мог прочесть код": http://ugenk.livejournal.com/188023.html

[identity profile] avnik.livejournal.com 2012-11-29 03:08 pm (UTC)(link)
Я писал на sh как минимум хвостовую рекурсию и два вложеных уровня кодогенерации.

[identity profile] nealar.livejournal.com 2012-11-29 03:18 pm (UTC)(link)
Я хочу это видеть

[identity profile] avnik.livejournal.com 2012-11-29 03:25 pm (UTC)(link)
1:
shift
exec "$0" "$@"
(на самом деле это было сравнение dotted версий, и в рекурсию мы уходили скусив старшие разряды у обоих аргументов.)

2:
func | sh | sh
(там был какой-то конфиг разбивки диска, и компилировался он в шельный скрипт с командами для parted

[identity profile] nealar.livejournal.com 2012-11-29 03:37 pm (UTC)(link)
В 2: на стадии 2 языком был выбран sh чтоб не плодить лишних сущностей или по иному поводу?

У меня однажды было удалённое выполнение кода в bash, но это чисто от бедности. :)

[identity profile] avnik.livejournal.com 2012-11-29 03:58 pm (UTC)(link)
чтобы не плодить, да.
В принципе по идее там должен быть eval, но когда я отладил генерацию, оказалось что добавить |sh -e тупо проще.

PS Сейчас наверное бы написал на lua, но тогда на дворе был 2002

[identity profile] eternal-leave.livejournal.com 2012-11-29 03:42 pm (UTC)(link)
Когда коту делать нечего...

edit: упс, отправил коммент и глянул на юзерпик - я правда не специально :)
Edited 2012-11-29 15:43 (UTC)