Հետևել

Գայզ

Ծրագրավորման ինտռո դասերի համար լեզու պիտի ընտրեմ։ Պիտի լինի.
* Սթռոնգ/ստատիկ թայփինգ
* ունենա ֆունկցիաների ու պռոցեդուռաների հստակ բաժանում
* Հայըռ օռդռ ֆանքշըններով
* Մինիմալ ու ինչքան հնարավոր ա "պարզ" բառերով արտահայտվելու հնարավորություն տա (տպելը՝ print, տիպը՝ type, ․․․)
* Սեփական տիպեր ստեղծելու մեխանիզմ
* Լավ թուլինգ (դեբագեռ, յունիթ տեստ լիբ, IDE/editor support, REPL)

Մտքովս Պասկալն ա անցնում մենակ, ափսոս ՌԵՊԼ չունի։ Ի՞նչ կառաջարկեք։ Խառը սինտաքսը ընդունելի ա։

· · Web · 2 · 0 · 2

@gurgen Կլաս, դիս, կոնստրուկտոր ու ֆունկցիաների ու պռոցեդուռաների առանձին բառեր չունենալը դուրս չի գալիս։

@spectrum

եթէ մի քիչ էլ խստացնես պահանջները՝ պիտի քո լեզուն յօրինես, ու դրա իրականացմամբ զբաղուես։

դա նոյնիսկ գուցէ նախանձելի ա, զի ես, հմտութիւններով քիչ թէ շատ տիրապետելով, չեմ տեսնում որ կարիք ունեմ լեզուի, որն արդէն նախագծուած չի։

@gurgen

@spectrum

վերջերս շելլի մասին էի մտածում, ու շելլ սկրիպտինգ լեզուի։

@gurgen

@spectrum
Դրանք սաղ էլ կան, կլասսիկ օօպական բացատրություն չունեն բայց կան

@gurgen Ճիշտ ես, բայց Պասկալում (շատը սրա մասին եմ եմ մտածել, դրա համար օրինակներս ստեղից ա) առանց կլասս ու ըքսես մոդիֆայեռ ու կոնստրուկտոր կարաս տիպեր սարքես։ Հետո ինձ ՕՕՊ կամ ՖՊ շուրջ հավաքած պետք չի շատ։

Հարցս կիսատ եմ ասել, էս կուրսը ծրագրավորման գաղափարների հետ ծանոթություն ա։ Հետո արդեն գալիս են լեզուն հաշվի առնող կուրսեր որոնք ստեղի գաղափարները զարգացնում ու նոր բաներ են ասում արդեն լեզվի կոնտեքստում։

Մտածի սրա մասին որպես SICP-ի 1, 2 ու 3 մասերի զգալի պարզեցված ու թայփսեյֆ տեսակը։

@spectrum
Հա ԹՍ-ում կարաս ուղղակի տիպ սարքես առանց ոչմիբանի։ Ալգեբրայիկ տիպեր էլ կան։ Մնացածի մասով չգիտեմ ինչ արժի :ճ դու էիր չէ ասում որ հնարավորության դեպքում Io-ով կսովորեցնես? ԹՍ-ը նույն գաղափարները էլի ունի

@spectrum

print ֊ի պահով ասեմ, որ պասկաի «հեշտացնող» write/writeln֊ն իրականում մոլորեցնող ա, զի՝ նախ պարզ չի, ինչի ա էդ բացառութիւն ու լեզուի մաս, յետոյ էլ պարզ չի՝ ինչի՞ ա էդ բացառութիւն ու ընդունում ա ցանկացած քանակի արգումենտ։

ըստ որում դա հէնց պասկալը չի, դա turbo pascal֊ի դիալեկտն ա, բայց էական չի։

այս թղթում norayr.am/papers/murtagh.pdf համեմատում են ադա֊ն ու պասկալը՝ ներածական դասընթացի համար, ու կարեւորում են, որ ադա֊ում պէտք ա փաքաջ միացնել i/o անելու համար, ու մարդիկ դա սկսում են ջոկել։

