pg.gimran.org

Икенче алдагы юл

Сентябрь 2001 · Барлык эсселар

Пол Грэмның «Икенче алдагы юл» эссесы тәрҗемәсе. Төп нөсхә: https://paulgraham.com/road.html. Машина тәрҗемәсе (Gemini).

Translation of Paul Graham's essay 'The Other Road Ahead'. Original: https://paulgraham.com/road.html. Machine translation (Gemini).

(Бу мәкаләдә киләсе буын программа тәэминатының ни өчен күбесенчә серверга нигезләнәчәге, моның программистлар өчен нәрсәне аңлатачагы һәм бу яңа төр программаларның стартаплар өчен ни өчен зур мөмкинлек булуы аңлатыла. Ул BBN Labs-та сөйләнгән чыгышка нигезләнгән.)

1995 елның җәендә дустым Роберт Моррис һәм мин стартап башларга карар кылдык. Ул чакта Netscape компаниясенең IPO-сына әзерлек буенча PR-кампания тулы куәтенә бара иде, һәм матбугатта онлайн-сәүдә турында сүзләр бик күп иде. Ул вакытта челтәрдә бары тик утызлап кына реаль кибет булгандыр, һәм алар барысы да кулдан ясалган иде. Әгәр онлайн-кибетләр күп булырга тиеш булса, аларны ясау өчен программа тәэминаты кирәк булачак, шуңа күрә без аны язарга булдык.

Беренче атна тирәсе без моны гадәти десктоп кушымтасы итмәкче булдык. Аннары бер көнне бездә программаны үз Веб-серверыбызда эшләтеп, браузерны интерфейс буларак куллану фикере туды. Без программаны Веб аша эшләргә җайлаштырып яңадан язарга тырыштык, һәм нәкъ менә шушы юлдан барырга кирәклеге ачыкланды. Әгәр без үз программабызны серверда эшләсен өчен язсак, бу кулланучылар өчен дә, безнең өчен дә күпкә җиңелрәк булачак иде.

Бу бик яхшы план булып чыкты. Хәзер, Yahoo Store буларак, бу программа 14 000 чамасы кулланучысы булган иң популяр онлайн-кибет төзү коралы санала.

Без Viaweb-ны башлаганда, программа тәэминаты серверда эшли дигән сүзләребезнең мәгънәсенә беркем дә диярлек төшенми иде. Бер ел узгач кына, Hotmail чыккач, кешеләр моны аңлый башладылар. Хәзер инде һәркем бу алымның дөрес икәнен белә. Безнең кем булганыбызга бүген атама да бар: Кушымталар хезмәтен күрсәтүче, ягъни ASP (Application Service Provider).

Минемчә, киләсе буын программа тәэминатының күбесе нәкъ шушы модель нигезендә язылачак. Хәтта иң күп югалтулар кичерәчәк Microsoft та кайбер нәрсәләрне десктоптан читкә күчерүнең котылгысызлыгын күрә кебек. Әгәр программа тәэминаты десктоптан китеп серверларга күчсә, бу эшкәртүчеләр өчен бөтенләй башка бер дөньяны аңлатыр иде. Әлеге мәкаләдә без бу яңа дөньяның беренче кунаклары буларак күргән гаҗәеп нәрсәләр сурәтләнә. Программа тәэминаты серверларга күчү дәрәҗәсендә, монда тасвирланганнарым киләчәкнең үзен тәшкил итә.

Чираттагы яңалыкмы?

Десктоп программалары чорына күз салганда, без хәзер иртә машина хуҗаларының нәрсәгә түзеп яшәвенә гаҗәпләнгән кебек, кешеләрнең нинди уңайсызлыкларга күнүенә дә һичшиксез шаккатырбыз дип уйлыйм. Беренче егерме яки утыз елда, автомобильгә ия булу өчен, машина белгече булу кирәк иде. Ләкин автомобильләр шулкадәр зур отыш бирде ки, машина белгече булмаган бик күп кешеләр дә аларга хуҗа булырга теләде.

Хәзер санак та шул этапта. Өстәл санагына ия булгач, син аның эчендә нәрсә барганын үзең белмәкче булганнан күпкә күбрәк белергә мәҗбүр буласың. Ләкин АКШ-тагы йорт хуҗалыкларының яртысыннан артыгы аңа ия. Әниемнең электрон хатлар һәм исәп-хисап алып бару өчен куллана торган санагы бар. Якынча бер ел элек ул Apple-дан операцион системаның яңа версиясенә ташлама тәкъдим иткән хат алып пошаманга төште. Санакны электрон почта һәм исәп-хисап өчен генә кулланырга теләгән алтмыш биш яшьлек хатын-кыз яңа операцион системалар урнаштыру турында уйларга тиеш булса, димәк, нидер дөрес түгел. Гадәти кулланучылар хәтта «операцион система» сүзен дә, ә «җайланма драйверы» яки «пач» сүзләрен бөтенләй белергә тиеш түгел.

Хәзер кулланучыларны система администраторы булудан коткара торган программа тәэминатын җиткерүнең башка бер ысулы бар. Веб-кушымталар — ул Веб-серверларда эшләүче һәм кулланучы интерфейсы буларак Веб-сәхифәләрне кулланучы программалар. Уртача кулланучы өчен бу яңа төр программалар десктоп программаларына караганда җиңелрәк, арзанрак, мобильрәк, ышанычлырак һәм еш кына куәтлерәк булачак.

Веб-нигезле программа тәэминаты белән күпчелек кулланучыларга үзләре кулланган кушымталардан башка бернәрсә турында да уйларга туры килмәячәк. Бөтен буталчык, үзгәреп торучы нәрсәләр кайдадыр серверда ятачак һәм мондый эшләрдә оста булган кешеләр тарафыннан каралып торачак. Һәм шулай итеп, программа тәэминатын куллану өчен сезгә гадәттә санак үзе кирәк тә булмаячак. Сезгә клавиатурасы, экраны һәм Веб-браузеры булган нинди дә булса җайланма гына кирәк булачак. Бәлки аның чыбыксыз Интернет элемтәсе булыр. Бәлки ул сезнең кесә телефоныгыз да булыр. Ул нәрсә генә булмасын, ул кулланучылар электроникасы булачак: 200 доллар тирәсе торган һәм кешеләр күбесенчә корпусының тышкы кыяфәтенә карап сайлый торган әйбер. Сез Интернет хезмәтләре өчен җиһазга караганда күбрәк акча түләячәксез, хәзер телефоннар белән шулай эшләгән кебек. [1]

Чиртүнең серверга барып җитүе һәм кире кайтуы өчен секундның уннан бере тирәсе вакыт кирәк булачак, шуңа күрә Photoshop кебек югары дәрәҗәдә интерактив программа тәэминатын кулланучылар исәпләүләрнең һаман да десктопта баруын теләрләр. Ләкин күпчелек кешеләрнең санакны ни өчен куллануына карасагыз, секундның уннан бере күләмендәге тоткарлык проблема булмаячак. Минем әниемә чынлыкта өстәл санагы кирәкми, һәм аның кебек кешеләр бик күп.

Кулланучылар өчен отыш

Өем янында бамперына «уңайсызлыкка караганда үлем артыграк» дип язылган бер машина тора. Күпчелек кеше, күпчелек вакытта, иң аз хезмәт таләп итә торган сайлауны ясаячак. Әгәр Веб-нигезле программа тәэминаты җиңсә, бу аның уңайлырак булуы аркасында булачак. Һәм ул кулланучылар өчен дә, эшкәртүчеләр өчен дә нәкъ шулай булачак кебек күренә.

Бары тик Вебка гына нигезләнгән кушымтаны куллану өчен сезгә бары тик Интернетка тоташкан браузер гына кирәк. Димәк, сез Веб-нигезле кушымтаны теләсә кайда куллана аласыз. Өстәл санагыгызга программа урнаштырганда, сез аны шул санактан гына куллана аласыз. Иң начары — сезнең файлларыгыз шул санак эчендә тоткында кала. Бу модельнең уңайсызлыгы кешеләр челтәрләргә күнеккән саен ачыграк күренә бара.

Мондагы иң беренче башлангыч Веб-почта булды. Миллионлаган кешеләр хәзер кайда гына булсалар да электрон хатларга керү мөмкинлеге булырга тиешлеген аңлый. Әгәр сез хатларыгызны күрә аласыз икән, ни өчен календарыгызны күрмәскә? Хезмәттәшләрегез белән документны фикер алыша аласыз икән, нигә аны төзәтә алмыйсыз? Ни өчен сезнең мәгълүматларыгызның берсе булса да ерактагы өстәлдә торучы ниндидер бер санак эчендә камалып ятарга тиеш?

«Сезнең санагыгыз» дигән бөтен идея юкка чыга бара һәм аның урынына «сезнең мәгълүматларыгыз» килә. Сез үз мәгълүматларыгызны теләсә кайсы санактан ала белергә тиешсез. Дөресрәге, теләсә кайсы клиенттан, ә клиент санак булырга да тиеш түгел.

Клиентлар мәгълүмат сакларга тиеш түгел; алар телефоннар кебек булырга тиеш. Чынлыкта алар телефон булып китә ала, яки киресенчә. Клиентлар кечерәйгән саен, мәгълүматларыгызны аларда тотмаска сезнең тагын бер сәбәбегез бар: үзегез белән йөрткән әйбер югалырга яки урланырга мөмкин. КПК-гызны таксида калдырып китү диск ватылуга охшаган, бердәнбер аермасы — сезнең мәгълүматыгыз юкка чыгу урынына чит кеше кулына эләгә.

Бары тик Вебка нигезләнгән программа тәэминаты ярдәмендә сезнең мәгълүматларыгыз да, кушымталарыгыз да клиентта сакланмый. Шуңа күрә аны куллану өчен бернәрсә дә урнаштырырга кирәк түгел. Ә урнаштыру юк икән, сезгә урнаштыруның уңышсыз килеп чыгуы турында борчыласы юк. Кушымта белән сезнең операцион системагыз арасында туры килмәүчәнлек булу мөмкин түгел, чөнки программа сезнең операцион системагызда эшләми.

Урнаштыру таләп ителмәгәнгә күрә, Веб-нигезле программаны аны «сатып алыр» алдыннан сынап карау җиңел һәм гадәти хәл булачак. Теләсә кайсы Веб-кушымта тәкъдим ителгән сайтка кереп кенә, аны бушлай сынап карый алырсыз дип көтәргә була. Viaweb-та безнең бөтен сайт кулланучыларны сынау мөмкинлегенә юнәлтүче зур бер ук кебек иде.

Демоны сынап караганнан соң, хезмәткә теркәлү кыска анкетаны тутырудан башка бернәрсә дә таләп итмәскә тиеш (нәрсәнең кыскарак булганы яхшырак). Һәм бу кулланучы башкарырга тиешле соңгы эш булырга тиеш. Веб-нигезле программа тәэминаты белән сез яңа чыгарылышларны өстәмә түләүсез, бернинди хезмәт куймыйча һәм, бәлки, хәтта бу хакта белмичә дә алырга тиешсез.

Яңартулар хәзерге кебек зур тетрәнүләр булмаячак. Вакыт узу белән кушымталар сизелмичә генә көчлерәк була барачак. Бу эшкәртүчеләр ягыннан билгеле бер тырышлык таләп итәчәк. Аларга программа тәэминатын кулланучыларны бутамыйча яңартырлык итеп проектларга туры киләчәк. Бу яңа проблема, ләкин аны чишү юллары бар.

Веб-кушымталар белән һәркем бер үк версияне куллана, һәм хаталар табылган мизгелдә төзәтелә ала. Димәк, Веб-нигезле программа тәэминатында десктоп программаларына караганда хаталар күпкә азрак булырга тиеш. Viaweb-та берьюлы ун билгеле хата булган дип тә уйламыйм. Бу десктоп программаларына караганда берничә дәрәҗәгә яхшырак.

Веб-кушымталарны берьюлы берничә кеше куллана ала. Бу бергәләп эшләү кушымталары өчен ачыктан-ачык отыш, ләкин кулланучылар моның мөмкин булуын аңлагач, күпчелек кушымталарда моны таләп итә башларлар дип фаразлыйм. Мәсәлән, ике кешегә бер үк документны төзәтергә рөхсәт итү еш кына файдалы булачак. Viaweb берничә кулланучыга берьюлы бер сайтны үзгәртергә мөмкинлек бирде; бу без кулланучыларның моны теләрләр дип көткәнгә түгел, ә программаны язуның дөрес ысулы булганга шулай эшләнгән иде, ләкин күпләрнең чыннан да моны теләгәне ачыкланды.

