Занимљиве чињенице о софтверу и програмима

Последње ажурирање: Јануар КСНУМКС КСНУМКС
  • Развој софтвера комбинује логику, креативност и сарадњу, далеко од стереотипа о усамљеном програмеру.
  • Многи митови о рачунарству се разбијају када видите разноликост улога и доступност учења програмирања.
  • Уобичајени термини попут злонамерног софтвера, тројанског софтвера или WordPress-а имају веома специфично историјско и културно порекло.
  • Еволуција вештачке интелигенције, веба и пословног софтвера показује како код обликује наш свакодневни живот.

Занимљиве чињенице о софтверу и програмима

Свет софтвера и програмирања пун је анегдота, митова, чудних термина и малих прича које се ретко испричавају, али које објашњавају зашто користимо технологију какву данас познајемо. Од тога како је реч „софтвер“ скована до тога зашто многи програмери воле терминал и презиру тачка-зарез, истина је да иза сваке линије кода обично стоји више од пуке логике.

Штавише, рачунарство и програмирање су се развијали вртоглавом брзином: од домена неколико стручњака у лабораторијама су постали темељ видео игара, мобилних апликација, веба, пословног софтвера, па чак и музике коју стримујемо. Разумевање неких занимљивих чињеница о софтверу и програмима није само забавно; оно нам такође помаже да видимо да овај свет није толико неприступачан или хладан колико често изгледа.

Колачићи, корисничко искуство и како вас веб локација препознаје

Када посетите веб локацију и појави се типично обавештење о колачићима, то није само досадна формалност: колачићи су мале датотеке које сајт чува у вашем прегледачу како би запамтио ко сте и како користите веб локацију. Захваљујући њима, сајт може да зна да ли сте већ пријављени, који језик преферирате или који одељци су најзанимљивији посетиоцима.

У пракси, то значи да веб-сајт може да вас „препозна“ када се вратите , да прилагоди одређени садржај и да прикупља анонимне податке како би тим знао који делови најбоље функционишу, а који се ретко посећују. Ове функције су кључне за побољшање корисничког искуства, али такође изазивају забринутост у вези са приватношћу и праћењем између сајтова.

Иза тог једноставног правног обавештења крије се читав систем складиштења прегледача , управљања сесијама, алата за аналитику и подешавања преференција. То су сви програми који се покрећу и на вашем уређају и на серверима веб странице, координисани како би прегледање било глатко и персонализовано.

Вештачка интелигенција и промена начина коришћења софтвера

Вештачка интелигенција (ВИ) је вероватно најбрже променљива област софтвера ових дана. За само неколико месеци, појављују се нови језички модели (ЛЛМ), невероватни алати и различити начини њихове интеграције у све врсте апликација - од виртуелних асистената до система препорука.

Годинама је типична интеракција са вештачком интелигенцијом била веома једноставна: питање и одговор . Поставили бисте упит систему, а он је враћао генерисани излаз. Међутим, та динамика сада постаје недовољна. Све више се појављују мултимодални интерфејси, који комбинују текст, глас, слике, видео, па чак и директне акције на програмима или уређајима.

То значи да вештачка интелигенција више није само „скривена компонента“ софтвера , већ видљиви део корисничког искуства. Модели који разумеју контекст онога што радите, асистенти који предлажу измене кода док програмирате и системи који аутоматизују задатке у позадини мењају начин на који се апликације дизајнирају.

Истовремено, брзина којом се вештачка интелигенција развија значи да многи алати једног дана делују револуционарно, а већ следећег застарело . За програмере софтвера, то значи континуирано прилагођавање радних процеса, учење нових API-ја и преиспитивање начина на који су дизајнирани кориснички интерфејси.

Учење програмирања: много више од писања кода

Улазак у програмирање није само учење језика; то је скоро као отварање врата ка потпуно новом менталном универзуму . Спој логике, математике, инжењерства и креативности чини да се програмирање осећа и као решавање загонетки и као стварање нечега од нуле са деловима које сами измишљате.

Програмирање је прилично слично учењу језика : постоји вокабулар (функције, променљиве), граматичка правила (синтакса) и начини за изражавање сложених идеја релативно једноставним структурама. Разлика је у томе што, уместо да разговарате са особом, комуницирате са машинама и уређајима, који прате ваша упутства до слова.