@spectrum

ի՞նչ ա նշանակում procedure/function յստակ բաժանում։

ինքը վիրտը, որ դասախօս էր ու փորձում էր հէնց սովորելու համար էլ պարզ լեզուներ անել՝ պասկալի իր շատ դիզայնի որոշումներ սխալ ա համարում, ու ապագայ լեզուներում այլեւս չունի function բառը՝ պարզապէս ասում ա որ եթէ պրոցեդուրան վերադարձնում ա՝ ապա կոչւում ա՝ function procedure։

@spectrum
վերադառնալով i/o֊ին, ուզում եմ ասել որ առաջարկում եմ էս ձեւը՝

սկզբից մարդիկ օգտագործում են return՝ ծրագրի exit code վերադարձնելու համար, որը կարողանում են shell֊ից կարդալ echo $? կամ ոնց ա վինդովսում նման բան։

այսպէս նաեւ կը ծանօթանան միջավայրի փոփոխականներին։

իսկ յետոյ նոր սովորեն նոր մոդուլ միացնել, ու դրա ֆունկցիաները կիրառել։

միւս կողմից՝ գուցէ դա բարդացնում ա ըստ քեզ, ու պէտք չի։

@spectrum ես իհարկէ շատ կանխատեսելի կը լինեմ, որ ասեմ թէ oberon֊ից լաւ լեզու չես գտնի ներածական դասընթացի համար՝ պարզ, փոքր սինտաքսով, ոչ մի երկիմաստութիւն չկայ, սպանիչ ճկուն, ու քո ուզած բոլոր բաներն ունի, բացի repl֊ից՝ բայց դա ամէն լուրջ քոմփայլ լինող լեզուն չունի՝ մարդիկ սովորում են քոմփայլ անել, ու՝ դէ պիտի ասենք IO մոդուլ միացնես i/o անելու համար, կամ Out մոդուլն ա ստանդարտիզացուած՝ output֊ի համար։

@spectrum մէկ էլ դեբագինգն ա խնդիր՝ բայց դա ես եմ մեղաւոր։

պէտք ա նէնց անէի որ ճիշտ դեբագ սիմվոլներ գեներացուէին ու gdb֊ով աշխատէր։

էդպէս անում ա gnu modula-2֊ը (որն աւաղ էդքան պարզ լեզու չի ու օօպ չունի)՝ ճիշտ դեբագ սիմուոլներ ու gdb֊ով կամ ցանկացած իր ֆրոնտենդով դեբագ ա լինում։

ու, յուսամ, modula-3֊ն ա անում, որն աւելի նման ա էսօր ստանդարտ լեզուների՝ ինտերֆէյսներով ու ջեներիկներով։

@spectrum ասեմ որ վիրտն ինքը դեբագ չի սիրում, ու իր օհ֊երում յատուկ չի աւելացրել՝ սովորեցնում էր էնքան պարզ կոդ գրել, որ դեբագի կարիք չլինի։

ջղայնանում ա՝ ասում ա՝ ծրագրաւորումը science ա, trying չի։

@spectrum բայց ամէնակարեւոր խնդիրն որ ունենալու ես՝ ինձ թւում ա՝ այն ա, որ մարդիկ չեն հասկանայ, ինչի՞ ես դու իրենց սովորեցնում մի լեզուով, որ էսօր տարածուած չի։

կուզեն փայթըն, զի լսել են դրա մասին։
իրենք կուզեն։
բունտ կանեն։

հա, մէկ էլ մտածեցի, որ էդ իմ ասած պարզութեանը ու դիզայնի սիրունութեանը գուցէ nim֊ն ու golang֊ն են մօտենում, ու կարող ես դրանք փորձել։