Веб-кушымтаны кулланганда сезнең мәгълүматларыгыз хәвефсезрәк булачак. Диск ватылулары үткәндә калмаячак, ләкин кулланучылар бу хакта бүтән ишетмәячәк. Алар сервер фермалары эчендә булачак. Һәм Веб-кушымталар тәкъдим итүче компанияләр чыннан да резерв күчермәләр ясаячак — моңа мондый мәсьәләләр турында борчылучы чын система администраторлары булганга гына түгел, ә кешеләрнең мәгълүматын югалткан ASP бик зур бәлагә тараячак дип карала. Кешеләр үз дисклары ватылып, үз мәгълүматларын югалтканда, алар шулкадәр үк ачулана алмый, чөнки үпкәләр өчен үзләреннән башка беркем дә юк. Компания алар өчен мәгълүматларын югалтса, алар күпкә катырак ачуланачак.

Ниһаять, Веб-нигезле программа тәэминаты вирусларга азрак бирешергә тиеш. Әгәр клиент браузердан башка бернәрсә дә эшләтми икән, вирусларны эшләтеп җибәрү куркынычы азрак, һәм зыян күрерлек җирле мәгълүмат та юк. Ә серверларның үзләренә һөҗүм иткән программа аларның бик яхшы сакланганын күрер. [2]

Кулланучылар өчен Веб-нигезле программа тәэминаты азрак стресслы булачак. Минемчә, уртача Windows кулланучысының эченә карасагыз, мондый тасвирламага туры килгән программа тәэминатына карата гаять зур һәм файдаланылмаган диярлек теләк табарсыз. Иреккә чыгарылса, ул бик көчле көчкә әйләнә алыр иде.

Код шәһәре

Эшкәртүчеләр өчен Веб-нигезле һәм десктоп программа тәэминаты арасындагы иң күренекле аерма — Веб-кушымтаның бербөтен код кисәге булмавында. Ул бердәнбер зур бинар файл түгел, ә төрле типтагы программалар коллекциясе булачак. Шуңа күрә Веб-программаларны проектлау бина проектлауга караганда шәһәр төзүгә охшаш: биналардан тыш сезгә юллар, урам билгеләре, коммуналь хезмәтләр, полиция һәм янгын сүндерү бүлекләре, шулай ук үсеш һәм төрле һәлакәтләр өчен планнар кирәк.

Viaweb-та программа тәэминаты кулланучылар турыдан-туры аралашкан шактый зур кушымталарны, шул программалар кулланган программаларны, проблемалар эзләп фон режимында даими эшләүче программаларны, ватылган очракта нәрсәнедер яңадан эшләтеп җибәрергә тырышучы программаларны, статистика туплау яки эзләү индексларын төзү өчен вакыт-вакыт эшләүче программаларны, ресурсларны чүп-чардан арындыру яки мәгълүматны күчерү яки торгызу өчен без махсус эшләткән программаларны, кулланучылар булып кыланучы программаларны (җитештерүчәнлекне үлчәү яки хаталарны ачу өчен), челтәр җитешсезлекләрен ачыклау программаларын, резерв күчермәләр ясау программаларын, тышкы хезмәтләр белән интерфейсларны, серверның реаль вакыттагы статистикасын күрсәтүче тәэсирле шкалалар тупланмасын идарә итүче программа тәэминатын (кунакларга бик ошый иде, ләкин безнең өчен дә алыштыргысыз иде), ачык кодлы программа тәэминатына үзгәрешләрне (шул исәптән хата төзәтмәләрен) һәм бик күп көйләү файллары һәм параметрларын үз эченә алды. Тревор Блэквелл, Yahoo безне сатып алганнан соң, кибетләрне бөтен ил буйлап, аларны сүндермичә яңа серверларга күчерү өчен гаҗәеп программа язды. Программалар безгә пейджерга хәбәрләр җибәрде, кулланучыларга факслар һәм электрон хатлар юллады, кредит карталарын эшкәртүчеләр белән транзакцияләр үткәрде һәм бер-берсе белән сокетлар, торбалар, http сораулары, ssh, udp пакетлары, уртак хәтер һәм файллар аша аралашты. Хәтта Viaweb-ның кайбер өлешләре программаларның булмавыннан торды, чөнки Unix хәвефсезлегенең төп кагыйдәләренең берсе — кешеләр серверларыгызга бәреп керү өчен куллана алырлык кирәксез коралларны эшләтмәүдә.

Бу программа белән генә тәмамланмады. Без сервер көйләүләре турында уйлап бик күп вакыт уздырдык. Серверларны без өлешләрдән үзебез җыйдык — бер яктан акчаны янга калдыру өчен, икенче яктан нәкъ үзебез теләгәнне алу өчен. Безнең өске ISP бөтен төп линияләргә җитерлек дәрәҗәдә тиз тоташуга ияме-юкмы икәнен уйларга туры килде. Без эзлекле рәвештә RAID тәэмин итүчеләре белән очрашып тордык.

Ләкин җиһаз бары тик борчылырга тиешле нәрсә генә түгел. Аны үзегез контрольдә тотсагыз, кулланучылар өчен күбрәк эшли аласыз. Десктоп кушымтасы белән сез билгеле бер минималь җиһаз таләпләрен күрсәтә аласыз, ләкин өстәмәләр кертә алмыйсыз. Серверлар белән идарә итсәгез, сез тиешле җиһазлар урнаштырып кына бер адымда бөтен кулланучыларыгызга пейджерга хәбәр җибәрү, яки факслар юллау, яки телефон аша боерыклар җибәрү, яки кредит карталарын эшкәртү мөмкинлеген ача аласыз һ.б. Без җиһазлар ярдәмендә яңа функцияләр өстәү юлларын гел эзләдек — бу кулланучыларны куандырганга гына түгел, ә җиһазларны турыдан-туры контрольдә тотмаган көндәшләрдән (я десктоп программалары сатканга, я Веб-кушымталарны ISP аша кабат сатканга) үзебезне аерып тору юлы буларак та кирәк иде.

Веб-кушымтадагы программа тәэминаты бердәм бинар файл түгел, ә программалар җыелмасы булачакка күрә, ул теләсә нинди сандагы төрле телләрдә язылырга мөмкин. Десктоп программаларын язганда, сез кушымтаны фактик рәвештә төп операцион система белән бер үк телдә — ягъни C һәм C++ телләрендә язарга мәҗбүрсез. Һәм шулай итеп бу телләр (бигрәк тә менеджерлар һәм венчур инвесторлар кебек техник булмаган кешеләр арасында) «җитди» программа эшкәртү өчен телләр дип санала башлады. Ләкин бу бары тик десктоп программаларын җиткерү ысулының гына нәтиҗәсе иде. Серверга нигезләнгән программалар өчен сез теләсә нинди телне куллана аласыз. [3] Бүген алдынгы хакерларның күбесе C һәм C++ телләреннән бик ерак булган телләрне куллана: Perl, Python, хәтта Lisp.

Серверга нигезләнгән программа тәэминаты ярдәмендә беркем дә сезгә нинди тел кулланырга кирәклеген әйтә алмый, чөнки бөтен системаны җиһазга кадәр үзегез контрольдә тотасыз. Төрле телләр төрле бурычлар өчен яхшы. Һәрберсе өчен кайсы иң яхшысы булса, шунысын куллана аласыз. Ә көндәшләрегез булганда, «булдыра аласыз» дигән сүз «тиешсез» дигәнне аңлата (без моңа соңрак кире кайтырбыз), чөнки сез бу мөмкинлектән файдаланмасагыз, көндәшләрегез файдаланачак.

Көндәшләребезнең күбесе C һәм C++ кулланды, һәм бу аларның программаларын сизелерлек дәрәҗәдә түбәнрәк сыйфатлы итте, чөнки (башка нәрсәләр арасында) аларда CGI скриптларының хәлсезлеге (statelessness) тирәсеннән узу юлы юк иде. Нәрсәнедер үзгәртергә теләсәгез, барлык үзгәрешләр аста «Яңартырга» (Update) төймәсе булган бер биттә булырга тиеш иде. Мин башка җирдә язганча, күпләр әле дә тикшеренү теле дип санаган Lisp кулланып, без Viaweb мөхәррирен десктоп программасына охшатып эшли алдык.

Чыгарылышлар

Бу яңа дөньядагы иң мөһим үзгәрешләрнең берсе — сезнең чыгарылышлар (релизлар) ясау ысулыгыз. Десктоп программалары бизнесында чыгарылыш ясау — гаять зур тетрәнү, анда бөтен компания бердәнбер зур код кисәген этеп чыгару өчен тир түгә һәм тырыша. Бу процессны да, килеп чыккан продуктны да күз алдына китерү өчен ачык чагыштырулар үз-үзеннән туа.

Серверга нигезләнгән программа тәэминаты белән сез үзгәрешләрне үзегез өчен яза торган программадагы кебек үк ясый аласыз. Сез программаны сирәк очрый торган зур шартлау итеп түгел, ә эзлекле үзгәрешләр тезмәсе итеп чыгарасыз. Гадәти десктоп программалары компаниясе елына бер яки ике чыгарылыш ясарга мөмкин. Viaweb-та без еш кына көненә өч-биш чыгарылыш ясый идек.

Бу яңа модельгә күчкәч, сез программа тәэминатын эшкәртүгә аның ничек чыгарылуы никадәр нык тәэсир итүен аңлыйсыз. Десктоп программалары бизнесында сез күргән иң начар проблемаларның күбесе чыгарылышларның һәлакәтле табигатенә бәйле.

Елына бер генә яңа версия чыгарганда, сез хаталарны күпләп хәл итәргә омтыласыз. Чыгару көненә кадәр берникадәр вакыт алдан сез яңа версия җыясыз, анда кодның яртысы йолкып алынган һәм алмаштырылган була, бу сансыз хаталар кертә. Аннары сыйфат контроле (QA) кешеләре төркеме килеп аларны саный башлый, һәм программистлар исемлек буенча аларны төзәтеп бара. Алар гадәттә исемлекнең ахырына барып җитми, һәм чынлыкта ахыры кайда икәнен беркем дә белми. Бу буадан җимерекләр сөзеп алуга охшаган. Сез беркайчан да программа эчендә нәрсә барганын төгәл белмисез. Иң яхшы очракта сез статистик дөреслек белән генә чикләнәсез.

Серверга нигезләнгән программа тәэминаты белән үзгәрешләрнең күбесе кечкенә һәм эзлекле була. Моның үзе генә дә хаталар кертү ихтималын киметә. Бу шулай ук программа тәэминатын чыгарырга торганда нәрсәне иң нык тикшерергә кирәклеген белүегезне аңлата: сез иң соңгы үзгәрткән нәрсәне. Сез кодны күпкә ныграк контрольдә тотасыз. Гадәттәге кагыйдә буларак, сез аның эчендә нәрсә барганын беләсез. Билгеле, сез башлангыч кодны яттан белмисез, ләкин кодны укыганда, сез аны ниндидер серне чишәргә тырышучы детектив кебек түгел, ә приборлар панелен карап чыгучы пилот кебек күзәтәсез.

Десктоп программалары хаталарга карата билгеле бер фатализм тудыра. Сез хаталар белән тулы әйбер җибәрүегезне беләсез һәм хәтта моны компенсацияләү механизмнарын да көйләгәнсез (мәсәлән, пач чыгарылышлары). Нигә тагын берничәсе турында борчылырга? Тиздән сез эшләмәгәнен белгән бөтен функцияләрне чыгара башлыйсыз. Apple бу ел башында шулай эшләде. Алар чыгару вакыты инде дүрт тапкыр күчерелгән яңа OS-ны чыгару буенча басым кичерделәр, ләкин кайбер программалар (CD һәм DVD-ларны хуплау) әзер түгел иде. Чишелеш нинди булды? Алар OS-ны тәмамланмаган өлешләрсез чыгардылар, һәм кулланучыларга аларны соңрак урнаштырырга туры киләчәк.

Веб-нигезле программа тәэминаты белән беркайчан да программаны эшләгәнче чыгарырга кирәкми, һәм ул эшләгән мизгелдә аны чыгара аласыз.

