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

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

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

[identity profile] eternal-leave.livejournal.com 2012-11-29 07:32 am (UTC)(link)
Ну так да. Я, например, писать могу на двух полноценных языках, а читать на десятке. И хаскель с перлом в эту десятку не входят.

[identity profile] eternal-leave.livejournal.com 2012-11-29 07:33 am (UTC)(link)
Тьфу ты, «в этот десяток», конечно же.

[identity profile] besm6.livejournal.com 2012-11-29 08:30 am (UTC)(link)
"Полноценных" - это в смысле "тьюринг-полных"? Потому что придумать десяток действительно полноценных языков, в которые не войдут хаскель и перл, я очень затрудняюсь... Перл при этом, конечно, нишевый, и под него может тупо не быть задач, но вменяемой замены перлу в его нише (быстро и лаконично обработать текст или то, что к нему легко сводится) я не знаю.

[identity profile] ugenk.livejournal.com 2012-11-29 08:55 am (UTC)(link)
awk, sed, bash
python
очень отлично обрабатывают текст

[identity profile] metaclass.livejournal.com 2012-11-29 09:08 am (UTC)(link)
Ты понимаешь, что из этого языком можно считать только питон, а остальное - дичайшего образца рукожопие, которое поддерживаемо даже хуже хаскеля с перлом?

[identity profile] ugenk.livejournal.com 2012-11-29 09:10 am (UTC)(link)
для задачи "обработать текст" оно подходит лучше.

[identity profile] metaclass.livejournal.com 2012-11-29 09:21 am (UTC)(link)
Однострочники да. В целом, не очень гуманно.

[identity profile] enternet.livejournal.com 2012-11-29 09:26 am (UTC)(link)
Обработка текста - это задача писателя.

[identity profile] avnik.livejournal.com 2012-11-29 02:58 pm (UTC)(link)
Берете питон, nltk и обрабатываете

[identity profile] enternet.livejournal.com 2012-11-29 03:06 pm (UTC)(link)
Это как вообще понимать?
У разработчика ПО в принципе не может такой быть такой задачи как обработка текста. Это работа писателя, верстальщика, корректора, редактора и т.д. Коим боком тут разработчик ПО вообще?

(no subject)

[identity profile] avnik.livejournal.com - 2012-11-29 15:17 (UTC) - Expand

(no subject)

[identity profile] enternet.livejournal.com - 2012-11-29 15:27 (UTC) - Expand

(no subject)

[identity profile] avnik.livejournal.com - 2012-11-29 15:34 (UTC) - Expand

(no subject)

[identity profile] enternet.livejournal.com - 2012-11-29 15:36 (UTC) - Expand

[identity profile] http://users.livejournal.com/_slw/ 2012-11-29 10:16 am (UTC)(link)
на sed есть тетрис.

[identity profile] metaclass.livejournal.com 2012-11-29 10:36 am (UTC)(link)
Ну, интерпретаторы befunge на брейнфаке тоже наверно бывают :)

[identity profile] nealar.livejournal.com 2012-11-29 11:28 am (UTC)(link)
Был пример у кого-то в комментах, на тему того, что однострочник на awk гораздо понятней, чем на perl. Причём, не факториалы, а из жизненной задачи выскочило, админской. А многострочники лучше вообще на write-only языках не пейсать!

[identity profile] besm6.livejournal.com 2012-11-29 09:51 am (UTC)(link)
awk и sed еще страшнее перла по синтаксису, а их комбинация с шеллом, особенно с bash, страдает как минимум в части обнаружения, не говоря уже об обработке, ошибок. И главное, этот комплекс довольно плохо справляется с частью "сводится к" тексту. Готовый текст - да, можно, но на перле как-то проще.

sed'ом я, кстати, часто пользуюсь там, где он лаконичнее перла. awk забросил, освоив perl. И да, конечно, zsh, а не bash. У баша тараканы.

python же не тянет по параметру "лаконично", и как следствие, "быстро". Хотя да, тоже можно. Рассчитанные на долгую жизнь скрипты такой обработки я бы и писал на нем... если бы не одна засада. Почему-то, не могу понять, почему, все виденные мной программы на питоне, включая мной же и написанные, страдают внезапной ненадежностью на ровном месте. Не то чтобы она совсем не работает, зачастую повторный запуск помогает, но вот этот странный результат... Похоже не на проблемы рантайма, а на проблемы именно программистов. Но настолько тотальные, что приходится эмпирически констатировать проблему языка.

[identity profile] norguhtar.livejournal.com 2012-11-29 10:17 am (UTC)(link)

Почему-то, не могу понять, почему, все виденные мной программы на питоне, включая мной же и написанные, страдают внезапной ненадежностью на ровном месте.

Пробелы и табы? :]

[identity profile] tzirechnoy.livejournal.com 2012-11-29 12:42 pm (UTC)(link)
Скорее исключения -- которые вроде как редки, но обязательны. Адская смесь.

[identity profile] besm6.livejournal.com 2012-11-29 01:10 pm (UTC)(link)
Не исключу, но вряд ли. Своё, во всяком случае, ломалось уже после починки пробелов и табов :)

[identity profile] avnik.livejournal.com 2012-11-29 03:02 pm (UTC)(link)
Не ну бывает.
У меня с рубе вот не складвается, вроде не плохой язык -- а в моих руках -- как петон у айседа.
И питон таки достаточно лаконичен.

[identity profile] eternal-leave.livejournal.com 2012-11-29 11:36 am (UTC)(link)
Полноценных - это в смысле не баш. Хотя цгишки для локалхоста я как раз на нем ваяю.

[identity profile] besm6.livejournal.com 2012-11-29 01:05 pm (UTC)(link)
Такого уровня десяток можно, да. Даже без перла и хаскеля. Но придется постараться, и боюсь, туда попадут Erlang и Scheme...

[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, но это чисто от бедности. :)

(no subject)

[identity profile] avnik.livejournal.com - 2012-11-29 15:58 (UTC) - Expand

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

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