ասք ցուցակների մասին

– համ էլ սատանիկը էն մարդկանց ցանկում կա, որ ասի լայք, ես ել ասեմ դե ռազ որ լայք ուրեմն ֆսյո։

– վայ քու արա

քո մոտ տենց մարդկա՞նց ցուցակ էլ կա

(վայ քու արա)^2

– իրա մոտ ամենինչն ա ցուցակ (list)

ու տենց

ասք ստանդարտներին հետևելու մասին

Ստանդարնտները լավ բան են։ Ինչ որ ստանդարտ պետք ա լինում։ Նույնիսկ ասենք շփման մեջ, միմյանց հասկանալու համար։ Կամ թերմերի մեջ, կրկին՝ հասկանալու համար։

Սակայն, երբ ստեղծում եք նորը ստանդարտին հետևելը, կամ համապատասխանելը հաճախ բերում է վատ որոշումներին, ու վատ դիզայնին։

Ասենք, երբ Ստրաուստրուպը C++ նախագծելուց փորձում էր պահպանել C-ի հետ համատեղելիությունը, դա բերեց ինչպես տգեղ լուծումների, այնպես էլ լեզվի չաղացմանը։

Ուինդոուս/Սոլարիս-ներում – պահպանել նախկին տարբերակների հետ համատեղելիությունը որոշումը բերեց գրադարանների չաղացմանը։

Ի տարբերություն, Վիրտը, նախագծելով Մոդուլան որոշեց չպահպանել պասկալի հետ համատեղելիությունը։ Փոխարենը, նա գրեց քոնվերթեր, պասկալից մոդուլա տրանսլացիա անելու համար։ Նույնպես նա վարվում էր և հետագայում, Մոդուլայից Օբերոն քոնվերթեր գրելով, քանի որ հասկանում էր՝ համատեղելիությունը պահպանելը կբերի տգեղ դիզայնի։

Բաց ԾԱ-ի աշխարհում համատեղելիություն պահպանելը իմաստ չունի։

Փոխվեց գրադարանը՝ փոխվում է ծրագիրը որը այն օգտագործում է։ Եթե ծրագրի հեղինակը հետաքրքրված չէ, դա անում է մեյնթեյները կամ յուրաքանչյուր մեկը ում այդ ծրագիրը պետք է։ Այսպիսով, բաց ԾԱ-ն չունենալով համատեղելիության շերտ՝ ավելի նիհար է։

Ինչպես ես արդեն գրել եմ, կարգինը՝ արտակարգ լինել չի կարող։

Այս պատճառով Պլան9-ը և Ինֆերնոն, որոնց դիզայնի մեջ, ի դեպ, անկերես է Օբերոնի ազդեցությունը, չեին կարող հետևել սովորական Յունիքս/Պոսիքս ստանդարտների։

Ու պարզ է որ նրանք լայն չեն կիրառվում այն պատճառով, որ ծրագրերի մեծ մասը գրված է տեքնոլոգիաներով, որոնք անհամատեղելի են Ինֆերնոի հետ։ Օրինակ, C-ով կոդ այնտեղ ափլիքեյշն լեվել չի օգտագործվում, դրա համար կա Լիմբո։

Սակայն, նոր դիզայն կարող է իրեն թույլ տալ կորմորացիա որը նախագծում է ու տարածում նոր համակարգ։

Ես Անդրոիդ-ի մասին եմ։

Գուգլը լինուքս միջուկի հիման վրա ստեղծել է «նոր» համակարգ, ձեռք է բերել նոր ջավա վիրտուալ մեքենա։

Դրայվերների խնդիր մոբայլ սարքերի համար չկա՝ միևնույն է լիքը նոր դրայվեր գրվել է։

Լինուքսից օգտագործվել է սքեդուլերը, թիսիփի սթեքը, և այլն։ Սի-ով ափլիքեյշն կոդ գրելն նախատեսված չեր։

