11 прогнози за бъдещето на програмирането

Единственото нещо, което лети по-бързо от времето, е напредъкът на технологиите. Веднъж след обяд, приятел за проектиране на чипове се оправда бързо с ловкото обяснение, че законът на Мур означава, че трябва да прави чипа си с 0,67 процента по-бърз всяка седмица, дори докато е на почивка. Ако не го направи, чиповете няма да удвояват скоростта си на всеки две години.

Сега, когато 2017 е настъпила, е време да направите равносметка на технологичните промени напред, макар и само за да ви помогне да знаете къде да поставите залозите си за изграждане на умения за програмиране за в бъдеще.

От нарастващото главоболие в сигурността на интернет на нещата до машинното обучение навсякъде, бъдещето на програмирането става все по-трудно да се предскаже.

Облакът ще победи закона на Мур

Има недоверчиви, които твърдят, че чип компаниите са ударили стена. Те вече не удвояват скоростта на чипа на всеки две години, както през 80-те и 90-те години. Може би - но вече няма значение, защото границите между чиповете са по-малко дефинирани от всякога.

В миналото скоростта на процесора в кутията на бюрото ви имаше значение, защото, е, вие можехте да вървите толкова бързо, колкото силициевият хамстер вътре можеше да върти колелото си. Закупуването на по-голям, по-бърз хамстер на всеки няколко години удвоява и вашата производителност.

Но сега процесорът на бюрото ви едва показва информация на екрана. По-голямата част от работата се извършва в облака, където не е ясно колко хамстери работят по вашата работа. Когато търсите в Google, техният масивен облак може да посвети 10, 20, дори 1000 хамстера, за да намери правилния отговор за вас.

Предизвикателството за програмистите е намирането на интелигентни начини за еластично разполагане на достатъчно изчислителна мощност към проблема на всеки потребител, така че решението да идва достатъчно бързо и потребителят да не се отегчава и да се скита към сайта на конкурента. Има достатъчно енергия. Облачните компании ще ви позволят да се справите с смачкването на потребителите, но трябва да намерите алгоритми, които работят лесно паралелно, след което да уредят сървърите да работят синхронно.

IoT сигурността ще стане само по-страшна

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

Проблемът е, че текущата верига на доставки за джаджи няма никакъв механизъм за фиксиране на софтуер. Жизненият цикъл на приспособлението обикновено започва с дълго пътуване от производствен завод до склад и накрая до потребителя. Не е обичайно да се развиват до 10 месеца между сглобяването и първата употреба. Приспособленията се изпращат по средата на света през тези дълги, продължителни месеци. Те седят в кутии, чакащи в транспортни контейнери. След това те седят на палети в големи магазини за кутии или в складове. По времето, когато са разопаковани, всичко можеше да им се случи.

Предизвикателството е да се следи всичко това. Достатъчно трудно е да актуализирате батериите в детекторите за дим всеки път, когато часовниците се сменят. Но сега ще трябва да се чудим за нашата тостер, сушилнята и почти всичко в къщата. Актуализиран ли е софтуерът? Приложени ли са всички корекции за сигурност? Броят на устройствата прави по-трудно да се направи нещо интелигентно за наблюдение на домашната мрежа. Има повече от 30 устройства с IP адреси, свързани към моя безжичен рутер и знам самоличността на само 24 от тях. Ако исках да поддържам интелигентна защитна стена, щях да полудя, отваряйки правилните портове за правилните интелигентни неща.

Даването на шанс на тези устройства да изпълняват произволен код е благословия и проклятие. Ако програмистите искат да изпълняват интелигентни задачи и позволяват на потребителите да имат максимална гъвкавост, платформите трябва да са отворени. Така процъфтяват революцията на производители и творчеството с отворен код. Но това също така дава на писателите на вируси повече възможности от всякога. Всичко, което трябва да направят, е да намерят една марка приспособления, която не е актуализирала конкретен драйвер - voilà, те са намерили милиони приспособления, подготвени за хостване на ботове.

Видеото ще доминира в мрежата по нови начини

Когато комитетът по стандартите за HTML започна да вгражда видеомаркировки в самия HTML, те вероятно нямаха големи планове за преправяне на развлечения. Вероятно са искали да разрешат проблемите само от приставки. Но основните видео тагове реагират на JavaScript команди и това ги прави по същество програмируеми.

