Кое е актуално и кое не в света на програмирането и приложенията?
Програмистите обичат да надникват в света на модата, където новите течения духат на приливи и отливи като морски бриз. Дължината на полите непрекъснато се променя, според това дали е модерно да е къса или дълга, модерните цветови тенденции идват и си отиват, вратовръзките стават по-дебели, а след известно време пак влизат по-тънките. Но в света на технологиите взискателност, наука, математика и прецизни закони вземат превес в определянето на новите тенденции, което ясно разбирате е доста по-сложен процес.
Не е нужно да казваме, че програмирането също е професия, която се занимава с новите течения и тенденции. Разликата е в това, че новите моди в програмирането се задвижват от по-добрата ефективност, нарастването в персонализацията и стремежът към лесната употреба. Новите технологии, които осигуряват едно или повече от нещата споменати по-горе, засенчват предходното поколение. Става дума за меритокрация.
Това което следва да ви представим е списък с актуалните и не толкова актуални вече неща днес сред програмистите. Не всички ще се съгласят с казаното по-долу тъй като може да сметнат някои от тях за по-значими от други и обратно. Надяваме се да приемете факта, че това което прави програмирането една безкрайно интересна професия е именно страстните дебати, непрестанната промяна и резките завръщания.
Актуално: JavaScript MV* frameworks
Неактуално: JavaScript файлове
Преди много време всеки можеше да пише JavaScript, за да зареди сигнализиращ прозорец или да провери дали и-мейл адресът във формата съдържа знак @. Сега приложенията на HTML Ajax са толкова сложни, че само няколко хора започват от нулата. По-лесно е да се приеме един framework и да се напише малко код, за да се изпълни вашата бизнес логика.
В момента съществуват дузина frameworks като Kendo, Sencha, jQuery Mobile, AngularJS, Ember, Backbone, Meteor JS и много други, като всички те са готови да се справят със събития и съдържания за вашите уеб приложения и страници.
Това са простите Web приложения. Съществуват също така и няколко, които са пригодени да предоставят изграждане и при кръстосана платформа за светът на смартфоните и таблетите. Технологии като NativeScript, PhoneGap и Sencha Touch са няколко от възможностите за създаване на приложения извън HTML5 технологията.
Актуално: CSS frameworks
Неактуално: Генерични каскадно-стилизирани листове/таблици
Едно време да добавиш малко наклонен текст в Web страница, означаваше да отвориш един CSS файл и да включиш нова команда като font-style:italic. След това запаметявате файла и отивате да обядвате след дългата трудна работна утрин. Сега web страниците са толкова сложни, че е невъзможно да запълните файл с толкова прости команди. Една грешка в детайлите с цвета и всичко отива на кино. Подобно на това, което твърдят за конспирациите и екологията: Всичко е взаимосвързано. Това е момента, в който рамките на CSS като SASS и неговите братовчеди Compas са открили като солиднa основа. Те насърчават грамотното, стабилно кодиране, чрез предлагане на програмни конструкции като реални променливи, вложени блокове и смесвания. Това може да не звучи като нещо ново в слоевете на програмиране, но това е голяма крачка напред в дизайна на слоеве.
Актуално: SVG + JavaScript на Canvas
Неактуално: Flash
Flash-а подлудява хората от доста дълго време, но артистите винаги са харесвали резултата. Той изглежда страхотно и мнозина талантливи художници са изградили голяма база от Flash код, за да предложат сложни преходи и анимации. След като сега слоя на JavaScript може да прави горе-долу същото, производителите на браузъри и девелопърите са щастливи от настъпващия край на Flash. Те вещаят по-добра интеграция със слоя DOM, чрез нови формати като SVG (Scalable Vector Graphics). SVG и HTML съдържат една огромна купчина тагове, която обикновено е по-лесна за употреба от web разработчиците. Има големи приложения, които предлагат сложно рисуване на Canvas обект, често с помощта на видео карти. Поставете ги заедно и ще останете само с няколко причини, заради които да използвате Flash отново.
Актуално: Изкуствен интелект/машинно обучение
Неактуално: Голяма информация
Никой не знае какво означава фразата „ изкуствен интелект“ и това помага на рекламодателите, особено след като термина „голяма информация“ управлява своя курс. Те грабят термини от изкуствения интелект и ъпгрейдват сложнотата на големия брой схрускани алгортими, които орат през вашите лог файлове и кликвания. Взаимствайки всички по-сложни алгортими от 50-те години на AI изследванията, имаме по-голям шанс от всякога да прихванем този сигнал сред шума. Инструментите започват от рамките на машинно обучение за когнитивно програмиране по целия път до Watson на IMB, които сега можете да пингвате за решаване на вашите проблеми. Всяка оферта е нейното лично ниво на машинен интелект и с това и обещанието за поемане на повече от анализа на данните и криминалистиката за нас.
Актуално: Гейм рамки
Неактуално: Местна гейм разработка
Едно време гейм разработката означаваше, наемане на изобилие от девелопъри, които пишеха всичко на C от самото начало. Разбира се, това костваше милиарди долари, но изглеждаше страхотно. Сега никой не може да си позволи лукса от персонализиран код. Повечето гейм разработчици се предадоха преди години и използваха библиотеки като Unity, Corona или LibGDX, за да изградят своята система. Те не пишат C код, колкото инструкции за библиотеките. Срамно ли е, че игрите не са гордо ръчноизработени, а щамповани, използвайки същия двигател? Не. Повечето разработчици са освободени от това, защото те нямат нужда да се справят с детайлите, като могат да се концентрират в начина по който се играе играта, героите, разказа, визуалното изкуство и ефекти.
Актуално: Web приложения на една страница
Неактуално: Уебсайтове
Помните ли когато отбелязаните URL-та бяха пълни със статичен текст и изображения? Не ви ли се струва просто и старомодно да поставите информация в мрежа от разделени Web страници, наречени уеб сайт. Дизайнерският екип ще прекарва часове в пазарлъци над картата на сайта, опитвайки да улесни максимално начинът за навигация. Новите Уеб приложения са началото на края на големите база данни пълни със съдържание. Когато Уеб приложението иска информация, тя го издърпва от базата данни и го влива в локалното. Няма нужда да се маркират данните с всички уеб екстри нужни за изграждане на уеб страница. Слоя с информация е изцяло отделен от презентационния и формативен слой. Сега, възхода на мобилното програмиране е друг фактор: единичен, респонсив уеб дизайн на уеб страницата, която работи като приложение, всичко с идеята да се избегнат сътресения в магазините за app-ове.
Актуално: Мобилни уеб приложения
Неактуално: Местни мобилни приложения
Да приемем, че имате страхотна идея за мобилно съдържание. Може да се впрегнете и да напишете отделни версии за iOS, Android, Windows 8 и дори за BlackBerry OS или някой друг. Всеки един от тях изисква отделен екип, който знае различен език за програмиране. След което, всяка платформа на приложението придобива собствени плът и кръв, преди тя да бъде доставена на потребителите.
Или пък вие може да изградите едно HTML приложение и да го включите в уеб сайт, което да върви на всички платформи. Ако има промяна, не е нужно да се връщате към магазина за приложения, молейки за бързо ревю за фиксиране на бъг. Сега когато HTML слоя става все по-бърз и работи на по-бързи чипове, тази стъпка може да се завърши по-добре с местни приложения, отколкото с по-сложните и интерактивни от тях.
Актуално: Android
Неактуално: iOS
Времената се менят. Докато все още на хоризонта се виждат някои отдадени фенове и потребители на iPhone и iPad и неговото сложно UI, грубите продажби продължават да са в полза на Android. Някои становища дори сочат, че 80% от продадените телефони са Android. Причината може да бъде толкова проста, кореняща се в цената например. Докато iOS устройствата струват доста скъпо, светът на Android е пълен с изобилие от конкуриращи се модели телефони, таблети и т.н. на изключително достъпни цени. Идеята да спестим от бюджета винаги изглежда изкушаваща. Но друг фактор, който оказва влияние е ефекта от свободния източник. Те правят всичко, с което да може да се запълни пазара. Ако са необходими малки таблети Android, то ги има. Както и Android камери и дори Android хладилници. Явно Apple се учи от Android след като излязоха на пазара с новия iPhone 6, който ни възхити със своите различни размери на екрана.
Актуално: GPU
Неактуално: CPU
Когато софтуерът беше прост и инструкциите бяха аранжирани в приятен ред, CPU беше подобието на компютър, защото извършваше всички тежки задачи. Сега когато видео игрите са преизпълнени със зашеметяващи графични рутини, които могат да работят паралелно, видео картата е тази, която движи всичко. Лесно е да похарчим 500 – 600$ за луксозна видео карта, а и някои отдадени геймъри използват повече от една. Това разбира се удвоява цената на някои обикновени десктопи. Геймърите не са единствените, които желаят своите GPU карти. Учените се опитват да преобразуват много паралелни приложения, които да вървят стотици пъти по-бързо на GPU.
Актуално: GitHub
Неактуално: Резюмета
Да прочетете реалния код на някой е много обогатяващо и конструктивно. Те пишат ли добри коментари? Има ли реална архитектура с място за разширение. Всички тези въпроси могат да получат своя отговор с поглед към техния код. Ето защо участието в проекти с отворен код се превръща все повече във важен фактор за намиране на работа. Споделянето на код от имуществен проект е трудно, но с отворен изходен код може да се отиде навсякъде.
Актуално: Ползване под наем
Неактуално: Купуване
Когато Amazon се впуснаха в продажба на компютри и други електроники по време на Black Friday, компанията забрави да включи хиперскъпи сделки към своя облак. Дайте и време. Не много отдавна, компаниите отвориха свой личен data център и наеха собствен екип, който да задвижи компютрите, които те са закупили. Сега те започнаха да наемат компютри, data център, екип и дори софтуер на час. Никой не иска да поеме отговорност към това да притежава нещо. Като цяло това е добра идея или поне докато уебсайта не стане публичен и осъзнаете, че плащате за всичко що е клик. Само ако Amazon сега открият начин да доставят облак, чрез дронове, модите ще се сближат.
Актуално: Сложност в облака
Неактуално: Простотата в облака
В ранните години на програмирането в облак доставчиците осъзнаха, колко лесно беше да кликнат на бутон и машината им да тръгне. Простотата беше много услужлива. Изборът на машина и изясняването на нейните параметри в днешно време изисква повече време, отколкото да се напише един код. На лице са дузина машинни профили и повечето cloud доставчици поддържат някои от по-старите модели. Всички предлагат уникални нива на изява, така че по-добре бъдете готови да ги бенчмаркнете, за да разберете кой от тях би бил най-достъпен за вас. Струва ли си да спестите няколко жълти стотинки на час и да се лишите от по-малко рам? Със сигурност си струва, ако управлявате 100 машини едновременно в продължение на месеци. За да направят нещата по-сложни, компаниите осигуряващи cloud пространство предлагат няколко възможности за отстъпка, ако платите предварително или инвестирате накуп. Достатъчно е да инвестираме в онлайн курс по инженерна цена на облак.
Актуално: Web интерфейс
Неактуално: IDEs
Много отдавна хората използваха компилатор на командния ред. След това някой интегрира идеята, че с редактор и други инструменти може да се създаде IDE. Сега е време това IDE да се засенчи от инструментите базирани в браузърите, които помогат да редактирате кода, често на работеща система. Ако не ви допада как WordPress работи, то имате шанс да се възползвате от редактор, който ви позволява да промените кода в същия момент. Тези системи не предлагат най-добрите дебъг среди, а и има опасност при редактиране на продуктов код. Може да започнете Cloud9, Aptana и WebIDE на Mozilla, но не спирайте да изследвате и опитвате. Web интерфейсовете стават все по-мощни и по-мощни. Например, възможно е да изградите цялостен анализаторски проект на голяма информация в Azure уебсайта на Microsoft.
Актуално: Node.js
Неактуално: JavaEE, Ruby и Rails
Светът на сървърите винаги е процъфтявал, позволявайки на операционните системи да отдадат всяко своенравие, неефективно или разпуснато поведение на програмистите. Какъвто и да е глупав контур или разточителните изчисления, които програмистите са кодирали, OS би балансирал изявата превключвайки между нишките. В точно в този момент се появи Node.js заедно с обратната връзка на модела за програмиране на JavaScript и кода тръгна наистина много бързо. Много по-бързо отколкото всеки очакваше да е възможно от очевиден език играчка, който се използва за предупредителни кутии. Изведнъж натоварването от създаването на нови теми стана ясно и Node.js я свали. Проблемите се появяват, когато програмистите не се държат добре, но като цяло отговорността е била благосклонна към тях, тъй като създаването на ресурсни ограничения за програмистите, явно обикновено продуцира по-бърз код. Светът на Node.js се възползва от предимствата на предлаганата хармония между браузъра и сървъра. Същия код работи и улеснява разработчиците да се движат около функциите и да дублират функционалността. В резултат на това, слоевете са се превърнали в най-горещите стакове в интернет.
Актуално: PHP 7.0
Неактуално: Старата версия на PHP
В миналото PHP е бил лесен начин да избиете няколко динамични уеб страници. Ако имате нужда от малко разнообразие може да вградите прост код между HTML тагове. Това беше достатъчно основание за уеб разработчиците, за да прегърнат тази идея и да я развият, но и достатъчно бавно, за да предизвика подигравки от хардкор програмистите. Това е стара новина, защото някои PHP любители на места като WordPress и Facebook са се конкурирали за по-бързото изпълнение на PHP код, като включват технологията, която направи Java такова високо-ефективно решение. Сега инструменти като Hip-hop Virtual Machine и PHP 7.0 предлагат скорости, които могат да бъдат 2 пъти по-бързи от старите версии. Възползвайте се от Java и Node.js.
Актуално: Just-in-time образование
Неактуално: С 4 години по-напред
Компютърно медиираните курсове не са вече нови и всеки се радва на предимството да гледа видео лекция с бутони за ускоряване, забавяне или да иска от професора да повтори последната точка. Онлайн форумите са също така подобрения спрямо старите семинарни зали, където само един blowhard може да доминира в дискусията в даден момент.
Но това не е само природата на и технологията, която стои зад курсовата работа онлайн, набираща сила сред образователният индустриален комплекс. Тя също спомага за гъвкавостта да учиш когато и където е необходимо. Това променя динамиката, тъй като хората вече не трябва да инвестират в 4 години скандално обучение с голям брой курсове, които в последствие е възможно и да не бъдат от голямо значение за живота им или бъдещата им работа. Може да получите нова информация по всяко време, без да затормозявате мозъка си с твърде много излишни данни.
Използвани материали
http://www.infoworld.com/article/3039935/application-development/21-hot-programming-trends-and-21-going-cold.html?page=2
Отзиви