Када идете на тренинг камп, диплому или учите самостално, не само да памтите команде; тренирате своју логику и вештине решавања проблема . Почињете да видите обрасце у свему: како је апликација структурирана, како су слојеви система раздвојени, шта се може аутоматизовати... и такође откривате колико је занимљиво видети како нешто што сте написали оживљава.

Многи људи долазе до програмирања мислећи да морају бити математички геније. У стварности, оно што је најважније јесте став и стална вежба : решавање малих изазова, прављење грешака хиљаду пута, исправљање грешака и наставак понављања. Како напредујете, стичете тај снажан осећај „ако се нешто може логички изразити, вероватно могу и да програмирам“.

Јуникс, Мек, Линукс и вечни контраст са Виндоусом

Унутар програмерске заједнице постоји нека врста интерне шале: за многе програмере, Unix и његови наследници (као што су Linux, macOS или BSD) су практично интегрисана развојна окружења сама по себи. У ствари, често се каже да је „Unix IDE“, због броја моћних алата које укључује.

Док Windows захтева да инсталирате и конфигуришете многе програме засебно, системи засновани на Unix-у нуде терминале, компајлере, менаџере пакета и фино подешене услужне програме за аутоматизацију задатака, праћење процеса и уланчавање команди. То их чини посебно погодним за свакодневни развојни рад и објашњава зашто многи желе да користе Photoshop на Linux-у и његове изворне алтернативе.

Програмери цене овај екосистем јер могу да прилагоде свој ток рада и зато што је већина алата отвореног кода првобитно дизајнирана за Јуникс. Иако се Виндоус данас значајно побољшао (са стварима попут WSL-а), култура развоја остаје уско повезана са Линуксом и Јуниксовом филозофијом креирања малих, специјализованих и комбинованих програма.

Све ово не значи да је Windows „бескористан“, далеко од тога; широко се користи у компанијама и од стране крајњих корисника, али када је у питању писање и имплементација софтвера , велики део критичног посла се и даље обавља у Unix окружењима или окружењима која су у великој мери инспирисана њима.

Компилација: када рачунар ради и чекате

У многим језицима, пре него што се програм може покренути, мора проћи кроз процес компајлирања , који се састоји од превођења изворног кода у формат који машина може директно да разуме. Језици попут C или C++ захтевају компајлирање, а то може трајати од неколико секунди до неколико минута или више, у зависности од величине пројекта.

Током тог времена, рачунар може бити толико заузет да, у пракси, програмер користи прилику да направи импровизовану паузу . Отуда класична шала „Радим, компајлира се“, коју су многи користили као изговор да устану на кафу док трака напретка полако напредује.

Модерни веб развој користи језике и интерпретере који не захтевају ту врсту тешке компилације, али чак и тамо постоје процеси изградње за паковање кода, минимизирање датотека или генерисање оптимизованих верзија који такође могу бити донекле спори.

На крају крајева, компајлирање је суштински део развојног циклуса: служи за откривање грешака, оптимизацију перформанси и осигуравање да је код правилно преведен у машински језик . Иако се понекад чини као пауза, то је део свакодневне рутине за многе тимове.

Командна линија и могућност директног контакта са системом

За почетнике, командна линија може деловати архаично, али када се навикнете на њу, постаје алат који изазива зависност. Рад у командној линији значи интеракцију са системом куцањем инструкција, уместо кликтања на иконе и дугмад.

У суштини, коришћење терминала је још један начин програмирања: команде су повезане у ланац, користе се скрипте (као оне у Bash-у), а понављајући задаци су аутоматизовани. Ово пружа веома фину контролу над системом , омогућавајући вам да урадите ствари за неколико секунди које би биле споре или готово немогуће са традиционалним графичким интерфејсом.

Многи програмери сматрају да када се навикну на конзолу, интерфејси који раде само са мишем постају неспретни и ограничавајући . Управо у терминалу инсталирају зависности, распоређују апликације, управљају процесима или контролишу удаљене сервере.

Далеко од тога да је реликт прошлости, командна линија остаје у срцу многих модерних алата и један је од разлога зашто учење Bash-а или PowerShell-а може направити огромну разлику у продуктивности било ког програмера.

Грешке услед тачака и зареза, заграда и угластих заграда