@spectrum մէկ էլ նկատել եմ որ սկսնակներին թւում ա թէ եթէ կոնսոլ ծրագիր են գրում՝ էդ լուրջ չի, իսկ այ եթէ գուի են գրում՝ էդ լուրջ ա։ ու հետեւաբար՝ գուի գրելու գործիքը լուրջ ա, իսկ կոնսոլ՝ չէ։

որը շատ զարմանալի ա՝ ո՞նց ա տէնց ընկալւում։

@spectrum ես ընդհանուր առմամբ տեսնում եմ որ քո ուզածներին կարող ա պասկալը կամ ադան համապատասխանէին՝ բայց ես տեսնում եմ սովորեցնելու համար այլ խնդիր՝ մարդիկ զգում են, որ գործիքին լրիւ չեն տիրապետում, գիտեն որ սինտաքսի մէջ էլի բաներ կան, որ չեն իմացել։

մինչդեռ օբերոնի դէպքում, կարելի ա սինտաքսը լրիւ իմանալ, զի այն շատ փոքր ա ու արդէն կենտրոնանալ հէնց ծրագրաւորում սովորելու վրայ։

@norayr @spectrum
համ էլ, մի +, չեն կարող որոնել խնդրի լուծում, զի չկայ, ստիպուած գրքերն են փորփրելու՝ լաւագոյն դէպքում, վատագոյն դէպքում էլ, գտնելու են լուծում այլ լեզուով՝ ու փորձեն թարգմանել մօտեցումը, ու էլի շահած են դուրս գալու։

համ էլ, եթէ պասկալ, հէնա օբերոն էլի։ իշ պասկալ

@kamee @norayr Իմ ամենապարզ ֆիլտրը էս ա - հըլո որլդ գրելու համար քանի ավել բառ ա գրում մարդ։ Oberon-ում պիտի իմպոռտ ու մոդուլ անես ինչը լավ ա ծրագրավորման լեզվի համար բայց վատ ա իմ։ Ես ուզում եմ խոսել մոդուլից ու իմպոռտից երբ ինձ ա հարմար, ոչ լեզվին։ expression evaluation ցույց տալուց չեմ ուզում ասել սա գրեք հետո կիմամանք։ Պասկալն էլ ա փուստ տալիս, զի 1 + 1 չես գրի ՌԵՊԼ-ում ու աշխատացնես բայց գոնե էն ավելը ինչ պիտի գրես procedure, begin ու end ու ավելի շուտ ա հանդիպում կուրսում ու պարզ բան ա։

@spectrum @kamee

հէնց այդ պատճառով յղեցի իմ յղած թերթին՝ զի այնտեղ արդիւնաւէտութեամբ բացատրում ա, որ մարդիկ, որ ադա֊ում իմպորտ են արել, աւելի լաւ են հասկանում ծրագրաւորում դասընթացի աւարտի ժամանակ, քան նրանք, որ պասկալում writeln են գրել։

@kamee @norayr

-- Ada
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;

procedure Main is
begin
Put(1+1);
end Main;

-- Pascal
begin
WriteLn(1+1);
ReadLn;
end.

Էրկուսն էլ սրտովս չի։ Պլյուս նոր հասկացա որ փոփոխական/հաստատուն հայտարարելը մի տ(ե/ո)ղ չի։ Էտ լեզվի որոշում ա որը շատ "օփինիոնեյթիդ" ա։

Հ․Գ․

Վերջը Սկալա եմ անելու ։ՃՃՃ

@spectrum @kamee ես կրկին պնդում եմ որ աւել բառ գրելը խնդիր չի, բայց՝

MODULE test;
IMPORT Out;

BEGIN
Out..Int(1+1, 0); Out.Ln

END test.

@spectrum @kamee օկ էդ պասկալական մօտեցումը որ writeln֊ը լեզուի մաս ա, շատ աւելի լաւ լեզւում էսօր կայ՝ zonnon։

էդ լեզուն ցիւրիխում սարքել են մայքրոսոֆթի հետազօտական գրանտով՝ դոթնեթի համար։