Тармак ветераны: «Программаны эшләгәнче чыгармаска кирәк дип әйтү бик матур яңгырый, ләкин сез программаның яңа версиясен билгеле бер көнгә тапшырырга вәгъдә иткән булсагыз нәрсә эшләргә?» дип уйларга мөмкин. Веб-нигезле программа тәэминаты белән сез мондый вәгъдә бирмәс идегез, чөнки бернинди версияләр дә юк. Сезнең программа тәэминаты акрынлап һәм ө өзлексез үзгәрә. Кайбер үзгәрешләр башкаларга караганда зуррак булырга мөмкин, ләкин версияләр идеясе Веб-нигезле программаларга табигый рәвештә туры килми.

Әгәр кем дә булса Viaweb-ны хәтерләсә, бу сәер яңгырарга мөмкин, чөнки без һәрвакыт яңа версияләр игълан итә идек. Бу бары тик PR максатларында гына эшләнде. Тармак матбугаты, без аңлаганча, версия номерлары белән фикер йөртә. Алар төп чыгарылыш өчен, ягъни версия номерындагы яңа беренче сан өчен зур яктырту бирәчәк, һәм гадәттә ноктадан соңгы чыгарылыш (point release), ягъни унарлы ноктадан соң яңа сан өчен иң күбе бер абзац бүлеп бирәчәк.

Кайбер көндәшләребез десктоп программаларын тәкъдим итә иде һәм чыннан да версия номерларына ия иде. Һәм бу чыгарылышлар өчен (аларның булуы гына да безгә аларның артта калганлыгының дәлиле булып күренә иде) алар төрле яклап игътибар казана иде. Без читтә калырга теләмәдек, шуңа күрә үзебезнең программага да версия номерлары бирә башладык. Безгә игътибар кирәк булганда, без соңгы «чыгарылыш»тан бирле өстәгән барлык функцияләрнең исемлеген төзи, программага яңа версия номеры тага һәм яңа версиянең шунда ук кулланырга мөмкин булуын белдергән пресс-релиз чыгара идек. Гаҗәп, ләкин беркем дә моның өчен безне сүкмәде.

Безне сатып алган вакытка без моны өч тапкыр эшләгән идек, шуңа күрә без 4-нче версиядә идек. Дөрес хәтерләсәм, 4.1 версиясе. Viaweb Yahoo Store булып киткәч, рекламага андый чарасыз ихтыяҗ бүтән булмады, шуңа күрә программа үсешен дәвам итсә дә, версия номерлары идеясе сизелмичә генә читкә куелды.

Хаталар

Веб-нигезле программа тәэминатының икенче зур техник өстенлеге — сез күпчелек хаталарны кабатлый аласыз. Кулланучыларның мәгълүматлары сезнең дискта гына тора. Әгәр кемдер сезнең программаны ватса, десктоп программаларындагы кебек нәрсә булганын фаразларга тырышасы юк: алар сезнең белән телефоннан сөйләшкән вакытта ук сез хатаны кабатлап күрсәтә белергә тиешсез. Хәтта сезнең кушымтага хаталарны искәртеп торучы код кертелгән булса, сез бу хакта алдан ук белергә дә мөмкинсез.

Веб-нигезле программа тәэминаты тәүлек буе кулланыла, шуңа күрә сез эшләгән һәрнәрсә шунда ук каты сынау уза. Хаталар тиз ачыклана.

Программа тәэминаты компанияләрен кайвакыт кулланучыларга үз программаларын төзәтергә рөхсәт итүдә гаеплиләр. Һәм мин нәкъ менә шуны яклыйм. Веб-нигезле программа тәэминаты өчен бу чынлыкта яхшы план, чөнки хаталар азрак һәм вакытлы гына. Программаны әкренләп чыгарганда, сездә башта ук хаталар күпкә азрак була. Ә хаталарны кабатлый һәм үзгәрешләрне шунда ук чыгара алганда, сез күпчелек хаталарны алар барлыкка килү белән үк табып төзәтә аласыз. Бездә беркайчан да рәсми хаталар күзәтү системасын (bug-tracking) кулланырлык дәрәҗәдә күп хата булмады.

Әлбәттә, үзгәрешләрне чыгарганчы сынап карарга кирәк, шуңа күрә зур хаталар чыгарылырга тиеш түгел. Күз уңыннан ычкынган санаулы хаталар чик очракларына кагылачак һәм кемдер зарланып шалтыратканчы, аларга юлыккан аз санлы кулланучыларга гына тәэсир итәчәк. Хаталарны шунда ук төзәткәндә, уртача кулланучы өчен нәтиҗәдә хаталар күпкә азрак булачак. Гадәти Viaweb кулланучысының хата күргәненә дә шикләнәм.

Яңа хаталарны төзәтү искеләренә караганда җиңелрәк. Үзегез яңа гына язган кодтагы хатаны табу гадәттә бик тиз бара. Ул килеп чыккач, сез хәтта чыганак кодны караганчы ук ни начар икәнен беләсез, чөнки аңыгыз төбендә бу хакта инде борчылган идегез. Алты ай элек язган нәрсәгездә хатаны төзәтү (әгәр елына бер тапкыр чыгарсагыз, уртача очрак шул) күпкә күбрәк хезмәт таләп итә. Кодны шулкадәр үк яхшы аңламаганга, сез аны кырын-мырын төзәтүгә, яки хәтта тагын да күбрәк хаталар кертүгә табарак барасыз. [4]

Хаталарны иртә тотсагыз, катлаулы хаталар да азрак була. Катлаулы хаталар — бер-берсе белән бәйләнешкә кергән ике аерым хата: сез баскычтан төшкәндә абынасыз, һәм култыксага ябышкач, ул кулыгызга кубып чыга. Программа тәэминатында мондый хатаны табу иң кыены, һәм ул шулай ук иң начар нәтиҗәләргә китерә. [5] Традицион «бөтенесен ватырга, аннары хаталарны сөзәргә» алымы табигый рәвештә бик күп катлаулы хаталар тудыра. Ә кечкенә үзгәрешләр тезмәсе белән чыгарылган программа тәэминаты табигый рәвештә моңа юл куймый. Идәннәр соңрак берәр нәрсәгә кысылып калырга мөмкин булган барлык иркен әйберләрдән даими рәвештә себерелеп тора.

Функциональ программалаштыру дип аталган алымны куллану ярдәм итә. Функциональ программалаштыру ян-эффектлардан качуны аңлата. Бу нәрсә коммерция программа тәэминатына караганда тикшеренү мәкаләләрендә ешрак очрый, ләкин Веб-кушымталар өчен ул бик файдалы булып чыга. Бөтен программаларны бары тик функциональ код итеп язуы кыен, ләкин шактый зур кисәкләрне шулай язарга була. Бу сезнең программа тәэминатының шул өлешләрен сынауны җиңеләйтә, чөнки аларда халәт юк, һәм бу сез даими рәвештә кечкенә үзгәрешләр кертеп сынап торган вазгыятьтә бик уңайлы. Мин Viaweb мөхәрриренең күп өлешен шушы стильдә яздым, һәм без үзебезнең RTML скрипт телен тулысынча функциональ тел иттек.

Десктоп программалары бизнесыннан булган кешеләргә моңа ышану кыен булыр, ләкин Viaweb-та хаталар диярлек уенга әйләнде. Чыгарылган хаталарның күбесе чик очракларына кагылганга күрә, аларга юлыккан кулланучылар мөмкинлекләр чиген сынаучы алдынгы кулланучылар булырга охшаган иде. Алдынгы кулланучылар хаталарга карата кичерүчәнрәк, бигрәк тә сез аларны алар үзләре сораган функцияне өстәү барышында керткән булсагыз. Чынлыкта, хаталар сирәк булганлыктан һәм аларны күрү өчен катлаулы эшләр башкарырга кирәк булганлыктан, алдынгы кулланучылар еш кына хатаны эләктерү белән горурлана иде. Алар техник ярдәм бүлегенә ачу белән түгел, ә бездән очко откан кебек, җиңү рухында шалтырата иделәр.

Ярдәм

Хаталарны кабатлый алсагыз, бу сезнең клиентларга ярдәм күрсәтүгә карашыгызны үзгәртә. Күпчелек программа компанияләрендә ярдәм клиентларның күңелен күрү ысулы буларак кына тәкъдим ителә. Алар сезгә я билгеле бер хата турында шалтырата, яисә нидер дөрес эшләми һәм сезгә нәрсәнең дөрес түгеллеген ачыкларга кирәк. Ике очракта да алардан өйрәнә алырлык нәрсә күп түгел. Һәм сез ярдәмгә килгән шалтыратуларга программа төзүчеләрегездән мөмкин кадәр ераграк тотарга теләгән җәфа итеп карый башлыйсыз.

Viaweb-та эшләр алай бармады. Viaweb-та техник ярдәм бушлай иде, чөнки без клиентларны ишетергә теләдек. Әгәр кемнеңдер проблемасы булса, без аны шунда ук белергә теләдек, шуның аркасында без хатаны үзебездә кабатлый һәм төзәтмәне чыгара ала идек.

Шулай итеп, Viaweb'та эшләүчеләр ярдәм хезмәте белән һәрвакыт тыгыз элемтәдә торды. Клиентларга ярдәм күрсәтүче хезмәткәрләр программачылардан нибары утыз адым чамасы ераклыкта утыра иде һәм алар чын хата (bug) турында хәбәр белән теләсә нинди эшне бүлә алуларын белә иде. Без җитди хатаны төзәтү өчен директорлар советы утырышын да ташлап чыга идек.

Ярдәм күрсәтүгә карашыбыз барысын да бәхетлерәк итте. Клиентлар сокланды. Ярдәм хезмәтенә шалтыратып, мөһим яңалык алып килгән кеше кебек кабул ителүнең нинди икәнен күз алдына гына китерегез. Клиентларга ярдәм итүче хезмәткәрләргә бу ошый иде, чөнки бу аларга кулланучыларга әзер скриптларны укып утыру урынына чыннан да булышу мөмкинлеге бирде. Ә программачыларга исә хаталар турында кемнеңдер ишеткән сүзләрен тыңлап тору урынына, аларны үзләрендә кабатлап карау мөмкинлеге булу ошый иде.

Хаталарны шундук төзәтү сәясәтебез ярдәм хезмәткәрләре белән хакерлар арасындагы мөнәсәбәтләрне үзгәртте. Күпчелек программа тәэминаты компанияләрендә ярдәм хезмәткәрләре — аз түләнә торган тере калканнар, ә хакерлар — дөньяны бар итүче Аллаһның нәни күчермәләре кебек. Хаталар турында хәбәр итү тәртибе нинди генә булмасын, ул гадәттә берьяклы: хаталарны ишеткән ярдәм хезмәткәрләре ниндидер форма тутыра, ул ахыр чиктә (бәлки QA аша) программачыларга барып җитә, ә тегеләре аны үзләренең эш исемлегенә кертә. Viaweb'та барысы да бөтенләй башкача иде. Клиенттан хата турында ишетүгә бер минут эчендә ярдәм хезмәткәре программачы янында басып тора һәм аның «Каргыш атсын, син хаклы, бу хата» дигәнен ишетә ала иде. Хакерлардан бу «син хаклы» дигәнне ишетү ярдәм хезмәткәрләрен шатландыра иде. Алар безгә хаталарны мәче үзе яңа гына тоткан тычканны алып килгән өметле кыяфәт белән китерә торган иде. Бу шулай ук аларны хаталарның җитдилеген бәяләүдә җаваплырак итте, чөнки хәзер аларның намусы уртада иде.

Безне Yahoo сатып алгач, клиентларга ярдәм хезмәтен программачылардан еракка күчерделәр. Бары тик шул чакта гына без аларның фактта QA һәм ниндидер дәрәҗәдә маркетинг та булып торганын аңладык. Хаталарны тотудан тыш, алар кулланучыларны бутый торган функцияләр кебек аңлаешсызрак, хатага охшаш нәрсәләр турындагы белем саклаучылар да иде. [6] Алар шулай ук үзенә күрә бер фокус-төркем ролен дә үти иде; без алардан кулланучылар ике яңа функциянең кайсысын күбрәк теләвен сорый ала идек, һәм алар һәрвакыт хаклы булып чыга иде.

Рухи күтәренкелек