Това е голяма промяна. В миналото повечето видеоклипове се консумираха много пасивно. Сядате на дивана, натискате бутона за възпроизвеждане и виждате какво редакторът на видеото е решил да видите. Всеки, който гледа това видео за котки, вижда котките в същата последователност, решена от създателя на котката. Разбира се, няколко пренасочващи се напред, но видеоклипове стигат до своето заключение с толкова редовност, колкото швейцарските влакове.

Контролът на JavaScript върху видеото е ограничен, но най-лъскавите уеб дизайнери измислят интелигентни начини да интегрират видеото с останалата част от уеб страницата в безпроблемно платно. Това отваря възможността на потребителя да контролира начина, по който разказът се разгръща и взаимодейства с видеото. Никой не може да бъде сигурен какво ще си представят писателите, художниците и редакторите, но ще се нуждаят от талант за програмиране, за да го направят.

Много от най-лъскавите уебсайтове вече имат видео, плътно работещо на умни места. Скоро всички те ще искат движещи се неща. Няма да е достатъчно да поставите IMGтаг с JPEG файл. Ще трябва да вземете видео - и да се справите със стандартите, които са фрагментирали света на браузъра.

Конзолите ще продължат да заменят компютрите

Трудно е да се сърдите на игрови конзоли. Игрите са страхотни, а графиките са невероятни. Изградиха страхотни видеокарти и относително стабилни софтуерни платформи, за да се отпуснем в хола и да мечтаем да стреляме по лоши момчета или да хвърляме футбол.

Конзолите за хол са само началото. Създателите на предмети за останалата част от къщата следват същия път. Биха могли да изберат екосистема с отворен код, но производителите изграждат свои собствени затворени платформи.

Това фрагментира пазара и затруднява програмистите да поддържат всичко изправено. Това, което работи на един превключвател на светлината, няма да работи на друго. Сешоарът може да говори по същия протокол като тостера, но вероятно няма. Това е повече работа за програмистите за ускоряване и по-малко възможности за повторно използване на нашата работа.

Данните ще останат кралски

След президентските избори през 2016 г. в САЩ специалистите по издирване на думи се подиграваха на привържениците на данните, което предполага, че целият им статистически анализ е упражнение в глупост. Прогнозите бяха драстично погрешни и хората с големи данни изглеждаха зле.

Как стигнаха до това заключение? Чрез сравняване на един набор от числа (прогнозите) с друг набор от числа (резултатите от изборите). Те все още се нуждаеха от данните.

Данните са начинът, по който виждаме в интернет. Светлината ни носи информация за реалния свят, но цифрите ни казват за всичко онлайн. Някои хора може да правят лоши прогнози въз основа на несъвършени числа, но това не означава, че трябва да спрем да събираме и интерпретираме числата.

Събирането, съпоставянето, подреждането и анализирането на данни ще продължи да бъде една от най-важните задачи за предприятието. Вземащите решения се нуждаят от цифрите и програмистите ще продължат да имат задачата да доставят данни по начин, по-лесен за разбиране. Това не означава, че отговорите ще бъдат перфектни. Контекстът и интуицията ще продължат да играят роля, но необходимостта от преборване на данни няма да изчезне, просто защото някои хора прогнозираха, че Доналд Тръмп няма да бъде избран. Това означава повече работа за програмистите, тъй като не се вижда край на необходимостта ни да изградим по-голям, по-бърз и по-интензивен софтуер.

Машинното обучение ще се превърне в новата стандартна функция

Когато децата в колежа посещават курс, наречен „Структури на данни“, те научават какъв е бил животът, когато техните баби и дядовци са писали код и не са могли да зависят от съществуването на слой, наречен „базата данни“. Истинските програмисти трябваше да съхраняват, сортират и присъединяват таблици, пълни с данни, без помощта на Oracle, MySQL или MongoDB.

Алгоритмите за машинно обучение са на няколко кратки години от този скок. В момента програмистите и изследователите на данни трябва да напишат голяма част от собствения си код, за да извършват сложен анализ. Скоро езици като R и някои от най-умните инструменти за бизнес разузнаване ще спрат да бъдат специални и ще започнат да бъдат редовна функция в повечето софтуерни стекове. Те ще преминат от четири или пет специални слайда в палубата за продажби на PowerPoint до малък правоъгълник в архитектурния чертеж, който се приема за даденост.

Това няма да се случи за една нощ и не е ясно каква точно ще бъде формата, но е ясно, че все повече бизнес планове зависят от алгоритмите за машинно обучение, които намират най-добрите решения.