Мало је ствари које су фрустрирајуће од провођења сати полирања блока кода, његовог покретања и откривања да не ради због ситног детаља. У многим језицима, недостајућа тачка-зарез , неправилно затворена заграда или заграда постављена на погрешно место могу проузроковати да све не ради.

Ове синтаксичке грешке су посебно фрустрирајуће јер проблем није у логици, већ у једном карактеру изгубљеном међу стотинама редова . Компилатор или интерпретер обично избацује поруке о грешкама, али не увек на тачној локацији грешке, што вас приморава да пажљиво испитате код.

Многи програмери су потрошили безброј сати тражећи тај подмукли лик. Временом су фрејмворци, линтери и интелигентни едитори помогли да се они пронађу пре покретања програма, али стварност је да они остају један од најчешћих узрока мањих грешака.

Ова стална борба против синтаксе нас учи да много више ценимо добре алате за развој, а такође подстиче навику писања чистог и добро увученог кода , где је теже да се недостајућа заграда увуче а да нико не примети.

Лењост као врлина у развоју

Унутар софтверске културе постоји занимљива идеја: „продуктивна лењост“ је позитивна особина. Цитат који се приписује Билу Гејтсу, да он преферира лењу особу за тежак посао јер ће пронаћи најлакши начин да га обави, прилично добро сумира овај приступ.

У програмирању, поновно измишљање топле воде је бесмислено. Зато постоје пројекти отвореног кода , библиотеке и фрејмворци, који вам омогућавају да поново користите проверена решења. Добар програмер не покушава да направи све од нуле; он тражи постојеће алате, процењује их и програмира само оно што је апсолутно неопходно.

Ова „лењост“ покреће креирање једноставног, поново употребљивог и аутоматизованог кода . Ако се задатак понавља, инстинкт програмера је да напише скрипту или алат који ће то урадити уместо њих у будућности. Временом, овај начин размишљања штеди труд, смањује грешке и убрзава развој.

На овај начин, лењост се трансформише у ефикасност: уместо рада грубом силом, циљ је радити интелигентније , ослањајући се на заједницу, постојеће пројекте и заједничке најбоље праксе.

Коментари у коду: документација и духовити детаљи

Коментари у коду су линије које програм игнорише, али које људи користе да оставе напомене, објашњења или упозорења. Добро написан коментар може уштедети сате рада ономе ко касније мора да одржава тај код (често самом аутору месецима касније).

Они служе да разјасне сложене одлуке, објасне зашто је одређено решење изабрано или упозоре на осетљиве делове којих се не сме придржавати без претходног разумевања. У великим системима, коментари су готово као уграђена документација која прати код док се он развија.

Истовремено, многи програмери користе коментаре да би убацили шале и гиковске референце : од порука попут „Стоп; // Хамертиме!“ до напомена попут „// Магија. Не дирај“ или „// пијан, поправи касније“. Овакве врсте намигивања постале су део програмерског фолклора.

Та мешавина озбиљности и хумора одражава да код не пишу машине, већ људи, и да чак и у веома сложеним пројектима постоји простор за хуманизацију техничког рада кроз мале шале и скривене поруке.

Код који функционише „као магија“

Једно од најчешћих искустава међу програмерима је сусрет са застарелим блоковима кода које нико у потпуности не разуме, али који раде и нико се не усуђује да их додирне. То може бити стари модул, критична интеграција или закрпа која је исправила мистериозну грешку пре много година.

Временом се системи пишу, преписују и модификују толико пута да је нормално да се на крају појаве области где је логика постала замршена . Понекад је преостали код резултат покушаја и грешака, очајничких тестова док нешто није престало да отказује.

Многи тимови раде са одељцима ментално означеним као „не дирати“, јер иако нико тачно не зна зашто раде оно што раде, резултат је тачан. То је стални подсетник да је софтвер из стварног света далеко од теоријског савршенства које се учи у књигама.

Ова ситуација такође наглашава важност добре документације и аутоматизованих тестова , који могу пружити поверење приликом рефакторисања без страха од кршења понашања које је до тада изгледало готово магично.

„Само промени једну ситницу“: илузија брзе промене

Споља гледано, многи људи мисле да је додавање функције или модификовање система ствар „додиривања две линије“. Али сваки програмер зна да чак и наизглед мала промена може да укључује разумевање зависности, преглед архитектуре, ажурирање база података, прилагођавање интерфејса и тестирање свега.

