catpad: (Default)
[personal profile] catpad
В связи с одной частью вот этого поста [livejournal.com profile] avva...
Что такое понимание программирования ? Для меня, например, программирование - это прежде всего понятие эстетическое. Тут мы полностью сходимся с Гелернтером, он об этом даже целую книжку написал. Вот, что он говорит в Mirror Worlds: "The software revolution balances ultimately on a fine point of aesthetics."
Так вот, мне кажется, что грань между человеком, способным понять программирование и тем, кто воспринимает программирование как ремесло и способ всегда найти работу, лежит не в способности понять указатели и рекурсию, а в понимании того, что рекурсия - это красиво и эстетично, хотя и не всегда практично, что Лисп красивей, чем С, что ядро ОС писать приятней, чем GUI для Excel'a, что сложный и при этом работающий multithreading - это явление эстетическое, а не просто тяжело отлаживаемая программа. И вот - самое главное сейчас скажу!!! Настоящий программист это тот, кто понимает, что когда из APL убрали все его символы и сделали язык J - это самое отвратительное издевательство, которое только можно себе представить. Вот такой тест на понимание программирования я бы давал в университете.
Да и не надо далеко ходить. Я когда-то даже вёл в Технионе курс APL. Там как раз одни студенты считали, что это очень полезный и интересный курс, а другие говорили - зачем мы тратим своё время на ерунду, лучше будем учить С++ и Джаву, чтобы потом зарабатывать много денег. Но можете не сомневаться, что сегодня первые как раз зарабатывают гораздо больше денег, чем вторые.

Или вот когда в source code в условии if одна скобка с пробелом, а вторая без пробела, или когда вокруг = с одной стороны есть пробел, а с другой нет, или (однажды рассказали - вот он где ужас-то) некий человек называл свои переменные русскими словами в транслите - вот это всё (процитируем Ольшанского) - мерзота и дантовый ад.

Date: 2007-02-02 01:13 am (UTC)
From: [identity profile] thedimka.livejournal.com
Мишка!
эстетика это очень важный элемент почти во всём
и многим это всойственно не зависимо от призвания
и конечно истинно призванные не допустят (такой ужас )
этого явно не достаточно для хорошего программера
равно как a=20 and b=20 тоже не достаточно

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

Date: 2007-02-02 01:29 am (UTC)
From: [identity profile] catpad.livejournal.com
Это необходимое, но недостаточное условие. Например, если человек написал if (a== 100) не по ошибке, а сознательно (и таких людей я видел), то его можно смело выгонять из программистов. Правда, к сожалению, даже дворник из него не получится, потому что чисто подметать он не сможет.
Достаточным условием я бы считал умение написать на Лиспе функцию факториал.

(no subject)

From: [identity profile] thedimka.livejournal.com - Date: 2007-02-02 01:45 am (UTC) - Expand

(no subject)

From: [identity profile] catpad.livejournal.com - Date: 2007-02-02 01:53 am (UTC) - Expand

(no subject)

From: [identity profile] thedimka.livejournal.com - Date: 2007-02-02 02:39 am (UTC) - Expand

(no subject)

From: [identity profile] thedimka.livejournal.com - Date: 2007-02-02 02:41 am (UTC) - Expand

(no subject)

From: [identity profile] nokiany.livejournal.com - Date: 2007-02-04 06:10 am (UTC) - Expand

(no subject)

From: [identity profile] thedimka.livejournal.com - Date: 2007-02-04 07:17 am (UTC) - Expand

(no subject)

From: [personal profile] spamsink - Date: 2007-02-02 05:19 am (UTC) - Expand

(no subject)

From: [identity profile] catpad.livejournal.com - Date: 2007-02-02 05:24 am (UTC) - Expand

(no subject)

From: [personal profile] spamsink - Date: 2007-02-02 05:35 am (UTC) - Expand

(no subject)

From: [identity profile] catpad.livejournal.com - Date: 2007-02-02 08:18 am (UTC) - Expand

