March 2026

S M T W T F S
12 34567
891011121314
151617 18192021
22232425262728
293031    

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Tuesday, May 17th, 2005 11:05 pm
Читаю потихоньку книгу про Лисп, любезно порекомендованную [livejournal.com profile] 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. во избежание - я не говорю здесь, что Лисп плохой (обсуждать этот вопрос тут). Я про само обьяснение.
Wednesday, May 18th, 2005 02:14 pm (UTC)
Вы тут смешиваете понятия. Естественно, в мире коммерческого софта есть более-менее разные бизнес-модели, поэтому говорить о "вашей" фирме, не приведя её названия, и (вероятно я никогда ней не слышал), не описав её рыночную нишу - не очень корректно.

Более того, своим утверждением, что человек, который занимается сбором сведений о пользовательских предпочтений, не имеет отношения к техподдержке, вы фактически подтверждаете мой аргумент, что софтверным компаниям наплевать на существующую пользовательскую базу. Так как именно техподдержка знает какие вопросы чаще всего задают пользователи, где у них возникают трудности etc.

Вообще говоря, стоит определиться с какой позиции мы ведем разговор. Вы в данном случае ведете разговор с позиции коммерческого разработчика софта. Которому нужно максимизировать свою прибыль. Поэтому интересны разговоры о 99% которые не желают учиться.

Я, как ни странно, веду разговор с позиции пользователя. Которому нужно за минимальную цену добиться максимальной эффективности работы от своего компьютера. В цену естественным образом входят и деньги, заплаченные софтверным компаниям, и время, затраченное на обучение, и время затраченное на взаимодействие с саппортом. Время затраченное на взаимодействие с этим сотрудником раздела R&D, ежели он придет ко мне задавать вопросы, и я сочту что мне выгодно на них ответить, чтобы мои пожелания были учтены в следующей версии, тоже входит.

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

На узких нишевых рынках, например в области ГИС мне лет десять назад удавалось добиться подобного рода реакции от поставщиков (дело, правда, кончилось тем, что мне были высланы почти все исходники используемой нами системы).

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

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

Кстати об автомобилях - предложенные Вами эксперимент уже лет 10 (с начала появления на российском рынке конкурентоспособных по цене подержанных иномарок) ставит Волжский Автомобильный Завод. И ведь не разорился пока.
Wednesday, May 18th, 2005 02:58 pm (UTC)
На мой взгляд, для того чтобы прочувствовать шкурой все шероховатости софта, "разговаривать с техподдержкой" явно не достаточно. Самому отвечать на вопросы пользователей - уже лучше, но всё равно мало. Надо и самому активно пользоваться, и обучать других (если мы хотим охватить аудиторию, отличную от профессиональных IT-шников).

Практика показывает, что очень многие шероховатости замечательно ловят технические писатели, пытаясь понятным пользователю языком объяснить то, как это работает.

А между "покупать коробочный продукт у крупной фирмы" и "писать самому" существует широкий спектр промежуточных вариантов. И где-то ближе к середине этого спектра находится оптимум. Лично у меня самостоятельно написанный софт обычно занимает примерно 2% экрана. Вот софта, к которому я делал патчи и эти патчи были приняты разработчиками - несколько больше.
Wednesday, May 18th, 2005 03:29 pm (UTC)

А кто мне рассказывал, что единственный вариант получить хороший софт - это чтобы его писал сам пользователь?


Чтобы автор был пользователем - это некоторая разница. Каждый автор должен быть пользователем, т.е. решать реальные практичнеские задачи с помощью написанного им софта, но не каждый пользователь - автором.

Опять же, мы плавно перешли от идеализированной постановки задачи получить хороший софт к другой постановке получить оптимальный набор софта при приемлемых затратах на его получения. Очевидно, что в этом наборе софта не весь софт будет хорошим, многое будет только приемлемым. Например, не я не знаю хорошей GUI системы. Пользуюсь приемлемой X window. Которая обладает кучей известных мне недостатков, но всё же лучше чем конкуренты, которые вообще не приспособлены к работе по сети.


Вы хотя-бы осознаёте, что пользователей софта, которые хотя бы знают, что значит "патч" - где-то 0.1%, а то и меньше?


Ну и что? У пользователя есть разные способы повлиять на разработку. Конечно, патч - наиболее эффективный. Но есть и другие. Вот вчера один такой прислал мне файл, который неправильно обрабатывался моей программой (требовал явного указания кодировки), и практически совсем не обрабатывался более другими программами. Если он знает, что такое cvs, у него уже есть работающее решение. Если нет - будет когда следующий релиз доползет до поставщиков его операционной системы.

В данном случае, с позиции пользователя, для меня наиболее критично то, что я знаю что такое патч, и что есть достаточно большая вероятность того, что мои патчи будут приняты авторами того софта, которым я пользуюсь. А если и не будут - поддержка инфораструктуры по их применению локально для моих компьютеров, не стоит слишком дорого.
Wednesday, May 18th, 2005 04:55 pm (UTC)
Потому как ко всем современным играм патчи от производителя выходят достаточно часто.