Готово увек, функционалност видљива на површини је само врх леденог брега . Испод ње се крије пословна логика, валидације, интеграције са другим сервисима и правила која се не могу прекршити без изазивања нежељених ефеката.

Зато фраза „направи брзу промену“ често изазива извесну напетост: указује на недостатак разматрања сложености система и времена потребног да се провери да ништа друго није погођено. Чак и мале измене треба да прођу кроз циклусе тестирања и прегледа кода.

Претпоставка да је софтвер интерно осетљив помаже да се разуме зашто се рокови понекад продужавају и зашто програмери толико инсистирају на добром планирању и темељном тестирању пре финализације нове верзије.

Бити програмер: између логике и магије

Почетак програмирања је помало као добијање позива у магичну школу . У почетку све делује застрашујуће: нови језици, чудни концепти, непознати алати. Али, мало по мало, видите како неколико линија кода чини да се веома специфичне ствари дешавају на екрану.

За многе људе, идеја да неко може да направи прилагођену апликацију, игру или алат је готово несхватљива, па имају тенденцију да програмере виде као некога ко има посебне моћи . Ова перцепција „технолошког чаробњака“ се појачава када им покажете нешто што сте креирали, а они немају појма како то функционише интерно.

Са искуством, схватите да је магија једноставно добро примењена логика и много сати вежбања . Међутим, осећај да можете стварати ствари од нуле остаје веома стваран и то је један од разлога зашто се толико људи заљуби у програмирање.

У данашњем друштву, програмери софтвера су у великој мери одговорни за алате које свакодневно користимо : од банкарских апликација до друштвених медија и система за управљање пословањем. Веома мало људи види код, али сви живимо са његовим последицама.

Грешке: мале мане са огромним последицама

Злогласне „грешке“ или софтверске грешке могу изгледати као ситнице, али имају огроман потенцијал да изазову проблеме у најгорем могућем тренутку. Неке се манифестују као очигледни кварови, али многе остају успаване, узрокујући необично понашање само у веома специфичним ситуацијама.

Један од разлога зашто их је тако тешко открити је тај што не изазивају увек пад програма. Понекад једноставно генеришу нетачне или недоследне резултате , који се примећују само када неко примети број који се не поклапа или радњу која није смела бити дозвољена.

Програмери могу провести недеље тражећи грешку : репродукујући инстанце, прегледајући логове, додајући трагове отклањања грешака, тестирајући хипотезе и елиминишући могућности док не пронађу кривца. Није неуобичајено да се награде (стварне или симболичне) понуде ономе ко успе да ухвати посебно неухватљиву грешку.

Овај педантан рад на отклањању грешака је кључни део професионалног развоја и објашњава зашто толико пројеката проводи велики део свог времена тестирајући, поправљајући и побољшавајући, уместо да пише нове функције.

Програмирање као врхунска логичка слагалица

Ако уживате у слагалицама, осећаћете се као код куће у програмирању. Сваки софтверски проблем је у суштини логичка слагалица где знате почетну тачку (улазе) и шта желите да постигнете на крају (излазе), али морате пронаћи пут између.

За разлику од игара попут Судокуа, у програмирању готово да нема фиксних правила о томе како га решити : можете поделити проблем на модуле, користити различите алгоритме, потпуно променити приступ... и даље доћи до валидних и ефикасних решења.

Штавише, ретко постоји само један тачан одговор. Различити програмери могу доћи до веома различитих имплементација које подједнако добро функционишу, свака са својим предностима и манама у погледу перформанси, читљивости или одржавања.

Ова комбинација интелектуалног изазова и креативне слободе чини програмирање веома зависним: увек постоји мало тежи проблем, мало елегантније решење или оптимизација која би могла бити боље урађена.

Гиковски хумор и програмерска субкултура

Временом је заједница програмера створила сопствену гик субкултуру . Унутар заједнице има много шала, мемова о грешкама, верзијама, модерних фрејмворка и, наравно, класичних каламбура о бинарним и бројевним системима.

Једна од најпознатијих шала каже да „постоји 10 врста људи на свету: они који разумеју бинарни систем и они који не разумеју“. Цака је у томе што „10“ у бинарном систему значи „2“ у децималном систему, тако да се заправо говори о две категорије људи , али прикривене као бинарни бројеви.