Программа тәэминатын шундук чыгара алу зур стимул булып тора. Эшкә барганда мин еш кына программага ниндидер үзгәреш кертергә теләвем турында уйлый идем һәм аны шул көнне үк эшли идем. Бу зуррак функцияләргә дә кагыла иде. Хәтта берәр нәрсәне язу өчен ике атна кирәк булса да (бик аз проектлар озаграк вакыт алды), мин эш бетү белән аның нәтиҗәсен программада күрәчәгемне белә идем.

Әгәр миңа чираттагы чыгарылышны (релизны) бер ел көтәргә туры килсә, мин бу идеяләрнең күбесен, ким дигәндә беркадәр вакытка, киштәгә салып куйган булыр идем. Әмма идеяләрнең шундый бер ягы бар: алар башка яңа идеяләргә китерә. Сез язарга утырганда, язмага кергән фикерләрнең яртысы аны язу барышында башыгызга килгәнен сизгәнегез бармы? Программа тәэминаты белән дә нәкъ шулай. Бер идеяне тормышка ашыру өстендә эшләү сезгә яңа идеяләр бирә. Шуңа күрә идеяне киштәгә салып кую аны тормышка ашыруны кичектерүгә генә түгел, аны гамәлгә ашыру китерәчәк барлык идеяләрне югалтуга да китерә. Чынлыкта, идеяне киштәгә кую, бәлки, хәтта яңа идеяләргә комачаулыйдыр да: берәр яңа функция турында уйлый башлауга, син киштәгә күзеңне төшерәсең һәм «ләкин чираттагы чыгарылыш өчен мин эшләргә теләгән бик күп яңа нәрсәләр бар инде» дип уйлыйсың.

Зур компанияләр функцияләрне тормышка ашыру урынына аларны планлаштыра. Viaweb'та без кайвакыт моның аркасында кыенлыкларга тарый идек. Инвесторлар һәм аналитиклар бездән киләчәккә нинди планнарыбыз барлыгын сорый торган иде. Хакыйкый җавап шундый булыр иде: безнең бернинди дә планнарыбыз юк иде. Яхшыртырга теләгән нәрсәләребез турында гомуми фикерләребез бар иде, ләкин моны ничек эшләргә икәнен белсәк, инде эшләгән булыр идек. Киләсе алты айда нәрсә эшләргә җыена идек соң? Иң зур уңыш китерер сыман тоелган нәрсәне. Мин бу җавапны бирергә батырчылык иткәнменме-юкмы, белмим, ләкин дөресе шул иде. Планнар — ул бары тик киштәдә яткан идеяләрнең икенче исеме генә. Яхшы идеяләр башыбызга килгәндә, без аларны тормышка ашыра идек.

Viaweb'та, күп кенә программа тәэминаты компанияләрендәге кебек үк, күпчелек кодның бер билгеле хуҗасы бар иде. Ләкин син берәр нәрсәгә ия булсаң, чынлап та ия идең: программаның хуҗасыннан тыш беркемгә дә чыгарылышны расларга (яки бу хакта хәтта белергә дә) кирәк түгел иде. Бердәнбер саклану чарасы — хезмәттәшләрең алдында ахмак булып күренүдән курку иде, һәм бу җитәрлек тә иде. Мин кодны уйламыйча гына яза тордык дигән тәэсир калдырганмындыр, бәлки. Без чыннан да тиз эшләдек, ләкин программа тәэминатын ул серверларга чыгарганчы бик нык уйлана идек. Ә ышанычлылык өчен әкрен хәрәкәт итүгә караганда игътибарлы булу мөһимрәк. Хәрби-диңгез флоты пилоты, бик игътибарлы булганга, 40 000 фунтлы очкычны сәгатенә 140 миль тизлектә, чайкалып торган авиаташучы палубасына төнлә, уртача үсмернең ипи кисүенә караганда куркынычсызрак утырта ала.

Программа тәэминатын бу рәвешчә язу, әлбәттә, ике ягы да үткен кылыч кебек. Ул начар идеяләрне уйлап тапкан кешеләр түгел, ә комитетлар тоткан уртакул белгечләрдән торган зур компаниягә караганда, яхшы, ышанычлы программачыларның кечкенә командасы өчен күпкә яхшырак эшли.

Брукс киресенчә

Бәхеткә, Веб-нигезле программа тәэминатына чыннан да азрак программачы кирәк. Мин кайчандыр инженерия өлкәсендә гомумән алганда 100дән артык кеше эшләгән уртача зурлыктагы десктоп программалары компаниясендә эшләгән идем. Шуларның 13е генә продуктны эшләүдә катнаша иде. Калганнарының барысы да чыгарылышлар, башка платформаларга күчерү (портлаштыру) һәм башкалар өстендә эшли иде. Веб-нигезле программа тәэминаты белән сезгә барысы (иң күбе) 13 кеше кирәк, чөнки чыгарылышлар, портлаштыру һәм башка андый нәрсәләр юк.

Viaweb бары тик өч кенә кеше тарафыннан язылган иде. [7] Миңа һәрвакыт күбрәк кеше ялларга басым ясалды, чөнки без сатылырга теләдек, ә сатып алучыларның өч кенә программачысы булган компания өчен зур бәя түләве кыен булачагын белә идек. (Чишелеш: без күбрәк кеше ялладык, ләкин алар өчен яңа проектлар булдырдык.)

Сез программа тәэминатын азрак программачы белән яза алганда, бу акчаны гына саклап калмый. Фред Брукс үзенең The Mythical Man-Month китабында күрсәткәнчә, проектка кешеләр өстәү аны әкренәйтүгә таба бара. Эшләүчеләр арасындагы мөмкин булган элемтәләр саны төркемнең зурлыгы белән экспоненциаль рәвештә үсә. Төркем никадәр зуррак булса, алар программаларының бергә ничек эшләячәген килештерү буенча җыелышларда шулкадәр күбрәк вакыт үткәрәчәк, һәм көтелмәгән тәэсирләшүләрдән шулкадәр күбрәк хаталар алачак. Бәхеткә, бу процесс кире якка да эшли: төркемнәр кечерәйгән саен, программа тәэминатын эшләү экспоненциаль рәвештә нәтиҗәлерәк була бара. Viaweb программачыларының кайчан да булса чын җыелыш үткәргәнен хәтерләмим. Берьюлы әйтәсе сүзебез беркайчан да төшке ашка барганда әйтә алырлыктан артык булмады.

Монда ниндидер җитешсезлек бар икән, ул да булса — барлык программачыларның да ниндидер дәрәҗәдә система администраторлары да булырга тиешлеге. Сез программа тәэминатын хостингта тотсагыз, кемдер серверларны күзәтеп торырга тиеш, ә практикада моны дөрес итеп эшли алган бердәнбер кешеләр — ул программа тәэминатын язган кешеләр. Viaweb'та безнең системаның шулкадәр күп компонентлары бар иде һәм ул шулкадәр еш үзгәрә иде ки, программа тәэминаты белән инфраструктура арасында төгәл чик юк иде. Андый чикне үз белдегең белән билгеләү безнең дизайн сайлауларыбызны чикләгән булыр иде. Һәм шуңа күрә без кайчан да булса бер көнне («бер-ике айдан») барысы да җитәрлек дәрәҗәдә тотрыклы булыр һәм эше бары тик серверлар турында кайгырту гына булган кешене яллый алырбыз дип өзлексез өметләнсәк тә, бу беркайчан да барып чыкмады.

Продуктны актив рәвештә үстергәндә, башкача булуы мөмкин түгел дип уйлыйм. Веб-нигезле программа тәэминаты беркайчан да сез язып, саклап (check in ясап), өйгә кайтып китә торган нәрсә булмаячак. Бу — тере нәрсә, ул нәкъ хәзер сезнең серверларда эшли. Җитди хата бер кулланучының процессын гына җимермәскә мөмкин; ул аларның барысын да җимерергә сәләтле. Әгәр кодыңдагы хата дисктагы ниндидер мәгълүматны бозса, аны төзәтергә кирәк. Һәм башкалар. Без серверларны һәр минут саен күзәтеп торырга кирәк түгеллеген аңладык (беренче елдан соң чамасы), ләкин күптән түгел үзгәрткән нәрсәләргә һичшиксез күз-колак булырга кирәк. Төнлә кодны чыгарып җибәреп, аннары өйгә кайтып китмиләр.

Кулланучыларны күзәтү

Серверга нигезләнгән программа тәэминаты белән сез үз кодыгыз белән тыгызрак элемтәдә торасыз. Сез шулай ук кулланучыларыгыз белән дә тыгызрак элемтәдә була аласыз. Intuit ваклап сату кибетләрендә клиентлар белән танышып, алар артыннан өйләренә кадәр барырга рөхсәт соравы белән танылган. Әгәр сез кайчан да булса берәүнең программагызны беренче тапкыр кулланганын күзәткәнегез булса, аларны нинди көтелмәгән хәлләр көткәнен аңлыйсыздыр.

Программа тәэминаты кулланучылар көткәнчә эшләргә тиеш. Ләкин, ышаныгыз миңа, аларны күзәтмичә торып, кулланучыларның нәрсә уйлаячагы турында бернинди дә күзаллавыгыз була алмый. Ә серверга нигезләнгән программа тәэминаты аларның үз-үзләрен тотышы турында тиңдәшсез мәгълүмат бирә. Сез кечкенә, ясалма фокус-төркемнәр белән генә чикләнмисез. Сез һәр кулланучы ясаган һәр кликны күрә аласыз. Нәрсәгә караячагыгыз турында яхшылап уйланырга кирәк, чөнки кулланучыларның шәхси тормыш хокукын бозасы килми, ләкин иң гомуми статистик сайланма да бик файдалы булырга мөмкин.

Кулланучылар сезнең серверда булганда, мәсәлән, бенчмаркларга таянырга кирәкми. Бенчмарклар — симуляцияләнгән кулланучылар. Серверга нигезләнгән программа белән сез реаль кулланучыларны күзәтә аласыз. Нәрсәне оптимальләштерергә икәнен хәл итү өчен серверга кереп, CPU'ны нәрсә ашап барганын карау да җитә. Һәм кайчан туктарга кирәген дә беләсез: без Viaweb мөхәррирен ахыр чиктә CPU'га түгел, ә хәтергә бәйле (memory-bound) хәлгә җиткердек, ә кулланучылар мәгълүматы күләмен киметү өчен бернәрсә дә эшли алмаганлыктан (ягъни, җиңел юл булмаганлыктан), без шунда тукталу хәерлерәк икәнен белдек.

Серверга нигезләнгән программа тәэминаты өчен нәтиҗәлелек мөһим, чөнки аппарат тәэминаты (hardware) өчен сез үзегез түлисез. Бер серверга хезмәт күрсәтә алган кулланучылар саны — сезнең капиталь чыгымнарыгызның бүлүчесе, шуңа күрә программагызны бик нәтиҗәле итә алсагыз, көндәшләрдән арзанрак сатып та табыш ала аласыз. Viaweb'та без бер кулланучыга төшкән капиталь чыгымны якынча 5 долларга кадәр төшердек. Хәзер ул тагын да азрак булыр иде, мөгаен, аларга беренче айлык хисап җибәрү бәясеннән дә кимрәктер. Әгәр программагыз җитәрлек дәрәҗәдә нәтиҗәле булса, аппарат тәэминаты хәзер бушлай диярлек.

Кулланучыларны күзәтү сезгә оптимальләштерүдә генә түгел, дизайнда да юл күрсәтә ала. Viaweb'та алдынгы кулланучыларга үз бит стильләрен билгеләргә мөмкинлек бирүче RTML дигән скрипт теле бар иде. RTML бер төр тәкъдимнәр тартмасына әверелде, чөнки кулланучылар аны алдан билгеләнгән бит стильләре теләгәннәрен эшли алмаган очракта гына куллана иде. Башта мөхәррир төймәләр панелен бит буенча горизонталь урнаштыра иде, мәсәлән, ләкин берничә кулланучы төймәләрне сул якка кую өчен RTML куллана башлагач, без аны алдан билгеләнгән бит стильләрендә бер вариант (чынлыкта, төп вариант) итеп ясадык.

