էսօր խօսում էինք, յիշատակեցի oncd ու nsa ռիփորթները, ահա էստեղ յղումները թողնեմ, որ լինեն, միւս անգամ հեշտ գտնեմ՝
երկրորդ թուղթը յիշատակում ա #պասկալ ֊ը։ այդ պատճառով embarcadero֊ն հրապարակեց այս յօդուածը՝ արդե՞օք պասկալը ապահով լեզու ա։
#ծրագրաւորման_լեզու #ծրագրաւորման_լեզուներ #ծրագրաւորում #տէք #ապահովութիւն #տէքնոլոգիա #տէքնոլոգիաներ #տեխնոլոգիաներ #լեզու #անվտանգութիւն
pascal֊ով գրուած ուկրաինական օպերացիոն համակարգ։
#պասկալ #օպերացիոն_համակարգեր #էկրանահան
գուցէ գիտէք, որ borland֊ը որ ստեղծել էր delphi֊ն, փորձեց object pascal֊ում եղած ֆիչըրները բերել c++։ ու բորլանդի c++֊ը տարբերւում ա սովորական c++֊ից նրանով, որ ունի այսպէս կոչուած closure֊ներ, կամ անոնիմ մեթոդներ։
իրականում, եթէ գալիս ես օբերոնից՝ ոչ մի տարօրինակ բան չկայ, շատ նորմալ ֆունկցիոնալ ա։
ահա օրինակ՝
type
TNotifyEvent = procedure(Sender: TObject) of object;
TButton = class
private
FOnClick: TNotifyEvent;
public
procedure Click;
property OnClick: TNotifyEvent read FOnClick write FOnClick;
end;
procedure TButton.Click;
begin
if Assigned(FOnClick) then
FOnClick(Self);
end;
procedure MyButtonClick(Sender: TObject);
begin
WriteLn('Button clicked!');
end;
procedure SomeEntryPoint;
var
Button: TButton;
begin
Button := TButton.Create;
Button.OnClick := @MyButtonClick;
Button.Click; // Outputs: Button clicked!
Button.Free;
end;
TNotifyEvent֊ը ֆունկցիայի, պրոցեդուրայի տիպ ա։ յետոյ այդ տիպի պրոցեդուրա ա կարելի ստեղծել։
Sender: Tobject ֊ը մեզ պէտք ա, որ իմանանք ով ա այդ event֊ը ուղարկել։ ինչի՞ ա ինքը TObject տիպի՝ որովհետեւ դա կլասսերի ծառի արմատն ա՝ ամէնը դրանից են ժառանգած, այսինքն՝ ամէնը կարելի ա դրան վերագրել։
օրինակ, կարելի ա էսպէս իմանալ թէ ով ա՝
if Sender is TButton then // Check if the sender is a button
begin
if TButton(Sender).Name = 'Button1' then
ShowMessage('Button 1 was clicked!')
else if TButton(Sender).Name = 'Button2' then
ShowMessage('Button 2 was clicked!');
end
else
begin
ShowMessage('Something else triggered this event!');
end;
տեսէք լրիւ օբերոնի runtime check անող IS ֊ն ա։
Button(Sender).Name ֊ը թոյլ ա տալիս կարդալ էդ կոնկրէտ կոճակի անունը։ օրինակ, կարող ես կոճակի անունը դնել Button1, իսկ կարող ես օրինակ՝ processButton։
Button֊ը իրականում ցուցիչ ա յիշողութեան մի տեղի, որ դատարկ ա։
TButton.Create֊ը լցնում ա էդ տեղը, ստեղծում ա յիշողութեան մէջ դաշտերը, կլասը, ու վերադարձնում ա էդ պատրաստուած յիշողութեանը ցուցիչ։
Button.OnClick֊ին կարողանում ենք վերագրել MyButtonClick ֆունկցիայի հասցէն։
այդ OnClick֊ը pascal֊ի property ա, որը կայ իմ իմանալով միայն այլ անդրեաս հայլսբերգի լեզուի՝ c#֊ի մէջ։
դրանից յետոյ Button.Click֊ը դա ա կանչելու։
շատ օբերոնական ա, չէ՞։ (:
ո՞նց ա դա արւում borland֊ի c++ դիալեկտով՝
#include <vcl.h>
#pragma hdrstop
class TButton
{
private:
typedef void __fastcall (__closure *TNotifyEvent)(TObject *Sender);
TNotifyEvent FOnClick;
public:
void __fastcall Click()
{
if (FOnClick)
FOnClick(this);
}
void __fastcall setOnClick(TNotifyEvent value)
{
FOnClick = value;
}
TNotifyEvent __fastcall getOnClick()
{
return FOnClick;
}
__property TNotifyEvent OnClick = {read=getOnClick, write=setOnClick};
};
void __fastcall MyButtonClick(TObject *Sender)
{
ShowMessage("Button clicked!");
}
int main()
{
TButton *Button = new TButton;
Button->OnClick = MyButtonClick;
Button->Click(); // Outputs: Button clicked!
delete Button;
return 0;
}
նախ, ահագին ոչ ընթերնելի ա, ինձ թւում ա։
յետոյ, դէ մասնաւորապէս որովհետեւ fastcall֊ը նշանակում ա որ պասկալի ֆունկցիա ա կանչելու, զի ամբողջ գրադարանը (vcl֊ը կամ fmx֊ը) պասկալով ա գրուած։
closure֊ը borland֊ի լուծումն ա որ մեթոդ փոյնթերն իմանայ this֊ի մասին։ ոնց pascal֊ում ա հնարաւոր։
property֊ով են փորձում դէ property իրականացնել։
հետաքրքիր ա, որ qt֊ն էլ ստանդարտ c++ չի՝ իրենք փաստացի նոր լեզու են ստեղծել, ու իրենց մօտ կայ moc (meta object compiler) որը յետոյ բերում ա qt֊ի կոդը ստանդարտ c++֊ի։ ու իրենք ունեն ինչ֊որ slot֊եր ու signal֊ներ որ էլի էմուլացնում են նոյն բանը՝ property֊ներ ու event֊ներ։
gtk֊ում ստանդարտ c ա, ու դա աւելի ա դուրս գալիս։
ի դէպ՝
https://norayr.am/weblog/2021/04/18/2492083/ — այն մասին ա որ embarcadero֊ն այլեւս չի կարողանում իր c++ քոմփայլերը շարունակել, զի c++ ստանդարտն էնքան արագ ա շարժւում, որ չեն ձգում։ ու հիմա փաստացի մէյնթէյն են անում llvm֊ի փաթչեր։ llvm֊ի արտօնագիրն էլ թոյլ ա տալիս որ դա անեն։ աւաղ։ (:
https://norayr.am/weblog/2021/04/19/2530704/
#ծրագրաւորում #ծրագրաւորման_լեզուներ #տէք #պասկալ #օբերոն #pascal #oberon
https://www.youtube.com/watch?v=0yXwnk8Cr0c
պարզւում ա, նիւ եօրքի մետրօյի կառավարումը կատարւում էր պասկալով գրուած ծրագրով։ մինչեւ չփոխեցին ադայի։
իսկ գիտէ՞ք քանի տող կոդ օրը պիտի գրի ապահով ծրագրի հեղինակը։ կիմանաք էս տեսանիւթից։
#պասկալ #ադա #ծրագրաւորում #տէք #ծրագրաւորման_լեզուներ #պատմութիւն
երբ պասկալով ա կոդ գեներացնում, աբօն՝ արհեստական բանականութիւնը, յաճախ շփոթւում ա այնտեղ, ուր օրինակ տիպ ա գրում, բայց չի ջոկում որ էդ տիպ նկարագրող unit֊ը իմպորտ չի արել։ ինչի՞ չի ջոկում, որովհետեւ դէ կոդի մէջ տեսել ա՝ աշխատում ա, չի մտածել որ մի մոդուլի մէջ ա ու որ էդ մոդուլը պէտք ա ներմուծել։
իսկ օբերոնով երբ գրում ա, պիտի յստակ իմանայ ինչը որտեղ ա որ ճիշտ գրի։ ու էդ դէպքում նման սխալ անել չի կարող։
#աբ #պասկալ #օբերոն
ես տասնամեակներով արտայայտուել եմ որ՝ բայց դեռ էն ժամանակ տուրբօ պասկալն ինձ շատ աւելի լաւն էր թւում տուրսօ սիից։ ու ինձ ասել են՝ տես, սխալ ընտրութիւն ես արել։ եթէ չեն ծաղրել։ զգացել եմ եւ նշել որ՝ էս խնդիրը չէր լինի, եթէ ուժեղ տիպաւորուած լեզու օգտագործէիք։ իսկ էս դանդաղութիւնը չէր լինի։ ու էս չափ յիշողութեան ծախսը, եթէ ոչ թէ ինտերպրետացուող լեզուով գրէիք ու ոչ ջվմ֊ի համար։ այլ ազո՝ պասկալով։ որը համ նատիւ արագ կոդ ա գեներացնում համ փորթաբլ ա։ չի պահանջում վիրտուալ մեքենայ։ դէ գրէք ջաւայով ութ բիթանի կոնտրոլերի համար։ իսկ պասկալով կարող էք։ բայց միեւնոյն ժամանակ այն ունի մոդուլներ, տիպաւորում, ապահովութիւն։ առանց պարտադրելու օօպ, առանց պահանջելու վմ։ բայց ո՞վ ա լուրջ ընդունել։ յետոյ ես բացայայտել եմ օբերոնն ու ադան։ մոդուլա֊3֊ը։ պասկալի պատճառով։ ու իրոնիկն էն ա որ հիմա nsa֊ն ա ասում նոյնը՝ ասում ա երկրի մակարդակով անվտանգային խնդիրներ ունենք՝ ձեր սի ու սի փլասերի կոդերի պատճառով։ վերջ տուէք։ օգտագործէք ադա, պասկալ։ իրոնիկն էն ա որ էդ տեսակ կազմակերպութիւնները ինձ ոչ մի ձեւ մօտ չեն, ու ես դրանց հետ ոչ մի ձեւ չեմ ուզում ասոցացուել կամ կապ ունենալ։ բայց իրանք են որ ասում են էն ինչ ես։ ու հիմա ես պիտի յղուեմ իրանց։ #պասկալ
կարեւոր խնդրի մասին են յաճախ ասում՝ ո՞ր լինուքսի համար փաթեթաւորել։
իսկ էս մարդն աւտոմատացրել ա ու ոչ միայն դեբեանի, փեդորայի, այլեւ բիէսդի֊ի համար ա կարողանում փաթեթաւորել։
ի դէպ պասկալով գրուած խոշորացոյցի նախագիծ ա։
չմոռանամ վաղը շինել։ ու հաւէս կը լինէր սկրիպտը լաւացնել, որ նաեւ ջենթու եբուիլդ էլ սարքէր։
#էկրանահան #իւնիքս #ազատ_ծրագրակազմ #փաթեթ #սկրիպտ #աւտոմատացում #պասկալ
եթէ fasttracker2֊ի կոդը բացէին, վաղուց կրոսպլատֆորմ, հաւէս, արագ, կիրառելի ծրագրակազմ էր դառնալու։
մի պահ մի տղային էին տուել որ զարգացնի, բայց ասել էին՝ մարդու չտաս։
էհ։
#պասկալ #ազատութիւն #ծրագրակազմ
ուրեմն, սէնց նախագիծ կայ՝ python4delphi, կարողանում ես, օրինակ, պասկալով փայթընի մոդուլներ գրել, տեսականօրէն պիտի աշխատէր freepascal֊ի հետ, բայց իրենք ըստ երեւոյթին չեն ստուգել վաղուց, ու չէր շինւում։
ահա, փոփոխութիւններ արի, pull request արի, ու ինձ մօտ աշխատեց՝
յէյ։
#էկրանահան #պասկալ #դելֆի #լազարուս #տէք #տեք #ծրագրաւորում
freepascal կոմպիլեատորում աւելացրին երկու նոր հնարաւորութիւն՝ function references ու anonymous functions՝
https://forum.lazarus.freepascal.org/index.php?topic=59468.0
նայեցի, ոնց հասկանում եմ, նման բան կայ օբերոնում, միշտ կար, եւ օբերոնի էական յատկանիշ ա։ այսպէս ա կարելի օօծ ֊ի ոճով գրել՝ դաշտի տիպը սահմանել որպէս անանուն, կամ նախապէս ձեւակերպուած ֆունկցիա։
պասկալ կոմպիլեատորները (չեմ ասում պասկալը, զի պասկալն ունի իսօ ստանդարտ, որը շուկայում եղած կոմպիլեատորները չեն իրականացնում) տրամադրում էին c++֊ի վիրտուալ ֆունկցիաների ձեւով՝ տիպին կպած ֆունկցիաների, կամ մեթոդների, օօծ անելու հնարաւորութիւն։
վիրտն այդ ձեւն ա համարում ոչ էական, ոչ հիմնային։ նա, սակայն, ստորագրել ա օբերոն֊2 թղթի տակ, ուր իր աշակերտը նման ձեւի օօծ աւելացրել ա։ ես, ի դէպ, բարեյաջողղ օօծ եմ օգտագործում առանց մեթոդների։
եւ ահա, այդ հիմնային, էական ձեւն են էսօր աւելացնում fpc֊ում, զի համարում են, որ այն ինչ֊որ դէպքերում օգտակար կը լինի։ եւ աւելացրին ամենաբարդ, ամենաանհասկանալի ձեւով։
չիմանաս ինչ ա (եթէ իմանում եմ) , կը մտածես շատ քուլ, շատ բարդ բան ա։ ուղեղդ կաշխատեցնես երկար, որ հասկանաս ոնց ա աշխատում եւ երբ օգտագործել։ երբ հասկանաս, կը մտածես որ շատ խելացի ես, երեւի, որ էդքան ջանք դրեցիր ու հասկացար։ բայց էլի կը մոռանաս շուտով։
ես կը մոռանամ՝ էդքան բարդ ա։
իսկ օբերոնում սա հիմնային ա, շատ հասկանալի, ու շատ պարզ ա կիրառւում։ իսկ այլ լիքը բան չկայ, զի լեզուի ստեղծոէները էական չեն համարել։
#պասկալ #օբերոն
ֆրանսիայի կառավարութեան ցանկ՝ ծրագրակազմ, որ խորհուրդ ա տրւում օգտագործել՝
https://code.gouv.fr/data/sill.md
ցանկը նաեւ պարունակում ա freepascal
ու lazarus
։
ու հետաքրքիր ա որ gnat
չի պարունակում։
#ֆրանսիա #ծրագրակազմ #ազատութիւն #պասկալ
ուրեմն, ամաչելու սխալ եմ գտել իմ, փլէյ վերբեռնած, անդրոիդի վարկածի photolightmeter
֊ի մէջ։
բայց դէ ո՞րտեղից իմանայի, դոկումենտացուած չի, ԱԶՆԻՒ ԽՕՍՔ։ (:
լինուքսում հեշտ ա՝ պարզապէս ֆայլից կարդում ես։ դէ էլի լաւ դոկումենտացուած չէր, բայց եղաւ ջոկել։ տառապեցի, փորձեցի, ջոկեցի։
իսկ անդրոիդում ահագին բարձր մակարդակի ափի ա, ու ո՞վ կը մտածէր, որ սենսորը կարող ա «ստոպ» արած վիճակում լինի, ու այն պէտք ա «ստարտ» անել։ չեմ էլ հասկանում ինչ ա դա նշանակում, զի արդե՞օք նոյնը չի՝ միջուկը լինուքսն ա, մի ֆայլից երբ կարդում ես՝ տուեալները ստանում ես։
բայց, ի դէպ, անդրոիդների տակ, էդ նոյն /sys/bus/iio/devices
֊ի մէջ չեմ գտնում լոյսի սենսորի նիշք։
ու դէ, չգիտեմ որտեղից ա անդրոիդի ափի֊ն վերցնում որ տայ։
բայց ինչեւէ, ընդամէնը այս երկու տողն ամէնը փոխեցին։
ու ստուգեցի՝ անդրոիդի ու փայնֆոնի վրայ, լրի՛ւ նոյն ցուցմունքներն են հիմա տալիս երկու յաւելուածները՝ մէկը լինուքսի, մաեմօ֊ի, միւսը՝ անդրոիդի, շատ հաւէս ա։
վիդեօ կանեմ, կը հրապարակեմ։
ու տէնց։
#լուսաչափ #լուսանկարչութիւն #ֆոտօ #լինուքս #մաեմօ #անդրոիդ #յաւելուած #պասկալ #տեք
կան բարեռ, որոնց տակ ով ասես ինչ ասես չի հասկանում։ այդպիսին ա կոմպոնենտ բառը։ եւ այդպիսին ա փաթեթ բառը։
փաթեթ բառը պասկալում շատ տարբեր բաներ կարող ա նշանակել։ (բազմիցս ասել եմ, որ չափազանց բարդացրել են)։
այստեղ մանրամասն գրուած ա դելֆիի տեսակի լազարուսի փաթեթների մասին։
#փաթեթ #պասկալ #ծրագրաւորում #լազարուս #դելֆի
ֆունկցիոնալ ծրագրաւորում delphi֊ով՝ https://www.youtube.com/watch?v=HDhmUjzUNyQ
#պասկալ #դելֆի #ծրագրաւորում
էս տղան պասկալով գոֆեր դիտարկիչ ա գրել։ հաւէս միտք ա օգտագործել lcl֊ի TTreeView կլասը։ սա իհարկէ լինուքսի տակ վերցրած էկրանահան ա։
ունի էկրանահաններ տարբեր օհ֊երի տակ վերցուած, ներառեալ win98 ու winxp (((:
զի շատ տեղափոխելի ա լազարուսի ծրագիրը։
գրիր մի անգամ՝ շինիր ամէն տեղ։
սա էլ ելատեքստը։
իսկ ահա իր էջը գոֆերում, ինչպէս երեւում ա իմ սէյլֆիշի gopherette դիտարկչից՝
առաջարկեցի ջեմինի հաղորդակարգ աւելացնել։ չէր լսել դրա մասին։
եւ կրկին՝ համացանցը լոկ www չի, ու http չի։
շատ աւել ա։
ու տէնց։
#գոֆեր #ծրագրաւորում #պասկալ #լազարուս #էկրանահան #համացանց
fpc֊ն փաստօրէն google api ա աւելացրել։ (:
#պասկալ #էկրանահան
եթէ յիշում էք, ես ունէի մաեմօյի համար գրուած լուսանկարչի գործիք՝ photographic light meter։ այն վերցնում էր լոյս սարքի «ambient light sensor»֊ից, եւ հաշւում խցիկի կարգաւորումները՝ պահաժամը, բացուածքը։
ահա, այսպէս աշխատում էր մոտորոլա դրոիդ չորսի վրայ, մաեմօ լեսթէ համակարգի տակ՝ https://toobnix.org/w/bdb44078-0236-43bf-a189-6f6865f60d7a
տառատեսակի չափսը յետոյ ֆիքսեցի։
իսկ երէկ գիշերը նստեցի, բաւական հեշտ տեղափոխուեց անդրոիդի վրայ՝ delphi֊ի fmx֊ի միջոցով։
մի քանի փոփոխութիւն պէտք եկաւ՝ օրինակ LCL֊ի Label.Caption֊ը FMX֊ում՝ Label.Text ա։
ու եթէ լինուքսի վարկածում վազում եմ /sys/bus էդ կողմերով, որ գտնեմ լուսաչափի նիշքն ու կարդամ դրանից տուեալներ, ապա այս դէպքում պարզապէս անդրոիդի ափին եմ կանչում՝ իհարկէ FMX֊ի կլասի միջոցով։
տեղափոխելը տեւեց մի երեք ժամ, բայց եթէ հմտութիւններ արդէն ունենայի՝ կարող էր տեւել տասնհինգ րոպէ։
դեռ թեստաւորել եմ միայն մի նոկիա 8֊ի վրայ, աշխատում ա՝
նկարները երէկ գիշերն եմ արել։
ու տէնց։
#անդրոիդ #լուսաչափ #մաեմօ #մաեմո #պասկալ #դելֆի #լուսանկարչութիւն #ֆոտո
փաստօրէն մինուետը պասկալով էր գրուած։
իրականացրել էին բազմախնդիր միջուկ եւ դէ պատուհանները տուրբօ վիժնով էին նկարել։
#պասկալ #ծրագրաւորում #դօս #դիտարկիչ #պատմութիւն
պասկալ կոմպիլեատորի մասին գիրք՝
https://homepages.cwi.nl/~steven/pascal/book/pascalimplementation.html
#գիրք #պ4 #պասկալ #կոմպիլգատոր #կազմարկիչ #ծրագրաւորում #տեք
էս մարդը էրեխայ ժամանակ սէնց բաներ ա գրել՝ https://github.com/ca98am79/my-first-programs
իսկ ինչի՞ ես հասել դու։
#պասկալ #ծրագրաւորում
ի դէպ, նա նաեւ ստերեօգրամներ էր գեներացրել։
եթէ չգիտէք ինչ ա, ահա, այստեղ կարող էք փորձել։
այստեղ գրեմ որ չմոռանամ։ վերջերս մէկն ասում էր որ մի նախագիծ չի ուզում սի֊ով գրի, զի տողերի հետ բարդ ա աշխատել, գօ֊ի փաթեթների կառավարումը չի սիրում, իսկ պասկալով կանէր, բայց սովորել ա արդէն որ ուր ուզես ինչ ուզես յայտարարում ես, իսկ պասկալը պահանջում ա որ դա լինի ֆունկցիայի վերեւում յատուկ տեղում։
ես էլ ասացի որ այդպէս սիրում եմ, բայց դելֆի պասկալում հիմա իր ուզածով ա։ ու որ ֆպց֊ի դեւերը որոշեցին այդ փոփոխութիւնը չիրականացնել։
նա յղուներ ուզեց, ես փնտրեցի որ նախկինում կարդացածս գտնեմ՝
https://blog.marcocantu.com/blog/2018-october-inline-variables-delphi.html — սա դելֆիի մասին։
սա էլ՝ https://forum.lazarus.freepascal.org/index.php?topic=43172.0 — ֆրիպասկալի համայնքի քննարկումը։
սա գրեցի որ #պասկալ պիտակով ապագայում հեշտ գտնեմ։
#դելֆի #ծրագրաւորման_լեզուներ #ծրագրաւորում
այսօր դաշնեզերքի օգնութեամբ բացայայտեցի cppcast պոդքաստը։ լսեցի վերջին էպիզոդը՝ այն մասնաւորապէս ̶բ̶ո̶ր̶լ̶ա̶ն̶դ̶ի̶ էմբարկադերօյի c++ builder֊ի մասին էր։
հետաքրքիր ա որ
սա շատ կարեւոր թեմա ա ինձ համար, նշանակում ա c++֊ն այնքան արագ տեմպերով ա զարգանում, որ նոյնիսկ այդ, բաւական լուրջ, բաւական, թւում ա թէ, փող ունեցող ընկերութիւնը, չի հասցնում իր կազմարկիչը զարգացնել։
սա կարող էր ոգեւորիչ լինել․ ահա՛, ազատ ծրագրակազմը յաղթում ա, ոչ մի առանձին ընկերութիւն չի կարող հասնել, զի համայնքը զօրաւոր ա, եւ մարդկութիւնը իր ամբողջ ռեսուրսներով կարողանում ա աւելին անել, քան առանձին ընկերութիւնը։
ու մասամբ երեւի այդպէս ա։
մտահոգիչ մասն այն ա, որ լեզուն այնքան ա բարդացել, որ չի լինում առանձին ընկերութեան համար այն իրականացնելն այլեւս իրատեսական չի։ մօտաւորապէս նման պատմութիւն ա դիտարկիչների հետ՝ html֊ն ա այնքան բարդացել, որ առանձին ընկերութիւն այն իրականացնել չի կարող։
եւ մեր բախտից ա (դէ իրականում նախկինում տարուած պայքարից) որ գուգլն ու էփլը այսօր ազատ ծրագրակազմ են ֆինանսաւորում, ու կայ chromium֊ը, եւ llvm֊ն ա ազատ։
բայց եթէ մթնոլորթը փոխուի, մի պահ ա գալու, երբ chromium֊ի շարժիչը գուգլը կարող ա եւ փակել։ իսկ եղած ազատը համայնքը չի կարողանայ զարգացնել այնպէս որ արագ զարգացող ստանդարտներին հասնի։ այդ պատճառով էլ եմ ես ոգեւորւում աւելի պարզ համակարգերից, ինչպիսին են gemini֊ն, եւ oberon֊ը։
c լեզուն էլ ա բաւական պարզ (առանց ընդլայնումների) որ մի հոգի նստի եւ մի քանի ամսում իրականացնի կազմարկիչ։
շարունակեմ այն մասին, ինչ եմ յիշում զրոյցից։
ի՞նչ ընդլայնումներ են դրանք։
դէ դա ես գիտէի, ու կարելի ա պատկերացնել՝
c++ builder֊ը օգտագործում ա բորլանդի object pascal֊ով գրուած vcl (եւ արդէն fmx) գրադարանները։ իսկ գրադարանները նախատեսուած են gui ծրագրեր գրելու համար։ այդ պատճառով object pascal֊ն ունի properties՝ յատկութիւններ, որ կլասի դաշտեր են։ բայց երբ դու վերագրում ես յատկութեանը, իրականում տակից կանչւում ա setter մեթոդ, իսկ երբ կարդում ես դրանից, իրականում տակից կանչւում ա getter (fread) մեթոդ։ դրանք պէտք ա սահմանես, եթէ հատկութիւն ես աւելացնում։ յատկութիւններ նաեւ ունի բորլանդի c++ լեզուի դիալեկտը։
վարողը հարցրեց, արդե՞օք ընկերութիւնը փորձել ա լեզուի ընդլայնումներն աւելացնել c++ ստանդարտի մէջ։ ինչ֊որ գործ այդ առումով արուել ա, ու հիւրը մի քանի c++ կոմիտէի թղթերի յղուեց։ բայց վերջին թուղթը որին յղուել էր փաստարկներ էր անում ինչու յատկութիւններ լեզուի մէջ բերելը վատ միտք ա՝ զի կարող են ոչ տեղին օգտագործուել (misuse), երբ պէտք չի (իբր դա c++֊ի համար ամենակարեւոր խնդիրն ա՝ իբր c++֊ում արդէն չկան հնարաւորութիւններ որ կարող ա սխալ կամ ոչ տեղին օգտագործուեն), եւ այլ փաստարկն այն էր, որ թափանցիկ չի, մարդիկ կարող ա չիմանան, որ դաշտ չի այն, ինչը դաշտ ա երեւում։ սա շատ լաւ փաստարկ ա, բայց կրկին՝ c++֊ն արդէն ունի բազմաթիւ հնարաւորութիւններ որ սինտակտիկ շաքար են։ բայց ես ինքս նոյն կարծիքի են՝ ինձ դուր չեն գալիս յատկութիւններ, եթէ դրանք սովորական դաշտի տեսք ունեն, ու սինտաքսից պարզ չի, որ հատկութիւն են, եւ ոչ թէ սովորական դաշտ։
այլ ընդլայնումը վերաբերում էր, իհարկէ, event֊ներին՝ օրինակ, կտոցը կոճակին event ա, որ կապուած ա յատուկ ֆունկցիայի հետ։ այդ համար borland֊ը նախագծել էր closure կոչուող լեզուի յատկութիւն։ տես նաեւ սա։
ի դէպ քիւթը այլ ձեւերով ա լուծում նոյն խնդիրները, իրենք ունեն սիգնալ եւ սլոտ հասկացութիւններ, բայց ձեռք չեն տալիս c++ կազմարկիչը, փոխարէնը գրել են մի գործիք՝ moc, որը իրենց, քիւթին սպեցիֆիկ սիփլասփլասը թարգմանում ա ստանդարտ սիփլասփլասի։
abi֊ի հետ են շատ գործ անում, եւ pascal֊ական տիպերի հետ համատեղելի լինելու։ գիտենք, որ դելֆիի պասկալն ունի cow strings, իմացայ որ ունի նաեւ ինչ֊որ տարադրամի տիպ, ու այդ տիպերին, բնական ա, իրենց c++֊ն էլ պէտք ա սատարի։
դելֆիի պասկալի ֆունկցիայի քոլերն ունեն register կոչուող calling convention, այդ համար էլ ա գործ արւում։ abi֊ն ջանում են մի ստաբիլ վարկածի մէջ չփոխել, ու եթէ abi֊ի փոփոխութիւններ են նախատեսւում, ապա դրանք արւում են մէյջըր ռելիզների ժամանակ։ այդ փոփոխութիւնները ոչ միայն կարող են վերաբերուել հէնց ֆունկցիաներ կանչելու ձեւին, այլեւ նրան ինչպէս են տուեալները պահւում յիշողութեան մէջ։
ու գուցէ ios դեւելոփմենթն աւելի պարզ բան ա՝ կպնում ես objective c գրադարաններին, պէտք չի jni անել, պէտք չի լիքը այլ բան։ կամ գուցէ իսկապէս այօս դեւելոփմենթի պահանջարկ ունեն։
վախեցայ որ դելֆիից էլ են հանել անդրոիդի մասը, ստուգեցի, ու կայքում կարծես թէ գրուած ա որ ունեն անդրոիդ դեռ։ չգիտեմ։
որոշ չափով խօսուեց delphi֊ի մասին, զի builder֊ի delphi֊ի հետ սերտ կապեր ունի։ օրինակ, կարող ա ընդլայնել պասկալով գրած կլաս։ դէ բնական ա, զի կարող ա ուզես մի կոնտրոլի հիման վրայ մի այլ կոնտրոլ սարքել։ պատմեց, որ delphi֊ն կարողանում ա գեներացնել հեադեր նիշքեր որ իրենց c++ կազմարկիչը կը ճանաչի։ որ շատ հանգիստ լինկ են լինում pascal եւ c++ ծրագրերը։ ու որ աւելի բարդ ա պասկալից կպնել սիփլասական գրադարաններին, քան հակառակը, զի սիփլասփլասը կոնստրուկտներ ունի, որ պասկալը չունի։ իսկ այն կոնստրուկտները որ իրենց պասկալից պէտք էին՝ իրենք արդէն աւելացրել են իրենց սիփլասփլաս կազմարկչի մէջ, ու հետեւաբար պասկալ կոդ շատ հեշտ ա օգտագործել։
նշեց մի քանի նախագիծ, բայց առանց անունների, որ գրուել են սիփլասփլաս բիլդերով։ ու ես հասկացայ որն են իրենց մեծ պատուիրատուները, օրինակ կան ծրագրեր որ սպասարկում են էլեկտրակայաններ, ու քանի որ կոդն ի սկզբանէ գրուած ա եղել բորլանդի բիլդերով, այսօր էլ էմբարկադերօն պէտք ա, որ սպասարկի պրոդուկտ, որը կառնեն այդ էլեկտրակայանի ծրագրակազմ նախագծողները։
ես կարծում եմ որ իրենց գնային քաղաքականութիւնը խանգարում ա իրենց զարգանալ։ եւ այդ պատճառով էլ վարողը հարցրեց, արդեօք կան օփեն սորս դեւերի համար անվճար վերսիաներ։ պատասխանը՝ այո, բայց մի վերսիա հետ ընկած ա, աշխատում ենք թարմացնել։
ովքե՞ր են օգտագործում բիլդեր — հիմնականում ուինդոուս դեւելոփերներ։
ինձ թւում ա, դա բորլանդի, եւ յետոյ էմբարկադերօյի ամենամեծ խնդիրներից ա, որ չեն կարողացել հասցէագրել (այսպէս կարելի՞ ա ասել), չեն կարողացել այնպէս անել որ ոչ ուինդոուս ծրագրաւորողները հետաքրքրուեն նախագծով։ իհարկէ, շատ բարդ ա մրցել լինուքսի աշխարհում, ուր մարդիկ սովոր են ազատ լուծումների, ու սիփլափփլաս մարդիկ սովոր են քիւթին, եւ շատերն իրենց վճարում են։ բայց կարելի էր մրցել, կարելի էր լուրջ փորձեր անել շուկայ մտնելու։ ու բնաւ անիրատեսական չէր մակօսի շուկայ մտնել, կարծում եմ շատ շատերը կը նախընտրէին բիլդեր էքսկոդին, բայց բիլդերի (ինչպէս եւ դելֆիի) այդիին, նախագծման միջավայրը աշխատում ա միայն ուինդոուսում։ ինձ թւում ա դա ամենակարեւոր խնդիրներից ա որ իրենք չլուծեցին, զի մակօս դեւը չի ուզի ուինդոուսում գրել մակօս ծրագրեր։
ընդհանուր առմամբ զարմացած եմ, ինչքան անտեղեակ էր վարողը, որ սիփլասփլաս աշխարհից ա, բիլդերից։ ու դա այն մասին ա, ինչքան ա բիլդերը, որ բաւական լաւ նախագիծ ա, ու ոգեշնչուած ա դելֆիից, չգնահատուած, ինչպէս եւ ինքը դելֆին։
#ծրագրաւորում #ծրագրաւորման_լեզուներ #պասկալ #սիփլասփլաս #սի #բիլդեր #բորլանդ #էմբարկադերօ #նախագծում #ծրագրակազմ #հարցազրոյց #պոդքաստ #տտ #տեք #գործիք #գործիքներ
ի՞նչ կա՞յ, ժողովուրդ, ի՞նչ էք անում, ո՞նց էք ձեզ զգում։
ես պատերազմից յետոյ գրեթէ գործից դուրս գործ չեմ արել, մասնաւորապէս որովհետեւ անհանգիստ էի՝ ներքաղաքական իրավիճակի պատճառով։ քիչ քիչ հետ եմ գալիս, աւելի շատ եմ բաներ բզբզում։ դէ գործ արել եմ, բայց թեթեւ գործ, օրինակ՝ էս մեր վեբ նախագծերի հետ։
բայց ամենակարեւորն ինչ կանեմ, ու ինչքան շուտ սկսէի, էդքան շուտ արդիւնք կունենայի՝ դա նոր կոմպիլեատորն ա, որի միտքը հա կայ։
մաեմօ֊լեսթէ֊ն եմ թարմացրել, իրականում վայելում եմ, շատ շատ լաւիկն ա։ էնտեղ հին նոկիայի մահջոնգ խաղն են աւելացրել, զի ելատեքստը կար։ իմ լայթ միթըրն ա շատ լաւ աշխատում։ (: իսկ սէյլֆիշի տակ լայթմիթրս պորտ չեմ անում, զի առնուազն էդսիքէյ֊ը ուզում ա ուէյլընդ, ու ես դրանից չունեմ։ նաեւ, որ չեմ մտածում՝ qml, js — հաւէս չի լինում մի բան անելու։ պիտի էսդիքէյ֊ն ունենամ, նոր մտածեմ, թէ ոնց են մարդիկ գո֊ն կիրառել, կամ օբերոնից ոնց իրենց սի փլաս փլաս կլասեերին կպնեմ։
իսկ մաեմօ֊ի համար՝ քո լինուքսում գրում ես, տանում ես էնտեղ քոմփայլ ես անում՝ աշխատում ա։
վերջերս սորսֆորջում նախագծեր էի նայում, ժամանակին կորցրել էի ու երկար չէի գտնում, հիմա կրկին գտայ՝ tuxcmd֊ն։ դա երկու պանելով ֆայլ մենեջեր ա, գրաֆիկական, gtk2֊ով ա աշխատում, ու պասկալով ա գրուած։
էդ իրա ելատեքստն էի նայում, երբ տեսայ որ լազարուսը մոդուլների կախուածութիւնները կարողանում ա պատկերել։
ինձ անձամբ շատ պէտք չի, ես mc եմ քշում, բայց ես չեմ պատկերացնում մարդիկ, որ գրաֆիկական միջավայրերում են աշխատում, ո՞նց են ապրում explorer֊ի տիպի ֆայլ մենեջերների հետ, էս ձեւ այլընտրանք ունենալը լաւ ա։
հետաքրքիր ա, որ պասկալով գրած եւս մի քանի նման նախագիծ կայ որ totalcmd֊ի պէս են՝ մէկը double commander֊ն ա, որ ապրում ա, լինուքսի տակ էլ ա աշխատում։ կար sexy commander, որն արդէն տաս տարի առաջ քոմփայլ չէր լինում։ էս tuxcmd֊ն հաւէսն ա, մտածում եմ, պէտք ա gtk3֊ի պորտ անել, ու կարելի ա զարգացնել։ նաեւ կարելի ա gentoo ebuild սարքել։
մտածում եմ, գուցէ լաւ չի որ spyurk.am֊ից եմ հետեւում տարբեր բլոգերի, մեդիաների՝ ֆոտոյի, ճարտարապետութեան, ծրագրաւորման, դիզայնի մասին։ գուցէ պէտք ա սոշըլհոմից հեռարձակել, որ երկու աշխարհ էլ գնայ՝ եւ դիասպորա, եւ ապ։ միւս կողից էլ, գուցէ լա՞ւ ա որ դիասպորայում ա լոկ՝ դիասպորա֊ն առանց այդ էլ չգնահատուած ա, էնտեղ թող լինի։ բայց դա էլ շատ կեանք չի տալիս, իրականում, իրականում էնտեղ ապրող մարդիկ են պէտք։
ամէն դէպքում, ձեւեր էի նայում, ոնց rss parse անել, ու rsstail ուտիլիտան եմ գտել, որ բաւական լաւիկն ա։ content֊ը չի տալիս rss֊ի, աւաղ, կարողանում ա հանել description, հեղինակին, ժամանակը, եւ այլն։ ու մտածում էի կարելի ա կպցնել ինչ֊որ rss parser shcli֊ին որը սոշըլհոմ կը փոստի։ նոյնիսկ մտածում էի իմ պարսերը գրել, երէկ մի պահ աշխատեցի, բայց մի պահ էլ յոգնեցի էդ մտքից։
մինչ էդ հասցրել էի մի գրադարան նայել, ու նկատեցի որ openssl֊ի հետ խօսելիս պայթում ա, իսկ առանց դրա, http֊ով՝ այլ տեղ ա պայթում, փորձում էի վրիպազերծել։ այդ ընթացքում նկատեցի, ոնց ա պահում fpc֊ն run time տիպերի տեղեկատւոթիւնը։
fpc֊ից եւս երկու բան՝ ընդհանուր առմամբ վատ չի երեւի էդպիսի, «ամէն ինչ կարամ», շատ օպտիմալ կոդ գրելու հնարաւորութեամբ, սի փլասոտ լեզու ունենալը՝ մեր, վիրտեան լեզուաընտանիքի մէջ։
երկրորդը՝ ընկերս վերջերս գօ֊ով կոդ էր գրում, ու քոմփայլ արածը դժուարանում էր դեփլոյ անել տարբեր պլատֆորմներ՝ զի լիբսի֊ի վերսիաներն էին տարբերւում։ իսկ fpc֊ն ուղիղ դիմում ա միջուկին, լիբսին շրջանցելով։ ստացուած կոդը աշխատում ա ցանկացած լինուքսի վրայ՝ առանց ռեքոմփայլ։ իհարկէ, նա կարող էր համոզել իր ղեկավարութեանը անցնել գօ֊ի զի գօ֊ն այսօր մոդայիկ ա (ու լաւ ա որ էդպէս ա), ու չէր կարողանայ համոզել fpc օգտագործել։ բայց ոչ էն պատճառով չէր կարողանայ, որ ղեկավարութիւնը կը նախընտրէր աւելի պարզ, մինիմալիստական լեզու, այլ էն պատճառով, որ չէին հասկանայ ինչի մասին ա խօսում, եւ ասոցիացիա ստեղծուած չի որ պասկալը՝ կրոսպլատֆորմ ճկուն լեզու ա՝ ինչպէս այն իրականացնում ա fpc֊ն, fpc֊ն էլ յայտնի չի, յայտնի ա լոկ պասկալի մասին յիշողութիւնը՝ որպէս 16բիթ դօս֊ի տակ աշխատող կոմպիլեատոր։
modula-3 կոմպիլեատորի նոր ռելիզ ա եղել 2021 թուին։ ինչը զիլ ա։
#տեք #պասկալ #մոդուլա #անկապ #ֆայլերի_կառավարիչ #առօրեայ
#նկար #պասկալ #մոդուլա #մոդուլա-2 #գիրք #պատմութիւն #առօրեայ
ես սա շատ լաւ ընկալում եմ։
ու սա շատ կարեւոր ա նաեւ այսպէս կոչուած սոց․ ցանցերի, իսկ իրականում՝ ինտերնետի պարագայում։ զի ինտերնետը ստեղծուել ա որ մարդիկ կապ ունենան, ու արտայայտուեն, եւ ինքն ա իրենով սոց․ ցանց։ զի սոցիալական կենդանիների կողմից ստեղծած ցանց ա։
ես լրիւ գիտակցում եմ որ իմ գրածները զգալիօրէն սահմանւում են լսարանով։ դա էմփատիայից էլ ա գալիս։ մի իլիւստրացիա բերեմ ու շեղուեմ՝ օրինակ, ընկերս մի անվտանգութեան ոլորտի կոնֆերանսի ժամանակ, երբ քննարկում էին կայքի ծրագրային սխալ, որ առաջացել էր թոյլ տիպաւորուած լեզու օգտագործելու պատճառով, վեր կացաւ ես բարձրաձայն ասաց՝ «իսկ ինչի՞ էք դա օգտագործում։ պասկալո՛վ գրէիք տէնց սխալ չէիք կարողանայ անել»։
ու նա ճիշտ ա, ուժեղ տիպաւորուած լեզու օգտագործելով նման սխալ չէին անի։ բայց վեբի մշակոյթի մարդկանց իր ասածն անհասկանալի էր՝ իրենք սովոր են հէնց էդպիսի լեզուների, ու զարգացրել են հէնց էդ լեզուների շուրջ ֆրէյմուորքներ, էկոհամակարգեր։
դրանից էսօր մենք էլ ենք տուժում՝ դիասպորայի դեւելոփերը գրում ա այն մասին, որ չեն կարողանում բովանդակութեան զտիչներ իրականացնել՝ առանց այդ էլ ծանր ա, դանդաղ ա ծրագրակազմը, ու եթէ իրականացնեն՝ մեծ հանգոյցները կը դառնան ոչ կիրառելի։
զի այսօր կարեւոր համակարգային ծրագրեր, ինչպիսին ա ֆեդերացիայի հաղորդակարգերի իրականացումը՝ գրում են դինամիկ, ինտերպրետացուող, եւ յաճախ՝ ոչ լուրջ լեզուներով։ զի գրում են վեբի մարդիկ, իսկ վեբի մարդիկ էն աշխարհից չեն, որում, օրինակ գրում են օդանաւերի ծրագրակազմ, ու նոյնիսկ էն աշխարհից չեն, որում գրում են մէյլ սերուեր։ իսկ մէյլն ա այն, ինչն իր դիզայնով նման ա դաշնեզերքին։
յետոյ գարգրոնը՝ մաստոդոնի հիմնադիրը, կասի՝ մէկը լինէր, էս մասը ռասթով իրականացնէր՝ բայց մարդիկ որ վեբում են՝ էդ աշխարհից չեն։ ու առաւել եւս էն աշխարհից չեն, ուր fpc կոմպիլեատորով կարելի ա անել համակարգային ծրագրաւորում՝ ծրագրակազմ գրել, որ չի կիրառուելու ուղղակիօրէն՝ էնդ իւզերի կողմից։ օրինակ՝ գո֊ն՝ համակարգային լեզու ա, եւ այդպէս օգտագործւում ա, իրենով գրած դոքերը՝ այն չի ինչ տեսնում ա, կամ ինչի մասին պատկերացում ունի վերջնական սպառողը։
եթէ վերադառնանք կոնֆերանսին, ապա մարդիկ, որ լսել են ընկերոջս խօսքը, եթէ եւ ունեն պասկալի մասին պատկերացում՝ ապա այդ պատկերացումն ա՝ ms-dos օհ֊ը, tp֊ի կապոյտ ide֊ն, եւ 16 բիթանի սահմանափակումները։ երբ(եթէ) իրենք ունեցել են պասկալի հետ առնչութիւն՝ գրել են պարզ ալգորիթմ, օրինակ՝ մատրիցներ են բազմապատկել։ ու չեն իմացել, որ գործիքի հետ են աշխատում, որ, օրինակ ունի մոդուլներ։ մոդուլներ, որ աւելացուել են c++֊ում 2017֊ի ստանդարտում լոկ, եւ կարծես gcc֊ն դրանք դեռ չի սատարում, բայց clang֊ն արդէն սատարում ա։ քանի էսքան շեղուեցի, ասեմ որ մոդոլները c++֊ը չեն փրկի՝ զի այն «փրկելու», ըստ իս, համար, այն պէտք ա դառնայ լրիւ այլ լեզու, որը ոչ թէ ունի ամէն ինչ, այլ որը չունի իր հնարաւորութիւնների իննսուն տոկոսը։ բայց ինչեւէ։
ու ես աւելի մեծ էի, ու ես պատկերացնում էի այդ մարդկանց ընկալումը։ ու ես չէի ասի, երեւի, այն, ինչ ասաց ընկերս։ զի ես պատկերացնում էի որ իրենք չեն պատկերացնում։ համացանցը նաեւ լաւ ա սրանով՝ ես չպէտք ա վեր կենամ, եւ իրենց աչքը խցկեմ ինչ֊որ բան, որ իրենք չեն ընկալի։
ես ինձ համար էստեղ կը գրեմ, ու ում հետաքրքիր ա՝ կը գտնի։ կարելի ա նաեւ ասել, որ ես էստեղ էլ չեմ գրի, զի մէկ ա, ո՞ւմ գրեմ։ ինձ երեւի պակասում ա համախոհների համայնք, բայց դա նորմալ ա, ես չեմ բողոքում։ բայց կուզէի պատկերացնէիք մի բան, որ զգացի երբ ֆբ֊ն հայաստանում պոպուլար էր դառնում։ ես զգացի, որ կարող ա մի շաբաթ ծախսեմ ինչ֊որ բան աշխատեցնելու վրայ։ կուզեմ կիսուել՝ կանեմ գլամուր նկար՝ սարք, լափթոփի էկրան, վրան տերմինալ, եւ ինչ֊որ թուեր, որ սարքից ստացել եմ։
ես կը հաւաքեմ նոյն քանակի «լայքեր», ինչ կը հաւաքի տափակ կատակ անողը։ լաւագոյն դէպքում այդքան։ ես կը ստանամ իմ տասնհինգ լայքը, ու նա կը ստանայ իր տասնհինգ լայքը։ ըստ լայքերի արտարժոյթի փոխարժէքի անիմաստ ա մի շաբաթ տառապել, որ այդ արդիւնքը ստանաս։
նշանակում ա, պէտք ա այն կիսել այնտեղ, ուր դա աւելի գնահատուած կը լինի, քան վերոյիշեալ կատակը։ եթէ ես գտնեմ այդպիսի տեղ համացանցում՝ ապա պիտի գրեմ ոչ հայերէն, եւ հայալեզու համախոհը, կամ մարդը ում դա կը հետաքրքրէր, այն չի գտնի։ չի գտնի, զի ես չեմ լինի իր ծանօթի ծանօթը, ու մենք կապ չենք ունենայ, ու նա չի ոգեւորուի։ էս մի քիչ մեծամիտ ա ստացւում, զի թւում ա որ ես եմ ում գործից կարող ա ոգեորուեն, բայց նոյն ձեւ ես եմ փնտրում ոգեշնչում։ նոյն ձեւ ես եմ փնտրում համայնք։
եթէ արտայայտեմ ֆրուստրացիաս տեղական տտ համայնքներից, կը բերեմ օրինակ՝ ինձ հրաւիրել էին նմանատիպ «սլեքի» ալիք։ այն ժամանակ, երբ սլեքին կարելի էր կպնել ջաբերից, ու ես այնքան չէի զզւում իրենց բիզնէս մոդելից։ եւ այդ հաւաքուած մարդիկ՝ լռում էին։ մի քանի անգամ ես ու ընկերս խօսեցինք, մեզ հետաքրքրող բաներից՝ բայց դա մարդկանց չհետաքրքրեց։ եւ մենք լռեցինք, չունենալով ֆիդբեք։ եւ իրենք չէին լռում, երբ ինչ֊որ մէկը գալիս ու հարցնում էր՝ «մարդ կա՞յ որ էսինչ մեթոդը (երկար երկար անունով) օգտագործել ա»։ զի իրան գործի տեղում ասել են՝ սա գրի, էս գրադարանով, նա էլ փորձում ա համայնքից օգնութիւն գտնել։ բայց դա հետաքրքրուած լինելու մասին չի՝ վզին դրած գործն անելու մասին ա։
ու ես ինձ դուր չեմ գալիս այնպիսին, ինչպիսին ինձ ընկալւում են։ ես պատկերացնում եմ ինչպէս են ինձ ընկալում ուսանողներս, պատկերացնում եմ, ինչպէս էք ընկալում դուք, ու պատկերացնում եմ ինչպէս են ընկալում տտ համայնքի շատ մարդիկ։
էդ չի սատարում իմ զարգացմանը։ մեկուսացումն էլ ելք չի։ ես մեկուսացողը չեմ։
ու չգիտեմ ինչի եմ էսքանը գրել՝ եկէք չմոռանանք որ բոլորն էլ մարդիկ են, ու ուզում են իրենց լաւ տարբերակը լինեն։ ու եթէ համայնք ենք, փորձենք իրար կեանքերը չբարդացնել, զի դու չես ուզում քեզ ատեն նրանք, ում հետ կապի մէջ ես։
հէհ, սա շատ բարդ ա՝ զի մարդիկ, որ գալիս են ապակենտրոն ցանցեր՝ յաճախ նրանք են, որ չունեն սոցիալական հմտութիւններ՝ մէկը ես։ ու ես շատ անգամ նկատել եմ ինչ բարդ ա, ահաւոր ջանք ա պահանջում օնլայն յարաբերութիւններ պահելը՝ յաճախ սխալ կը հասկանան, յաճախ կը վիրաւորուեն, ինչը իրական շփման մէջ չէր լինի։ նաեւ, հանրային շփումն ա շատ բարդ՝ ես դրա կողմնակիցն եմ, բայց մարդկանց բարդ ա՝ եթէ արտայայտել են մտահոգութիւն ինչ֊որ հարցի վերաբերեալ, ու ռադիկալ լուծում առաջարկեն՝ իսկ ռադիկալանում են չլսուած, ընդհատակի մարդիկ, իսկ հէնց էդ մարդիկ են փնտրում այլընտրանք եւ գտնում դաշնեզերքի հանգոյցներից մէկը, ու եթէ այդ ռադիկալացուած գրառմանը շատ զգոյշ արձագանքես ու ցոյց տաս, որ գուցէ դա չի լաւ լուծումը, ու գուցէ գտնենք այլ լաւ լուծում, ու գուցէ էդքան սուր պէտք չի ընկալել՝ ապա շատ հաւանական ա անրֆենդ, անֆոլոու, չհասկացուած լինելու զգացմունքից խորը ֆրուստրացիա։ ու դրան նպաստում ա հանրայինը։
իսկ չհասկացուածը բոլորս ենք, եւ իմ կարծիքն ա՝ որ պէտք չի համեմատուել՝ ով աւելի ուժեղ ա չհասկացուած, դրան չենք ի վերջոյ ձգտում, որ իրար մօտ պարծենանք, թէ ով ա աւելի շատ չհասկացուած։ ու … յոգնեցի էս տեքստից։ յուսամ այն ոչ մէկ, բացի ապագայում՝ մեքենաներից, չի կարդայ։ տեքնոլոգիայի անկատար լինելու պատճառով՝ մի մասը դիասպորա չի հասնելու։
իսկ հիմա ես պիտի շեղուեմ, գործ ունեմ։ կներէք, եթէ կարդացել էք սա, անկախ նրանից՝ մեքենայ էք, թէ մարդ։
մինչ։
#ընկալում #պասկալ #տեքնոլոգիաներ #տեք #ծրագրաւորում #էկրանահան #անկապ #պատմութիւն #հոսք ############
հաւէս յօդուած ա սա շատ՝ https://www.joelonsoftware.com/2001/12/11/back-to-basics/
իսկ օբերոնում վիրտը որոշել ա հրաժարուել պասկալական տողերից, ու կիրառել զրօյով աւարտուող տողեր։
սակայն, էդ տողերով կարիք չկայ միշտ վազել չափն իմանալու համար։ առանձին դաշտ էլ պէտք չի օգտագործել ու յիշողութեան մէջ մի տեղ պահել չափսը՝ քոմփայլերը գիտի տողի երկարութիւնը։
ու քոմփայլ թայմ թեստ կարող ա անել։ դիցուք վերցնենք էս ելատեքստը՝
MODULE tst;
IMPORT Out;
VAR i: SHORTINT;
str: ARRAY 1024 OF CHAR;
BEGIN
FOR i := 0 TO LEN(str) DO
Out.Int(i, 0); Out.Ln
END;
END tst.
այն քոմփայլ չի լինի՝
[2020-09-02 16:00:20] $ voc -m tst.Mod
tst.Mod Compiling tst.
9: FOR i := 0 TO LEN(str) DO
^
pos 102 err 113 incompatible assignment
Module compilation failed.
[2020-09-02 16:00:21] $
voc֊ը որ դէպի C ա թարգմանում սորսը, շատ լաւ ա պատկերելու համար։ եթէ մենք ունենք՝
str: ARRAY 16 OF CHAR;
ապա ելքային C կոդը կը լինի՝
static CHAR tst_str[16];
միայն դա։
իսկ
FOR i := 0 TO LEN(str) DO
կը թարգմանուի որպէս՝
tst_i = 0;
while (tst_i <= 16) {
Երբ մենք գրում ենք տողի հետ աշխատող ֆունկցիա, մենք կարող ենք չիմանալ փոխանցուող տողի երկարութիւնը՝
MODULE tst2;
PROCEDURE addStrs(VAR a, b: ARRAY OF CHAR);
BEGIN
(* do smth useful here *)
END addStrs;
PROCEDURE test*;
VAR
s0: ARRAY 32 OF CHAR;
s1: ARRAY 64 OF CHAR;
BEGIN
addStrs(s0, s1);
END test;
END tst2.
եւ ապա սի կոդը կը լինի՝
static void tst2_addStrs (CHAR *a, ADDRESS a__len, CHAR *b, ADDRESS b__len)
{
/* here we think we can do smth useful */
}
void tst2_test (void)
{
CHAR s0[32];
CHAR s1[64];
tst2_addStrs((void*)s0, 32, (void*)s1, 64);
}
այսինքն՝ ֆունկցիան ստանում ա նաեւ տողի երկարութիւնը։ ու եթէ անել LEN(a)
անմիջապէս՝ առանց ոչ մի հաշուարկ՝ ստանում ես տողի երկարութիւնը։
ապա ինչպէ՞ս են աշխատում դինամիկ տողերը։
MODULE tst3;
PROCEDURE addStrs(VAR a, b: ARRAY OF CHAR);
BEGIN
(* do smth useful here *)
END addStrs;
PROCEDURE test*(i: INTEGER);
VAR
s: ARRAY 32 OF CHAR;
ps: POINTER TO ARRAY OF CHAR;
BEGIN
NEW(ps, i);
addStrs(s, ps^);
END test;
END tst3.
ունենք մի հատ ստատիկ տող՝ s
ու մի հատ դինամիկ տողի ցուցիչ՝ ps
։
ps
֊ի չափսը կը ստանանք որպէս ֆունկցիայի արգումենտ՝ էս պահին մեզ անյայտ ա։
առաջին ֆունկցիան մնում ա անփոփոխ, երկրորդը թարգմանւում ա սէնց՝
static void tst3_addStrs (CHAR *a, ADDRESS a__len, CHAR *b, ADDRESS b__len)
{
/* do smth useful here */
}
void tst3_test (INT16 i)
{
CHAR s[32];
struct {
ADDRESS len[1];
CHAR data[1];
} *ps = NIL;
ps = __NEWARR(NIL, 1, 1, 1, 1, ((ADDRESS)(i)));
tst3_addStrs((void*)s, 32, (void*)ps->data, ps->len[0]);
}
_NEWARR
֊ն արդէն մի քիչ բարդ ֆունկցիա ա, որը ռանթայմի մաս ա։
բայց ընդհանուր առմամբ պարզ ա ինչ ա անում՝ հիփ֊ի մէջ ալոքէյթ ա անելու տող, եւ մեր ստացած ցուցիչն արդէն struct֊ի ա, որն ունի data դաշտ եւ len դաշտ։
սա ռանթայմ տեղեկատւութիւն ա, ու այս դէպքում արդէն մեզ պէտք ա պահել առանձին դաշտ տողի երկարութեան համար։
ու տէնց։
#օբերոն #ծրագրաւորում #տող #տողեր #պասկալ #սի #վիշապ #իրականացում #կազմարկում #կոմպիլյատոր #կոմպիլեատոր #կազմարկիչ
torchat֊ը առաջ գրուած էր փայթընով, իսկ հիմա արտագրել են պասկալով՝
https://github.com/prof7bit/TorChat/tree/torchat2/src/core
#չաթ #փայթըն #պասկալ #ծրագրաւորում
քամին տարածել էր ադոբի ելատեքստը, ու ես ուզեցի մեկնաբանել, ինչպէս ա տարբերուում ադոբի ու բորլանդի պասկալի ֆորմատինգի ստանդարտը։
#պասկալ #էկրանահան #կոդ #ծրագրաւորում #մշակոյթ
ստեղ էլ փակցնեմ՝
ադոբի՝
PROCEDURE AddCode (node: PNode; code: INTEGER; VAR word: Str255);
VAR
branch: INTEGER;
BEGIN
IF LENGTH (word) = 0 THEN
BEGIN
IF node^.leaf OR (node^.branch [0] <> NIL) OR
(node^.branch [1] <> NIL) THEN
BEGIN
WRITELN ('? Conflict for code ', code:1);
EXIT (PROGRAM)
END;
node^.leaf := TRUE;
node^.code := code
END
ELSE
BEGIN
IF word [1] = '0' THEN
branch := 0
ELSE IF word [1] = '1' THEN
branch := 1
ELSE
BEGIN
WRITELN ('? Invalid word for code ', code:1);
EXIT (PROGRAM)
END;
DELETE (word, 1, 1);
IF node^.branch [branch] = NIL THEN
BEGIN
NEW (node^.branch [branch]);
node^.branch [branch]^.leaf := FALSE;
node^.branch [branch]^.branch [0] := NIL;
node^.branch [branch]^.branch [1] := NIL
END;
AddCode (node^.branch [branch], code, word)
END
END;
բորլանդի՝
procedure AddCode(node: PNode; code: INTEGER; var word: Str255);
var branch: integer;
begin
if length(word) = 0 then
begin
if node^.leaf or
(node^.branch[0] <> nil) or
(node^.branch[1] <> nil) then
begin
WriteLn('? Conflict for code ', code:1);
Halt //ստեղ նաեւ փոխել եմ Exit ֆունկցիան
end;
node^.leaf := true;
node^.code := code
end
else
begin
if word[1] = '0' then
branch := 0
else
if word[1] = '1' then
branch := 1
else
begin
WriteLn('? Invalid word for code ', code:1);
Halt
end;
delete(word, 1, 1);
if node^.branch[branch] = nil then
begin
new (node^.branch[branch]);
node^.branch[branch]^.leaf := false;
node^.branch[branch]^.branch[0] := nil;
node^.branch[branch]^.branch[1] := nil
end;
AddCode (node^.branch [branch], code, word)
end
end;
#պասկալ #մոդուլա #օբերոն #տտ #տեքնոլոգիա #գրականութիւն #մարդիկ
@{ քամի ; o_o@spyurk.am} 30.04.2019, 11:23:40
Reviving a computer system of 25 years ago - Wirth, 2014
ինձ վիրտի մէջ ամէնաշատն իր խնդիր֊կողմնորոշուած լինելն ա դուր գալիս։ ու պարզ մտածելը։
ասումա, ծրագիր գրելը բարդ ա՝ ինչքան էլ առեւտրականները հակառակը քարոզեն։ ճիշտ ծրագիր գրելն՝ առաւել եւս։
ասում ա, ծրագիրը կոդ չի համակարգչի համար, գրականութիւն ա մարդկանց համար։
#ծրագրաւորում #վիրտ
լազարուսը դարձել ա «համայնքի ընտրութիւն» սոուրսֆորջ կայքում՝ https://sourceforge.net/blog/march-2019-community-choice-project-month-lazarus/
#պասկալ #լազարուս #հարցազրոյց
մարդիկ պասկալով տեսէք ինչ են գրում՝ https://www.youtube.com/watch?v=WEsEhGfrW-g
մի ելատեքստ, կազմարկւում ա լիքը թիրախների համար։ #պասկալ #դելֆի #դիւրակիր
պասկալը 16֊րդ տեղից բարձրացաւ 11֊երրորդ, մի տարում։
https://www.tiobe.com/tiobe-index/
#պասկալ #ծրագրաւորում
https://sourceforge.net/projects/delphimpeg/ սա էլ պէտք ա նայել ոնց ա գրած։ #պասկալ
ջոկեցի, որ երբ չաթում կիսւում եմ, ստեղ չեմ կիսւում։ ուզում էի ասել, որ պարզւում ա, ֆրիթայփ գրադարանի առաջին վարկածը նաեւ պասկալով կար գրած, դոսի ու ուինդոուսի համար, որ դելֆի֊ով կազմարկուի։
իսկ հիմա լազարուսի մաս ա։
#պասկալ #գրադարան #էկրանահան
https://www.youtube.com/watch?v=1BH460c9_Aw&list=PLVQNyvSWkbJS5p7EM1yJ3Io3AUQiT96of #լազարուս #պասկալ #անդրոիդ
օմգ էֆէլ ստուդիոն դելֆի֊ով ա գրուած։
#դելֆի #պասկալ
մեկնաբանութիւններում շատ են խօսում պասկալի մասին
https://news.ycombinator.com/item?id=11563451
#պասկալ
ինչ հետաքրքիր է։ հասքելի եւ պասկալի հանդէպ հետաքրքրութիւնը աճում եւ նուազում է ուսումնական սեմեստրերի պարբերութիւններով։ (:
համոզուել ինքնուրոյն։
#էկրանահան #ծրագրաւորման_լեզուներ #ադա #պասկալ #հասքել #ծրագրաւորում
կարդում էի fpc-3.0֊ին վերաբերող մեկնաբանութիւնները, պարզւում է այլեւս գրեթէ չեն գրում՝ «ո՞ւմ է սա պէտք, երբ կայ…», կամ «թաղէք», կամ «դեռ կենդանի՞ է»։ ընդամէնը տասնհինգ տարի պահանջուեց, որ հասկանան՝ նորմալ նախագիծ է, զարգանում է, շարունակելու է զարգանալ, համայնք կայ, հետաքրքիր բաներ անում են, լաւ է որ կայ, չի պատրաստւում մեռնել։ կենդանի է եւ վազում է։ ։Պ
#համայնք #պասկալ #ազատ_ծա #մեկնաբանութիւն #նախագիծ
ահա եւ ելատեքստը
ու տենց
ահա եւ ելատեքստը
#էկրանահան #ամպ #առօրեայ #կոդ #արեւային_էներգիա #պասկալ
#էկրանահան #առօրեայ #կոդ #արեւային_էներգիա #պասկալ
աաա, իմ փուլ ռեքուեսթը հաստատուեց՝ https://github.com/devi/uxmpp/pull/2#event-293939170
#ջաբեր #ծրագրաւորում #գիտհաբ #գիտ #պասկալ
ուրեմն, ասենք մի տարի առաջ, մի աղջկայ դեբիան եմ տեղադրել։ ինչո՞ւ։ մթոմ լաւութիւն էի արել՝ չի փչանայ, ասել եմ, վիրուսներ չես ունենայ, հանգիստ կապրես։
վերջերս կապուել է։ ասում է՝ վայֆայը չի աշխատում։ նախ, կարեւորն այն է, որ ինձ է կապուել։ ինչո՞ւ ինձ։ եթէ վինդովս լինէր, նա շատ տարբերակներ կունենար ու գուցէ նախընտրեր ինձ չդիմել։ բայց լինուքս «սափորթ» անողները, այո, այնուամենայնիւ, դեռ անհամեմատ աւելի քիչ են։
ինչեւէ, մենք հանդիպում ենք սրճարանում, եւ իր նոութը վայֆային կպնում է։ «ուրեմն աշխատում է» — ուրախանում եմ ես։ «չգիտեմ ինչ է, քեզնից է վախեցել» — պատասխանում է նա։ յետոյ գնում է տուն։ եւ իր նոութը իր տան վայֆային չի կպնում։ այդ ժամանակ նա համարձակւում է զանգել պրովայդերին, ով տեղադրել է եւ կարգաւորել վայֆայը եւ բողոքել։ իսկ պրովայդերը լուծում է խնդիրը՝ իր մեղքն էր։
ո՞րն է երկրորդ կարեւոր մասը այս պատմութեան։ այն, որ այդ աղջիկը, ով բնաւ էլ կոնֆորմիստ աղջիկ չէ ընդհանուր առմամբ, ու նախանձելի համարձակութիւն ունի շատ այլ իրավիճակներում, փաստացի ենթադրել էր, որ «մարգինալ լինուքսն է» պատճառը կապ չունենալու, ոչ թէ «մեյնսթրիմ» պրովայդերը։ նա չի ենթադրել, որ այն, ինչ մարգինալ է, այն ինչ տարածուած չէ, այն ինչ կոնֆորմիստական չէ՝ կարող է անխափան աշխատել։ ինքը՝ մարգինալ, ոչ կոնֆորմիստ լինելով։
ես կարծում եմ, որ դա շատ պարզ է։ ու որ մենք շատ քիչ հաւանականութեամբ կարող ենք ունենալ իրական նոն կոնֆորմիստ եւ իրական մարգինալ։ նրանց՝ ով փոխում է աշխարհը։ մերոնք՝ փոփոխութիւն անել ունակ չեն։ եւ դա, ես կարծում եմ, կապ ունի նաեւ մեր քանակի եւ բազմազանութեան հետ։
ինչպէ՞ս են մարգինալները փոխում աշխարհը։ փոխում են՝ ունենալով մեծ շուկայ։ փոխում են՝ քանի որ իրենց համայնքներն այնքան մեծ են, որ իրենց քիչ քանակի համախոհները այնուամենայնիւ այնքան շատ են, որ տարբերւողները կարողանում են չմնալ տեղում, զարգանալ, եւ համայնքները փոփոխութեան են տանում։
այսպէս, Սթոլմանը կարող էր իր գրած ազատ ծա֊ի աջակցութիւն մատուցելով ապրել՝ ժամը 200 դոլար վաստակելով։ քանի որ միացեալ նահանգների շուկան այնքան մեծ է, որ գտնւում էին մարդիկ, ով կօգտագործեր իր ծրագրերը, եւ դրանց մէջ գտնւում էին նաեւ նրանք, ով կը վճարէին աջակցութեան համար։
այսպէս, Լինուսը, չնայած իհարկէ բնաւ հարուստ չէ, ինչպէս Գեյթսը կամ Ջոբսը, Լինուսը կարողացել է իրեն թոյլ տալ միլիոն դոլարով տուն ձեռք բերել։ Եւ երկու հարիւր հոգանոց ռեդհեթը կարողացել է լինել շահութաբեր եւ տարածուել։ իհարկէ, նահանգների ճնշող մեծամասնութիւնը դեռ օգտագործում է մայքրոսոֆթի կամ էփլի արտադրանքը սեղաններին, սակայն իրավիճակը կամաց, բայց կայուն փոխւում է։ ու արդեն զարմանալի չէ, որ տեսականօրէն ազատ անդրոիդը, լինուքս միջուկով, դէ ֆակտո ստանդարտ է։
այնտեղ, ուր շատ մարդ կայ, գտնւում է շատ մարդ, ով կարող է, օրինակ, լաւ դիտորդ լինել ընտրութիւնների ժամանակ, կամ աջակցում է ոչ այնքան շահութաբեր մտքին՝ ասենք օգնել անօթեւան կենդանիներին։ այնտեղ փոքր համայնքները դառնում են ազդեցիկ, եւ փոխում են հասարակութիւնը, իսկ յետոյ փոխում են օրէնքները։
հայաստանի շուկան այնքան փոքր է, որ կարելի է ասել՝ այն չկայ։ նաեւ ակնյայտ է, որ շուեյցարական (իսկ շուեյցարիան նեյտրալ է եւ նոյնիսկ եւրամիութեան անդամ չէ) տեքնոլոգիաները չէին կարող մրցել ամերիկեան տեքնոլոգիաների հետ, անկախ նրանից, թէ ինչքանով լաւն էին։ օբերոնը, մոդուլան այդպէս էլ մնացին համալսարանների նեղ պատերի մէջ, ուր եւ շնչահեղձ են լինում։ պասկալը ժամանակաւոր տարածում ունեցաւ՝ երբ բորլանդ ընկերութիւնը գրանցուեց ամն֊ում, եւ ամն֊ում տարածուելու պատճառով այն յետոյ հասաւ մեզ։
եթէ օբերոնը լինէր գերմանական՝ տարածուեր գերմանիայում, դրան աւելի լուրջ էին վերաբերուելու։
կամ այլ օրինակ՝ ո՞վ էր լինելու Գոդարը, եթէ նա ապրեր եւ ստեղծագործեր (եթէ իրեն թոյլ տային) Հայաստանում։ Ո՞վ էր իրեն ճանաչելու։ Հայերը չէին ճանաչի ճիշտ այնպէս, ինչպէս ծանօթ չեն Փելեշեանին։ Աշխարհը չէր ճանաչի այնպէս, ինչպէս ծանօթ չէ Փելեշեանին։ Ի՞նչ կը լինէր, եթէ Փելեշեանը ստեղծագոծած լինէր Ֆրանսիայում։ Կասէին՝ որ նա փոխել է աշխարհը։ Որ կայ կինո մինչեւ Փելեշեան, եւ Փելեշեանից յետոյ։
այնտեղ է, իրենց մօտ է երբ փայթնը յաղթում ջաւան։ այո, աւելի հիփսթերական քան գիտական փայթնը յաղթում է կորպորատիւ ջաւան։ քանի որ այնքան լիբերալ հասարակութեան մէջ միայն կարող են լինել այնքան հզօր մարգինալներ։ այսպէս է որ փոքրամասնութեան իրաւունքները պաշտպանուած են լինում այնտեղ, ուր ժողովրդավարութիւն է։
Հայաստանում շատ բարդ է զարգանալ։ այսինքն՝ կարելի է լինել կենսակայուն «բակի բուդկա», որը թոյլ է տալիս տիրոջը սպասարկել հին «բմվ» եւ վճարել դստեր տնտեսագիտականի համար, բայց ոչ աւել։ նա ալեքսանեան երբեք չի դառնալու, ինչքան գրագէտ մարկետինգ չանի, ինչքան լաւ չկազմակերպի իր խանութի աշխատանքը՝ ապրանքների դասաւորութիւնը, գները, դիզայնը։
այսինքն՝ չի ստացուի լինելով տարբեր գրաւել շուկան։ չի ստացուի լինել տեղական գուգլ, կամ էփլ, որը դուրս է եկել աւտոտնակից։
նոյնը՝ ինդիւիդների մակարդակում է։
յիշո՞ւմ էք, երբ հայրը, իր երեխային ասում է՝ «տեսնո՞ւմ ես պեծյան փորում է։ այ դու էլ դասերից փախնես՝ փորելու ես»։ այո, ճիշտ է ասում, ընդհանուր առմամբ, հայաստանի համար։ բայց ճիշտ չէ ասում նահանգների համար, ուր գեյթսը թողնում է ուսումը, եւ հիմնում է մայքրոսոֆթ։ ուր ջոբսը թողնում է ուսումը եւ ստեղծում է էփլ։ ուր էյնշթեյնը գալիս է, անում իր դոկտորականը, նրանից յետոյ, երբ մերժւում է շուեյցարիայում։
կամ՝ ինչո՞ւ է այս աղջիկը հագնում կրունկներ, չնայած չի սիրում դրանք։ քանի որ, ասում է, չեն հաւանում ինձ։ բայց չէ՞ որ — հակաճառում էի ես — երբ դու վերջապէս հանդիպես նրան, ով հաւանելու էր հենց քեզ, նա դա չի անի, քանի որ դու չես լինի ինչպիսին կաս։ այո — համաձայնում էր նա։
սակայն ես հիմա հասկանում եմ, որ նա աւելի ճիշտ է։ նա, ով այդ աղջկան կհաւանէր այնպիսին, ինչպիսին նա կայ, կամ արդեն զբաղուած է, կամ գնացել է արտասահման՝ այնտեղ, ուր շատ են նրանք, ով իրեն դուր են գալիս։ ու նրանք, ով իրեն կընդունեն։ իսկ այն աղջիկը, որ սիրում է կարճ մազեր, ու «տղայական» տեսք, նա ոչ միայն քիչ հաւանական է, որ կհանդիպի իրեն այդպէս հաւանողին, այլեւ նա ինքը, ամենայն հաւանականութեամբ կհաւանի աւելի «աւանդական» տղայի, քան նա աղջիկ է։
եւ բնաւ պատահական չէ, որ մեզ մօտ ընդդիմադիր երեխաները՝ ընդդիմադիր ընտանիքներից են։ իսկ ոչ ընդդիմադիր երեխաները՝ ոչ ընդդիմադիր ընտանիքներից։ բնաւ պատահական չէ, որ դատախազի որդին է դառնում դատախազ, ոչ թէ ընդդիմադիր։
մեզ մօտ չափազանց քիչ են, փաստացի չեն լինում շրջակայ միջավայրին դէմ գնացող մարդիկ՝ հասարակութեանը, կամ ընտանիքին, եղբայրութեանը։ մեզ մօտ չեն լինում, քանի որ մենք քիչ ենք, ու դէմ գնալով, իրենք ընդամէնը գնալու են ինքնամեկուսացման։ իսկ մեկուսացող մարդիկ վաղ թէ ուշ լրացնելու են «նեուդաչնիկների» շարքերը։ սա ամն չէ, ուր նեուդաչնիկները գտնում են իրենց պէս ընկերներ, հզօրանում են, եւ տակն ու վրայ են անում համակարգը։ կամ գոնէ կարողանում են զարգանալ լինելով այնպիսին ինչպիսին կան, առանց կոտրուելու։
ու գուցէ զարմանալի չէ բնաւ, որ հայերի էպոսի հերոսը՝ Մհերը, ի վերջոյ գնում է ինքնամեկուսացման։ նա յաղթող չէ։
մարգինալները չեն կարող փոխել հայաստանը, քանի որ չեն հաւաքում կրիտիկական զանգուած։ (այնպէս, ինչպէս գազոնը ունի մինիմալ չափ ապրելու համար, եւ երկիրը ունի այնպիսի սահմաններ, որ պաշտպանելը իրատեսական լինի։) եւ ինչքան քիչ մարդ կայ այստեղ, այնքան քիչ է այն հաւաքելու հաւանականութիւնը։ (զակոն օբրատնիխ կուադրատով)։
այդ պատճառով էլ ունենք երեք հոգի հայերէն գրող դիասպորայում։ որոնց թիւը չի աճի։ այդպէս էլ կը փտեն, մինչեւ չյոգնեն իրարից։
ու պատահական չէ, որ մեզ մօտ նոնկոնֆորմիզմ գոյութիւն չունի։ իհարկէ կան, մեն֊մենակ այստեղ եւ այնտեղ, իրենց փոքր, նեղ համայնքիկներում՝ ախպերութիւններում փտող մարդիկ։ փտող՝ քանի որ օդի շարժ չկայ։ սակայն իրենք չեն փոխի ոչ մի բան։ ոչ իրենց արուեստն է տարածուելու, ընդունուելու լայն զանգուածներում, ոչ իրենց տեքնոլոգիաները, ոչ իրենց գաղափարները։ (ո՞ւր է ժամանակակից արուեստը հայաստանում։ մնացել է նփակի պատերի արանքում։ եւ դեռ կոմունիստների ժամանակ ստեղծուած թանգարանում։ չի տարածուել։ որտե՞ղ է ժամանակակից արուեստը նիւ֊յորքում։ պէ՞տք է պատասխանել։) աւելի ճիշտ՝ դրանք կընդունուեն այն ժամանակ, երբ կը գան դրսից։ եւ զարմանալի չէ, որ այդ մարգինալներին կհամարեն դրսամոլ, արեւմտամոլ։ ասենք որտեղի՞ց պէտք է գայ թարմութիւնը՝ այնտեղից, ուր յաղթել են մարգինալները։ որտե՞ղ են իրենք յաղթում՝ արեւմուտքում։
որտե՞ղ չեն յաղթում մարգինալները՝ չինաստանում։ ի՞նչ է անում չինաստանը՝ կրկնօրինակում է արեւմուտքը, իրականացնում է արեւմտեան նախագծերը։ ինչո՞ւ սոնի ուոլքմենը չդարձաւ այֆոն։ որովհետեւ կարգին ընկերութիւն էր սոնին, ոչ թէ արտակարգ եւ ըմբոստ՝ էփլի պէս։
տասնեօթ եւ տասնութ տարեկան դեռահասներն աւելի են տարբերւում իրարից, քան երեսուներեք եւ երեսունչորս տարեկան մարդիկ։ նոյնիսկ հարիւր հազար բնակչութիւն կորցնել կամ ձեռք բերելը աւելի մեծ ազդեցութիւն է ունենում հայաստանի վրայ, քան միացեալ նահանգների՝ մէկ միլիոնը։ «միլիոնոմ բոլշե, միլիոնոմ մենշե» — ասում էր Շարլ Բոննէն՝ «ինչպէս գողանալ միլիոն» ֆիլմում։ մեզ համար ամէն մի գնացող մարդն է կարեւոր։ ամէն մէկը նշանակութիւն ունի։
Այդ պատճառով են այնքան նկատելի այն քչերը, որ ինչ֊որ բան փորձում են փոխել։ Ու այնքան ատելութեան արժանանում։ Փոփոխութիւն անողներն, տարբերուողները այնքան շատ պիտի լինէին, որ այս մարդիկ չէին էլ երեւալու իրենց մէջ, լինելով ալիքների մաս, ոչ թէ առանձին իմպուլսներ։
այո, շատ անյոյս եմ գրել, թւում է։ բայց դա իրականութիւնն է, ֆիզիկայի օրէնքների պէս։ ես չեմ կարծում որ պէտք է հաւատալ փոխելու համար։ ես կարծում եմ, որ պէտք է իրատես լինել փոխելու համար։
եւ իրատես լինելով ես գիտեմ, որ ամէն գնացողը ազդում է, եւ ամէն մնացողն ազդում է։ մնացողին բարդ է ամենուր․ եւ ուսման ժամանակ, եւ աշխատանքի վայրում, եւ նախաձեռնելուց՝ նա վաստակելու է թուք ու մուր, կամ արհամարհանք, կամ ատելութիւն, կամ պրեզրենիե։ նա գնահատուած չի լինելու, նա իրեն շատ վատ է զգալու։
ու միայն եթէ բոլորը չէ, եթէ շատերը մնան, ինչպէս շատերը գնացին ապրելու էրեծ իսրայէլ, շատ տարբեր շատերը՝ եւ նիհար գունատ աշկենազիներն եւ սեւ էֆիոպցիներն, եւ շատերը որոշեցին սովորել մեռած լեզու, եւ շատերը լինեն դուխով՝ նախաձեռնող, անող, կպնող իրենց գործին՝ առանց խանգարող «հաւատքի», բայց եւ անկախ «հասարակական» փոփոխական կարծիքից, պարզապէս, որովհետեւ իրենք անձամբ այդպէս են կարծում, այն ժամանակ է փոխուելու հասարակութիւնը, ընտրութիւնները, բնականոն ձեւով է գալու հանդուրժողականութիւնը՝ քանի որ ահա տեսէք, բոլորը տարբեր են, ամէն ձեւի մարդ կայ, եւ պարզւում է, իրենք չեն քանդում պետութիւնը, այլ ստեղծում են ազգ։
I have published Vishap Oberon compiler
#vishap #voc #oberon #oberon-2 #compiler #ofront #pascal #modula-2 #fork #github #compilers #վիշապ #օբերոն #կոմպիլյատոր #պասկալ #մոդուլա֊2 #ծրագրավորում
ուրեմն, այսօր քննարկում էին, որն է «ճիշտը», զրոյից ֊ ինպես սի֊ում, թե մեկից ֊ ինչպես պասկալ֊ում հաշվել։ Դեյկստրայի թղթի շեյրի պատճառով։
ուզում եմ ես էլ արտահայտվել։
Առաջինը, ոնց էլ հաշվեն, լավ է մի ձեւ, որովհետեւ այլապես լրիվ ես խճճվում։
Երկրորդը, Վիրտը ինքն է հրաժարվել պասկալի մոտեցումից, ու Մոդուլայից սկսած արդեն զրոյից է հաշվում։
Երրորդը, եթե սկսենք մաթից, ապա կա մի քանի մոտեցում ֊ օրինակ ռուսական մաթ դպրոցը համարում է որ զրոն բնական թիվ չէ, իսկ գերմանական մաթ դպրոցը ֊ որ զրոն բնական թիվ է։ Ես, բնականաբար գերմանացիների կողմից եմ։ (:
Կամ այսպես՝ կա երկու մոտեցում սահմանել բնական թվերը
֊ թվարկելով ֊ առաջինը, երկրորդը, երրորդը
֊ նշելով ասենք իրերի քանակը ֊ չկա իր, մեկ իր, երկու իր․․․
Ինձ թվում է բնական, որ բացակայությունը էական հատկանիշ է։
Իսկ ինֆորմատիկայում, ես կարծում եմ, ավելի նպատակահարմար է զրոյից հաշվել։ Պարզ պատճառով ֊ մենք աշխատում ենք հիշողության օֆսեթների հետ։ Այսինքն երբ պետք է դիմել կոնկրետ դաշտին, կամ էլեմենտին, հաշվում ենք շեղումը հիշողության, ստրուկտուրայի սկզբից։
Ու պարզ է որ ունենում ենք զրոյական շեղում։ Ասենք դաշտը կարող է զրոյական օֆսեթ ունենալ։ Ուրեմն ոչինչը ինչ֊որ բան նշանակում է մեզ համար։ Այսինքն, nothing tells something ֊ ինչպես ասում էր Հաուսը։
Բացի դրանից, այսպես հաշվելը ավելի արագ է(էժան է), որը նույնպես լավ դիզայնի նշան է։
Իսկ Դեյկստրայի մասին ֊ ես կարծում եմ, որ առանց նրա ինֆորմատիկան բնավ չէր լինի այնքան գրավիչ, հավես, ռոմանտիկ, ու այնքան գիտական։ Այսինքն նա այն քչերից է ով գիտական մոտեցում է ցուցաբերում։
Օրինակ այն, որ հիշողությունը պետք է տիպավորված լինի, ամենակարեւոր մտքերից է։
Դե գոութուի մասին ես կարծում եմ խոսելն էլ է իզուր։ Որովհետեւ կոդը միայն կատարվող ծրագիրը չէ, այլ մտքերի ֆորմալ նկարագրություն է։
Նրա համար, որ մարդը կարդա ու հասկանա ինչ է գրված, նրա համար, որ կոմպիլյատորը կարողանա սխալներ գտնել։ Իսկ ոնց անցար գոութու֊ին ֊ կոմպիլյատորը ձեռքերը լվանում է, քաշվում է մի կողմ։ ի՞նչ իմանա ինչ է մտքիդ։ Նույնը չտիպավորված հիշողություն օգտագործելիս։
Էլ չեմ ասում որ Ճաշող Փիլիսոփաների ու Քնած Վարսավիրների պես հավես անտրոպոմորֆիզմ ումի՞ց, եթե ոչ Դեյկստրայից։
ա նապոսլեդոկ այս տեսանյութը՝
ավելի ճիշտ ֊ հենց այստեղից։
Կնութ՝ մենք Էդսգերի հետ սիրում էինք չորս ձեռքով նվագել, ու ես ոչ մի կերպ չսովորեցի, որ երբ նվագում էինք Հայդնի վալս, նա չէր հաշվում՝ մեկ, երկու, երեք, մեկ երկու երեք, նա ասում էր՝ զրո, մեկ, երկու, զրո, մեկ, երկու։
ու տենց
Շատ բարդ էր այս գիրքը գտնել։
Ու վերջապես գտա, օգտագործածը։
Իրան խորհուրդ էր տվել Creenshaw-ն իրա քոմփայլերների գրքում։
POINTER TO սինտաքսը հայտնվեց Մոդուլայում։
Նախկին գրքի տերը հաստատ փորձում էր թարգմանել ծրագրի տեքստը Պասկալից Մոդուլա, կամ Օբերոն։
Մոդուլայում և Օբերոնում արդեն չկա function բառը, կան միայն PROCEDURE ներ։ ։Ճ
ու տենց
TMultiReadExclusiveWriteSynchronizer
_ու տենց _
This guy have been written Wiki and Forum in Object Pascal. They could be compiled with FreePascal, Delphi or Kylix.
He also wrote few articles and you can find them in his PasWiki
FreePascal main developer FPK’s blog at http://www.florianklaempfl.de/nucleus/
you may compare packages popularity, like I have compared popularity of freepascal, gnu pascal, gnat (ada) and oo2c (oberon) compilers
Compiler benchmarks