Այսինքն, կարելի էր անել համակարգ, որտեղ կան դիզայնի նոր ընտրություններ, ինչպես ընդհանուր հասցեական տարածությունը։ Բայց էդպիսի բան արված չէ։ Ընդ որում Լինուքս միջուկի քաստոմիզացիայի վրա այնքան ռեսուրս է ծախսվել, որ այդ ուժերը անհրաժեշտ էր ծախսել Ինֆերնոն փրոդաքշն և մոբայլ սարքեր բերելով։

Որովհետև նոր է, արագագործ, ու գեղեցիկ։

ու տենց

ասք հռոմեական թվերի մասին

object-oriented design is the roman numerals of computing.

այստեղից

Ռոբ Փայքի, որը այժմ Գոու-ի ֆյուրերն ա ամենահայտնի խոսքերից։

Ինձ շատ ուրախացրեց այս փոսթը

> Java is done right in concept.

wtf?

[ Let me start by saying I don’t speak for any of these guys,
I can’t even get their OS to run a GUI.]

Java is better than C++, but as others have mentioned that’s like saying
toothache is better than herpes.

It’s just C without pointer arithmetic. Leaving aside actual
implementation bugs, it :

* runs on less platforms than any other language I’ve ever used,
* wimped out of having numeric types implemented as objects, then
bolted on ‘containers’ for them in 1.1
*has changed its GUI twice and *still* doesn’t do it right,
* it’s thread model is essential to its operation but differs widely
between VMs even on the same platform
* the same it true for its garbage collector.
* The APIs are huge and inconsistent.
* it *finally* – in 1.4 – has a regex API (which is unusably complex).
* it’s native code bindings are absolutely the worst I’ve ever seen,
even Perl does a better job

And don’t forget m5 current personal favourite –
its pointlessly restrictive type system.

Type is stored in the *pointer*, not the object.
So I have to hold the VMs hand each time I pass an argument.
I’m not allowed to reuse a variable to
point to an List and a Vector, even if I’m going to call a method
with the same name on both.

And then to really piss in my chips, 90% of the Collections API
which lets me store these objects and actually *do* something with them
only lets me pull them out as Object.

I HAVE TO CAST THEM. So when I get an object ‘dynamically’ – via RMI or
out of a Vector or whatever, I have to know what it is in advance.
The poor frigging object doesn’t know (no, don’t get me started on the
abomination that is the reflection API, people are already starting to
stare).

And this is a dynamic language. KERR-RIST.

None of this matters of course, because “it’s better than C++”.
And IT managers think the Sun shines out of its ass.

Java is the f*cking COBOL of the 90s and
future generations of geeks are going to fly back from Mars to piss on
our graves for inflicting it on them.

> Unfortunately. I can do system programming and command-line
> apps with Java.

Sure. If you don’t mind a fifteen second delay while the VM drags itself
up from the bottom of the sea each time you run a command line app.

Or should that ‘.’ be a ‘,’ ?

ու տենց

ասք իմ հետ համաձայն լինելու մասին

“Google distinguished engineer Rob Pike ripped the use of Java and C++ during his keynote at OSCON, saying that these ‘industrial programming languages’ are way too complex and not adequately suited for today’s computing environments. ‘I think these languages are too hard to use, too subtle, too intricate. They’re far too verbose and their subtlety, intricacy and verbosity seem to be increasing over time. They’re oversold, and used far too broadly,’ Pike said. ‘How do we have stuff like this [get to be] the standard way of computing that is taught in schools and is used in industry? [This sort of programming] is very bureaucratic. Every step must be justified to the compiler.’ Pike also spoke out against the performance of interpreted languages and dynamic typing.”

այստեղից

լրիվ տեքստը

ինչի՞ ա տենց հայտարարում։ անկապ չեր ասի, երևի ուզում են Գոու-ն տարածել։

“Go is an attempt to combine the safety and performance of statically typed languages with the convenience and fun of dynamically typed interpretative languages,” he said, before adding, “to the extent that it succeeds you’ll have to judge for yourself.”

փաստորեն։

Սա էլ Պայքի 2000 թվի թուղթ ա։ Հետաքրքիր ա։

ու տենց