(no subject)

From: [personal profile] spamsink - Date: 2007-02-02 08:31 am (UTC) - Expand

(no subject)

From: [identity profile] al-zatv.livejournal.com - Date: 2007-02-03 11:07 pm (UTC) - Expand

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2007-02-02 09:58 am (UTC) - Expand

(no subject)

From: [identity profile] catpad.livejournal.com - Date: 2007-02-02 12:44 pm (UTC) - Expand

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2007-02-02 01:44 pm (UTC) - Expand

(no subject)

From: [identity profile] catpad.livejournal.com - Date: 2007-02-04 01:18 am (UTC) - Expand

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2007-02-04 10:38 am (UTC) - Expand

(no subject)

From: [identity profile] catpad.livejournal.com - Date: 2007-02-04 10:45 am (UTC) - Expand

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2007-02-04 11:02 am (UTC) - Expand

(no subject)

From: [identity profile] catpad.livejournal.com - Date: 2007-02-04 12:06 pm (UTC) - Expand

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2007-02-04 12:17 pm (UTC) - Expand

(no subject)

From: [identity profile] catpad.livejournal.com - Date: 2007-02-04 12:49 pm (UTC) - Expand

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2007-02-04 04:24 pm (UTC) - Expand

Date: 2007-02-02 04:37 am (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Или вот когда в source code в условии if одна скобка с пробелом, а вторая без пробела, или когда вокруг = с одной стороны есть пробел, а с другой нет

То надо сказать build manager-у, чтобы в еженощный build script вставил запуск indent, и не брать в голову. Поважнее вещи есть.

Date: 2007-02-02 05:05 am (UTC)
From: [identity profile] catpad.livejournal.com
Воооот.... это говорит о том, что вы как раз относитесь к группе, которая считает, что "есть вещи поважнее".

(no subject)

From: [personal profile] spamsink - Date: 2007-02-02 05:18 am (UTC) - Expand

(no subject)

From: [identity profile] catpad.livejournal.com - Date: 2007-02-02 05:23 am (UTC) - Expand

Date: 2007-02-02 07:55 am (UTC)
From: [identity profile] mopexod.livejournal.com
Да, про if - все правда.

Date: 2007-02-02 09:14 am (UTC)
From: [identity profile] satangel.livejournal.com
Очень часто эстетика конкурует со скоростью разработки
если результат нужен вчера и через 10 минут тебя повесят - на пробелы нет времени, пишешь как привык
При необходимости поддержки кода обычно есть циркуляр что как оформлять

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

Date: 2007-02-02 10:01 am (UTC)
From: [identity profile] green-fr.livejournal.com
О том и речь: если привык "правильно", то это гораздо "лучше", чем если умеешь "правильно", но привычки нет, потому что это не кажется существенным.

(no subject)

From: [identity profile] satangel.livejournal.com - Date: 2007-02-02 10:10 am (UTC) - Expand

(no subject)

From: [personal profile] nine_k - Date: 2007-02-03 09:12 pm (UTC) - Expand

(no subject)

From: [identity profile] oleg-bunin.livejournal.com - Date: 2007-02-04 12:04 am (UTC) - Expand

(no subject)

From: [identity profile] satangel.livejournal.com - Date: 2007-02-04 07:44 am (UTC) - Expand

(no subject)

From: [personal profile] nine_k - Date: 2007-02-04 09:45 am (UTC) - Expand

Date: 2007-02-02 09:39 am (UTC)
From: [identity profile] gianthare.livejournal.com
> когда из APL убрали все его символы и сделали язык J - это самое отвратительное издевательство
Да, удивительно, что сам Иварсон, или как его, этого не понимает. Причем, он это начал делать примерно тогда, когда появился Юникод и стало возможным использовать почти любые символы где угодно, если только придумать способ их вводить.

Date: 2007-02-02 11:32 am (UTC)
From: [identity profile] catpad.livejournal.com
Я думаю, он отчаялся в какой-то момент. Столько его били за эти символы, что он просто потерял терпение.

Date: 2007-04-29 03:50 pm (UTC)
From: [identity profile] muchandr.livejournal.com
J меня пугает, но чуваки которые ваяют на K (q) зарабатывают действительно неплохо...

Date: 2007-02-03 09:09 pm (UTC)
nine_k: A stream of colors expanding from brain (Default)
From: [personal profile] nine_k
Насчёт эстетики практически полностью согласен.
И то, что J выглядит жутковато и нечитаемо, в отличие от APL, тоде согласен. Но K в этом смысле ещё куда смешнее :))
Вообще, над программами на APL-образных языках надо некоторое время "медитировать", уж больно они своеобразно устроены. И тут важно, чтобы операторы были обозначены удобно для глаза. Увы, J в этом смысле весьма субоптимален. Лучше бы сделали английские слова. Вон в sql с этим вполне сложилось.