Дизайнът на потребителския интерфейс ще се усложни, тъй като персоналните компютри продължават да избледняват

Всеки ден изглежда, че има по-малко причини да използвате компютър. Между възхода на смартфоните, конзолите в хола и таблета, единствените хора, които все още се държат за персонални компютри, са служителите в офиса и учениците, които трябва да предадат задача.

Това може да е предизвикателство за програмистите. По-рано беше лесно да се предположи, че потребителите на софтуер или уебсайт ще имат клавиатура и мишка. Сега много потребители нямат нито едното, нито другото. Потребителите на смартфони преместват пръстите си в стъклен екран, който едва има място за всичките 26 букви. Потребителите на конзолата натискат клавишите със стрелки на дистанционното управление.

Проектирането на уебсайтове става по-сложно, тъй като събитието при докосване е малко по-различно от събитието при щракване. Потребителите имат различни количества прецизност и екраните се различават значително по размер. Не е лесно да държите всичко изправено и само ще се влоши през следващите години.

Краят на откритостта

Преминаването на компютъра не е само бавната смърт на определен форм фактор. Това е умирането на особено отворен и приветлив пазар. Смъртта на компютъра ще бъде затваряне на възможностите.

Когато компютрите се доставят за първи път, програмист може да компилира код, да го копира на дискове, да ги постави в торбички с цип и светът да го купи. Нямаше среден човек, нямаше вратар, нямаше строга централна сила, която да ни помоли да кажем: „Майко, може ли?“

Конзолите са плътно заключени. Никой не влиза на този пазар без инвестиция на капитал. Магазините за приложения са малко по-отворени, но те все още са оградени градини, които ограничават това, което можем да направим. Разбира се, те все още са отворени за програмисти, които скачат през правилните обръчи, но всеки, който направи фалшив ход, може да бъде хвърлен. (По някакъв начин те винаги забавят нашите приложения, докато зловредният софтуер се изплъзне. Вървете фигурата.)

Това разграничение е важно за отворения код. Не става въпрос само за продажба на дискети в пликове. Губим способността да споделяме код, защото губим способността да компилираме и стартираме код. Краят на компютъра е голяма част от края на отвореността. Засега повечето хора, които четат това, вероятно имат приличен работен плот, който може да компилира и изпълнява код, но това бавно се променя.

По-малко хора имат възможност да пишат код и да го споделят. За всички разговори за необходимостта да се научи следващото поколение да програмира, има по-малко практически вектори за отворен код за разпространение.

Автономният транспорт е тук, за да остане

Не са само колите. Някои искат да направят автономни самолети, които не са обременени от нуждата от пътища. Други искат да създадат автономни скейтбордове за много леки пътувания. Ако се движи, някой хакер мечтае да му каже къде да отиде.

Програмистите няма да контролират това, което хората виждат на екрана. Те ще контролират къде ходят хората и как взаимодействат със света. А хората са само част от играта. Всички наши неща също ще се движат автономно.

Ако искате вечеря от известен готвач в центъра, автономен скейтборд с отопляема камера може да го донесе у дома ви. Ако искате косата ви да бъде окосена, автономна косачка ще замени детето от квартала.

И програмистите могат да използват всички страхотни идеи, които са имали по време на първата интернет революция. Ако смятате, че изскачащите реклами са лоши в интернет, изчакайте, докато програмистите бъдат платени, за да пренасочат вашите автономни ролкови кънки покрай кухненския отвор на нов ресторант. Огладен ли си вече?

Законът ще намери нови граници

Мастилото едва изсъхна в Била за правата, когато започнаха дебати за това какво означава разумно търсене на нашите вестници. Сега, повече от 200 години по-късно, все още спорим за подробностите.

Промените в технологията отварят нови пътища за закона. Преди няколко години Върховният съд реши, че технологията за проследяване на превозни средства изисква заповед. Но това е само когато полицията засажда тракера в колата. Никой наистина не знае какви правила се прилагат, когато някой призове данните за проследяване от Waze, Google Maps или някое от стотиците други приложения, които кешират нашите местоположения.

Ами влиянието върху начина на работа на машините? Едно е да изтеглите данни, но е страшно изкушаващо да промените и данните. Честно ли е полицията (или частните актьори) да фалшифицира документи, заглавия или битове? Има ли значение дали целите са истински терористи или просто хора, които са паркирали твърде дълго на място без паркиране, без да захранват брояча?