Ниһаять, кулланучыларны күзәтеп, аларның кайчан кыенлыкка тарыганын еш кына белеп була. Клиент һәрвакыт хаклы булганлыктан, бу — сезгә төзәтергә кирәк булган нәрсәнең билгесе. Viaweb'та кулланучыларны җәлеп итүнең ачкычы онлайн тест-драйв булды. Бу маркетинг белгечләре төзегән слайдлар рәте генә түгел иде. Безнең тест-драйвта кулланучылар программаны чынлап кулландылар. Бу биш минут чамасы вакыт алды, һәм аның ахырында алар чын, эшләүче кибет төзегән иделәр.

Тест-драйв — безнең барлык диярлек яңа кулланучыларны җәлеп итү юлыбыз иде. Минемчә, күпчелек Веб-нигезле кушымталар өчен дә шулай булачак. Әгәр кулланучылар тест-драйвны уңышлы үтә алса, аларга продукт ошаячак. Әгәр алар буталса яки күңелләре кайтса, ошамаячак. Димәк, тест-драйвны күбрәк кеше узсын өчен эшләгән һәрнәрсә безнең үсеш темпын арттырачак иде.

Мин тест-драйв үтүче кешеләрнең клик юлларын өйрәндем һәм билгеле бер адымда аларның буталуын һәм браузерның «Артка» (Back) төймәсенә басуын ачыкладым. (Веб-нигезле кушымталар язып карасагыз, «Артка» төймәсе сезнең иң кызыклы фәлсәфи проблемаларыгызның берсенә әверелүен күрерсез.) Шуңа күрә мин ул урында кулланучыларга эшнең бетүгә якынлашуын белдерүче һәм «Артка» төймәсенә басмаска искәртүче белдерү өстәдем. Веб-нигезле программа тәэминатының тагын бер менә дигән ягы — сез үзгәрешләрдән шундук җавап аласыз: тест-драйвны тәмамлаучылар саны шунда ук 60%тан 90%ка күтәрелде. Яңа кулланучылар саны тәмамланган тест-драйвлар санына бәйле булганлыктан, керемебез үсеше бары тик шул үзгәрештән генә дә 50%ка артты.

Акча

1990 еллар башында мин бер мәкалә укыдым, анда кемдер программа тәэминаты — ул язылу (подписка) бизнесы дип әйткән иде. Башта бу бик циник белдерү булып тоелды. Ләкин соңрак мин аның чынбарлыкны чагылдыруын аңладым: программа тәэминатын эшләү — туктаусыз бара торган процесс. Кешеләргә акча түләп торсыннар өчен гел яңа версияләр сатып алырга һәм урнаштырырга мәҗбүр итү урынына, язылу өчен ачыктан-ачык түләү алу хәерлерәк дип саныйм. Һәм бәхеткә, язылу — Веб-нигезле кушымталар өчен түләү алуның табигый ысулы.

Кушымталарны хостингта тоту — бу компанияләр бушлай программалар (freeware) тутыра алмаган рольне уйнаячак өлкә. Кушымталарны хостингта тоту — зур стресс һәм реаль чыгымнар таләп итә. Беркем дә моны бушка эшләргә теләмәячәк.

Компанияләр өчен Веб-нигезле кушымталар — идеаль керем чыганагы. Һәр кварталны буш бит белән башлаганчы, сезнең даими керем агымыгыз бар. Программа тәэминатыгыз әкренләп үскәнгә күрә, яңа модель уңышсыз булыр дип борчыласы юк; яңа модельнең үзе булуы кирәк түгел, һәм программа тәэминатында кулланучылар нәфрәт иткән нәрсәне эшләсәгез, сез моны шунда ук беләчәксез. Җыелмый калган түләүләр белән кыенлыклар юк; әгәр кемдер түләмәсә, сез хезмәтне ябып куя аласыз. Һәм пиратлык мөмкинлеге бөтенләй юк.

Бу соңгы «өстенлек» проблема булып чыгарга да мөмкин. Программа тәэминаты компанияләре өчен пиратлыкның билгеле бер күләме хәтта файдалы. Әгәр ниндидер кулланучы сезнең программаны нинди генә бәягә дә сатып алмас иде икән, ул пират күчермәсен кулланса, сез бернәрсә дә югалтмыйсыз. Чынлыкта сез отасыз гына, чөнки ул — сезнең программагызны стандартка әйләндерергә ярдәм итүче тагын бер кулланучы, яисә мәктәпне тәмамлагач, соңрак күчермә сатып алырга мөмкин булган кеше.

Мөмкинлек булганда, компанияләр бәя дискриминациясе дип аталган нәрсәне эшләргә ярата, бу — һәр клиенттан аның хәленнән килгәнчә максималь түләү алу дигән сүз. [8] Программа тәэминаты бәя дискриминациясе өчен аеруча кулай, чөнки чик чыгымнары нульгә якын. Менә ни өчен кайбер программаларны Intel машиналарына караганда Sun машиналарында җибәрү кыйммәтрәккә төшә: Sun кулланган компания акча янга калдыру белән кызыксынмый һәм аңардан тыныч кына күбрәк түләттерергә була. Пиратлык — фактта бәя дискриминациясенең иң түбән баскычы. Минемчә, программа тәэминаты компанияләре моны аңлый һәм пиратлыкның кайбер төрләренә белә торып күз йома. [9] Серверга нигезләнгән программа тәэминаты белән аларга ниндидер башка чишелеш табарга туры киләчәк.

Веб-нигезле программа тәэминаты яхшы сатыла, аеруча десктоп программалары белән чагыштырганда, чөнки аны сатып алу җиңел. Кешеләр башта берәр нәрсәне сатып алырга карар кыла, ә аннары сатып ала дип ике аерым адым итеп уйларга мөмкинсез. Viaweb'ка кадәр мин дә шулай уйлый идем, әгәр бу сорау турында гомумән уйланган булсам. Чынлыкта икенче адым беренчесенә кире йогынты ясарга мөмкин: берәр нәрсәне сатып алу кыен булса, кешеләр аны чыннан да теләгәннәрме-юкмы икәнлеге турында карарларын үзгәртәчәк. Һәм киресенчә: сату җиңел булганда, сез күбрәк сатачаксыз. Мин Amazon булганга күрә күбрәк китап сатып алам. Веб-нигезле программа тәэминаты — дөньяда сатып алу өчен иң җиңел нәрсәләрнең берсе, бигрәк тә онлайн демо караганнан соң. Кулланучыларга кредит картасы номерын кертүдән күбрәкне эшләргә туры килмәскә тиеш. (Аларны күбрәк эшләргә мәҗбүр итү — үзегез өчен зур куркыныч.)

Кайвакыт Веб-нигезле программа тәэминаты дистрибьютор буларак эшләүче Интернет-провайдерлар (ISP) аша тәкъдим ителә. Бу — начар идея. Серверлар белән сез үзегез идарә итәргә тиешсез, чөнки җиһазны да, программа тәэминатын да даими яхшыртып торырга кирәк. Серверлар өстеннән турыдан-туры контрольдән баш тартсагыз, сез Веб-нигезле кушымталарны эшләүнең күпчелек өстенлекләреннән мәхрүм каласыз.

Бездән көндәш берничә компания шулай эшләп үз аякларына үзләре атты — гадәттә, минемчә, чөнки аларга бу гаять зур потенциаль канал белән мавыккан костюмлы түрәләр басым ясады, һәм алар моның нәкъ шул канал аша сатарга өметләнгән продуктны җимерәчәген аңламадылар. Веб-нигезле программа тәэминатын Интернет-провайдерлар аша сату — сушины автоматлар аша сату кебек.

Клиентлар

Клиентлар кем булыр? Viaweb'та башта алар аерым шәхесләр һәм кечерәк компанияләр иде, һәм бу Веб-нигезле кушымталар өчен гомуми кагыйдә булыр дип уйлыйм. Бу кулланучылар яңа нәрсәләрне сынап карарга әзер, бер яктан — сыгылмалырак булганга, икенче яктан — яңа технологияләрнең түбән чыгымнарын теләгәнгә күрә.

Веб-нигезле кушымталар еш кына зур компанияләр өчен дә иң яхшы әйбер булачак (гәрчә алар моны әкрен генә аңлаячак булсалар да). Иң яхшы интранет — ул Интернет. Әгәр компания чын Веб-нигезле кушымталар кулланса, программа тәэминаты яхшырак эшләячәк, серверлар яхшырак идарә ителәчәк һәм хезмәткәрләр системага теләсә кайсы җирдән керә алачак.

Бу карашка каршы төп дәлил гадәттә куркынычсызлыкка кайтып кала: хезмәткәрләр өчен керү җиңелрәк булса, начар кешеләр өчен дә җиңел булачак. Кайбер зур сатучылар Viaweb'ны кулланырга теләмәделәр, чөнки клиентларның кредит карталары турындагы мәгълүмат үз серверларында куркынычсызрак булыр дип уйладылар. Моны дипломатик рәвештә аңлату җиңел түгел иде, ләкин чынлыкта мәгълүмат алар кулына караганда безнең кулда күпкә куркынычсызрак иде. Куркынычсызлык белән идарә итү өчен кем яхшырак белгечләр яллый ала: бөтен бизнесы серверлар белән эшләүдән торган технология стартапымы, әллә кием-салым кибетеме? Бездә куркынычсызлык турында кайгыртучы белгечләр яхшырак кына түгел, без аның турында күбрәк кайгырта да идек. Әгәр кемдер кием кибетенең серверларын ватса, бу иң күбе бер генә сәүдәгәргә кагылыр иде, моны мөгаен яшереп калырлар иде, һәм иң начар очракта бер кешене эштән куарлар иде. Әгәр кемдер безнекеләрне ватса, бу меңләгән сәүдәгәргә кагылырга мөмкин иде, мөгаен, CNet'та яңалык булып чыгар иде һәм безнең бизнесыбызны юкка чыгарыр иде.

Акчагызны сакларга теләсәгез, аны өйдә матрас астында тотасызмы, әллә банкка саласызмы? Бу дәлил сервер белән идарә итүнең һәр ягына кагыла: куркынычсызлык кына түгел, өзлексез эшләү вакыты (uptime), үткәрү сәләте, йөкләнеш белән идарә итү, резерв күчермәләр һ.б. Безнең яшәвебез шушы эшләрне дөрес башкаруга бәйле иде. Сервер проблемалары безнең өчен иң зур ярамаган нәрсә иде, уенчык җитештерүче өчен куркыныч уенчык яки азык-төлек комбинаты өчен сальмонелла таралуы кебек.

Веб-нигезле кушымталарны кулланучы зур компания шул дәрәҗәдә IT'ны аутсорсингка бирә. Никадәр кыскыч булып тоелса да, бу гомумән алганда яхшы идея дип уйлыйм. Компанияләр үзләренең эчке система администраторларына караганда шушы юл белән яхшырак хезмәт алырга мөмкин. Система администраторлары көйсез һәм битараф булып китә ала, чөнки алар конкуренция басымына турыдан-туры дучар түгел: сатучы клиентлар белән эшләргә тиеш, эшләүче (девелопер) көндәшләрнең программалары белән көрәшергә тиеш, ә система администраторы, карт буйдак кебек, аны тәртиптә тотарлык тышкы көчләргә аз дучар була. [10] Viaweb'та безне тәртиптә тоту өчен тышкы көчләр җитәрлек иде. Безгә шалтыратучы кешеләр гади хезмәттәшләр генә түгел, клиентлар иде. Әгәр сервер катып калса, без урыныбыздан сикереп тора идек; бу хакта уйлау гына да, еллар узгач та, каныма адреналин өсти.

Шулай итеп, Веб-нигезле кушымталар гадәттә зур компанияләр өчен дә дөрес җавап булып тора. Ләкин алар, өстәл компьютерлары белән булган кебек үк, моны иң соңгы булып аңлаячаклар. Һәм өлешчә шул ук сәбәп аркасында: зур компанияләрне аларга кыйммәтрәк нәрсә кирәклегенә ышандыру зур акчага торачак.

Бай клиентларның арзан чишелешләр яхшырак булганда да кыйммәтлесен сатып алу гадәте һәрвакыт бар, чөнки кыйммәтле карарлар тәкъдим итүче кешеләр аларны сату өчен күбрәк акча сарыф итә ала. Viaweb'та без һәрвакыт моның белән очраша идек. Без берничә зур сатучыны Веб-консалтинг фирмаларына оттырдык, чөнки алар сәүдәгәрләрне үз серверларында заказга ясалган онлайн кибет өчен ярты миллион доллар түләсәләр, яхшырак булачагына ышандырды. Кагыйдә буларак, аларның хәле яхшырмады, моны Раштуа сәүдә сезоны җиткәч һәм серверга йөкләнеш арткач, бердән артык компания аңлап алды. Viaweb ул сәүдәгәрләр алган нәрсәнең күбесенә караганда катлаулырак һәм камилрәк иде, ләкин моны аларга әйтеп аңлатырга хәлебездән килми иде. Аена 300 доллар бәя белән без клиентларга презентацияләр ясау өчен яхшы киенгән һәм абруйлы тавышлы кешеләр командасын җибәрә алмый идек.

