Pull to refresh

Comments 51

А в "Искусство программирования для UNIX" они разве не переведены?
Специально скачал книгу чтоб посмотреть. Таки да, переведены. Но я с тамошним переводом не очень согласен - потому выкладываю свой - и в английском потренироваться лишний раз не мешает, и тем, у кого нет возможности/желания доставать всю книгу тоже приятно.
Где, кстати, скачал? :) Тоже хочу
нагуглил просто, ссылка нажаль не сохранилась
супер, с удовольствием почитаю.
Спасибо, жду продолжения :)
Всегда пожалуйста. Думаю, сегодня следующее откровение выложу.
Жду с нетерпением, спасибо. Жаль что этот материал мне не попался лет этак на 10 раньше. Почитал тот перевод и могу сказать две вещи:
- ваш мне немного более нравится
- очень жаль что этот материал не попался мне лет на 10 раньше, до таких элементарных (казалось бы) вещей пришлось доходить самому... Хотя, наверное, тогда эти вещи бы мне элементарными не казались и я бы наверное пытался бы спорить. =) Юношество. =)))
Иногда бывает полезно проштудировать некоторые книги, которые читались в Юношестве, даже зная чем закончится, открываешь для себя много нового и непонятного, с которым опять хочется спорить.
Абсолютно согласен!
времени у меня конечно не много но перевести могу помочь =)
Как увидите дальше - это не совсем юмор ;)
спасибо за отличный перевод!
int main( void )
{
system( "одна строка shell-скрипта, вобравшая в себя весь дух Unix" );
return 0;
}
Итого 5 строчек против одной :)
int main( void ) {system( "одна строка shell-скрипта, вобравшая в себя весь дух Unix" ); return 0;}
добавьте сюда ещё
gcc -o file file.c
chmod 755 ./file
./file
;)
echo "int main( void ) {system( "одна строка shell-скрипта, вобравшая в себя весь дух Unix" ); return 0;}" | gcc -o file && chmod 755 ./file && ./file
это уже shell-скрипт, а не си-программа :-)
Вай! Рискуете... Тут такое не любят...
знаю что рискую, много восторга вызывал и пост и обсуждение:)
Чувствую, что кто-то подумал, что я минусом Вам угрожал. :)
Подкину-ка я вам кармы, на всякий пожарный, хотя уже очевидно, что не тронут.
Эта строчка сама по себе является "одной строчкой shell-скрипта, вобравшей в себя весь дух Unix".
Вы тут написали аж 5 строк шелл скрипта чтобы через шелл получить ко всему духу Unix, собранному в одной строке C кода. :)
1line.c: In function 'main':
1line.c:1: warning: implicit declaration of function 'system'
таки надо писать ещё одну строчку
вот это как раз и есть «нечистый C»
Духа-то может и больше, а только одним духом сыт не будешь.
Функциональность-то shell ограничена.
C же способен покрыть на порядки больший спектр задач, чем shell.
Хех, откровение то немного не об этом... А о том, что одну и ту же задачу зачастую проще и быстрее решить на shell, чем изобретать на С то что уже реализовали и оттестили
Тогда корректней сказать
"В повторном использовании кода больше духа Unix, чем в Десяти Тысячах Строк кода вновь написанного."

А в
"В одной строке shell-скрипта больше духа Unix..." - неверное утверждения, т. к . строчки shell-скрипта разные бывают :)

Имхо, для откровения - недостаточно выверенный текст :)

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>

main()
{ int fd[2]
; pipe(fd)
;
}

Owned.
вы не поняли текст. в нем говорится не о том, что у shell и C одинаковые возможности, а о том, что для решения многих задач шелл подходит гораздо лучше, чем С.
Для многих, но не для всех.
Хотели сказать:
"Существуют такие строки shell-скрипта в которых больше духа Unix, чем в Десяти Тысячах Строк кода на С."
А сказали:
"В любой строке shell-скрипта больше духа Unix, чем в Десяти Тысячах Строк кода на С."

Неопрятненько, для откровения :)
Это не формула предикатной логики. Это художественный текст. Не надо интерпретировать художественный текст как формулу предикатной логики.
В данном случае хотелось бы интерпретировать именно так, поскольку учитель явно стилизован под индуистского или буддийского гуру, в духе которого высказывания именно предикатно-логические, и даже язык санскрит заточен именно под это.
Вот именно, что всего лишь стилизован :)
Художественный текст (это о точных-то науках!) тогда неверно называть откровением :)
Большое спасибо, очень жду продолжения!
чувствую себя неловко )
Как всегда учитель чертовски прав!
UFO just landed and posted this here
Вообще-то непонятно зачем нужна тысяча строк для реализации пайпа. Там всего-то с пол-дюжины системных вызовов надо на все про все: pipe(), close(), dup(), fork(), да пара exec() по вкусу.
я тоже об этом задумался. На парах по введнию в Unix одним из простых заданий был на пайп на С.
Возможно, автор имел ввиду что-то другое.
Согласен с многими комментаторами - для откровения слишком слабенько.
Если убрать юмор и антураж, то получится: "для выполнения задач используйте целесообразные средства".
Ну, а вообще, давай еще... может дальше будет интереснее.
Дальше там даже на английском не везде и не всегда всё понятно :)
Постараюсь перевести так, чтобы наиболее точно передать главную мораль :)
И не только.
Каждая из команд shell-скрипта - это уже написанные десятки тысяч строк кода. И задача программиста - не изобретать велосипед, а использовать уже готовые решения. Ведь одна из идей *NIX такова - разбей свою задачу на множество маленьких подзадач, и ты увидишь, что большая их часть уже решена до тебя.
Когда читал думал что гдето-это уже видел, после каментов всё стало ясно.
Срочно надо ещё раз перечитать книжку гдето то дома лежит :)
Однобоко.

Давайте лучше рассмотрим реализацию алгоритма быстрой сортировки (quicksort). Сколько строк получится на баше? :)
Sign up to leave a comment.

Articles