Date: 2007-04-29 03:52 pm (UTC)
From: [identity profile] muchandr.livejournal.com
в q есть вербозные синонимы для закорючек, но читабельнее от этого не становится. В принципе, весь q/ksql+ файлик на пару страничек под названием q.k

Date: 2007-02-03 09:17 pm (UTC)
From: [identity profile] inv2004.livejournal.com
немного не по теме.
пишу на Kx, конечно не по работе, а в меру необходимости,
на J писать как-то всё не могу себя заставить, т.к. Kx кажется намного более простым и в тоже время более функциональным (триггеры, dependence, db, ...).
и давно хотел попробовать более чистый APL с нормальным для APL'а алфавитом, что бы могли посоветовать?

Date: 2007-02-04 01:11 am (UTC)
From: [identity profile] catpad.livejournal.com
Вот сюда я положил IBM APL2 interpreter:
http://catpad.net/michael/apl/ibmapl2
Там же несколько документов про него. Это самый популярный интерпретатор, им как раз пользовались у нас на курсе.
Можете, если интересно, почитать также описание одной программы, которую я когда-то написал:
http://www.catpad.net/michael/apl

Date: 2007-03-15 01:18 pm (UTC)
From: [identity profile] bulg.livejournal.com
Можете ещё попробовать APL от Dyalog, по моему вполне качественный и гораздо свежее IBM-овского. Идёте вот сюда, заполняете анкету и по почте приходит ссылка на скачивание. Студенческую или некоммерческую лицензии дают без проблем, но возможно придётся подождать (я ждал недели три).

По сравнению с IBM APL2 interpreter, который предлагает [livejournal.com profile] catpad, не имеет ограничения по времени работы. Единственное условие: через год вы должны написать им небольшой отчёт о вашем опыте использования их продукта.

Date: 2007-02-03 09:19 pm (UTC)

Date: 2007-02-04 12:02 am (UTC)
From: [identity profile] oleg-bunin.livejournal.com
Точно!

Так отличаются творцы от ментальных копипастеров. Творцы делают красиво, причем все, чтобы они не делали!