ասք ջավային մի քիչ հանդուրժող լինելու մասին

Գիտեք որ արհամարհանքով եմ վերաբերվում ջավա/դոթնեթ/մոնո/քորփորեյթ/էնթերփրայս և այլ իմպերիալիստական չաղ և քաղքենիքաղցած գործիքներին։

Տեխնոլոգիապես։

Ընդհանրապես փորթաբլ լեզու ունենալու գաղափարը լավն է։

Այսինքն մի լեզու որով ոնց էլ գրես, ամեն ինչի վրա քմփայլ կլինի։

Ու ոչ թե նենց ոնց որ ասենք սի-ն որ ասենք եթե ԳՆՈՒ սի քմփայլեր ամեն տեղ կա, ուրեմն ֆսյո։

Չեմ ֆսյո չի բնավ, քանզի ասենք դուք շիֆտ-միֆտ անու՞մ եք։ Վաաաայ, բա էնդիաննեսսը մոռացա՞ք։

Բա տիպերը ձեր մոտ ի՞նչ չափսերի են։

Էթեսեթտրա։

Ու էդ տեսանկյունից իհարկե վատ չի որ ինչ որ տենց բան փորձել են մտածել։

Բայց սպասե՛ք։ Բանն այն է որ լիքը այլ լեզուներ ստեղծվել են հենց փորթաբիլիթին մտքին ունենալով։

Քանզի Լիսպը նա լյուբիծելյա ա, ապա հեռու չգնալու համար հիշեմ Ադան, որտեղ տիպերը առհասարակ ռանջերով են նկարագրվում, ասենք

type Range_Type is range -5 .. 10;

type Angle is delta Pi/2.0**31 range -Pi .. Pi;

Կարող եմ նաև նշել Լիմբո-ն, որը Ինֆերնո համակարգի հիմնական ծրագրավորման լեզուն է։

Ու եթե Լիմբոն համեմատաբար նոր է (իննսունականներ)

ապա Ադան վաղուց կար ու ջեներալփուրփոս է։

Սակայն մարկետինգը ասում է որ սիրուն չէ անել Սան Ադա Մաշին։ Ավելի լավ է մի նոր բան մտածել։

Ջավան ռադիկալ ա, սակայն բնավ ազատ չէ։ Այսինքն, գրել միմիայն օբջեքթ օրիենթեդ պետք չէ։

Լիքը խնդիր կա երբ օբյեկտները լրիվ ավելորդ են։

Մի ծրագրավորող ասում էր որ երբ ջավայով ա գրում, հա պատերի ա իրան խփում։ Քայլ ձախ, քայլ աջ՝ պատ։

Ու դրանք ոչ թե ասենք թայփ տեստեր են որոնք օբյեքտ լեզվին շատ անհրաժետ են, այլ ասենք վիրտուալ մեքենան։

Սինտաքս։

Կրկին մարկետինգ։ Սի-ի սինտակսի թերությունները մնացել են։

x=x+1 – ներեցեք, ո՞նց եք բացատրելու մարդուն էդ ո՞նց ա x-ը «հավասար»։ Չէ՞ հավասար չէ բնավ։ Վերագրվու՞մ ա։

Ապա վերագրման նշան կիրառեք, որը ընգծում ա անհավասարակշռությունը։

Այդ նշանը Ալգոլի ժամանակներից կա՝ :=

Չի դզում՝ նորը մտածեք։

Ու ասեմ որ Յունիքսի ստեղծողները իրանք ով նախագծել են Լիմբոն, արդեն այնտեղ կիրառում են հենց այդ նշանը։

Լիմբոն և Օբերոնը ինսփայր են արել Գոու, որին խորհուրդ եմ անում ուշադրություն դարձնել։ Չնայած, իրա մեջ դեռ ռեալիզացիա արած չեն շատ հնարավարություններ, որոնք կան պարզ Օբերոնում, բայց դա հիմա էական չէ։

Էդ նաև ազատում ա == որպես էքվալիթիի նշան օգտագործելուց։

