Home » Devel, Весници и списанија

txt:Клик: Вовед во програмирање – креирање слободен со слободен софтвер

7 March 2010 One Comment

Програмерите и тие кои сакаат да програмираат веќе нема од што да стравуваат. Секој втор може да стане „програмер“ и да развива софтвер за платформа по негов избор со многу малку познавање и посветеност. Тоа сето доведува до една ситуација од која најверојатно нема да има излез во доследно време. Многу квалитетни програмери кои едноставно не се нашле во право место со правиот избор ќе бидат изоставени од трката за доминација на мобилните платформи кои денеска постојат. Во тој свет ќе владеат луѓе кои гледаат прогресивно кон креирањето на софтвер и кои на овој или оној (читај професионално или лачки) ќе бидат дел од мобилната револуција која во последно време почнува да допира и на нашите простори. Со оглед на тоа што програмирањето во Македонија во голема мера е потценета професија барем од круговите каде владее вертикалната хиерархија, би сакал да ве запознам со процесите на креирање слободен софтвер со помош на алатки кои и самите се слободен софтвер. Нема да имате никаков проблем да се вклопите во средина во која ќе можете да развивате софтвер, со оглед на тоа што доколку веќе го читате овој текст вашето внимание е привлечено и можеме послободно да дискутираме за нешто понапредни теми од обично инсталирање на софтвер и негово конфигурирање. Пред да прејдеме на конкретни примери за програмирање, ќе споменеме збор-два за некои концепти на развојот на софтвер во кои спаѓаат веб и десктоп развојот и нивното поврзување преку мобилните апликации и средини за креирање на апликации.

Концептите за развој на софтвер постојат уште од самото промовирање на информатичката технологија. Првите компјутери се директно поврзани со креирањето на софтвер за негово работење. Кога мислам првите компјутери, не целам на оние кои биле измислени пред и за време на втората светска војна, туку сметачки машини кои многу порано се користеле и биле механички. Работењето на софтверот врз база на хардвер денес е незамисливо без процесот на креирање на тој софтвер. Едно нормално општество кое цели да биде информатичко мора јасно да стави акцент врз развојот на софтвер и поддршката на програмерите кои ги завршуваат своите студии по овие струки, за што полесно и побрзо инволвирање и интегрирање со општествените норми и начини на помагање на социјалните процеси со користење на информатички цели. Пред извесно време се појавија вести дека Европа практично има дефицит на програмери. Тоа ни остава голем простор и релаксираност во однос на прашањата околу правилниот избор на професијата. Но секако не смее да се изостави и фактот што оваа професија и тоа како брзо се развива и дека не смееме да поминеме ни ден без притоа да видиме што има ново во областите кои не интересираат. Тоа денеска со многуте RSS читачи е лесно, нели? Но исто така проаѓаат и редица факти и незабележани работи од понеискусните програмери кои според мене треба да бидат јасно донесени на површината за поквалитетно оформување на програмерот како професионалец и кои во продолжение ќе се обидам да ги појаснам. Најважната работа која секој програмер треба да ја знае е дека нема да стане програмер само ако чита и ги разбира работите. Секако, вие сте интелигентен и млад амбицизен човек кој сака да создава апликации, но тоа не ве прави програмер. Програмерот, е комплексна личност која постојано го надоградува не само начинот на професионално размислување и донесување одлуки, туку и целокупното дизајнирање на одлуките во приваниот живот. Еднаш штом се навлезе барем „до колена“ во програмерските води, веднаш започнувате да размислувате на различен начин и коренито да наоѓате решенија за проблемите со кои се соочувате. Програмерот мора да програмира. Понатаму, програмерот мора да учи од подобри програмери. Тоа што јас лично го имав научено во периодот пред професионално да се бавам со програмирање, испадна дека нема никаква врска со програмирањето во целина. Практично многу често може да се дојде до ситуација кога ќе се соочите со реален проблем и ќе помислите дека сте ја промашиле струката. Не се откажувајте. Никој не станал професионалец преку ноќ. За сѐ треба надоградба и посветеност. За потоа да дојде веројатно најгадниот сегмент од развојот на програмерот – одлуката дали тој сака да се посвети целосно на професијата и целосно да биде асоцијализиран или да најде баланс помеѓу приватните уживања и обврски и професионалните ангажмани. Би ве советувал да го изберете второто. Секако за да бидете успешен во креирањето на вашата професија, развојот и реализацијата на ваши оригинални идеи би одиграла најзначајна улога во обезбедувањето на квалитетен живот на материјално и професионално ниво.