Зур компанияләр артык түләгән акчаның зур өлеше — аларга кыйммәтле әйберләрне сату чыгымнары. (Оборона министрлыгы унитаз утыргычы өчен мең доллар түли икән, бу өлешчә унитаз утыргычын мең долларга сату кыйммәткә төшкәнгә күрә.) Һәм бу — интранет программа тәэминатының үсүен дәвам итүенең бер сәбәбе, гәрчә бу начар идея булса да. Ул бары тик кыйммәтрәк. Бу башваткыч белән бернәрсә дә эшләп булмый, шуңа күрә иң яхшы план — башта кечерәк клиентларга юнәлү. Калганнары вакыт узу белән үзләре киләчәк.

Серверның дәвамчысы

Программа тәэминатын серверда җибәрүдә яңа бернәрсә дә юк. Чынлыкта бу иске модель: мейнфрейм кушымталарының барысы да серверга нигезләнгән. Әгәр серверга нигезләнгән программа тәэминаты шундый яхшы идея икән, нигә соң ул узган юлы җиңелде? Ни өчен шәхси (десктоп) компьютерлар мейнфреймнарны күләгәдә калдырды?

Башта өстәл компьютерлары зур куркыныч сыман күренми иде. Беренче кулланучыларның барысы да хакерлар — яки ул вакытта аталганча, һәвәскәрләр иде. Аларга микрокомпьютерлар ошый иде, чөнки алар арзан иде. Беренче тапкыр сезнең үз компьютерыгыз була алды. «Шәхси санак» (персональ компьютер) гыйбарәсе хәзер телнең бер өлеше булып тора, ләкин ул беренче тапкыр кулланылганда, бүгенге көндә «шәхси иярчен» дигән гыйбарә кебек, аңлы рәвештә кыю һәм гаҗәп булып яңгырый иде.

Ни өчен өстәл компьютерлары өстенлеккә иреште? Минемчә, чөнки аларның яхшырак программа тәэминаты бар иде. Ә микрокомпьютер программа тәэминатының яхшырак булу сәбәбе, минемчә, аны кечкенә компанияләр яза алуында иде.

Күпләр стартапларның иң башлангыч этапта никадәр уалучан һәм тотрыксыз булуын аңлап бетермидер дип уйлыйм. Күп кенә стартаплар очраклы диярлек башлана — төп эше булган яки укып йөргән ике кеше берәр нәрсәнең прототибын яза, әгәр ул өметле күренсә, компаниягә әйләнергә мөмкин. Бу башлангыч чорда теләсә нинди җитди тоткарлык стартапны тамырыннан туктатачак. Мейнфрейм программаларын язу башта ук бик күп көч һәм чыгымнар таләп итә иде. Эшләү өчен кирәкле машиналар кыйммәт иде, ә клиентлар зур компанияләр булачагы сәбәпле, аларга сату өчен абруйлы кыяфәтле сатучылар штаты кирәк булачак иде. Мейнфрейм программалары язу өчен стартап башлау кичләрен Apple II'дә нидер ясаштыруга караганда күпкә җитдирәк эш булыр иде. Һәм шуңа күрә мейнфрейм кушымталары язучы стартаплар күп түгел иде.

Өстәл компьютерларының килүе бик күп яңа программа тәэминатын барлыкка китерде, чөнки алар өчен кушымталар язу башлангыч стартапларга ирешерлек максат булып күренде. Эшләү арзан иде, ә клиентлар компьютер кибетләре яки хәтта почта аша заказ белән ирешеп була торган гади шәхесләр булачак иде.

Өстәл компьютерларын киң массага чыгарган кушымта VisiCalc — беренче электрон таблица булды. Ул чормада эшләгән ике егет тарафыннан язылган иде, ләкин бернинди мейнфрейм программасы эшли алмаган нәрсәләрне эшләде. [11] VisiCalc үз вакытында шундый зур алга китеш иде ки, кешеләр Apple II санакларын бары тик аны эшләтеп җибәрү өчен генә сатып алдылар. Һәм бу яңа бер юнәлешнең башы иде: өстәл компьютерлары җиңде, чөнки стартаплар алар өчен программа тәэминаты язды.

Күрәсең, бу юлы серверга нигезләнгән программа тәэминаты яхшы булачак, чөнки аны стартаплар язачак. Санаклар хәзер шулкадәр арзан ки, сез, без эшләгән кебек, өстәл компьютерын сервер итеп кулланып башлап җибәрә аласыз. Арзан процессорлар эш станцияләре базарын йотып бетерде (сез хәзер бу сүзне сирәк ишетәсездер дә) һәм серверлар базарының күпчелек өлешен кулга алды; Интернеттагы теләсә кайсы йөкләнеш кебек зур йөкләүләрне күтәргән Yahoo серверларында да сезнең өстәл машинасында булган шул ук арзан Intel процессорлары урнаштырылган. Программа тәэминатын язгач, аны сату өчен сезгә бары тик Веб-сайт кына кирәк. Безнең барлык диярлек кулланучыларыбыз сүздән сүзгә күчү һәм матбугаттагы искә алулар аша турыдан-туры сайтыбызга килде. [12]

Viaweb типик башлангыч стартап иде. Без компания ачудан бик нык курка идек, һәм беренче берничә айда бөтен нәрсәне теләсә кайсы мизгелдә туктатырга мөмкин булган эксперимент дип кабул итеп үзебезне тынычландырдык. Бәхеткә, техник авырлыклардан тыш башка киртәләр аз булды. Без программа язганда, безнең Веб-сервер эшләү өчен кулланган шул ук өстәл машинасы булды, ул тышкы дөньяга dialup линиясе аша тоташкан иде. Ул чордагы бердәнбер чыгымнарыбыз ризык һәм фатир арендасы гына иде.

Хәзерге вакытта стартаплар өчен веб-кушымталар язуга тагын да күбрәк сәбәп бар, чөнки десктоп программа тәэминаты язу күпкә кызыксызрак булып китте. Әгәр сез хәзер өстәл программасы язарга теләсәгез, сез моны Microsoft шартларында эшләргә тиешсез: аларның API-ларын чакырып һәм аларның хаталы операцион системасын урап узып. Әгәр сез уңышка ирешкән нәрсәдер яза алсагыз, сез бары тик Microsoft өчен базар тикшеренүе генә үткәргән булып чыгарга мөмкинсез.

Әгәр компания стартаплар аның нигезендә нәрсәдер төзерлек платформа булдырырга теләсә, ул аны хакерларның үзләре кулланырга теләрлек итеп эшләргә тиеш. Димәк, ул кыйммәт булмаска һәм яхшы эшләнгән булырга тиеш. Mac беренче тапкыр чыккач, хакерлар арасында популяр иде, һәм аларның күбесе аның өчен программалар язды. [13] Windows белән сез моны сирәгрәк күрәсез, чөнки хакерлар аны кулланмый. Программа язуда оста булган кешеләр хәзерге вакытта гадәттә Linux яки FreeBSD куллана.

Мин десктоп программалары язар өчен стартап башлар идек дип уйламыйм, чөнки десктоп программасы Windows-та эшләргә тиеш, ә Windows өчен программа язар алдыннан безгә аны кулланырга туры килер иде. Веб безгә Windows-ны урап узарга һәм Unix-та эшләүче программа тәэминатын браузер аша турыдан-туры кулланучыларга җиткерергә мөмкинлек бирде. Бу – егерме биш ел элек персональ компьютерлар (ПК) килеп чыгуына охшаш, ирек бирүче перспектива.

Microsoft

Десктоп санаклары барлыкка килгән вакытта, һәркем курыккан гигант IBM иде. Хәзер моны күз алдына китерү кыен, әмма мин бу хисне бик яхшы хәтерлим. Хәзер куркыныч гигант – Microsoft, һәм алар IBM кебек үк үзләренә янаган куркынычка сукыр дип уйламыйм. Ни дисәң дә, Microsoft үз бизнесын аңлы рәвештә IBM-ның күрми калган урынында корды.

Минем әниемә өстәл санагы чынлап та кирәк түгел дип алдарак телгә алган идем. Күпчелек кулланучыларга, бәлки, кирәкмидер дә. Бу – Microsoft өчен проблема, һәм алар моны белә. Әгәр кушымталар ерактагы серверларда эшләсә, Windows беркемгә дә кирәк түгел. Microsoft ни эшләр? Алар үзләренең өстәл өстендәге контролен яңа буын программа тәэминатын булдырмый калу яки чикләү өчен куллана алырмы?

Минем фаразларымча, Microsoft ниндидер сервер/десктоп гибриды эшләп чыгарыр, анда операцион система алар контролендәге серверлар белән бергә эшләр. Иң кимендә, моны теләгән кулланучылар өчен файллар үзәкләштерелгән рәвештә ачык булыр. Microsoft исәпләүләрне тулысынча серверда башкарып, клиент сыйфатында браузерны гына калдыру чигенә кадәр барыр дип көтмим, әгәр алар моны читләтеп үтә алса. Әгәр сезгә клиент буларак браузер гына кирәк булса, сезгә клиент ягында Microsoft кирәк түгел, әгәр Microsoft клиентны контрольдә тотмаса, алар кулланучыларны үзләренең сервер кушымталарына этәрә алмый.

Минемчә, Microsoft-ка җинне шешәдә тоту бик кыен булачак. Алар барысын да контрольдә тота алмаслык дәрәҗәдә клиентларның төрләре артык күп булачак. Әгәр Microsoft кушымталары кайбер клиентлар белән генә эшләсә, көндәшләр теләсә кайсы клиенттан эшләүче кушымталар тәкъдим итеп, аларны җиңә алачак. [14]

Веб-кушымталар дөньясында Microsoft өчен автоматик рәвештә билгеләнгән урын юк. Алар үзләренә урын яулый алырлар, бәлки, әмма алар бу яңа дөньяда өстәл кушымталары дөньясындагы кебек үк өстенлек итәрләр дип уйламыйм.

Көндәшләр аларны абындырыр дип түгел, ә күбрәк алар үзләре үк абыначаклар. Веб-программалар үсү белән бергә, алар техник проблемалар белән генә түгел, үзләренең хыялый уйлары белән дә очрашачак. Аларга үзләренең булган бизнесын юкка чыгарырга (каннибализацияләргә) кирәк булачак, әмма аларның бу адымга баруын күз алдына китерә алмыйм. Аларны бүгенге көнгә кадәр алып килгән берьяклылык хәзер аларга каршы эшләячәк. IBM нәкъ шундый ук хәлдә иде, һәм алар моны җиңә алмады. IBM микросанак бизнесына соңлап һәм ихлассыз керде, чөнки үзләренең савым сыерына – мейнфрейм исәпләүләренә зыян китерүдән икеләнделәр. Microsoft та шулай ук өстәл санакларын саклап калу теләге аркасында тоткарланачак. Савым сыеры аркаңдагы бик авыр йөккә әверелергә мөмкин.

Мин сервер кушымталарында беркем дә өстенлек итмәячәк димим. Ахыр чиктә кемдер өстенлеккә ирешер, мөгаен. Әмма микросанакларның беренче көннәрендәге кебек үк, күңелле хаосның яхшы гына озак чоры булачак дип уйлыйм. Бу стартаплар өчен яхшы вакыт иде. Күп кенә кечкенә компанияләр чәчәк атты, һәм алар моны шәп әйберләр ясап башкарды.

Стартаплар, әмма тагын да ныграк

Классик стартап – тиз һәм рәсми булмаган, анда кешеләр аз һәм акча аз. Бу аз санлы кешеләр бик тырышып эшли, ә технология алар кабул иткән карарларның тәэсирен арттыра. Әгәр алар җиңсә, зур җиңәләр.