Առհասարակ, ==, <> սխալի բուն են։ Նիշերից մեկը չտպվեց՝ հետո լիքը մարդ տառապում ա խնդիրը գտնելով։

Ու մի ասեք, փորձառու ծրագրավորողը տենց սխալ չի անի։ Ինչի՞ փորձառուն տենց հիմար բաներով պիտի տարբերվի անփորձից։ Փորձառուն մի քիչ այլ գաղափար ա։ Տենց հիմար փորձ պետք չէ բնավ։

Ռեալիզացիա։

Դիտարկենք ՋՎՄ/ՋԴԿ և գցջ։

ՋՎՄ-ի շերտը շատ ծանր է և չաղ։

Մասշտաբիրուեմոսծը բացակայում է։

ՄԵ-ն միկրո էդիշն ա, այլ ոչ թե ստանդարտ մեքենայի քոր, որը էքստենսիբլ ա լինում, ու դառնում ստանդարտ փլագիններ ավելացնելով։

Էքսթենսիբլիությունը – սիրուն լուծում ա։ Տարբեր էդիշններ՝ տգեղ և հիշեցնում է հենակներ, որոնք, անկասկած շատ են կիրառվել ռեալիզացիայի ժամանակ։

Վիրտուալ մեքենան ուտում է հիշողություն և մինչև վերջերս բաց չեր։

Ու որպես կանոն ջավա կոդը անհամեմատ դանդաղ ա կատարվում։

Իմ խորհին համոզմունքն է որ մենք ժամանակից թանկ բան չունենք։

Այսպիսով ծրագրի վրա թող նախագծողները ավելի երկար աշխատեն, բայց մենք քիչ ժամանակ սպասենք ամեն անգամ։ Սակայն, իրականությունն այն է որ դա հակասում է մարկետինգի և բիզնեսի շահերին։

Ինչքան արագ գրվի սոֆտը, այդքան արագ շուկա կհանվի, այդքան քիչ փող կծախսվի նախագծման ընթացքում։

Ջավայի տորմոզնուտոսծի շատ հավես իլլյուստրացիա կա։

Ռուսները Տոմմի անունով ռոբոտ ունեին։ Ինքը մասնակցում էր ԴԱՐՊԱ-ի կազմակերպած րեյսինգի մրցույթին։ Եվ սպանվեց իրան ապստենու գլուխը պատով տվեց։ Երևի ԳՑ-ն էր միացել։ Այդ դեպքից հետո ծրագրավորողների մի մաս սկսեց համաձայնվել ջավիստների հետ այն մասին որ «ջավա նե տարմազիտ»։

Իմ իմացած յուզերների մեծ մասը զզվում ա ջավա ափլիքեյշններից․ «նրանք ծանր են, դանդաղ և այլն» պատճառաբանություններով։

Այդ իսկ պատճառով հիմա ջավան հարկադրվել է հեռանալ քորփորեյթ լուծումների ասպարեզ։ Դեսքթոփ ափլիքեյշններ անտեսելի քիչ են։

գցջ-ն՝ քմփայլ է լինում նեյթիվ կոդ, լինկ էր լինում սի և այլ գրադարաններին, նույնիսկ աղբ թափելը իրականացվախ է Հանս Բոեհմի Սի/ՍիՓլասՓլասՔոլեկտորով ։ Ահագին գործ իրան լավացնելու մաջ արել է ՐեդՀատը, որը ասենք, ժամանակին պատչեր արել որ Թոմքատ իրանով քմփայլի։

Այս իրականացումը վատը չէ, նույնիսկ լավն է, սակայն իրանով լիքը բան անել չի լինի։ ՋԴԿ-ի օփենսոուրսացումը կարող է խոչընդոտել այս լուծման հետագա զարգացմանը։

Արտաքին տեսք։

Ջավայի Սվինգ ուիդջետներից տգեղ բան չկա։ Մոտիֆը նույնիսկ սիրուն ա դրա հետ համեմատ։ Այսպիսի բաներից հետ տալս գալիս ա։ Լուրջ։ Սիրտս խարնում ա։

