Pythin
Pythin
Այնքան էլ համաձայն չեմ: Ինձ թվում է, ցանկացած լեզվով էլ կարելի է սովորել, ոչ մի առանձնապես տարբերություն չկա: Սկզբում այսպես թե այնպես սովորելու ես այնպիսի բաներ, որոնք բոլոր լեզուներում էլ պլյուս-մինուս նույնն են:
Իսկ C++ի գործունեության տիրույթը այլևս դժվար թե նեղանա: Ինքը արդեն մնացել է միայն այնտեղ, որտեղ արագագործություն է պահանջվում: Այդտեղից իրեն դուրս մղող թեկնածու չկա, ու չի էլ երևում, թե որտեղից կարող է հայտնվի:
proof ?Backend–ի համար, առնվազն վեբի ոլորտում(ու ոչ միայն) էս պահին ամենատարածված լեզուն Java–ն ա։ Java-ի պոպուլարությունը հիմա դանդաղ ընկնում ա, բայց սխալ չհասկանաք. էդ անկումը պայմանավորված ա JVM–ի վրա այլ լեզուների՝ Scala, Kotlin և այլն, առաջխաղացմամբ։ Այսինքն՝ JVM-ը շարունակում ա դոմինանտ մնալ ու զարգանալ։
https://insights.stackoverflow.com/s...nd-occupations
Web Developer (Most Popular Languages by Occupation)
Առաջին տեղում JavaScript-ն ա, երկրորդ տեղում, SQL-ը, որից հետո 3,4 -ը C#, JAVA ( պլյուս մի 3-4 տոկոս Scala-ն, որը էլի ոչ մի ձև դոմինանտ ու ամենատարածված լեզուն չի սարքում Java-ին ):
Ընդհանրապես իմ կարծիքով սովորելու համար ամենաարդյունավետը 2 լեզվով սովորելն է։ Մոտավորապես սենց՝
[JavaScript, Python] + [C#, Java, C++]
Օրինակ՝ JavaScript + C#: Ի՞նչ ա սա տալիս։
JavaScript-ը շատ հեշտ envoirment - ում ա աշխատում, single - threaded execution ա, որը շատ հեշտացնում ա control-flow-ի հասկանալը, կարելի ա կոդը պարզ ռեդակտորներում գրել, ասենք Sublime, Notpad++ և այլն։ Այսինքն էս լեզվով շատ հեշտ կարելի ա ծրագրավորման սկզբնական պրինցիպները հասկանալ, փոփոխականեր, ֆունկցիաներ, if, while, for և այլն։ Առանց շատ խորանալու թե ինչ ա կոմպիլյատորը, վիրտուալ մեքենաները և այլն։ Սա թույլ կտա սովորողին հարմարվել ծրագրավորման հետ։
Javascript-ով ներածություն անելուց հետո, էն ժամանակ երբ արդեն ընդհանուր պատկերացում կա, թե ինչ ա կոդը, երբ ու ոնց ա աշխատում, ինչ ա if-ը, ինչ ա փոփոխականը, կարելի ա անցնել C#-ի։
Եղած գիտելիքների վրա սովորել/հասկանալ OOP-ն, մասնավորապես ճիշտ դասեր նախագծել և օգտագործելը։ Սա կարելի ա սովորել C#-ով, JAVA-ով կամ C++-ով, էս մակարդակում արդեն շատ ցավոտ չի լինի։
Բայց մինչև ինչ որ լեզու սովորելը, խորհուրդ եմ տալիս ընդհանուր կարդալ ինչ ա համակարգիչը, ոնց ա աշխատում, ինչ ա հիշողությունը, պրոցեսսորը և այլն։
Հ․Գ․ Մեկ ա ցանկացած դեպքում, եթե հարցը վերաբերվում ա Web Development-ին ուզած չուզած էդ JavaStrip-ի հետ աշխատելու եք։
Աթեիստ (21.07.2017)
Նախ քո աղբյուրի մասին․
Եթե նկատեցիր, ես նշել էի որ Java–ն ամենատարածվածն ա backend–ի համար, ոչ թե հնդհանրապես։ Քո բերաած աղբյուրը երկու թերություն ունի․
- քո ցուցակը backend–ի մասին չի, այլ ընդհանրապես վեբ ծրագրավորման։ ՈՒ բնական ա, որ ցանկացած web սայթ անկախ նրանից, թե backend–ը ինչ ա, frontend–ը javascript ա, որտև պատմական–տեխնիկական պատճառներով այլընտրանք գրեթե չկա։ Նենց որ եթե ընդհանուր վեբը վերցնենք՝ backend ու frontend միասին, ապա պարզ ա, որ javascript–ը առաջինը կլինի։ Այսինքն՝ Javascript–ը էդ ցուցակում հայտնվել ա frontend–ի պատճառով։ backend–ում ինքը ոչ մի շանս չունի առաջինը լինելու։ Համենայն դեպս էս պահին ու մոտ ապագայում Ինչ վերաբերվում ա sql–ին, sql–ը ծրագրավորման լեզու չի առնվազն էն իմաստով, որը մենք էս պահին քննարկում ենք։ SQL–ը relational database–երի հարցումների լեզու ա, որը սենց թե նենց բոլորը օգտագործում են, անկախ նրանից թե backend–ի համար ինչ հիմնական լեզու են ընտրում։ Տակը մնում ա C#–ը որը ճիշտն ասած բացատրություն չունեմ ինչի ա տենց առաջ էդ ցուցակում․ ոչ մի ուրիշ աղբյուր C#–ը ամենատարածված չի համարում ու ընդհանրապես․ չնչին բացառություններով C#–ը backend–ի համար օգտագործվում ա մենակ microsoft սերվերներում․ հիմա հարց․ քո կարծիքով վեբ-ում microsoft server–ները քանի՞ տոկոս են կազմում linux–ի համեմատ։ Չնչին, չէ՞։ Էլ չասած, որ համարյա բոլոր խոշոր framework–երը ու տեխնոլոգիաները elasticsearch, hadoop և այլն Java–ի աշխարհից են գալիս C# ահագին ուշացումով։ Իմ ընկալմամբ C#–ը շատ հեռու ա Java–ից պոպուլարության առումով։
- Քո աղբյուրը ընդամենը stackoverflow–ի օգտագործողների հարցումներով ա կազմված, ինչը բավականաչափ օբյեկտիվ դժվար ա համարել։ Ընդհանրապես, backend–ի տեխնոլոգիաների տարածվածությունը օբյեկտիվ գնահատելը տեխնիկապես դժվար ա, որովհետև ի տարբերություն frontend–ի, backend–ը հանրայնորեն տեսանելի չի։ ասենք խոշոր serverside enterprise application–ների ոլորտում ամենախորհուրդ տրվող լեզուն java–ն ա, բայց enterprise ոլորտը օբյեկտիվ պատճառներով վարագույրների հետևում ա մնում։ ոչ մեկ դրանց կոդը չի տեսնում
Հիմա իմ աղբյուրները․
Ծրագրավորման լեզուների պոպուլարության վերաբերյալ ամենաշատ ցիտվող ու քիչ թե շատ օբյեկտիվության հավակնող աղբյուրը https://www.tiobe.com/tiobe-index/ -ն ա, ինչը ես արդեն բերել էի իմ նախորդ գրառման մեջ։ Էդտեղ Java–ն առաջինն ա, ընդ որում որպես ընդհանրապես ամենատարածված, ոչ թե միայն backend–ում։
Ծրագրավորման լեզուների մի ուրիշ տարածված ինդեքս էլ http://pypl.github.io/PYPL.html -ն ա, էլի Java–ն առաջինն ա։
Բայց իհարկե տարածվածության գնահատման միանանշանակ մեթոդոլոգիա ցավոք մարդկությանը դեռ հայտնի չի
Добро победило зло, поставило его на колени и зверски убило
Իհարկե ծրագրավորման առանցքային սկզբունքները՝ flow control statements, օպերատորներ, OOP և այլն գրեթե բոլոր լեզուներում հիմնականում նույնն են, էդ առումով համաձայն եմ, բայց կարծում եմ սովորելու համար ցանկալի ա ընտրել լեզու, որը պարզ ա, որում կողքից աղմուկը՝ տարբեր «ֆինտիֆլյուշկեք» ու ոչ տրամաբանական, ոչ ինտուիտիվ կոնցեպտները քիչ են, որում ծրագրավորման best practice–ների կուլտուրա կա։ Էդ առումով․
C++–ը բարդ ա, չափից շատ են տարբեր հնարավորությունները, պատահաբար ոտիդ կրակելու շանսերը շատ են (ցուցիչներ, հիշողության կառավարում (կամ ավելի ճիշտ սկսնակների համար անկառավարում ), հասցեների մակարդակով low level քյանդրբազություններ և այլն)։
Scala–ն շա՜տ բարդ ա․ հերիք չի ֆունկցիոնալ ու օբյեկտային կողմնորոշմամբ ծրագրավորման սկզբունքները համատեղած ա, հետն էլ աշխարհում ինչքան ծրագրավորման ֆինտիֆլյուշկա կա, մեջը խցկած ա։ Scala–ի սովորելու բարդ լինելը բոլորի կողմից ընդունվող ճշմարտություն ա։ Scala–ն եթե լավ մենթոր չունես կողքիդ, քեզ լրիվ ազատություն ա տալիս աշխարհի ամենասարսափելի կոդը գրելու Բայց եթե գործից հասկացող մեկը գլխիդ կանգնած ա, շատ էլեգանտ լուծում եր կարաս ստանաս
javascript, php - լիքը անտրամաբանական, շփոթացնող բաներ կան․ Արամի բերած true + 6 == "1" * 7 օրինակը քեզ նվեր։ PHP–ում էս տիպի բաների ու որոշ design choice–երի պատճառով փնթի կոդ գրելու ընդունված կուլտուրա կա ու սովորաբար մինչև PHP–ից սկսած մարդուն խելքի ես բերում որ մարդավարի, software development best practice–ներով կոդ գրի ուրիշ լեզուներով, ահագին ժամանակ ա պահանջվում։
R – իմ տեսած ամենատարօրինակ լեզուն ա, ինչքան ուժ ունի աբսուրդ լեզու ա։ Տենց ա լինում որ ստատիստիկայի մասնագետին վստահում ես, որ ծրագրավորման լեզու հնարի
Հենց էս պատճառով, արևմտյան ճանաչված համալսարանների մեծ մասը Java են սովորացնում որպես առաջին լեզու։ Որտև Java–ն մինիմալիստական ա, փնթի չի PHP կամ Javascript–ի նման, ու OOP–ի սկզբունքները հասկանալու համար շատ հարմար ա։
Հիմա նաև որոշ համալսարաններ python են սովորացնում որպես առաջին լեզու։ Բայց դե անձամբ ես dynamically typed լեզուներ չեմ սիրում․ իմ անձնական կարծիքով թերությունները շատ ավելին են, քան առավելությունները ու սովորելու համար հատկապես ստատիկ տիպերից սկսելը ցանկալի ա։
Հ․ Գ․
Kotlin–ը կյանք ա համ OOP համ functional programming–ի հնարավորություն, բայց մինիմալիստական, առանց scala–ի բարդության ու առանց Java–ի boilerplate–ի։ բա որ null safity–ի իրանց լուծումը տեսնեք
Էս վերջերս էլ Google–ը հայտարարեց, որ android–ի համար Kotlin–ի մեջքին կանգնած ա
https://www.theverge.com/2017/5/17/1...opment-io-2017
https://techcrunch.com/2017/05/17/go...-android-apps/
Վերջին խմբագրող՝ Արշակ: 21.07.2017, 15:39:
Добро победило зло, поставило его на колени и зверски убило
Ներսես_AM (21.07.2017)
Գուցե, բայց էդ տիրույթում օրինակ Rust–ը վերջերս ամենաարագ պոպուլարություն հավաքող լեզուներից մեկն ա համարվում ու շատերը համարում են, որ C++–ը Rust–ով փոխարինելու ժամանակն ա. https://www.rust-lang.org/en-US/
Ինքս լեզվին ծանոթ չեմ ու չգիտեմ ինքանով ժամանակի քննությանը կդիմանա․ տեսնենք
https://techcrunch.com/2017/07/16/death-to-c/
Վերջին խմբագրող՝ Արշակ: 21.07.2017, 14:35:
Добро победило зло, поставило его на колени и зверски убило
Ներսես_AM (21.07.2017)
R-ին բան չասել ես որ ծրագրավորումից հեռու եմ, հեշտությամբ սովորել եմ R: Էդ առումով Python-ն ավելի բարդ ա:
Շարունակեմ proof–ը․
Եթե գուգում գրես․ «most popular programming languages» – առաջինը TIOBE ինդեքսն ա բերում, որը ամենաշատն ա ցիտվում ու մեջներից օբյեկտիվն ա համարվում(հիմնված ա տարբեր search engine–ների փնտրումների վրա)։
Հաջորդը IEEEE Spectrum–ն ա․ http://spectrum.ieee.org/ns/IEEE_TPL...100/1/25/1/40/
Որը տարբեր չափանիշների ընտրության հնարավորություն ա տալիս, ու իրանց կարծիքով վեբում ամենատարածվածը Python–ն ա, հետո Java–ն։ Իսկ եթե ընտրում ես ըստ գործատուների պահանջների, ապա առաջինը java–ն ա (բնականաբար, որովհետև մյուս բոլոր չափանիշների դեպքում փակ կոդով serverside-ը ոչ մի կերպ չի կարող երևալ, ուր ջավան միանշանակ լիդեր ա)։
Հաջորդը PYPL-ն ա, google search–ի վրա հիմնված, էլի Java–ն ա ամենատարածվածը ըստ իրանց։
Մի ուրիշը, որը հիմնված ա stackoverflow–ի քննարկումների ու github–ի բաց կոդերի վրա, առաջինը Javascript–ն ա, հետո Java–ն։ ՈՒ հաշվի առնելով, որ Javascript–ը հիմնականում frontend ա, ու Java–ի backend կոդի մեծ մասը բաց դրած չի, հետևաբար հաշվարկների մեջ չեր կարող լինել, մնացածը արդեն ինքդ պատկերացրու, թե որ լեզուն ա backend–ի համար ամենատարածվածը
http://redmonk.com/sogrady/2017/03/1...rankings-1-17/
Добро победило зло, поставило его на колени и зверски убило
Որոշ մակերեսային ուսումնասիրությամբ չհասկացա թե ինչով է Rust-ը C++ից լավը: Ասենք, իր պաշտոնական կայքը ասում է "threads without data races": Ինչպե՞ս: C++ում եթե ես ունեմ փոփոխական, որին կարող է մի քանի thread-եր դիմեն, որոնցից գոնե մեկը իր արժեքը փոխում է, ես համապատասխան միջոցներ կձեռնարկեմ (ասենք, mutex-ով պաշտպանել): Դեպքեր կան սակայն, երբ ես հաստատ գիտեմ, որ դրա կարիքը չկա: Այդ գիտելիքիս հաշվին չեմ պաշտպանի, ու կոդը ավելի արագ կաշխատի: Հիմա Rust-ը ինչպե՞ս է այդ հարցը լուծելու: Եթե անխտիր պաշտպանելու է բոլոր փոփոխականները, կորցնելու է արդյունավետության մեջ: Իսկ եթե ծրագրավորողից է հարցնելու, թե որոնք պաշտպանի ու որ դեպքերում, ստացվում են "նույն ձվերը կողքից դիտելիս":
Արշակ ջան, իմ ընկալմամբ քո բերած ոչ մի proof-ը stackoverflow-ի հետ համեմատած, ընդհանրապես proof չեն, փորձեմ պարզաբանել՝
Քո բերած proof-երի աղբյուրները՝
1. GitHub-ի Explore էջից հավաքել են repo-ները, հաշվել կոդի տողերը, ըստ դրա ռանկինգ սարքել (http://redmonk.com)
2. Հավաքել ու անլաիզ են արել google-ում էդ լեզվով search արած tutorial -ների քանկաը (http://pypl.github.io, https://www.tiobe.com/tiobe-index/ (մոտովորապես էլի նույնն ա))
Իմ բերած proof-ի աղբյուրը՝
Հարցրել են 40.000 develop-երներից։ Այսինքն փաստացի հարցրել են էն մարդկանցից որոնք հենց հիմա զբաղված են ծրագրավորմամբ, աշխատում են և այլն։
Հիմա ըստ քեզ tutorial բառ սըռչ անողներն են ավելի օբյեկտիվ ինֆորմացիա, թե հենց ծրագրավորողի պատասխանածը։
Արշակ ջան, ես դա լավ հասկանում եմ, դրա համա էլ C#-ի հետ եմ Java-ն գրել, այսինքն թե՛ C# քվեարկողները և թե Java քվեարկողները backend են նկատի ունեցել: Այսինքն եթե Java-ն քո ասածի պես դոմինանատ ամենապոպուլյառ լեզուն լիներ, գոնե C#-ի նկատմամբ կարտացոլվեր։Այսինքն՝ Javascript–ը էդ ցուցակում հայտնվել ա frontend–ի պատճառով։ backend–ում ինքը ոչ մի շանս չունի առաջինը լինելու։
Համաձայն եմ, C# - ը Java-ից գլուխներով հետ ա, Big-Data processing-ում։Էլ չասած, որ համարյա բոլոր խոշոր framework–երը ու տեխնոլոգիաները elasticsearch, hadoop և այլն Java–ի աշխարհից են գալիս C# ահագին ուշացումով։
Իմ փորձի վրա հիմնվելով, կոնկրետ Հայաստանում բանկային/պետական համակարգերում 80-90 տոկոս C# ա։ Ուրիշ ոլորտների/երկրների մասին չեմ կարա պնդեմ, չգիտեմ։ասենք խոշոր serverside enterprise application–ների ոլորտում ամենախորհուրդ տրվող լեզուն java–ն ա
Հիմա արդեն ոչ էդքան չնչին։ 2017-ից սկսած C#-ը ակտիվ linux-ում էլ ա օգտագործվում։չնչին բացառություններով C#–ը backend–ի համար օգտագործվում ա մենակ microsoft սերվերներում
Քիչ, բայց էդ չի նշանակում, որ մնացածը Java-են։ Ես ավելի շատ մտածում եմ, որ մեծ մասը linux-երի վրա PHP-են ոչ թե Java:քո կարծիքով վեբ-ում microsoft server–ները քանի՞ տոկոս են կազմում linux–ի համեմատ։
Հ․Գ․ Ես քո հետ լրիվ համաձայն կլինեի, եթե նույն խոսակցությունը լիներ 5 տարի առաջ, բայց ոչ հիմա։
Վերջին խմբագրող՝ Արամ: 21.07.2017, 16:48:
Արամ ջան, նախ 40,000 հոգին շատ փոքր թիվ ա աշխարհի վերաբերյալ վստահելի գնահատական տալու համար։ Ընդ որում, էդ ընդամենը մի սայթի այցելուների հարցում ա (բան չունեմ ասելու՝ ծրագրավորողների համար կարևոր սայթի, բայց ամեն դեպքում․․․)։ Երկրորդը՝ ինչո՞վ են github–ում open source կոդ գրողները ավելի պակաս վստահելի stackoverflow–ում հարցեր տվողներից Ես հակառակը կասեի։ Երրորդը, մի ուղղում google search–ի վերաբերյալ․ TIOBE ինդեքսում ոչ թե tutorial փնտրողներին են հաշվվում, այլ +"<language> programming" հարցումները, որին օրինակ կարող ա համապատասխանի իմ Java–ի վերաբերյալ ինչ–որ բարդ խնդրով փնտրումը։ ՈՒ ամեն դեպքում, էդ ինդեքսը երևի ամենաշատը արտահայտում ա թե ինչքան մեծ ա տվյալ լեզվի վերաբերյալ հետաքրքրությունը աշխարհում, ինչը ավելի օբյեկտիվ կանխատեսում ա տալիս, թե որ լեզուներն են ավելի շատ օգտագործվելու մոտ ապագայում։
էս էլ IEEEE Spectrum-ի մեթոդները – http://spectrum.ieee.org/ns/IEEE_TPL_2017/methods.html Սրա մասի՞ն ինչ կասես։ Չափանիշներից մեկը, որով Java–ն առաջինն ա, աշխատատեղերի հայտարարությունների քանակն ա ԱՄՆ-ում։ էդ սայթում ցանկացած չափանիշով C#-ը կիլոմետրերով հեռու ա Java–ից։
Մի խոսքով, ինչպես արդեն ասեցի նախորդ գրառմանս մեջ, օբյեկտիվ գնահատական տալը դժվար ա, էս հարցով քննարկումը կրոնական վեճի կարա վերածվի, բայց այնուամենայնիվ ինձ վերը նշված աղբյուրները ավելի վստահելի են թվում։
հա, երկուսն էլ backend են, բան չունեմ ասելու, կոնկրետ stackoverflow–ում չնչին ա տարբերությունը՝ պրակտիկորեն հավասար են Java–ն ու C#–ը, բայց էլի եմ ասում ինձ stackoverflow–ի 40,000–հոգու հարցումները բավական չեն։ Հատկապես հաշվի առնելով մնացած աղբյուրներն ու փաստարկները։
Կոնկրետ թվեր չգիտեմ, բայց իմ տպավորությամբ կոնկրետ Հայաստանում Java անող ֆիրմաները շա՜տ ավելի շատ են, քան C#։ Պետական համակարգերից տեղյակ չեմ առանձնապես։
Իսկ աշխարհի վերաբերյալ, "most popular programming languages" փնտրումը որ անում էի, սենց էջ բերեց աշխարհի ամենախոշոր վեբսայթերի օգտագործած backend լեզուների վերաբերյալ․
https://en.wikipedia.org/wiki/Progra...pular_websites
Ամենաշատը Java–ն ա էլի ASP.net–ը կարելի ա C# հաշվել, մենակ Microsoft–ի սայթերում ա հանդիպում
Գուցե կարելի ա ասել, որ վերջապես Microsoft–ը linux–ի համար .net հանեց, բայց ակտիվ օգտագործու՞մ՝չես համոզի։
Պուճուր կայքեր սպասարկող սերվերների վրա երևի թե մեծ մասը դեռ PHP են։ Ավելի լուրջ web application–ների դեպքում՝ հաստատ չէ։
Добро победило зло, поставило его на колени и зверски убило
Այս պահին թեմայում են 1 հոգի. (0 անդամ և 1 հյուր)
Էջանիշներ