իթ սրանով արդէն կիսուել եմ անցեալ անգամ, երբ կարդում էի։
#էկրանահան #պլան9 #ծրագրաւորում #տերմինալ
http://www.youtube.com/watch?v=ZiKWZySzKrM
#վիշապ #օբերոն #աւբերոն #ինֆերնո #պլան9 #օպերացիոն֊համակարգեր #ծրագրաւորում #barcampevn14
Ստանդարնտները լավ բան են։ Ինչ որ ստանդարտ պետք ա լինում։ Նույնիսկ ասենք շփման մեջ, միմյանց հասկանալու համար։ Կամ թերմերի մեջ, կրկին՝ հասկանալու համար։
Սակայն, երբ ստեղծում եք նորը ստանդարտին հետևելը, կամ համապատասխանելը հաճախ բերում է վատ որոշումներին, ու վատ դիզայնին։
Ասենք, երբ Ստրաուստրուպը C++ նախագծելուց փորձում էր պահպանել C-ի հետ համատեղելիությունը, դա բերեց ինչպես տգեղ լուծումների, այնպես էլ լեզվի չաղացմանը։
Ուինդոուս/Սոլարիս-ներում – պահպանել նախկին տարբերակների հետ համատեղելիությունը որոշումը բերեց գրադարանների չաղացմանը։
Ի տարբերություն, Վիրտը, նախագծելով Մոդուլան որոշեց չպահպանել պասկալի հետ համատեղելիությունը։ Փոխարենը, նա գրեց քոնվերթեր, պասկալից մոդուլա տրանսլացիա անելու համար։ Նույնպես նա վարվում էր և հետագայում, Մոդուլայից Օբերոն քոնվերթեր գրելով, քանի որ հասկանում էր՝ համատեղելիությունը պահպանելը կբերի տգեղ դիզայնի։
Բաց ԾԱ-ի աշխարհում համատեղելիություն պահպանելը իմաստ չունի։
Փոխվեց գրադարանը՝ փոխվում է ծրագիրը որը այն օգտագործում է։ Եթե ծրագրի հեղինակը հետաքրքրված չէ, դա անում է մեյնթեյները կամ յուրաքանչյուր մեկը ում այդ ծրագիրը պետք է։ Այսպիսով, բաց ԾԱ-ն չունենալով համատեղելիության շերտ՝ ավելի նիհար է։
Ինչպես ես արդեն գրել եմ, կարգինը՝ արտակարգ լինել չի կարող։
Այս պատճառով Պլան9-ը և Ինֆերնոն, որոնց դիզայնի մեջ, ի դեպ, անկերես է Օբերոնի ազդեցությունը, չեին կարող հետևել սովորական Յունիքս/Պոսիքս ստանդարտների։
Ու պարզ է որ նրանք լայն չեն կիրառվում այն պատճառով, որ ծրագրերի մեծ մասը գրված է տեքնոլոգիաներով, որոնք անհամատեղելի են Ինֆերնոի հետ։ Օրինակ, C-ով կոդ այնտեղ ափլիքեյշն լեվել չի օգտագործվում, դրա համար կա Լիմբո։
Սակայն, նոր դիզայն կարող է իրեն թույլ տալ կորմորացիա որը նախագծում է ու տարածում նոր համակարգ։
Ես Անդրոիդ-ի մասին եմ։
Գուգլը լինուքս միջուկի հիման վրա ստեղծել է «նոր» համակարգ, ձեռք է բերել նոր ջավա վիրտուալ մեքենա։
Դրայվերների խնդիր մոբայլ սարքերի համար չկա՝ միևնույն է լիքը նոր դրայվեր գրվել է։
Լինուքսից օգտագործվել է սքեդուլերը, թիսիփի սթեքը, և այլն։ Սի-ով ափլիքեյշն կոդ գրելն նախատեսված չեր։
Այսինքն, կարելի էր անել համակարգ, որտեղ կան դիզայնի նոր ընտրություններ, ինչպես ընդհանուր հասցեական տարածությունը։ Բայց էդպիսի բան արված չէ։ Ընդ որում Լինուքս միջուկի քաստոմիզացիայի վրա այնքան ռեսուրս է ծախսվել, որ այդ ուժերը անհրաժեշտ էր ծախսել Ինֆերնոն փրոդաքշն և մոբայլ սարքեր բերելով։
Որովհետև նոր է, արագագործ, ու գեղեցիկ։
ու տենց
[այստեղից][1]
Ռոբ Փայքի, որը այժմ Գոու-ի ֆյուրերն ա ամենահայտնի խոսքերից։
Ինձ շատ ուրախացրեց [այս փոսթը][2]․
<blockquote style="border: 2px solid rgb(127, 195, 59); padding: 10pt; margin-left: 30pt; background-color: #a6df6d;">
<p>
> Java is done right in concept.
</p>
<p>
wtf?
</p>
<p>
[ Let me start by saying I don’t speak for any of these guys,<br /> I can’t even get their OS to run a GUI.]
</p>
<p>
Java is better than C++, but as others have mentioned that’s like saying<br /> toothache is better than herpes.
</p>
<p>
It’s just C without pointer arithmetic. Leaving aside actual<br /> implementation bugs, it :
</p>
<p>
* runs on less platforms than any other language I’ve ever used,<br /> * wimped out of having numeric types implemented as objects, then<br /> bolted on ‘containers’ for them in 1.1<br /> *has changed its GUI twice and *still* doesn’t do it right,<br /> * it’s thread model is essential to its operation but differs widely<br /> between VMs even on the same platform<br /> * the same it true for its garbage collector.<br /> * The APIs are huge and inconsistent.<br /> * it *finally* – in 1.4 – has a regex API (which is unusably complex).<br /> * it’s native code bindings are absolutely the worst I’ve ever seen,<br /> even Perl does a better job
</p>
<p>
And don’t forget m5 current personal favourite –<br /> its pointlessly restrictive type system.
</p>
<p>
Type is stored in the *pointer*, not the object.<br /> So I have to hold the VMs hand each time I pass an argument.<br /> I’m not allowed to reuse a variable to<br /> point to an List and a Vector, even if I’m going to call a method<br /> with the same name on both.
</p>
<p>
And then to really piss in my chips, 90% of the Collections API<br /> which lets me store these objects and actually *do* something with them<br /> only lets me pull them out as Object.
</p>
<p>
I HAVE TO CAST THEM. So when I get an object ‘dynamically’ – via RMI or<br /> out of a Vector or whatever, I have to know what it is in advance.<br /> The poor frigging object doesn’t know (no, don’t get me started on the<br /> abomination that is the reflection API, people are already starting to<br /> stare).
</p>
<p>
And this is a dynamic language. KERR-RIST.
</p>
<p>
None of this matters of course, because “it’s better than C++”.<br /> And IT managers think the Sun shines out of its ass.
</p>
<p>
Java is the f*cking COBOL of the 90s and<br /> future generations of geeks are going to fly back from Mars to piss on<br /> our graves for inflicting it on them.
</p>
<p>
> Unfortunately. I can do system programming and command-line<br /> > apps with Java.
</p>
<p>
Sure. If you don’t mind a fifteen second delay while the VM drags itself<br /> up from the bottom of the sea each time you run a command line app.
</p>
<p>
Or should that ‘.’ be a ‘,’ ?
</p>
ու տենց