բայց աւաղ լաւ կազմարկիչ չկայ, կամ ինձ դուր չի գալիս եղածը՝ զի կապուած ա դոթնեթի հետ։ բայց դա էական չի։

zonnon֊ը բաւական լաւն ա՝ փաստացի ակտիւ օբերոն ա, ուր հետաքրքիր ձեւով զուգահեռացման խնդիրն են մօտեցել։

@spectrum @kamee հէնց գլխաւոր էջում կայ հելո վորլդի օրինակ՝

module HelloWorld;

begin
writeln('Hello, GitHub!')
end HelloWorld.

zonnon.org/

@antranigv @spectrum @kamee մի հատ էլ կպած ա IDE֊ին իրականում՝ օգտագործում ա մայքրոսոֆթի լիբ, որը սինտաքս հայլայթ ա անում, ու էնտեղ ոնց որ առանձին վարկած կայ որը չի անում։

Show newer

@norayr
աւելի ճիշտ ոչ թե նուիրել այլ մակագրել։

Show newer

@norayr Էտ բողոքը հեչ ։ՃՃՃ նիմի մասին չէի լսել, լուքս փրոմիսինգ։ Սրանք էլ նայեմ

@norayr Երեկ խոսում էի մարդու հետ, ով էս դասընթացի ոչ տեխնիկական մասերն ա ապահովում, ինքն էլ ասեց բողոքի պահը։ Լավն էն ա որ երկուսս էլ հասակնում ենք որ բողոքը անկապ ա, մի բան կանենք։ Բայց իթ որ պասկալի շուրջ կա անկապ ձևավոևված "բուուուուու" կարծիք։ Այ որ Ադա լինի կամ Նիմ կամ "ոչ-պասկալ" անկապ բու անողը էլ չի կարող որովհետև ոչ ինքն ա լսել դրա մասին, որ իրա բու անող ընկերները։

@spectrum ու ծիծաղելին էն ա որ թուարկածդ լեզուներից՝ պասկալն ա որ էսօր (չնայած ես դիզայնի հետ խնդիրներ ունեմ) լրիւ պատրաստ ա ու ձեռք ա տալիս արդիւնաբերական արտադրութեան համար՝ շատ աւելի, քան եղած ու օգտագործուող մէյնսթրիմ այլընտրանքները։

@spectrum ո՞րը՝ որ պասկալն ունի վատ համբա՞ւ, թէ՞ որ կիրառելի ա, բայց չի օգտագործւում։

առաջինը, երեւի էն պատճառով ա որ մարդկանց պոլիտեքնիկում դէմ էին տալիս տուրբօ պասկալ այդիի֊ի, որը պոլիտեքնիկից դուրս կիրառելի չէր, ոչ միայն գործ գտնելու առումով, այլ եւ՝ 16բիթանի քոմփայլերով դօսի համար ակնյայտ ա որ չես ուզի գրել 32բիթ ուինդոուսի համար։

սա մեր կոնտեքստը։

ի դէպ, ստեղ ուզում եմ յղել նոյն թղթի այլ բաժնին, ուր ասում ա որ տուրբօ պասկալի միջավայրը չէր տալիս հասկանալ, որ ամէն խմբագրիչով էլ կարող ես …

@spectrum կարող ես գրել, իսկ կազմարկել՝ արդէն կոմպիլեատոր քոմանդլայն կանչելով, կամ դեբագ անել՝ առանձին դեբագեր, ու որ խմբագրիչն ու կոմպիլեատորը ու դեբագերը տեսականօրէն կարելի ա փոխել։

իսկ լեզուն դրանցից կախուած չի։

ինձ թւում ա՝ դու սէնց չես ուզի, բայց ինձ հէնց սա ա թւում կարեւոր, որ մարդիկ սկզբի համար հասկանան։