Ови намигивања и климања главом појављују се на форумима, у репозиторијумима кода, темама на Stack Overflow-у и subreddit-овима посвећеним програмерском хумору . Они су облик другарства међу онима који деле исте свакодневне борбе са компајлерима, клијентима и роковима.

Тај смисао за хумор, често ироничан и помало заједљив, помаже у суочавању са тешким данима, необјашњивим грешкама и променама захтева у последњем тренутку. Смех је, у овом контексту, такође део радних алата.

Погледајте „Матрицу“: разумејте како апликације функционишу

Како стичете искуство, постајете неспособни да користите апликацију, а да се не питате како је интерно изграђена . Као да видите код како лебди иза интерфејса, баш као у чувеној сцени са кишом зелених ликова у Матриксу.

Када програмер наиђе на нови програм или веб локацију, одмах почиње да замишља које су технологије коришћене, како се управља стањем, која архитектура стоји иза тога или како су решени одређени детаљи дизајна и перформанси.

Ова „техничка“ перспектива трансформише многе ствари из магије у дизајнерске одлуке, линије кода и архитектонске обрасце . То је чудан осећај: губите део мистерије, али добијате огромну способност да разумете и реплицирате решења.

Истовремено, тај дубљи увид може отежати уживање у одређеним лоше направљеним интерфејсима, јер не можете избећи откривање недостатака у употребљивости, грешака у перформансама или сумњивих развојних одлука.

Зашто видео игре трају толико дуго да се појаве (и зашто су тако импресивне)?

Модерне видео игре су вероватно једни од најсложенијих програма који се данас праве. Чак и једноставна игра укључује графику, звук, логику игре, физику, умрежавање, вештачку интелигенцију и синхронизацију више компоненти.

Када су у питању велики наслови са масивним отвореним световима, мултиплејером, кинематографским приказима и стотинама механика, количина посла иза кулиса вртоглаво расте. Зато, иако споља може изгледати као „само“ забава, тимови и рокови су упоредиви са онима код великих софтверских пројеката за предузећа.

Они који програмирају веома добро разумеју зашто игра може бити одложена месецима или годинама : стабилизација тако великог интерактивног искуства, полирање грешака, оптимизација за различите платформе и прилагођавање играња је титански задатак.

Знање да је сваки детаљ видљив на екрану, од анимације лика до понашања менија, морао бити програмиран, тестиран и прегледан, чини да видео игре изгледају као техничке и креативне прекретнице, а не само као забавни производи.

Осећај да можете да креирате било шта помоћу кода

Један од најмоћнијих ефеката учења програмирања је појава сталног осећаја могућности . Сваки нови алат или језик који савладате отвара врата другој врсти пројекта: мобилној апликацији, боту, систему аутоматизације, једноставној игри...

Многи програмери акумулирају споредне пројекте у репозиторијумима попут ГитХаба: полузавршене идеје, експерименте, мале алате за сопствену употребу. Сваки од њих произилази из сигурности да, ако нешто не постоји, можда могу сами да га направе.

Понекад су то алати за решавање свакодневних проблема, други пут су то креативне идеје које су једноставно желели да испробају. У сваком случају, ова тежња ка сталном стварању је део културе развоја и један је од разлога зашто технологија тако брзо напредује.

Временом, тај осећај „могу да урадим скоро све са правим кодом“ постаје веома јака мотивација за континуирано учење и усавршавање, чак и ван посла или академског времена.

Шта заправо раде компјутерски научник и софтверски инжењер

Постоји широко распрострањен мит да је свако ко студира рачунарске науке програмер . У стварности, рачунарске науке обухватају широк спектар области: системску администрацију, мреже, базе података, системску анализу, управљање пројектима, безбедност, техничку подршку... а развој софтвера је само једна од њих.

Неко може професионално да ради у ИТ сектору, фокусирајући се на инфраструктуру, сервере или мреже, без писања много кода на дневној бази. Слично томе, софтверски инжењер може имати дубоко разумевање логике, образаца дизајна и архитектуре, али не може бити стручњак за конфигурисање рутера или одржавање сервера.

Софтверски инжењери се обично специјализују за решавање проблема путем програма , што захтева савладавање веома специфичних концепата: структура података, алгоритама, најбољих пракси, тестирања, дизајна API-ја итд. Нема смисла очекивати да буду и напредни системски администратори ако то није њихова област стручности.

