Во всех шутках про сисадминов и пользователях высмеивают последних. Я никогда не слышал шутку в которой бы пользователь был умнее сисадмина. Однако, на мой взгляд проблема кроется не в умственных способностях, а в неравенстве положений в которых оказались люди. И если сисадмину, это в жизни не помешает, то для программиста это может создать определенные проблемы.
Когда пользователь общется с программистом, то последний выступает в роли более компетентного человека в этой области. И если первый ставит задачи более общие, то последний ставит условия более конкретные: необходим новый сервер, нужно поставить офис/Java/SQL-server. И вот тут возникает проблема: поставленные условия решают задачу программиста или пользователя?
- Решение использовать в качестве языка программирования Java, принимается потому что программист его хорошо знает или потому что кроссплатформенность обусловлена условиями задачи?
- Программа требует установленного MS SQL Server или Oracle, потому что будут ворочаться большие объемы данных или просто потому что программист не умеет обойтись без них?
- Необходимо установить офис потому что нужно получать экселевские таблицы с прописанными формулами для последующей обработки их в аналитическом отделе или просто потому что программисту лениво сделать нормальную печать и отображение графиков
Опытные программисты могут продолжить этот список огромным числом компромиссов, которые могут возникнуть при создании продукта. Одно дело когда приложение разрабатывается на заказ, тогда действительно чаще дешевле задействовать тиражируемый продукт, чем платить программисту за «изобретение велосипеда». К тому же как правило все дополнительное ПО устанавливает сам разработчик. Однако когда такой программист, привыкший делать себе удобно, выходит на тропу тиражируемого продукта то он сталкивается с совершенно иными законами рынка. В этом случае программист становится в роли просящего: попробуйте мою программу. И здесь происходит несколько этапов прежде чем пользователь начнет с ней работать:
- Пользователь должен узнать об этой программе из интернета.
- У него она должна запустится
- Он должен ещё и разобраться в ней
- Программа должна устраивать его
Если какой-либо из этих этапов не будет преодален пользователь будет утерян. Кстати иногда эти пункты противоречат друг другу, поэтому иногда выпускают несколько версий одного и того же продукта. Например многие учетные программы поставляются в двух вариантах:требующие SQL-сервер и не требующие. Установка любого SQL-сервера это очень большой барьер на пути ознакомления программы, да он и не критичен пока данных мало. Если программа действительно полезна и в ней уже крутится столько данных, что это уже сказывается на быстродействии, то на сайте Вы можете сказать:«Эй, есть версия, которая быстрее, необходимо установить только SQL-сервер» Кстати этим и могут различаться платная и бесплатная версии. (Но это уже другая тема)
Из этого выходит, что пока самые перспективные языки – это компилируемые. Оставим скриптовые языки для web-серверов и внутреннего использования. Кстати, когда я вычитал про то что можно компилировать Java-программы в native я понял, что у этого языка появилось будущее в области десктопных систем. Потому как теперь у Java-программистов есть возможность писать 2 версии программ: в native-коде для быстрой установки и байт-коде для кроссплатформенной версии.
Сейчас рынок перенасыщен удобными приложениями, пришедшими с запада, и условием занятия этой ниши является создание максимального удобства для пользователя.
Август 16, 2008 в 6:10 пп
Непонятно, что вы хотели сказать данной статьей.
Да и ошибочки не мешало бы исправить..
Тем не менее, рациональное зерно есть.
>>В этом случае программист становится в роли просящего: попробуйте мою программу.
>> 1. Пользователь должен узнать об этой программе из интернета.
>> 2. У него она должна запустится
>> 3. Он должен ещё и разобраться в ней
>> 4. Программа должна устраивать его
Вот это все можно попытаться сгладить, облагородить при помощи использования программ удаленного доступа. (см. RES системы)
Итак, программист написал программу и выходит с ней на рынок. Что он делает дальше? (Если использует RES подход)
A. Находит пользователя.
B. Договаривается о удаленном использовании компьютера пользователя
C. Вместе с пользователем (пользователь в качестве зрителя) устанавливает программу на компьютер пользователя. Запускает ее, выполняет, демонстрирует пользователю
Тем самым, можно намного ускорить все выше перечисленные (1,2,3,4) этапы тестирования и внедрения ПО
Август 16, 2008 в 7:35 пп
Если бы Линус Товальдс через пункты A,B,C устанавливал свои ядра, то ему бы не хватило всей жизни чтобы добиться такого количества установленных копий. Этот подход может быть подойдет для заказанного ПО, а не для тиражируемого.
А теперь внимание: В мире насчитывается 4 миллиона пользователей дистрибутивов Ubuntu(https://wiki.ubuntu.com/UbuntuWeeklyNewsletter/Issue13/RU)
Вопрос номер один: прожили ли Вы миллион секунд?
Вопрос номер два: Если учитывать что Ubuntu вышла в 2004 году, то сколько копий ОС ставилось в минуту, чтобы достичь такого количества.
Август 16, 2008 в 7:43 пп
zhuchiy:
Речь идет о первом испытании одной-единственной копии, т.е. как вы совершенно правильно заметили, заказанного ПО.
>>прожили ли Вы миллион секунд?
Возможно
Август 16, 2008 в 8:00 пп
Хех спутал миллион и миллиард
Хорошо, тогда отвечу на Ваш вопрос, что я хотел сказать данной статьей. При разработке заказного ПО проблем как раз и нет. Это и не принципиально, толи исполнитель выезжает к заказчику, толи он устанавливает ПО удаленно.
Я хотел отметить что принципы подхода при разработке заказного и тиражируемого продукта сильно отличаются. И успех определен в первую очередь прохождения пользователем всех четырех этапов, описанных ранее, без помощи программиста. Только в этом случае можно расчитывать, что программа разойдется большим тиражом.
Август 17, 2008 в 2:08 пп
Евгений, так добавьте в статью этот вывод в самом конце, чтобы красиво подытожить сказанное. Потому что на мой взгляд сейчас остается впечатление незавершенности.
P.S.
>>Сейчас рынок перенасыщен удобными приложениями, пришедшими с запада, и условием занятия этой ниши является создание максимального удобства для пользователя.
Да и именно RES системы могут помочь здесь выиграть.
Август 18, 2008 в 6:03 дп
Олег, очень хорошо, что следуют предложения использовать ту или иную технологию для создания более конкуретных программ. Но ввиду примитивности движка для комментариев, здесь невозможно будет их разжовывать. Я думаю для популизации RES-технологии Вы уже сделали достаточно на этом блоге. Если кто-то ею заинтересовался, то он может щелкнуть по Вашему имени и почитать более детально. Развитие этой темы именно под этой статьёй буду расценивать как спам. Когда я захочу написать статью именно про RES-системы, добро пожаловать.