През далечните 90-те години с нетърпение очаквахме излизането на новите версии на любимите си програми, в които винаги имаше по нещо ново и интересно. Но с излизането на Office 2000, който се вижда да изображението по-долу, стана ясно, че май има нещо сбъркано. Оказа се, че многобройните нови функции не само, че не помагат, но дори пречат…
В наши дни се забелязва, че хората вече започнаха да изключват обновяванията на всички използвани от тях програми. Стигна се дори дотам, че се налага да се търси в миналогодишни архивни дискове и доста странни места в уеб пространството, за да се намери версия на популярния uTorrent, която да не бълва реклами. Да открием такава версия на uTorrent, която ще е недокосната от активните и бодри мениджъри, които развалиха тази програма и тя вече от години започна да се избягва от потребителите… Същото можем да видим при останалия софтуер, различните програмни инструменти, които буквално обрастват с нови и нови възможности и по този начин на практика деградират.
Какво най-много ни вбесява в съвременните приложения
Дори и не е не необходимо да се прави анкета, кое най-много дразни и ядосва в съвременните приложения. Примерите са много, но ето някои от по-фрапантните:
- Тромавата работа (Electron и т.н.), лаговете
- Рекламата (особено в мобилните приложения)
- Непрекъснатите промени в интерфейса
- Безкрайното добавяне на нови и съвсем ненужни функции
Хубаво е да имаш комплект от софтуерни инструменти и помощни програми, които не се променят. В този случай можеш да си избереш най-подходящите конкретно за теб версии, да ги настроиш по оптималния начин и дори малко да редактираш кода. Така се получава един идеален комплект от работни инструменти, който можеш да носиш със себе си и които на практика навсякъде могат да ти осигурят идеалното работно място.
Само че има смартфони, мобилно уеб пространство, където нищо особено не може да се направи. Дори блокаторът на рекламите работи доста ограничено, при това далеч не във всички приложения. И ето, че ставаме свидетели на почти тотален хаос.
Един обикновен пример. Вадиш смартфона, отваряш приложение (или сайт), искаш да кликнеш върху някоя иконка, но тя се премества на друго място точно преди да я докоснеш. И на нейно място най-вероятно се появява рекламен бутон, върху който неволно кликваш. Гадно е.
Друг пример са съвсем безсмислените подсказки:
Това започна да става повсеместно.
Многобройните нови функции и усложняването на програмите
При десктоп компютрите е същият бардак. Ако излезете малко извън своята зона на комфорт, в която използвате само необходимите ви работни програми, ще попаднете в една истинска бездна от хаос.
Редица разработчици са склонни непрекъснато да добавят нови функции в своите програми и само след няколко версии се получава невероятна каша. Този ефект дори получи специално жаргонно име – пълзящо разширение на функционалността (feature creep).
Последно време много хора са на мнение, че пълзящото разширение на функционалността, което всъщност означава ненужното увеличение на функционалността, е проблем на мениджърите. Те просто изпускат същността на програмния продукт и вече не се сещат и не знаят накъде да го развиват. Те не бива да бездействат, защото ще ги съкратят или уволнят, понеже са вече ненужни. Ето защо им се налага да имитират бурна дейност.
Maximum Viable Product
За да се спре деградацията на продукта се прилага метода за ограничаване отгоре, тоест да бъде фиксирана неговата максимална функционалност (Maximum Viable Product). Това е така нареченият „максимално жизнеспособен продукт“, който е нещо като аналог на минимално жизнеспособния прототип.
Тук идеята е, че тоновете допълнителни функции често пъти влошават софтуера, а не го подобряват. Проблемът не е само в натрупването на тотален боклук в интерфейса, но и в прекомерното разрастване на кодовата база, в затруднената поддръжка, появата на нови бъгове, в „затлъстяването“ на програмата. Може да се каже, че най-добрият софтуер е бързият софтуер. Всички знаем няколко великолепни програми, които са минимум десетина пъти по-бързи и по-удобни от своите аналози (Sublime Text, IrfanView, Figma и т.н.).
Главното е да се пазим от свръх инициативните мениджъри с купища идеи. Тези момчета са способни да провалят и най-успешния проект.
Защо в толкова много сайтове има чатботове
Във все повече сайтове се появяват така наречените „Виртуални консултанти“ – доста тъп чат бот, който се появява няколко секунди след отварянето на уеб страницата, като явно идеята е, че ако доста време държите отворена тази страница, то уж не можете да се справите без чужда помощ. И ето още една модерна играчка:
„Здравейте, казвам се Мея! С какво мога да ви помогна?
В повечето случаи тази помощ изобщо не е необходима. Аз не съм отишъл там, за да разговарям. На никого не съм звънил по телефона и не искам, и именно затова реших да отворя сайта. Обикновено един подобен чатбот означава само едно: сайтът в започнал някаква маркетингова кампания и иска да ви пробута нещо.
Тъжни са историите на операторите на ботове за намиране на жилища под наем, които обикновено описват нещо като „Ето как се превърнах в чатбот„… Те просто гледат как софтуерният робот се опитва да помогне на клиентите, въпреки, че това не е по силите и на човека, понеже проблемите в този сектор са на практика неразрешими. Тези ботове са специално програмирани за общуване с помощта на опростени и специално подбрани фрази, за да не се стига дотам клиентът да каже твърдо „Не“. Стъпка наляво или надясно при общуването и ботът излиза от сценария. Налага се операторът да се намеси и да говори от името на бота.
При вида на досадната Мея (в изображението по-горе името е друго, но идеята е ясна) първото желание е да се затвори тази уеб страница и да се добави в черния списък на блокатора на реклами. В противен случай този „консултант“ ще изскача при всяко презареждане на страницата.
На теория чатът с изкуствен интелект, особено на базата на съвременните платформи от рода на ChatGPT, наистина може да е полезен в някои ситуации, особено ако успешно е преминал теста на Тюринг и разполага с всичката необходима информация. Но това време все още не е настъпило.
Към днешен ден изскачащият прозорец с чатбота по досадност може да бъде сравнен със спама и изскачащите реклами.
Кога софтуерът свърна не където трябва?
Персоналният компютър трябваше да разшири възможностите на човешкия интелект и разум – нещо като велосипед, но за мозъка. С помощта на компютрите, смартфоните и интернет хомо сапиенс се очакваше да изкачи следващата еволюционна стъпка.
Каква всъщност се получи? Понякога изглежда високите технологии се използват преди всичко срещу хората. Интернет се превърна в инструмент за авторитаризъм, пропаганда и промиване на мозъци. Смартфоните се използват за наблюдение и следене на потребителите. Уеб сайтовете стават все по-тлъсти, а софтуерът се наблъсква с функции и се забавя от това. Къде сбъркахме?
Ние някак забравихме, че компютърният код най-напред се пише, за да се чете от хората и чак на второ място да се изпълнява от машините.
"Programs must be written for people to read, and only incidentally for machines to execute." — Harold Abelson
— Programming Wisdom (@CodeWisdom) June 23, 2021
Според думите на Харолд Абелсон, основател на Creative Commons и FSF, всеки нов код дължи своето съществуване на някой друг и участва като едно звено във веригата на диалога. Така например, уеб приложението е в диалог с програмния език и фреймуърка, на който е написано, а неговата структура се базира на характеристиките на TCP/IP и HTTP. Дори по време на самото писане на код ние сме в постоянен диалог с компютъра, в една среда с подсказки и огромни количества помощна информация – добре познатият на програмистите „копилот“, StackOverflow и Google. Да не забравим, че вече към този списък можем да добавим и ChatGPT.
Всеки програмен език използва част от лексиката и концепциите на други езици. Тата например, операторът if е взет от английския език, а там – от германския. По този начин цялата човешка инфосфера е взаимосвързана и се развива като единен жив организъм. Красива идея.
Ето защо си задаваме въпроса, в кой момент, кога развитието на този организъм е свърнал съвсем не където трябва? Съществува мнение, че по-големят брой инструменти води до по-оптималното решаване на проблема само за един конкретен инструмент, а не наистина по най-оптималния начин.
Тоест, езикът (фреймуъркът, платформата) сякаш принуждава разработчиците да пишат кода по един специфичен начин – просто чрез импорт на отделни обекти. И да, последно време програмирането започна да прилича на сглобяването на някаква конструкция от отделни готови тухлички.
Има и друго предположение. Според него в един момент парите са започнали не просто да финансират разработването на софтуера, а да определят неговата разработка и именно парите са се превърнали в главната причина за вършенето на всичко това. Може би ще запитате, каква по дяволите е причината за започването на ето този нов проект? Лесно ще се сетите какво ще ви отговорят: как за какво, за пари разбира се, за какво друго? И така, главната функция на днешните приложения е да правят колкото се може повече пари.
А ако искаме да работим с полезни и производителни приложения, в които да няма скрити номера, излишни функции, реклами и скрити начини за измъкване на още пари? Навярно ще трябва да променим социалните стимули. Когато на корпорациите им е изгодно да правят пари от слабостите на хората, а на хората – да използват мощни ресурси за безполезен добив, то тези стимули изглежда не работят коректно. Те наистина не са коректни.
Радикалните анархисти биха могли да кажат, че това е фундаментален проблем на капитализма и демокрацията като цяло. Но засега светът и хората не са измислили нищо по-добро и ще се наложи да се търсят варианти вътре в този модел. Например в сферата на отворения код и копилефта. А това означава, че не всичко е изгубено. Просто не достига един особен стимул, който да направи доброто изгодно.
Ако човекът по природа е добро същество, то хубавите постъпки му носят радост, а болката на околните предизвика състрадание. По принцип тази естествена природна система би могла да работи в съвременната икономика. Нали? Доброто би трябвало да носи печалби на бизнеса, а злото – до загуби. Поне на теория така изглежда най-правилния капитализъм, след като сме отворили тази тема, и той би могъл да работи в глобален мащаб. А ако нещо не се получава и не работи коректно, трябва да разберем какво се е объркало и повече да не допускаме подобни грешки. Може би именно по този начин рано или късно ще изградим най-правилната система. Или не?