Разумевање ове разноликости унутар рачунарске науке помаже у разбијању стереотипа да „ако сте у системима, знате како да урадите све“ и истиче техничку специјализацију сваке улоге унутар технолошког сектора.

Да ли је програмирање толико компликовано колико изгледа?

Још један уобичајени мит је да је програмирање изузетно тешко и погодно само за даровите појединце. Стварност је да учење програмирања захтева труд, вежбање и стрпљење, али то није магични таленат резервисан за одабране.

Последњих година појавили су се језици и алати који чине улазак у свет кода приступачнијим: Python, JavaScript, Kotlin , или чак No Code и Low Code платформе вам омогућавају да направите корисне ствари са разумном кривом учења.

Као и свака професионална вештина, програмирање има своје сложености, али такође увелико користи од тимског рада и заједнице . Форуми, туторијали, документација и пројекти отвореног кода олакшавају проналажење решења за проблеме који су се раније чинили немогућим да се реше сами.

На крају крајева, оно што прави разлику није толико урођени таленат колико доследност, став и вежбање . Они који посвећују време решавању изазова, читању доброг кода и изградњи пројеката временом развијају течност, баш као неко ко учи нови језик кроз употребу и излагање.

Да ли је живот програмера усамљен?

Филмови и ТВ серије су овековечили слику програмера као некога изолованог, увек у мраку испред више екрана. У стварном животу, већина софтверских инжењера ради у мултидисциплинарним тимовима и проводи доста времена разговарајући са другим људима.

Израда корисних апликација захтева разумевање потреба клијената или корисника , координацију са дизајнерима, тестерима, пословним заинтересованим странама и другим програмерима. Важне техничке одлуке се разматрају заједнички и често укључују опсежну комуникацију.

Штавише, софтверски сектор се ослања на веома активне заједнице: састанке, конференције, колаборативне репозиторијуме и форуме где се дели знање и добијају одговори на питања. Далеко од тога да је усамљено окружење, то је веома друштвени екосистем.

У свакодневном животу, писање доброг кода такође захтева меке вештине: јасну комуникацију, колаборативно размишљање и емпатију како бисте разумели како ће ваш рад утицати на друге чланове тима или крајње кориснике. У ствари, готово је немогуће обављати овај посао без сталне интеракције са другим људима.

Занимљиве чињенице о еволуцији пословног софтвера

Када помислимо на софтвер, обично замишљамо потрошачке апликације, али софтвер за управљање предузећима такође има своју фасцинантну историју. Од првих решења која раде на великим мејнфрејм рачунарима до данашњих система заснованих на облаку, еволуција је била огромна.

Многе компаније су почеле користећи пионирске, прилагођене програме , који су временом постали референтни производи у секторима као што су рачуноводство, логистика и људски ресурси. Свака нова генерација алата додавала је могућности: свеобухватније извештаје, аутоматизацију процеса и интеграцију са другим платформама.

Иза ових система крију се приче о кључним техничким одлукама, сложеним миграцијама и фасцинантним детаљима о томе како су одређени модули постали де факто стандарди на тржишту. Појава софтвера као услуге (SaaS) потпуно је променила правила игре, омогућавајући стална ажурирања без локалних инсталација.

Истраживање еволуције ових решења је одличан начин да се разуме како су компаније прешле са управљања својим процесима помоћу гомила папира на то што то раде помоћу повезаних апликација и података у реалном времену , надограђујући се на деценије тихих иновација.

12 занимљивих чињеница о софтверским терминима

Временом су се појавиле речи и изрази које данас узимамо здраво за готово, али који имају прилично необично порекло . Ево десетак примера везаних за рачунарство и софтвер који помажу да боље разумемо овај јединствени језик.

8-бита и естетика пиксел арта: Такозване „8-битне“ видео игре нису добиле име по носталгији, већ због ширине речи коју су њихови процесори могли да обраде: 8 бита. Конзоле попут NES-а имале су ово ограничење, које је ограничавало број боја, резолуцију и сложеност звука, али је заузврат то довело до култне естетике пиксел арта која и данас инспирише многе креаторе.

Спотифај и готово случајно име: Сервис за стримовање музике Спотифај настао је у Шведској 2006. године као правни одговор на масовну музичку пиратерију . Његово име, како прича каже, потиче од погрешно чуте речи током сесије размишљања; затим је реинтерпретирано као комбинација речи „уочити“ (наћи) и „идентификовати“, дајући му елегантније значење.