@spectrum իսկ ինչի՞ ամն֊ում սկսեց չկիրառուել՝ դա մեծ հարց ա որ շատ պատասխաններ ունի, ու ես հակւում եմ կարեւորել էն, որ պասկալը՝ եւրոպական դեւելոփմենթի մշակոյթի մէջ ա, ու իր աջակիցները, ասենք դիյկստրան՝ եւրոպացի ա։
ամերիկացուն մօտ ա լիբերալ մօտեցում, երբ ազատ ես ոտքիդ կրակել՝ չբռնուեցիր, կամ չպայթեց՝ շահեցիր։
այդ պատճառով նիւ֊եօրքում մարդիկ հանգիստ հատում են 5֊րդ աւենիւն ուր ուզեն։
իսկ ցիւրիխում՝ վիրտի տեղանքում՝ չես համարձակուի փողոցն անցնել առանց լուսակիր՝ իսկ ոստիկանական պատրուլները

@spectrum պատրուլների կազմի մէջ միշտ կին կայ, որովհետեւ ցանկացած մարդու կարող են կանգնեցնել եւ խուզարկել։ առանց պատճառի։

բնական ա, որ եւրոպայում այլ մօտեցումներ ու դիսցիպլինա պէտք ա ստեղծուէր։

ինչո՞ւ այն կենսակայուն չեղաւ՝ զի ամն տնտեսութիւնն ա ամենահզօրը, ու ամն֊ն ա եղել համակարգիչների եւ օհ֊երի արտահանողը, իսկ երբ դրանք հաւաքւում էին չինաստանում՝ միեւնոյնն ա՝ intellectual property֊ի ունեցողը ամն ընկերութիւն էր։

ու ում տնտեսութիւնն ա ուժեղ, ու ով ա էքսպորտ անում՝ դա ա կարեւոր։

@spectrum անիրատեսական էր, եւ այդ պատճառով էլ չեղաւ, չնայած սկզբից վիրտի օբերոն օհ֊ով եւ իր համակարգիչներով, որ երկուսն էլ «ին հաուս» սարքել էին, եւ ցանցը, եւ տպիչների սերուերներ, ամբողջ համալսարանը աշխատում էր՝ բայց մի հետազօտական թիմ չի կարող եւ բիզնէսով զբաղուել, եւ ապահովել համակարգիչներ եւ գործիքակազմ համալսարանի, եւ շատ բանի համար։

@spectrum միւս կարեւոր յանգամանքը լեզուի համար՝ խոշոր աջակիցներ ունենալն ա։

էսօր, պատահական չի, որ եթէ մոզիլլան չկանգնէր ռասթի ետեւում, իսկ գուգլը՝ գոլանգի՝ դրանք չէին տարածուի, օգտուողներ շատ քիչ կը լինէին, ու նիմ֊ի հետ համեմատելի կը լինէին մարգինալացման առումով։

@spectrum
ու բորլանդը, որ մի պահ դեր խաղաց, բաւական լաւ բիզնէս չարեց՝

— իրենց խնդիրներից էր նաեւ էն որ փորձեցին զարգացնել իրենց ուզած պասկալը, ու էսօր պասկալ ասելով մենք հիմնականում նկատի ունենք բորլանդի դիալեկտը, ոչ՝ վիրտի պասկալը, եւ ոչ՝ իսօ պասկալը, որ բաւական այլ ա։

ի տարբերութիւն՝ կայ սի իսօ ստանդարտ, եւ տարբեր կազմարկիչներ, զի վիճակը շուկայում էն չէր, որ մէկը, որ առաջ ա տանում լեզուն՝ ունենում ա դէ ֆակտօ ստանդարտ իրականացում։

@spectrum

— այլ խնդիր՝ իրենք կրոսպլատֆորմ չէին՝ իսկ մրցակիցները՝ էին։ դելֆին շատ ուշ փորձեց կրոսպլատֆորմ վարկած հանել՝ կայլիքսը, ու շատ վատ իրականացրեց եւ տապալուեց։