Date: 2007-02-04 12:05 am (UTC)
From: [identity profile] topbot.livejournal.com
Вы попали в top30 на яндексе самых обсуждаемых тем в блогосфере. Поэтому копия вашего поста доступна в ленте по ссылке - link (http://topbot.livejournal.com/234633.html)
Почитать текст со всеми комментриями можно тут (http://deep-water.ru/?http://catpad.livejournal.com/257573.html)
Это Ваш 1-й ТОПовый пост за последний год (http://deep-water.ru/top/). Посмотреть статистику автора можно тут (http://deep-water.ru/top/info.php?id=410)

(при поддержке [livejournal.com profile] ru_bots)

Date: 2007-02-04 08:57 am (UTC)
From: [identity profile] evgeniysharapov.livejournal.com
Хехехе…. как поклонник творчества Айверсона, с небольшим опытом, ответственно заявляю APL хорош для программирования с использованием ручки и бумаги, а J с использованием клавиатуры.
Но вообще, у J есть ряд преимуществ перед APL ( впрочем и недостатки тоже имеются )

Date: 2007-02-04 02:08 pm (UTC)
From: [identity profile] lazyreader.livejournal.com
Ха, русскими словами в транслите - это ещё ничего, хоть и тяжко читать.

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

Date: 2007-02-05 08:56 am (UTC)
From: [identity profile] catpad.livejournal.com
Да, это впечатляет! :)

Date: 2007-02-04 04:33 pm (UTC)
From: [identity profile] green-fr.livejournal.com
Кстати, пересказывал Ане твой пост, вспомнил красивый пример из совершенно иной области. У нас (моя контора страхует строительство и смежные процессы) есть отделение сертификации. Т.е., скажем, ты кроешь крыши, ты приходишь к нам за страховкой, тебе говорят цену, а если докажешь, что ты крут (см. сертификационные программы), то дешевле. И делал нам как-то презентацию человек из этой сертификационной дирекции, рассказывал, что принимают во внимание совершенно не очевидные вещи, типа чистоты и порядка на рабочем месте. Потому что - говорит мужик - если плотник сегодня работает по колено во вчерашних опилках, значит завтра он забудет прикрутить какую-то гайку, из-за которой через год всё рухнет. Т.е. порядок в голове, из-за которого получается качество работы, можно наблюдать по совершенно посторонним к работе признакам. Только потому, что это всё та же голова :-)

Date: 2007-02-05 01:22 am (UTC)
From: [identity profile] catpad.livejournal.com
Да, это очень точно описывает то, что я здесь написал. Спасибо за историю.

А насчёт терминалов - это я просто так спросил. Можешь набрать там ERH KYO, ERH KLS, MOST MK - моя работа! :)

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2007-02-05 08:16 am (UTC) - Expand

(no subject)

From: [identity profile] catpad.livejournal.com - Date: 2007-02-05 08:55 am (UTC) - Expand

(no subject)

From: [identity profile] green-fr.livejournal.com - Date: 2007-02-05 09:12 am (UTC) - Expand

(no subject)

From: [identity profile] catpad.livejournal.com - Date: 2007-02-05 12:22 pm (UTC) - Expand

Date: 2007-02-05 10:24 am (UTC)
From: [identity profile] mstone.livejournal.com
Спасибо, порадовали. Я уж думал, что один такой, у кого anal retentiveness доходит до того, чтобы делать серьёзные выводы о профпригодности кодера на основании единообразия и эстетики оформления исходников.

Date: 2007-02-05 12:23 pm (UTC)
From: [identity profile] catpad.livejournal.com
Мне как раз удивительно, что есть люди, которые не понимают, что это напрямую связано.

Date: 2007-02-05 10:22 pm (UTC)
From: (Anonymous)
>Так вот, мне кажется, что грань между человеком, способным понять
>программирование и тем, кто воспринимает программирование как ремесло и
>способ всегда найти работу, лежит не в способности понять указатели и
>рекурсию, а в понимании того, что рекурсия - это красиво и эстетично, хотя и >не всегда практично, что Лисп красивей, чем С, что ядро ОС писать приятней,
>чем GUI для Excel'a, что сложный и при этом работающий multithreading - это
>явление эстетическое, а не просто тяжело отлаживаемая программа.

Спасибо! А я думал что это я один такой дурак.

P.s. а рекурсия все же зло. Вечно за стек дрожишь... :)

Date: 2007-02-05 10:23 pm (UTC)
From: [identity profile] mika0x65.livejournal.com
Черт, залогиниться забыл...

(no subject)

From: [identity profile] muchandr.livejournal.com - Date: 2007-04-29 03:54 pm (UTC) - Expand
Page generated Feb. 6th, 2026 11:51 pm
Powered by Dreamwidth Studios