Руткит, комплет суперкорисника: Руткит је скуп алата дизајнираних да добију и прикрију администраторски (рут) приступ систему. Термин се појавио 90-их, инспирисан легитимним софтверским „комплетима“ које су администратори користили за управљање системима, али су их нападачи прилагодили да би сакрили своје присуство.

Тројански коњ и дигитални Тројанац: У рачунарској безбедности, тројански коњ је програм који се маскира као легитиман софтвер како би преварио корисника и инфилтрирао се у његов рачунар. Име потиче директно од тројанског коња из грчке митологије , који је скривао војнике унутра како би освојио град изнутра.

WordPress и веб домен: WordPress је настао 2003. године као унапређење другог система за блоговање под називом b2/cafelog. Оно што је почело као једноставна платформа за личне дневнике на крају је постало један од најуспешнијих пројеката отвореног кода у историји, до те мере да се данас процењује да је више од 40% свих веб страница направљено помоћу њега.

Злонамерни софтвер, кровни термин за злонамерни софтвер: Реч злонамерни софтвер потиче од „мациозни софтвер“, што значи софтвер дизајниран за штетне сврхе . Овај термин обухвата вирусе, тројанце, шпијунски софтвер, рансомвер и многе друге врсте злонамерних програма. Иако вируси постоје од 70-их, термин „злонамерни софтвер“ није постао широко распрострањен све до 90-их.

Second Life и његова виртуелна економија: Покренут 2003. године, Second Life није класична видео игра: недостају му дефинисани циљеви и линеарне мисије. То је постојани виртуелни свет у коме корисници креирају, купују и продају дигиталну робу и друже се. На свом врхунцу, његова интерна економија је покретала стотине милиона стварних долара.

Ауторско левто и заразна слобода: Термин ауторско левто је предложен као алтернатива традиционалним ауторским правима. Према ауторским левим лиценцама, могуће је копирати, мењати и редистрибуирати дело, под условом да изведена дела задржавају исту слободу. Идеја је популаризована посебно захваљујући Ричарду Столману и покрету слободног софтвера.

HTML5 и његов званични лого: Године 2011, W3C је представио званични лого за HTML5 у облику стилизованог штита . Намера је била да се пренесе робусност и модерност, појачавајући поруку да је HTML5 спреман за сложене веб апликације, чак способан да замени многе традиционалне десктоп апликације.

ICQ и игра речи „Тражим те“: ICQ је био један од првих популарних програма за инстант поруке 90-их година. Његово име се изговара као „Тражим те“, што наглашава његову главну функцију: проналажење и контактирање људи из било ког дела света, много пре него што су постојали WhatsApp или Messenger.

HTTP, веб поштар: HTTP је скраћеница од Hypertext Transfer Protocol (Протокол за пренос хипертекста) и креирао га је Тим Бернерс-Ли заједно са World Wide Web-ом крајем 80-их. Овај протокол делује као преносник између вашег прегледача и сервера , захтевајући странице и враћајући одговоре. Касније се појавио HTTPS, његова шифрована верзија, како би заштитио информације током преноса.

Порекло речи софтвер: До касних 50-их, програми су били једноставно познати као „код“ или „инструкције“. Статистичар Џон Туки је сковао термин „софтвер“ 1958. године како би разликовао програме (софтверски део) од хардвера (физичког дела) рачунара. Од тада, реч је постала неопходна у свакој технолошкој дискусији.

Посматрање ових малих прича које стоје иза концепата које свакодневно користимо помаже нам да свет софтвера видимо као нешто живо, пуно људских идеја, одлука и анегдота , а не само као скуп апстрактних појмова.

Узете заједно, све ове занимљиве чињенице о софтверу и програмима показују да иза сваке апликације, језика, лиценце или алата стоји мешавина историје, хумора, покушаја и грешака, сарадње и много техничке креативности; њихово разумевање нам омогућава да више уживамо у технологији, изгубимо страх од програмирања и ценимо невидљиви рад милиона људи који, ред по ред, граде дигитални универзум у коме се крећемо сваког дана.

безбедност и приватност у програмима
Повезани чланак:
Безбедност и приватност у програмима, подацима и прегледању интернета