Ընդ որում ուինդոուսում էդ ուիդջետներով հաճախ հասարակ մաուսի սքրոլ չի աշխատում։ Լինուքսում ի դեպ՝ աշխատում ա։

Եթե ԱյԲիԷմի ՍՎՏ թուլքիթը չլիներ (էկլիպսի ուիդջետները դրանով են արած) ի՞նչ էիք անելու այ դեվելոպերներ։

Իդեոլոգիապես։

Իմ կարծիքով,

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

Ու ջահնդամը որ լիքը հիշուղություն ա ուտում այդ շերտը, և հիմնականում դանդաղ են աշխատում ծրագրերը։

Սաղ հեչ։ Փաստորեն հիմա ստացվում ա որ նույնիսկ նենց տգեղ լուծումը «լավն» ա դարնում երբ այֆոնը կապվում ա օբջեքթիվ-սի-կակաո վիճակներին փորթաբիլիությունը խոչընդոտելու նպատակով։ Ի դեպ, էփլին լավ կհարվածի ՔյուՏի պորտը։ Թե սիպլասնել են բան անելու։ Ո՞ր պատճառաբանությամբ։

Հա, ու ասենք ծանոթ եմ տեսնում Սոնի Էրիկսոնով, ասում եմ՝ լավ ա չի բողոքի որ բան չի կարողանում տեղակայել, քանզի իրա մոտ, ջավա կա՝ աշխատում ա լիքը բան։

Չնայած ՄԵ-ի ռեալիզացիան նենց աղքատիկ էր վախտին, ասենք թափանցիկ սպրայտեր չկային։ Չգիտեմ հիմա ավելացրել են թե ոչ։

Իսկ նապասլեդըկ խորհուրդ եմ տալիս նայել սա ու համոզվել թե ով է ջավամանը իրականում ։

_ու տենց _

ասք պատենտային տրոլլերի մասին

թույն տվեք ինձ, ես նոր հասկացա, ինչում էր պատճառը այֆոնի համար միմիայն երեք լեզվով գրելու սահմանափակման։

մտածենք, ի՞նչն է միավորում բորտից դուրս մնացած տեքնոլոգիաները․

մոնո, ֆլաշ, ֆրիպասկալ/լազարուս․․․

ճիշտ է․ կրոսսպլատֆորմ դեվելոփմենթ։

մի անգամ գրում ես, ամենուր աշխատում ա։

էփլի նպատակը հնարավորին չափ դժվարացնելն էր կրոսսպլատֆորմ սոֆթ գրելը և դրանով ԾԱ ֆրագմենտացիա ստեղծելը։

Ավելի պարզ, հնարավորին չափ խոչընդոտելը նրան, որ նույն ծրագիրը լինի և անդրոիդի, և ուինմոբայլի, և մեմո/միգոյի, և եսհեռախոս-ի համար։

Օբջեքթիվ սի/կակաո ով փորձել ա գիտի ինչ ա։ Ի դեպ սիմբիանի սիպլյուսներն ել մի բան չեն։

Բայց Նոկիան արեց ճիշտ հակառակը, պորտ անելով qt-ն սիմբիանի վրա և այսպիսով հեշտացնելով դրսից qt-ով գրվախ սոֆթի պորտը սիմբի։

Էլի ի դեպ․ էփլը պատենտավորել է այֆոնի տեսքը․ պատենտում նկարագրված է թաչսքրին ու ստեղն։ Առանց մեկնաբանության։

ու ես չեմ ասում որ էփլենք «վատն են», կամ «լավը չեն»։ Ոչ բնավ։ Պարզապես չար են։

Ու փորձում են էժան քայլերով էլիտարության համ տալ, պատճառաբանելով, որ ծիպը ֆլաշը բիդլոկոդերների գործիք ա, ու դրանով իսկ դարձնում է եսհեռախոս-ը բիդլոի, այսինքն չմտածող մարդկանց համար հեռախոս։

Ես չունեմ այֆն և չգիտեմ ինչպես այն օգտագործել։

ու տենց