Читаю потихоньку книгу про Лисп, любезно порекомендованную
cmm. Там вот такой пассаж:
Lisp's syntax is quite a bit different from the syntax of languages descended from Algol. The two most immediately obvious characteristics are the extensive use of parentheses and prefix notation. For whatever reason, a lot of folks are put off by this syntax. Lisp's detractors tend to describe the syntax as "weird" and "annoying." Lisp, they say, must stand for Lots of Irritating Superfluous Parentheses. Lisp folks, on the other hand, tend to consider Lisp's syntax one of its great virtues. How is it that what's so off-putting to one group is a source of delight to another?
I can't really make the complete case for Lisp's syntax until I've explained Lisp's macros a bit more thoroughly, but I can start with an historical tidbit that suggests it may be worth keeping an open mind: when John McCarthy first invented Lisp, he intended to implement a more Algol-like syntax, which he called M-expressions. However, he never got around to it. He explained why not in his article "History of Lisp."
The project of defining M-expressions precisely and compiling them or at least translating them into S-expressions was neither finalized nor explicitly abandoned. It just receded into the indefinite future, and a new generation of programmers appeared who preferred [S-expressions] to any FORTRAN-like or ALGOL-like notation that could be devised.
In other words, the people who have actually used Lisp over the past 45 years have liked the syntax and have found that it makes the language more powerful. In the next few chapters, you'll begin to see why.
Мне это обьяснение кажется случаем стокгольмского синдрома. Типа у нас другого нету, поэтому мы любим, чего есть. Впрочем, программисты часто этим страдают, все religious wars на тему софта оттуда же растут.
P.S. во избежание - я не говорю здесь, что Лисп плохой (обсуждать этот вопрос тут). Я про само обьяснение.
Lisp's syntax is quite a bit different from the syntax of languages descended from Algol. The two most immediately obvious characteristics are the extensive use of parentheses and prefix notation. For whatever reason, a lot of folks are put off by this syntax. Lisp's detractors tend to describe the syntax as "weird" and "annoying." Lisp, they say, must stand for Lots of Irritating Superfluous Parentheses. Lisp folks, on the other hand, tend to consider Lisp's syntax one of its great virtues. How is it that what's so off-putting to one group is a source of delight to another?
I can't really make the complete case for Lisp's syntax until I've explained Lisp's macros a bit more thoroughly, but I can start with an historical tidbit that suggests it may be worth keeping an open mind: when John McCarthy first invented Lisp, he intended to implement a more Algol-like syntax, which he called M-expressions. However, he never got around to it. He explained why not in his article "History of Lisp."
The project of defining M-expressions precisely and compiling them or at least translating them into S-expressions was neither finalized nor explicitly abandoned. It just receded into the indefinite future, and a new generation of programmers appeared who preferred [S-expressions] to any FORTRAN-like or ALGOL-like notation that could be devised.
In other words, the people who have actually used Lisp over the past 45 years have liked the syntax and have found that it makes the language more powerful. In the next few chapters, you'll begin to see why.
Мне это обьяснение кажется случаем стокгольмского синдрома. Типа у нас другого нету, поэтому мы любим, чего есть. Впрочем, программисты часто этим страдают, все religious wars на тему софта оттуда же растут.
P.S. во избежание - я не говорю здесь, что Лисп плохой (обсуждать этот вопрос тут). Я про само обьяснение.
no subject
Никаким. Так, для общего развития. Я понимаю, что Шерлоку Холмсу не мешало незнание того факта, что Земля вращается вокруг солнца. Но всё-таки, мне кажется, это полезно знать.
Таких механизмов на данный момент опробовано два:
Это, разумеется, не так. Пример: у нас на фирме для каждого продукта есть человек, _единственной_ задачей которого является выяснение пользовательских требований к продукту и формулировка их для R&D. Это, разумеется, к техподдержке отношения не имеет, поскольку делается на этапе _проектирования_.
маркетинговому отделу софтверной компании наименее интересны постоянные и опытные пользователи её продуктов - с них уже взято всё, что можно.
Эта фраза показывает, что либо с функционированием софтверных компаний вы знакомы очень поверхностно либо вы не позволяете фактам мешать вашим теориям.
Важно что 100% разработчиков gcc им пользуются. Поскольку реально повлиять на качество софта может только его разработчик.
Это не так. Реально на качество софта влияет тот, кто за него платит.
Вас же не удивляет, что желающий водить машину должен учить правила дорожного движения.
Не удивляет. Однако к дискуссии отношения не имеет - ПДД созданы для обеспечения безопасности и не являются необходимым условием для вождения машины.
А желающий ездить на машине в сравнительно дикой местности, где нельзя из произвольной точки вызвать эвакуатор, должен и кое-что про её ремонт изучить.
99.(9)% пользователей машин, однако, не желают изучать их ремонт. Вы можете попробовать экспериментально это опровергнуть, выпустив модель машины, требоющей от пользователя умения её ремонтировать. Возможно, на непритязательном российском рынке ваш даже ждёт сравнительный успех ;) На любых других рынках вашу машину купят только особо продвинутые фанаты. Та же ситуация и с софтом.
Про задачу эффективной организации взаимодействия человек-компьютер стоит помолчать. Её вообще никто пока решать толком не умеет
Поэтому вы предлагаете её решать, заставляя человека говорить на языке компьютера, а не наоборот. Человек, однако, этим доволен не будет, потому что считает, что главный тут - он, а не компьютер.
А уже во вторую - уметь программировать. Поэтому сейчас 90% компьютеров используется неэффективно
Неэффективно с точки зрения программиста - возможно. А с точки зрения организации - вполне возможно, что эффективно, т.к. обучение секретарш программированию на Лиспе, даже если оно окажется возможным, не окупится никогда.
Потому что пользователь, как правило, не умеет правильно сформулировать что ему нужно, и правильно выбрать софт.
Бедный, тупой пользователь. Вообще, мрачная картина. Программисты не знают, что пишут, пользователи не знают, что им надо. Как только живём?
Современные компьютеры устроены не так
No shit!
Поэтому хочешь получать пользу от такого инструмента - будь добр
а) выучиться им пользоваться
Вы упускаете важный момент - пользователь не желает учиться тому, что знает программист. Он желает учиться тому, как решать его задачу, а не как стать более похожим на мечты программиста об идеальном сферическом пользователе. Поэтому говорить пользователю "будь добр делать как я хочу" - можно, но это прямая дорога быть разорённым теми, кто сделает - как он хочет.
no subject
Более того, своим утверждением, что человек, который занимается сбором сведений о пользовательских предпочтений, не имеет отношения к техподдержке, вы фактически подтверждаете мой аргумент, что софтверным компаниям наплевать на существующую пользовательскую базу. Так как именно техподдержка знает какие вопросы чаще всего задают пользователи, где у них возникают трудности etc.
Вообще говоря, стоит определиться с какой позиции мы ведем разговор. Вы в данном случае ведете разговор с позиции коммерческого разработчика софта. Которому нужно максимизировать свою прибыль. Поэтому интересны разговоры о 99% которые не желают учиться.
Я, как ни странно, веду разговор с позиции пользователя. Которому нужно за минимальную цену добиться максимальной эффективности работы от своего компьютера. В цену естественным образом входят и деньги, заплаченные софтверным компаниям, и время, затраченное на обучение, и время затраченное на взаимодействие с саппортом. Время затраченное на взаимодействие с этим сотрудником раздела R&D, ежели он придет ко мне задавать вопросы, и я сочту что мне выгодно на них ответить, чтобы мои пожелания были учтены в следующей версии, тоже входит.
При таком подсчете оказывается, что покупать коробочные продукты крупных фирм производителей мне невыгодно. И чем крупнее фирма - тем менее выгодно. Поскольку меньше шансов что мне удастся получить вменяемую реакцию от техподдержки, не говоря уж о том, чтобы мои пожелания были учтены в следующей версии.
На узких нишевых рынках, например в области ГИС мне лет десять назад удавалось добиться подобного рода реакции от поставщиков (дело, правда, кончилось тем, что мне были высланы почти все исходники используемой нами системы).
Беда в том, что чем больше пользовательская база у продукта, тем менее он учитвывает потребности конкретного пользователя, и тем более оперирует некоторыми средними характеристиками обобщенного пользователя.
Крупные автомобильные компании уже осознали, что каждый пользователь индивидуален и предлагают кучу опций, вплоть до сборки автомобиля на заказ с контролем через web-камеру.
Кстати об автомобилях - предложенные Вами эксперимент уже лет 10 (с начала появления на российском рынке конкурентоспособных по цене подержанных иномарок) ставит Волжский Автомобильный Завод. И ведь не разорился пока.
no subject
"не относится к техподдержке" != "не разговаривает с техподдержкой", ага?
При таком подсчете оказывается, что покупать коробочные продукты крупных фирм производителей мне невыгодно
Ну, возможно. Однако это не означает, что невыгодно - всем. Большинству - резко выгоднее, чем писать самому.
Крупные автомобильные компании уже осознали, что каждый пользователь индивидуален и предлагают кучу опций, вплоть до сборки автомобиля на заказ с контролем через web-камеру.
Однако они не предлагают массовому пользователю проектировать и собирать автомобиль самому. И тем более не заставляют его самостоятельно ремонтировать.
ставит Волжский Автомобильный Завод. И ведь не разорился пока.
Ну да. Я ж говорю - на неизбалованом российском рынке можно ;)
no subject
Практика показывает, что очень многие шероховатости замечательно ловят технические писатели, пытаясь понятным пользователю языком объяснить то, как это работает.
А между "покупать коробочный продукт у крупной фирмы" и "писать самому" существует широкий спектр промежуточных вариантов. И где-то ближе к середине этого спектра находится оптимум. Лично у меня самостоятельно написанный софт обычно занимает примерно 2% экрана. Вот софта, к которому я делал патчи и эти патчи были приняты разработчиками - несколько больше.
no subject
Да ну? А кто мне рассказывал, что единственный вариант получить хороший софт - это чтобы его писал сам пользователь?
Лично у меня самостоятельно написанный софт обычно занимает примерно 2% экрана. Вот софта, к которому я делал патчи и эти патчи были приняты разработчиками - несколько больше.
Вы хотя-бы осознаёте, что пользователей софта, которые хотя бы знают, что значит "патч" - где-то 0.1%, а то и меньше?
no subject
А кто мне рассказывал, что единственный вариант получить хороший софт - это чтобы его писал сам пользователь?
Чтобы автор был пользователем - это некоторая разница. Каждый автор должен быть пользователем, т.е. решать реальные практичнеские задачи с помощью написанного им софта, но не каждый пользователь - автором.
Опять же, мы плавно перешли от идеализированной постановки задачи получить хороший софт к другой постановке получить оптимальный набор софта при приемлемых затратах на его получения. Очевидно, что в этом наборе софта не весь софт будет хорошим, многое будет только приемлемым. Например, не я не знаю хорошей GUI системы. Пользуюсь приемлемой X window. Которая обладает кучей известных мне недостатков, но всё же лучше чем конкуренты, которые вообще не приспособлены к работе по сети.
Вы хотя-бы осознаёте, что пользователей софта, которые хотя бы знают, что значит "патч" - где-то 0.1%, а то и меньше?
Ну и что? У пользователя есть разные способы повлиять на разработку. Конечно, патч - наиболее эффективный. Но есть и другие. Вот вчера один такой прислал мне файл, который неправильно обрабатывался моей программой (требовал явного указания кодировки), и практически совсем не обрабатывался более другими программами. Если он знает, что такое cvs, у него уже есть работающее решение. Если нет - будет когда следующий релиз доползет до поставщиков его операционной системы.
В данном случае, с позиции пользователя, для меня наиболее критично то, что я знаю что такое патч, и что есть достаточно большая вероятность того, что мои патчи будут приняты авторами того софта, которым я пользуюсь. А если и не будут - поддержка инфораструктуры по их применению локально для моих компьютеров, не стоит слишком дорого.
no subject
Упарится автор в каждой предметной области и софт делать, и задачи с ним решать.
Очевидно, что в этом наборе софта не весь софт будет хорошим, многое будет только приемлемым
Поскольку вы определили "хороший" как "софт, автор которого им пользуется для решения своих задач" - то да, очевидно - как я уже сказал, автор упарится себе задачи искать под весь софт, который пишет. Круг задач пользователей сильно шире круга задач автора, поэтому с необходимостью его софт не будет решать задачи пользователей или же будет "нехорош". Как я уже замечал, подобное определения "хорошего" - бессмысленно.
Если он знает, что такое cvs, у него уже есть работающее решение. Если нет - будет когда следующий релиз доползет до поставщиков его операционной системы.
Для бесплатного софта это приемлемая модель работы. Для платного - нет.
В данном случае, с позиции пользователя, для меня наиболее критично то, что я знаю что такое патч
Давайте разберёмся - если мы говорим о том, что удобно лично вам, то никаких вопросов быть не может, вы это знаете лучше и мне тут нечего добавить. Если вы хотите говорить о чём-то большем, чем ваши личные вкусы, то аргумент "а лично мне нравится так" - непригоден.
Больше 0.1%
Re: Больше 0.1%