էսօր շուկան վերջապէս հասաւ նրան, որ ապահով, բայց դանդալոշ (ներողութիւն) ջաւան այլընտրանք չէր c/c++֊ին լիքը առումներով, իսկ լաւ այլընտրանքները չնայած կային՝ անտեսուած էին։

@norayr Քեզ ճիշտ ա թվում։ Ես չեմ ուզում գործիքների վրա կենտրոնանալ զի էս դասընթացից հետո մարդ ընտրելու ա կուրս լեզվով ու որ գնաց փայթըն կամ ջավասկրիպտ էտ իրան պետք չի լինի։ Ենթադրվում ա որ սրա մասին իրան հետո պատմելու են, ու դե սա ծրագրավորում չի ամեն դեպքում - կազմարկում ա։ Ես կուզեմ սենց բաներից ընդհանրապես չխոսալ էս կուրսի ընթացքում։

@spectrum իմ համե՞ստ կարծիքով՝ խնդիրն էն ա որ մենք պատրաստում ենք հէնց «ծրագրաւորողի», ոչ թէ՝ տեքնոլոգի, ինժեների։

այդ պատճառով մարդիկ, որ համալսարանից գնում են արդիւնաբերութիւն՝ այնտեղ են հանդիպում բիլդ համակարգ, կամ ռեւիժն կոնտրոլ՝ իրենք գիտէին միայն մի տեքստ ֆայլի մէջ մի ալգորիթմ իրականացնել։

@spectrum իսկ երբ պատրաստի պրոդուկտ ստանում էին՝ ամէնն իրենցից թաքցուած էր մի կոճակով՝ նոյն բորլանդի պատճառով, որ «հեշտացնում» էր գործը, թաքցնելով թէ տակից ինչ ա կատարւում։

ինձ համար ժամանակին բացայայտում էր որ ide֊ն ու compiler֊ը տարբեր exe նիշքեր են, ու էդ չպէտք ա լինէր բացայայտում, ինձ թւում ա դա պէտք ա հէնց սկզբից սովորեցնել։

ինչեւէ՝ չեմ վիճում, քո մօտեցումն ա՝ քո դասընթացը։

@norayr հա, համալսարանի մոտեցումը ինձ էլ դուր չի գալիս։ Էնտեղ միանշանակ էտ գործիքները պետք են ծրագրավորման դասընթացի մեջ։ Ու ընդհանրապես գործիքներից քիչ են խոսում մեր մոտ ու դրանք էլ իրար հետ չեն կպնում ընթացքում։ Ստացվում ա մարդուն մեկը պատմում ա man-ում ինչ ա գրած, էտ էլ անկապ ա։

@norayr կիրառելի ա բայց չի օգտագործվումը։ Ես պասկալի կյանքին ծանոթ չեմ։ Էն առաջինը հաստատ, բայց դե դա լոկալ ա։

@norayr իթ քոմփայլ անելը ու ՌԵՊԼ-ը իրար չեն խանգարում։ Հարմար բան ա արագ տեստի համար, որ մի 2 տող բան գրես տեսնես ոնց ա իրան պահում մտածածդ առանց նոր "պռոեկտ" սարքելու։ Օրինակ իմ սիրած լեզուն լուրջ քոմփայլ լինող ա ու ունի ։ՃՃՃ Չսիրած լեզուս էլ ա լուրջ ու ունի

@norayr ուզում եմ առանձին բառ լինի։ Չեմ ուզում խոսալ պռոցեդուռաներից ու գրել function

@norayr Հիմա կարդամ։ Երեկ Ada նայում էի, բայց դե շատ բան չես նայի մի օրում, տենց ավելացրի ցուցակին։ Դեռ չգիտեմ։

Մուտք գործէք՝ զրոյցին միանալու համար
թութ

Ապագայի սոցցանցը։ Ոչ մի գովազդ, ոչ մի կորպորատիվ վերահսկողութիւն, էթիկական դիզայն, եւ ապակենտրոնացում։ Մաստադոնում դու ես քո տուեալների տէրը։