Веб-кушымталар язучы стартапта сез стартаплар белән бәйләгән һәрнәрсә чиккә җиткерелә. Сез тагын да азрак кеше һәм тагын да азрак акча белән продукт яза һәм җибәрә аласыз. Сезгә тагын да тизрәк булырга кирәк, һәм сез тагын да иркенрәк, рәсмисезрәк була аласыз. Сез туры мәгънәсендә фатирның кунак бүлмәсендә утырган өч егет һәм провайдерда урнашкан сервер ярдәмендә продуктны җибәрә аласыз. Без нәкъ шулай эшләдек тә.

Вакыт узу белән командалар кечерәк, тизрәк һәм иркенрәк була барды. 1960 елда программа тәэминаты эшләү мөгезле күзлек кигән һәм тар кара галстук таккан, IBM код битләрендә көненә ун юл код язучы тулы бер бүлмә ир-ат дигәнне аңлата иде. 1980 елда бу офиска джинсы киеп килүче һәм vt100 терминалларында басучы сигез-ун кешедән торган команда иде. Хәзер бу – ноутбуклар белән кунак бүлмәсендә утырган ике егет. (Һәм джинсылар рәсмисезлекнең соңгы чиге булмавы ачыкланды.)

Стартаплар – стресплы нәрсә, һәм бу, кызганычка каршы, веб-кушымталар белән дә чик дәрәҗәсенә җитә. Күп кенә программа компанияләрендә, аеруча башында, эшләүчеләр өстәл астында йоклаган чорлар була. Веб-программа тәэминатының шомлы ягы шунда: моның гадәти нормага әйләнүенә бернинди киртә дә юк. Өстәл астында йоклау турындагы хикәяләр гадәттә болай тәмамлана: ниһаять, без аны чыгардык (shipped), һәм барыбыз да өйгә кайтып, бер атна йокладык. Веб-программа тәэминаты беркайчан да чыгарылып бетми. Сез теләгәнчә көненә 16 сәгать эшли аласыз. Һәм сез булдыра алганга, һәм сезнең көндәшләрегез булдыра алганга, сез моны эшләргә мәҗбүр буласыз. Булдыра аласыз икән, димәк, тиешсез. Бу – кирегә эшләүче Паркинсон кануны.

Иң начар нәрсә сәгатьләр түгел, ә җаваплылык. Программистлар һәм система администраторлары традицион рәвештә һәркайсы үз борчуларына ия. Программистлар хаталар (bug) турында кайгыртырга тиеш, ә система администраторлары инфраструктура турында кайгырта. Программистлар озын көнне чыгыш кодларына күмелеп уздыра ала, әмма ниндидер мизгелдә алар өйгә кайтып, моны оныта ала. Система администраторлары эштән беркайчан да тулысынча аерылмый, әмма төнге 4:00-тә пейджер чакырганда, аларга гадәттә артык катлаулы нәрсә эшләргә кирәкми. Веб-кушымталар белән бу ике төрле стресс берләшә. Программистлар система администраторларына әверелә, әмма бу эшне түзерлек итә торган ачык билгеләнгән чикләрсез.

Viaweb-та без беренче алты айны программа тәэминаты язу белән генә үткәрдек. Без иртә стартапка хас булган озын сәгатьләр буе эшләдек. Десктоп программалары компаниясендә бу безнең тырышып эшләгән өлешебез булыр иде, әмма кулланучыларны үз серверыбызга керткән киләсе этап белән чагыштырганда, ул ял кебек тоелды. Viaweb-ны Yahoo-га сатуның икенче иң зур өстенлеге (акчадан кала) – бөтен эш өчен төп җаваплылыкны зур компаниянең җилкәсенә аудара алу иде.

Десктоп программалары кулланучыларны система администраторы булырга мәҗбүр итә. Веб-программалар исә моны программистларга йөкли. Гомуми стресс азрак, әмма программистлар өчен ул күбрәк. Бу һич тә начар хәбәр түгел. Әгәр сез зур компания белән ярышучы стартап булсагыз, бу яхшы хәбәр. [15] Веб-кушымталар көндәшләрегезне тырышлык белән узып китүнең туры юлын тәкъдим итә. Бер генә стартап та моннан артыгын сорамый.

Җитәрлек дәрәҗәдә яхшы

Сезне веб-кушымталар язудан туктатырга мөмкин булган бер нәрсә – веб-битләрнең кулланучы интерфейсы (UI) буларак җитәрлек үсеш алмаган булуы. Бу проблема, таныйм. Без HTML һәм HTTP-га чыннан да өстәргә теләгән берничә нәрсә бар иде. Әмма иң мөһиме – веб-битләр бары тик җитәрлек дәрәҗәдә яхшы.

Монда беренче микросанаклар белән параллель бар. Ул машиналардагы процессорлар чынлыкта санакларның үзәк процессоры булыр өчен тәгаенләнмәгән иде. Алар светофорлар кебек нәрсәләрдә куллану өчен эшләнгән. Әмма Altair-ны проектлаган Эд Робертс кебек кешеләр аларның җитәрлек дәрәҗәдә яхшы булуын аңладылар. Сез бу чипларның берсен бераз хәтер (беренче Altair-да 256 байт) һәм алгы панель ачкычлары белән берләштерә аласыз, һәм сездә эшләүче санак булачак. Үз санагыңа ия булу мөмкинлеге шулкадәр дулкынландыргыч иде ки, алар никадәр чикле булса да, сатып алырга теләүчеләр бик күп иде.

Веб-битләр кушымталар өчен UI булырга дип эшләнмәгән, әмма алар җитәрлек дәрәҗәдә яхшы. Һәм бик күп кулланучылар өчен теләсә кайсы браузердан кулланып була торган программа тәэминаты интерфейстагы һәрнинди уңайсызлыкны капларлык зур җиңү булачак. Бәлки, сез HTML ярдәмендә иң матур электрон таблицаны яза алмассыз, әмма бер үк вакытта берничә кеше төрле урыннардан махсус клиент программасыннан башка куллана ала торган, яисә турыдан-туры мәгълүмат агымнарын берләштерә алган, яки билгеле бер шартлар үтәлгәндә сезгә хәбәр җибәрә торган электрон таблица яза аласыз. Иң мөһиме, сез хәтта исемнәре дә булмаган яңа төр кушымталар яза аласыз. Ни дисәң дә, VisiCalc мейнфрейм кушымтасының микросанак версиясе генә түгел иде – ул яңа төр кушымта иде.

Әлбәттә, сервер кушымталарының веб-нигезле булуы мәҗбүри түгел. Сездә башка төрле клиент та булырга мөмкин. Әмма бу начар идея дип тулысынча ышанам. Һәркем сезнең клиентны урнаштырыр дип өмет итү бик уңайлы булыр иде – шулкадәр уңайлы ки, сез үзегезне барысы да шулай эшләр дип җиңел генә ышандыра аласыз – әмма алар моны эшләмәсә, сез оттырасыз. Веб-кушымта клиент турында бернәрсә дә фаразламаганга күрә, ул веб эшләгән барлык урында эшләячәк. Бу инде зур өстенлек, һәм яңа веб-җайланмалар таралган саен әлеге өстенлек үсәчәк. Кулланучылар сезне яратачак, чөнки сезнең программагыз гади генә эшли, ә тормышыгыз җиңелрәк булачак, чөнки аны һәр яңа клиент өчен көйләргә туры килмәячәк. [16]

Мин вебның эволюциясен башкалар кебек үк якыннан күзәттем дип уйлыйм, һәм клиентлар белән нәрсә буласын алдан әйтә алмыйм. Конвергенция киләдер, мөгаен, әмма кайда? Мин җиңүчене сайлый алмыйм. Алдан әйтә алган бер нәрсәм – AOL белән Microsoft арасындагы конфликт. Microsoft-ның .NET продукты нәрсә генә булып чыкса да, ул, мөгаен, десктопны серверлар белән тоташтыруны үз эченә алачак. Әгәр AOL каршы көрәшмәсә, алар читкә тибәреләчәк яки Microsoft-ның клиент һәм сервер программалары арасындагы торбага әвереләчәк. Әгәр Microsoft һәм AOL клиент сугышына керсә, икесендә дә эшләячәк бердәнбер нәрсә – веб карау (браузинг) булачак, димәк, веб-кушымталар һәр җирдә эшли торган бердәнбер төр булачак.

Болар барысы ничек бетәр? Мин белмим. Һәм сез веб-кушымталарга басым ясасагыз, сезгә моны белергә дә кирәкми. Веб карауны өзмичә, беркем дә моны өзә алмый. Веб программа тәэминатын җиткерүнең бердәнбер юлы булмаска мөмкин, әмма ул хәзер эшли торган һәм озак вакыт эшләячәк юл. Веб-кушымталар эшкәртү өчен арзан һәм хәтта иң кечкенә стартап өчен дә җиткерү бик җиңел. Алар күп эш таләп итә һәм аеруча стресплы, әмма бу стартапларның мөмкинлекләрен яхшырта гына.

Нигә эшләмәскә?

Э. Б. Уайт фермер дустыннан күп кенә электр коймалары аша бернинди дә ток йөрмәвен белгәч шаккаткан. Сыерлар, күрәсең, аларга якын килмәскә өйрәнәләр, һәм моннан соң сезгә ток кирәк түгел. «Күтәрелегез, сыерлар!» – дип язды ул, «Деспотлар йоклаганда, ирегегезне алыгыз!»

Әгәр сез кайчан да булса стартап башлау турында уйлаган хакер булсагыз, мөгаен, сезне моны эшләүдән ике нәрсә тоткарлый. Берсе – сезнең бизнес турында бернәрсә дә белмәвегез. Икенчесе – сезнең көндәшлектән куркуыгыз. Бу коймаларның берсендә дә ток юк.

Бизнес турында белергә тиешле ике генә нәрсә бар: кулланучылар ярата торган нәрсә ясагыз, һәм тотканга караганда күбрәк эшләп табыгыз. Әгәр сез бу ике нәрсәне дөрес эшләсәгез, күпчелек стартаплардан алда булырсыз. Калганын барышында аңларсыз.

Бәлки, башта тотканга караганда күбрәк эшли алмассыз, әмма бу аерма җитәрлек дәрәҗәдә тиз кыскара икән, барысы да яхшы булачак. Әгәр сез эшне җитәрлек финанслаусыз башласагыз, бу, ким дигәндә, экономияле булу гадәтен тәрбияләр. Азрак тоткан саен, тотканга караганда күбрәк эшләү җиңелрәк. Бәхеткә, веб-кушымтаны җибәрү бик арзан булырга мөмкин. Без $10,000-нан азрак суммага җибәрдек, ә бүген бу тагын да арзанрак булыр иде. Безгә серверга меңләгән доллар, һәм SSL алу өчен тагын меңләгән доллар тотарга туры килде. (Ул вакытта SSL программасын сатучы бердәнбер компания Netscape иде.) Хәзер сез SSL кертелгән күпкә көчлерәк серверны без челтәр каналы өчен генә түләгәннән дә арзанрак хакка арендага ала аласыз. Сез хәзер затлы офис креслосы бәясеннән дә арзанракка веб-кушымта җибәрә аласыз.

Кулланучылар ярата торган нәрсәне ясауга килгәндә, менә берничә гомуми киңәш. Үзегез кулланырга теләрлек чиста һәм гади нәрсәдән башлагыз. 1.0 версиясен тиз чыгарыгыз, аннары кулланучыларны игътибар белән тыңлап, программаны камилләштерүне дәвам итегез. Клиент һәрвакыт хаклы, әмма төрле клиентлар төрле нәрсәләрдә хаклы; иң тәҗрибәсез кулланучылар нәрсәне гадиләштерергә һәм ачыкларга кирәклеген күрсәтә, ә иң тәҗрибәлеләре сезгә нинди функцияләр өстәргә кирәклеген әйтә. Программа була алырлык иң яхшы сыйфат – җиңеллек, әмма моңа ирешү юлы – кулланучыларның сайлау мөмкинлеген чикләү түгел, ә башлангыч көйләүләрне дөрес ясау. Көндәшләрегезнең программасы начар булса, тынычланмагыз; программагызны чагыштыру өчен стандарт – сезнең хәзерге көндәшләрегездә булган нәрсә түгел, ә ул нинди була алуы. Программагызны һәрвакыт үзегез кулланыгыз. Viaweb онлайн-кибет төзүче булырга тиеш иде, әмма без аны үз сайтыбызны ясау өчен дә кулландык. Маркетинг белгечләрен, дизайнерларны яки продукт менеджерларын аларның вазыйфалары өчен генә тыңламагыз. Әгәр аларның яхшы идеяләре бар икән, кулланыгыз, әмма карар кабул итү сезнең кулда; программаны дизайнны аңлаучы хакерлар проектларга тиеш, ә программа турында бераз гына белгән дизайнерлар түгел. Әгәр сез программаны эшләп чыгару белән бергә проектлый да алмыйсыз икән, стартап башламагыз.