Google Android Многу битно е денес програмерот да одлучи што впрочем сака да програмира. Тоа за почетниците е вистински пекол. Иако многумина советуваат да започнете темелно да учите да програмирате од јазици на пониско ниво како што е C, не е редок случај кога програмерите започнале да ја градат својата професионалност од јазици од рангот на Python, Ruby или пак Java, C# итн. Сите овие имаат една заедничка особина која е минимален критериум за нивно изучување доколку сакате лесно да ги сфатите – објектно ориентираниот модел на програмирање (против функционалното програмирање). Секако, би било паметно да почнете да развивате софтвер на компјутер, за потоа да можете лесно да се префрлите на некој мобилен уред како што би бил мобилен телефон или друг embeded уред. Денес мобилните технологии претставуваат најголем предизвик и ветуваат добра иднина за секој кој ќе започне да ги работи и програмира. Тоа не значи дека уште веднаш треба да се фатите со програмирање на мобилни апликации. Разликата од развојот на мобилни апликации и развој за PC не е голема. Ги дели само намената и хардверските ограничувања кои би ги имале при користење на хардверските платформи. Во последно време се направија многу измени во светот на платформите и софтверот за развој на мобилни апликации. Впрочем нема појдовна точка од каде би започнале со потенцирање на тие разлики. Само ќе нафрлиме неколку работи. Во моментот доминираат неколку платформи за развој на софтвер за мобилни телефони. Најпрво ќе го споменеме iPhone кој беше прв во развојот на хардверска платформа со дополнителен SDK (Software Development Kit) за развој на апликации за нивните телефони. Во игра од поодамна беше Nokia кои пред извесно време ја купија надежната Норвешка компанија Trolltech и од нивниот слободен C++ фрејмворк направија вистинско продиџи. И секако Google со нивниот Android. Што е интересно за последните две платформи. Google Android е цел оперативен систем за мобилни уреди кој работи врз основа на Linux јадрото, додека фрејмворкот на Nokia, кој се вика Qt (кјут) е целосно слободен софтвер зад кој стои гигант како Nokia. Од друга страна пак ги имаме познатите веб фрејмворци како што се Ruby On Rails, Django, разновидни Java веб имплементации како и популарните JavaScript енџини како што се jQuery, Prototype итн. Сето ова дава слика дека десктоп програмирањето во еден момент се спојува со веб програмирањето во делот на мобилните апликации. Доколку имате развиено веб сервис (пр. Twitter) кој нема своја десктоп апликација (со која корисниците би си ги апдејтирале своите статуси), тогаш нема никаква поента од користње на оптимизираниот веб сајт од мобилен во случај кога 99% од нас имаат лаптопи. Во тој случај останува да направиме нешто паметно за нас и околината. Да дојдеме до прекрасна идеја, да научиме да програмираме и да ја реализираме таа идеја. Потоа, азното само ќе си дојде.

За пример овојпат ќе објаснам како се креира софтвер со помош на популарниот Qt фрејмворк на Nokia. Примерите кои ќе бидат дадени ќе бидат елаборирани линија по линија и деловите каде има користење на IDE (Integrated Development Environment) ќе бидат сликовито прикажани. Во наредните броеви ќе опфатиме како да креирате и Веб апликација, а понатаму и како тие две да ги поврзите. Секако, ќе се задржам на нивото на изразување за да може да ме разберат и почетниците и понапредните програмери. Забелешки и идеи секако се добредојдени преку контакт центрите на редакцијата.

Qt – елегантно и брзо

Денес ретко ќе слушнете дека некој сака да развива софтвер со некој негов фрејмворк. Секако контролата врз тој процес е и тоа како поголема за разлика од изучувањето на нов фрејмворк, затоа што во првиот случај кодот кој ќе биде reusable е напишан од вас и ќе знаете што впрочем прави. Со цел да се избегне повторното измислување на топла вода, денес се користат фрејмворци како што е и Qt кој е мултиплатформски и апликациите кои ги развивате со негова помош ќе може лесно и брзо да ги портирате за многу платформи. Секако тука се и мобилните платформи (ако тоа производителот го дозволил преку неговата имплементација) како што се Symbian, Windows Mobile, Maemo итн. Qt е повеќе-платформски фрејмворк за развој на апликации, најчесто употребуван од страна на развивачите на графички апликации како тулкит за графички контроли, но не помалку и од програмери за не-графички потреби како што се алатки за во терминал или за задоволување на серверски потреби. Qt е најпознат како сржта на KDE, Opera, Google Earth, Google Picasa, Skype, Qtopia, Photoshop Elements итн. Создаден е првично од норвешката компанија Trolltech.

Qt користи C++ како програмски јазик со неколку нестандардни проширувања дополнително имплементирани со цел генерирање на C++ код пред компајлирањето. Qt исто така може да користи и други јазици преку многубројните поврзувања (eng. bindings), како што се Ada, C#, Java, PHP, Ruby (RubyQt) и Python (PyQt). Може да се користи на сите познати платформи (со мали исклучоци) со можности за локализација на алатките за развој но и на производите создадени со Qt. Не-графичките модули вбројуваат пристап до SQL бази на податоци, XML парсирање, справување со нишки, поддршка за мрежни операции и унифицирано повеќе-платформско API.
{{прв дел}}
Забелешка: текстот во целина е првично објавен во февруарскиот број на магазинот за компјутерска технологија „Клик“.

Post to Twitter Post to Delicious Post to Facebook Post to Reddit

One Comment »

Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.