Хәзер көндәшлек турында сөйләшик. Сез, күрәсең, үзегез кебек хакерлар төркеменнән түгел, ә офислары, бизнес-планнары, сатучылары һәм башкалары булган чын компанияләрдән куркасыз, дөресме? Дөресен әйткәндә, алар сездән сез аларга караганда күбрәк курка, һәм алар хаклы. Берничә хакерга офис арендалау яки сатучылар яллау юлын табу, теләсә кайсы зурлыктагы компаниягә программа яздыруга караганда күпкә җиңелрәк. Мин ике якта да булдым, һәм мин беләм. Viaweb-ны Yahoo сатып алгач, мин кинәт зур компаниядә эшләвемне аңладым, һәм бу билгә кадәр суда йөгерергә тырышу кебек иде.

Мин Yahoo-ны түбәнсетергә теләмим. Аларда яхшы хакерлар бар иде, һәм югары җитәкчелек чын эшлекле кешеләр иде. Зур компания өчен алар гадәттән тыш яхшы иде. Әмма алар барыбер кечкенә стартапның якынча уннан бер өлеше кадәр генә нәтиҗәле иде. Бернинди зур компания дә моннан яхшырак эшли алмый. Microsoft-та куркыныч булган нәрсә – шундый зур компаниянең бөтенләй программа яза алуы. Алар йөри торган тау кебек.

Курыкмагыз. Microsoft булдыра алмаган нәрсәне сез алар сез булдыра алмаган кадәр үк эшли аласыз. Һәм сезне беркем дә туктата алмый. Веб-кушымталар эшләү өчен сезгә беркемнең дә рөхсәтен сорарга кирәкми. Сезгә лицензия килешүләре төзергә, яки кибетләрдә киштә урыны алырга, яки кушымтагызны операцион система белән бергә урнаштыруларын сорап ялынырга кирәк түгел. Сез программаны турыдан-туры браузерга җиткерә аласыз, һәм веб карауны тыймыйча торып, беркем дә сезнең белән потенциаль кулланучылар арасына керә алмый.

Сез ышанмаска да мөмкинсез, әмма сезгә вәгъдә итәм: Microsoft сездән курка. Үз-үзеннән канәгать урта буын менеджерлары курыкмаска да мөмкин, әмма Билл курка, чөнки 1975 елда, программа тәэминатын җиткерүнең яңа ысулы барлыкка килгән соңгы вакытта, ул үзе сезнең кебек иде.

Искәрмәләр

[1] Акчаның күп өлеше хезмәтләрдә икәнен аңлап, җиңел клиентлар төзүче компанияләр гадәттә җиһазны онлайн-сервис белән берләштерергә тырыштылар. Бу алым яхшы эшләмәде, өлешчә кулланучылар электроникасын төзү һәм онлайн-сервис белән идарә итү өчен ике төрле компания кирәк булганлыктан, өлешчә кулланучылар бу фикерне яратмаганлыктан. Кыру станогын бушлай биреп, лезвиеләрдән акча эшләү Gillette өчен эшләргә мөмкин, әмма сакал кыру станогы веб-терминалга караганда күпкә кечерәк бурыч. Кәрәзле телефон ясаучылар хезмәт керемен дә алырга тырышмыйча, җиһазны гына сатуга канәгать булалар. Бу, мөгаен, Интернет-клиентлар өчен дә модель булырга тиеш. Әгәр кемдер теләсә кайсы провайдер аша тоташу өчен куллана алырлык веб-браузерлы матур гына тартма сатса, илдәге һәр технофоб аны сатып алыр иде.

[2] Куркынычсызлык һәрвакыт дизайн карарыннан бигрәк хата ясамауга бәйле, әмма сервер программа тәэминатының табигате эшләүчеләрне хата ясамауга күбрәк игътибар итәргә мәҗбүр итәчәк. Серверны куркыныч астына кую шулкадәр зур зыян китерергә мөмкин ки, ASP-лар (бизнеста калырга теләүчеләр) куркынычсызлыкка сак карарга тиешләр.

[3] 1995 елда, без Viaweb-ны башлаганда, Java-апплетлар һәркем сервер кушымталарын эшләү өчен кулланачак технология дип санала иде. Апплетлар безгә искергән фикер булып тоелды. Клиентта эшләтү өчен программалар йөкләргәме? Иң гадисе – ахыргача барып, программаларны серверда эшләтү. Без апплетларга аз вакыт әрәм иттек, әмма бик күп башка стартаплар бу сазлыкка тартылган булса кирәк. Бик азы гына исән кала алгандыр, югыйсә Microsoft Explorer-ның иң соңгы версиясендә Java-ны төшереп калдырудан котыла алмас иде.

[4] Бу фикер Тревор Блэквеллныкы, ул өсти: «программа тәэминаты язуның бәясе аның күләме белән чагыштырганда сызыклыдан артыграк үсә. Бәлки, бу нигездә иске хаталарны төзәтү аркасындадыр, һәм барлык хаталар тиз табылса, бәя сызыклырак булырга мөмкин».

[5] Табу өчен иң авыр хата төре – бер хата икенчесен каплый торган катлаулы хата варианты булырга мөмкин. Бер хатаны төзәткәч, икенчесе күренә башлый. Әмма гаеп төзәтүдә кебек тоелачак, чөнки сез соңгы үзгәрткән нәрсә шул иде.

[6] Viaweb эчендә без бервакыт программабызның иң начар ягын сурәтләү буенча конкурс үткәрдек. Кулланучыларга ярдәм күрсәтү бүлегеннән ике кеше беренче урынны бүлеште, алар язган нәрсәләрне әле дә калтыранып искә алам. Без ике проблеманы да шунда ук төзәттек.

[7] Роберт Моррис сатып алучылар заказлар бирү өчен кулланган заказ бирү системасын язды. Тревор Блэквелл сәүдәгәрләр заказларны алу, статистиканы карау һәм домен исемнәрен көйләү өчен кулланган рәсем генераторын һәм идарә итү системасын (manager) язды. Мин сәүдәгәрләр үз сайтларын төзү өчен кулланган редакторны яздым. Заказ системасы һәм рәсем генераторы C һәм C++ телләрендә, менеджер нигездә Perl-да, ә редактор Lisp-та язылган иде.

[8] Бәя дискриминациясе шулкадәр киң таралган (кибетнең зур күләмдә сатып алу көче сезнең өчен түбәнрәк бәяләрне аңлата дигән сүзен ничә тапкыр ишеткәнегез бар?), мин аның АКШ-та 1936 елгы Робинсон-Пэтман акprop актлары белән законсыз дип табылуын белгәч гаҗәпләндем. Бу закон кырыс рәвештә үтәлми кебек.

[9] No Logo китабында Наоми Кляйн әйтүенчә, «шәһәр яшьләре» яраткан кием брендлары кибетләрдән урлауны булдырмаска артык тырышмыйлар, чөнки аларның максатчан базарында кибет урлаучылар шулай ук мода лидерлары булып тора.

[10] Компанияләр еш кына нәрсәне аутсорсингка бирергә, ә нәрсәне бирмәскә дип баш ваталар. Мөмкин булган җавапларның берсе: көндәшлек басымына турыдан-туры дучар булмаган теләсә кайсы эшне аутсорсингка бирегез, чөнки аны аутсорсингка бирү аны көндәшлек басымы астына куячак.

[11] Ул ике егет Дэн Бриклин һәм Боб Франкстон иде. Дэн ике көн эчендә Basic телендә прототип язды, аннары киләсе ел дәвамында алар бергәләп (нигездә төнлә) 6502 машина телендә язылган көчлерәк версия ясау өчен эшләделәр. Дэн ул вакытта Гарвард бизнес мәктәбендә укый иде, ә Бобның рәсми рәвештә программа язу буенча көндезге эше бар иде. «Бизнес башлауда зур куркыныч юк иде, – дип язды Боб, – Уңышсыз булса, уңышсыз булды. Зур нәрсә түгел».

[12] Бу мин әйткән кадәр җиңел түгел. Сүздән-сүзгә таралу башлану өчен бик озак вакыт кирәк булды, һәм без ай саен $16,000 түләп PR фирмасын (дөресен әйткәндә, бу өлкәдә иң яхшысы) яллаганчыга кадәр матбугатта күп яктыртылмый башладык. Шулай да, бердәнбер мөһим канал безнең үз веб-сайтыбыз булуы дөрес иде.

[13] Әгәр Mac шулкадәр шәп булган булса, нигә ул оттырды? Тагын да шул ук бәя. Microsoft программа тәэминаты бизнесына игътибар итте һәм Apple аппарат чараларына каршы арзан компонентлар җитештерүчеләр төркемен җибәрде. Шулай ук критик чорда җитәкчелекне костюмлы түрәләр үз кулына алуы да ярдәм итмәде.

[14] Веб-кушымталарга ярдәм итәчәк һәм киләсе буын программа тәэминатын Microsoft күләгәсендә калудан саклап калачак бер нәрсә – яхшы ачык кодлы браузер булыр иде. Mozilla – ачык кодлы, әмма озак вакыт корпоратив программа булудан зыян күргән кебек. Актив рәвештә яңартылып торган кечкенә, тиз браузер үзе үк зур казаныш булыр иде һәм, мөгаен, компанияләрне кечкенә веб-җайланмалар төзергә дә этәрер иде.

Башка нәрсәләр белән беррәттән, яхшы ачык кодлы браузер HTTP һәм HTML үсешен дәвам итүгә сәбәп булыр иде (мәсәлән, Perl кебек). Веб-кушымталар өчен сылтаманы сайлау һәм аның буенча күчү арасындагы аерманы аера алу зур ярдәм булыр иде; моны эшләү өчен бары тик сорауда берничә url кулланырга мөмкинлек бирүче HTTP-ның гади генә камилләштерелүе җитәр иде. Каскадлы менюлар да яхшы булыр иде.

Дөньяны үзгәртергә теләсәгез, яңа Mosaic языгыз. Соң дип уйлыйсызмы? 1998 елда бик күпләр яңа эзләү системасын җибәрү өчен соң дип уйлады, әмма Google аларның ялгышуын раслады. Хәзерге вариантлар җитәрлек дәрәҗәдә начар булса, яңа нәрсә өчен һәрвакыт урын бар. Башта аның барлык ирекле операцион системаларда эшләвен тәэмин итегез – яңа әйберләр аларның кулланучыларыннан башлана.

[15] Шәхси тәҗрибәсеннән бу турыда бәлки һәркемнән яхшырак белгән Тревор Блэквелл болай дип яза:

«Мин тагын да алгарак китеп, сервер программа тәэминаты программистлар өчен шулкадәр авыр булганга, ул зур компанияләрдән читкә фундаменталь икътисадый күчеш тудыра дип әйтер идем. Бу программистлардан бары тик үз компаниясе булганда гына бирергә әзер булган интенсивлыкны һәм фидакарьлекне таләп итә. Программа компанияләре артык таләпчән булмаган мохиттә эшләү өчен квалификацияле кешеләрне яллый ала, һәм авырлыкларга чыдар өчен квалификациясез кешеләрне яллый ала, әмма алар үзләрен бөтенләй аямыйча эшләргә югары квалификацияле кешеләрне яллый алмый. Капитал башка кирәк булмаганлыктан, зур компанияләрнең тәкъдим итәрлек нәрсәләре аз».

[16] Бу мәкаләнең беренче версиясендә мин Javascript-тан качарга киңәш иткән идем. Бу 2001 елда яхшы план иде, әмма хәзер Javascript эшли.

Әлеге мәкаләнең караламаларын укыганнары өчен Сара Харлинга, Тревор Блэквеллга, Роберт Морриска, Эрик Реймондка, Кен Андерсонга һәм Дэн Гиффинга; VisiCalc турында мәгълүмат биргәннәре өчен Дэн Бриклинга һәм Боб Франкстонга; һәм BBN-да чыгыш ясарга чакырганы өчен тагын бер кат Кен Андерсонга рәхмәтемне белдерәм.