Стандарттар қалай жасалатыны туралы ұзақ кіріспе

admin 2018-05-19 Қысқаша

Стандарттағы «ашықтан ашық» жасалған ең тамаша зат – сіз уақытты кері айналдырып, әртүрлі сұраққа жауап бере аласыз ......

Сайттағы барлық жобалар тегін қолданысқа берілген, жоба авторы Естен Ербол

 

Стандарттар қалай жасалатыны туралы ұзақ кіріспе

Неге біз <img> элементін қолданамыз? Бұндай сұрақты күнде естіп жүрмеген боларсыз? Шамасы, оны біреу жасады. Мұндай дүние өздігінен пайда бола кете салмады. HTML-дің сіз пайдаланып көрген әрбір ерекшелігі, әр элементті, әрбір атрибутын – міндетті түрде біреу ойлап тапқан, шешімін тауып, қалай қызмет көрсетуі тиістігін алдын ала жазып қойған. Ол адамдар құдай емес, олар да кемшіліксіз емес. Олар кәдімгі адамдар. Ақылды адамдар, оған сенімдімін. Бірақ жай ғана адамдар. 
 
Стандарттағы «ашықтан ашық» жасалған ең тамаша зат – сіз уақытты кері айналдырып, әртүрлі сұраққа жауап бере аласыз. Талқылау жіберілімдердің тізімінде жүріп жатады. Әдетте олар мұрағатталады, көпшілікке қолжетімді. Сондықтан «<img> элементін не үшін қолданамыз?» деген сұраққа жауап бергім келіп, аз-кем «мұрағат поштасын» ақтардым. Дүниежүзілік тор консорциумы (World Wide Web Consortium, W3C) деген ұйым пайда болғанға дейінгі уақытқа шегіндім. Тор пайда болған алғашқы күндерге оралдым. Ол кезде веб-серверлерді саусақпен санауға болатын еді. Ары кетсе, башпайларды қосуға болатын.     
Келесі цитаталарда бірнеше қате кеткен. Мен оларды тарихи туралық үшін сол күйінде қалдырғым кеп тұр. 
1993 жылдың 25 ақпанында Марк Андрессен былай деп жазады:
Мен HTML тегіне жаңа толықтыру ұсынғым келеді: IMG.
Міндетті түрдегі аргумент SRC="url"
Бұл тордан сұрау салған браузер үшін растрлық немесе бейнелік файлдың аты. Тор оларды сурет ретінде таниды. Олардың атын тегті жасаған кезде мәтінге қосып отыру керек.  
Мысалы: 
<IMG SRC="file://foobar.com/foo/bar/blargh.xbm">
(Мұнда жабатын тег жоқ, біржақты тег.)
Бұл тег басқалары секілді сілтемеге салынады, солай болған кезде ол кейіпке (иконкаға) айналады, қосылуға сезімтал келеді, кәдуілгі мәтіндік сілтеме секілді.  
Браузерлер өздері қолдап отырған бейнелік форматтарға сезімтал болуы тиіс. Мәселен, Xbm және Xpm жақсы ашылады. Егер браузер бұл форматты аша алмаса, ол қалағанын жасай алады. (X Mosaic үндемей тұрғанда растрлық бейнені толықтырғыш ретінде тауып береді). 
«Mosaic» ең алғашқы веб-браузерлердің бірі болған. («X Mosaic» - Unix жүйелерінде істеген нұсқа еді). Жоғарыда айтқан ақпаратын жазған кезде 1993 жылы Марк Андрессен Mosaic Communications Corporation деген оны атақты еткен компаниясын әлі құрып үлгермеген. Ол кезде әлі компаниясының флагмандық «Mosaic Netscape» дейтін өнімін шығарып үлгермеген. (Бәлкім, оларды «Netscape Corporation» және «Netscape Navigator» деген аттармен жақсы танитын шығарсыз).
«Келешекте MIME мүмкін секілді» деген сөз жалпы мазмұнды талқылауға жетелейтін ой. Мәселен, HTTP ерекшелігі, оның ішінде клиент (мысалы, браузер) серверге (мысалы, веб-серверге) қандай ресурс типтерін қолдау керектігін айтады (мысалы, image/jpeg сынды), сонда сервер клиент қалаған форматтағы дүниелерді оралтады. 1991 жылы анықталған HTTP түпнұсқасы (сол нұсқасы 1993 жылы да болған) клиентке сервер қандай бейнелерді ашатынын айтпайтын, соның кесірінен дизайнда дилемма болды. Марк осы мәселемен бетпе-бет келді.      
Бірнеше сағаттан соң Тони Джонсон жауап берді. 
Менде Midas 2.0 (мұнда SLAC қолданылады, көпшілік көретін релиз болуы керек, осы аптада) ұқсайтын бір нәрсе бар, оның тек барлық атаулары әр түрлі, оған қоса толықтыратын аргумент NAME="name" бар. Ол сіз ұсынып отырған IMG тегінің барлық функциясын жасай алады.    
<ICONname="NoEntry" href="http://note/foo/bar/NoEntry.xbm">
Name параметрінің идеясы браузерге «кіріктірілген» бейне орнатуға мүмкіндік береді. Егер name «кіріктірілген» бейнемен сай келсе, онда ол  бейнені іздеп тауып алудың орнына қолдануға әбден жарайды. Сонымен қоса name браузердің «бір жолдық режиміне» қосымша ақпар ретінде қолданылады, сол арқылы бейненің орнына басқа бір символды қоюға болады.  
Мен тегтердің параметрлері мен атауларына бас қатырмадым, алайда дәл сол ұғымдарды пайдаланған жөн болады. Қысқартуға бола қайғырмадым, сондықтан неге IMAGE= немесе SOURCE= болмайды? Мен бәрібір ICON-ды таңдаймын. Ол IMAGE-ге қарағанда қарапайым әрі кішкентай болуы керек. Бәлкім,ICON тым күрделі сөз шығар?    
Midas ертеректе шыққан браузер, ол X Mosaic-тың замандасы. Ол кроссплатформалы, оны Unix пен VMS-те қосқан. SLAC - Стэнфордтік сызықтық үдеткіш орталығынікі. Қазір SLAC Ұлттық үдеткіш зертханасы деп аталады. Онда АҚШ-тың бірінші веб-сервері іске қосылған (шын мәнінде алғашқы веб-сервер Еуропадан тыс жерде шыққан). Тони осы ақпаратын жазған кезде SLAC – WWW-ның ақсақалы еді. Оның веб-серверінде бес парақша – 441 күн жазылған.     
Тони былай деп жалғастырады: 
Біз жаңа тег туралы тақырыпты қозғап жатқанда, маған басқа идея кеп тұр. Біршама ұқсас тег, мен оны Midas 2.0.-де ашылса деп едім. Негізі былай: 
<INCLUDE HREF="...">
Оның мәнісі мынада, осы тег кездескен жерінде екінші құжат бірінші құжаттың ішіне кіріктіріледі. Негізі, нақтыланған құжат әр түрлі болуы мүмкін, бірақ басты мақсаты бейне (бұл жерде өлшемі өз ырқына қарай)  құжаттың ішіне кірігеді. Мұның мәні мынада: HTTP2 келуімен кірігетін құжаттар форматы жеке талқыланатын болады.   
HTTP2 – 1992 жылы құрылған HTTP базасының бір тармағы. Жоғарыда көрсетілгендей, 1993 жылдың басында ол толық аяқталмаған еді. «HTTP2» деп аталған жоба даму үстінде болды. Ақырында «HTTP 1.0» деген стандарт берілді (үш жылдың ішінде болмаса да). HTTP 1.0 мазмұнды талқылау үшін сұраулардың тақырыптарын енгізген. А-ля,«келешекте MIME мүмкін секілді». 
Тони жалғастырады: 
Мен балама ретінде мынаны қарастырар едім: 
<A HREF="..." INCLUDE>Суретті қара</A>
Мен <A> тегіне көбірек функция қосқанды ұната бермеймін, бірақ мұндағы идея INCLUDE параметрін ашпайтын браузерлермен сәйкестікті сақтап қалуға бағытталып отыр. INCLUDE –ті ашатын браузерлер сілтеме мәтінін (бұл жағдайда «суретті қара») енгізілген құжаттың (суретпен) көмегімен ауыстырады, оған дейін ескі немесе қарабайыр браузерлер INCLUDE тегін толықтай қабылдамай тастайды.   
Бұл ұсыныс жүзеге аспады. Бір қарағанға суреті жоқ болса, мәтінін ұсыну жақсы бастама еді. Бұл қолжетімді болудың маңызды техникасы. Ол Марк алғаш ұсынған <IMG> туралы ақпарда жоқ еді. Көп жыл өткен соң бұл функция <img alt> атрибутына бекітілген. ОныNetscape қателесіп қосымша ақпар екен деп тез арада жойды. 
Тони жіберген хабарламадан соң бірнеше сағаттан кейін Тим Бернерс-Ли жауап қатты.     
Меніңше, иллюстрация былай ұсынылады деп ойлағам: 
<a name=fig1 href="fghjkdfghj" REL="EMBED, PRESENT">Иллюстрация </a>
Мұнда қарым-қатынас мағынасын былай көрсетеді: 
EMBED – бар болса осында қою керек; 
PRESENT – түпнұсқа құжат бар болса, соны көрсету. 
Олардың әр түрлі нұсқасына ие бола аласыз, осыған мән беріңіз, егер браузер бірде бірін қолдамаса, одан бұзылмайды.  
[Мен] бұл тәсілді сілтемесі енгізілген кейіптерді (иконка) таңдауға қолдануға болады. Хмм. Ол үшін арнайы тег жасағым келмес еді.    
Бұл сөйлем жүзеге аспады. Бірақ rel атрибуты әлі де бар. 
Джим Дэвис былай деп қосты: 
Егер мазмұн түрін көрсететін тәсіл болса, жақсы еді. Мысалы: 
<IMG HREF="http://nsa.gov/pub/sounds/gorby.au" CONTENT-TYPE=audio/basic>
Алайда мен файлды өрістету үшін мазмұн түрін көрсететін талаппен өмір сүруге толық келісемін. 
Бұл ұсыныс та жүзеге аспады. Бірақ Netscape кейіндеу мультимедиялық нысандарды кіріктіру үшін арнайы <embed> қолдауын енгізді. 
Джей К. Вебер былай деп сұрады: 
Сурет менің тілегімнің ең бірінші тізімінде, ал WWW браузерлерінің ортаңғы типтерінде болса да, меніңше әр медиаға бір-бірден арнайы хук қоса беру орынсыз. MIME механизмін пайдалану хақындағы ынта қайда кетті?  
Марк Андрессен оған былай деп жауап қатты:
Бұл MIME-ні стандартты құжат механизмі ретінде қолдануды алмастыру емес; MIME-сіз де талап етілетін функцияны іске қосу мен қамтамасыз ету.  
Джей К. Вебер былай деп жауап қатты:
Егер MIME эфемерлі түйткіл болса, ол туралы уақытша ұмыта тұрайықшы. Мен «кіріктірілген суретті қалай ашамыз» дегенге қарсы болып ем, бірақ «әр түрлі медиаға кіріктірілген суретті қалай ашамыз» дегенге қарсылық білдірмедім.   
Себебі, бір аптадан соң біреу-міреу, аудио үшін «<AUD SRC="file://foobar.com/foo/bar/blargh.snd">» дейтін жаңа тегті кіріктірейік деп ұсыныс жасайды. 
Жалпылама дүниеден ауысқан кезде үлкен шығын болмауы керек. 
Қазір артқа қарасам, Джейдің мазасыздығында бір негіз барын байқауға болады. Бір апта өтер-өтпестен HTML5-ке ақырында жаңадан <video>және <audio> элементтері қосылады. 
Джейдің бірінші хатына жауап берген Дэйв Рэгетт былай деді: 
Тура солай! Мен ұсынылатын барлық сурет/сызықты көркем типтердің форматын талқылай отырып бүкіл диапазонын қарастырғым келеді. Тим суреттің ішіндегі кликке сезімтал аумақтарын ашатынын байқаған. Бұл да өте маңызды. 
Кейін 1993 жылы, Дэйв Рэгетт HTML+ стандартты HTML-дің эволюциялық нұсқасы ретінде ұсынды. Бұл ұсыныс жүзеге аспады. Оны HTML 2.0 алмастырды. HTML 2.0 «ретро-спека» болды. Бұл дегеніңіз жалпы қолданыстағы ерекшеліктер пішінделді дегенді білдіреді. «Бұл спецификация біріктіреді, түсіндіреді, функциялардың тізімін пішіндейді, олар шамамен 1994 жылдың маусымына дейінгі жалпы қолданыста болған HTML мүмкіндіктеріне сай келеді».
Дэйв кейінірек HTML 3.0 жазды. Ол оны бұрын жазған HTML+ жобасының негізінде жасады. W3C басқаруынан тыс жерде HTML 3.0 еш жерде жүзеге аспады. Оны HTML 3.2, келесі «ретро-спека» алмастырды:«HTML 3.2 кеңінен таралған мүмкіндіктерді қосқан, арасында кесте, апплет, суретті мәтінмен жазу бар, сонымен қоса HTML 2.0 стандартымен толық кері сәйкестік бар».   
Дэйв кейін HTML 4.0 серіктес авторы болды. HTML Tidy жасап шықты. XHTML, XForms, MathML жасауға көмектесті. W3C басқа да заманауи спецификацияларына араласты.  
1993 жылға оралсақ, Марк Дэйвқа былай дейді: 
Шын мәнінде біз жалпы қолданыстағы графиканың үдеріс тілін ойлап қоюымыз, сол арқылы кейіптерге (иконкаларға), суреттерге, мәтінге немесе басқаларына еркін гиперсілтемелер енгізе аламыз. Intermedia-ның осыған қатысты мүмкіндіктерін көрген жан бар ма? 
Intermedia Браун Университетінің гипермәтіндік жобасы. Оны 1985 жыл мен 1991 жыл аралығында жасаған. U/AX, Unix-ке ұқсас операциялық жүйе ретінде ртеректе шыққан Macintosh компьютерлеріне арнап шығарған.
«Жалпы қолданыстағы графиканың үдеріс тілі» дейтін идея ең соңында қабылданды. Заманауи браузерлер SVG-ні де (кіріктірілген скрипттары бар нақты белгілеу), тіпті <canvas>-ты да (графиканы шығарып көрсететін үдерістегі режим) аша береді. Соңғысы WHATWG-тың «ретро-спекасы» болмас бұрын проприетарлы өрістеуді бастаған. 
Билл Янссен былай дейді:
Andrew және Slatе (өте құнды) дейтін түсініктері бар басқа жүйелерді қараңдаршы, Andrew кірістірмелерге негізделіп жасалған, олардың әрбірінде бірнеше қызықты типтер бар. Мысалы, мәтін, нүктелі сурет, графика, анимация, хабарлама, электронды кесте және т.б. Еркін рекурсиялық кіріктірме деген түсінік енгізілген. Сондықтан кез келген кіріктірмені браузер ашатын болса, басқа кез келген типке енгізуге болады. Мәселен, кіріктірме мәтіндік виджеттің кез келген мәтініне кіріктірілуі мүмкін. Немесе кез келген сурет салу виджетінің төртбұрышты аумағына. Яки электронды кестенің кез келген ұяшығына.  
Andrew деген Andrew User Interface System-нің (бірақ ол кезде оны тек Andrew Project деп атаған) кері сілтемесі.
Сол арада Томас Файн басқа идеяны айтты: 
Бұл менің пікірім. WWW суретті көрсетудің ең тиімді тәсілі MIME-ні қолдану деді. Меніңше, PostScript осы кезден-ақ MIME-де барлық тармақшаларды ашады. Онда мәтін мен графиканы өте ыңғайлы түрде кіріктіреді. 
Бірақ бұл, соншалықты клик басуға лайық емес қой? Иә, дұрыс айтасыз. Мұның жауабы Display PostScript-те әлден бар. Ол тіпті стандартты PostScript-ке енгізілмеген болса да бар. Сілтемеге команда беріңіз. Ол URL-ды белгілейді. Берілген бұйрықты пернені басатын тұйық аумақ пайдаланады. PostScript бұйрықты жақсы білетіндіктен еркін перне жасау артық болар еді. 
DisplayPostScript редрендингтің экранды технологиясы еді, оны Adobe және NeXT бірігіп жасаған. 
Бұл ұсыныс жүзеге аспады. Алайда HTML өзгертудің ең жақсы тәсілі оны басқа дүниемен алмастыру, уақыты келгенде ол да пайда болар. 
Тим Бернерс-Ли, 1993 жылдың 2 наурызы:
HTTP2 қолданушыға жұмыс істегісі келетін кез келген типті құжат ішінде сақтауға рұқсат етеді, ол тек тіркелген MIME-типтерге тән емес. Сондықтан эксперимент жасай беруге болады. PostScript-ті гиперсілтемемен жасауға толық негіз бар деп ойлаймын. Display PostScript жеткілікті ме, оны білмедім. Менің білуімше, Adobe«PDF»-ке бағытталған өзінің жеке PostScript жасауға ынталы, оның өзінің сілтемелері мен оқылымды болуға ниеті бар.    
Сілтемеге арналған ортақ оверлей тілі (Hytime негізінде болар?) гипермәтін мен графика/бейне стандарттарына жекелей жетілуге мүмкіндік жасайды. Бұл екеуіне де көмектеседі. 
IMG тегі INCLUDE-ді енгізсін, содан кейін ол еркін типті құжатқа сілтеме жасасын. Немесе EMBED. Егер INCLUDE инклюд cpp сияқты дыбысталса, онда ел SGML-дің түпнұсқа кодын жоларалық жіктеуге қолдана алады. Бірақ бастапқыда бұлай ойластырылмаған. 
НyTime – SGML негізіндегі құжаттың ертеректегі гипермәтіндік жүйесі болған. Ол HTML, XML-дің талқылауының бас кезінде көзге түскен.  
Тимнің <include> тегіне қатысты ұсынысы жүзеге аспады. Алайда оның жаңғырығын <object>, <embed>және<iframe> элементтерінен байқай аласыз. 
Ақырында 1993 жылдың 12 наурызында Марк Андрессен қайтадан тақырыпты қозғайды:
Инлайн суреттерге қайта оралайықшы, мен Mosaic 0.10 шығарудың алдында тұрмын, ол GIF пен XBM ашады, бұрын айтылғандай…
Бұл нүктеде INCLUDE/EMBED қолдауға әзір емеспіз. Сондықтан біз,<IMG SRC="url"> (ICON емес, себебі, инлайн суреттер кейіп (иконка) деп аталуға қақысы бар) қолдаймыз. Қазіргі таңда инлайн суреттерде  content-type болмайды. Келешекте біз оны қолдармыз деп ойлаймын. (MIME-ні толық адаптация жасай отырып). Негізінде қазір қолданып отырған суретті оқу үдерісі форматты оңай табады, сондықтан файлды кеңейту маңызды емес. 
 
Естен Ербол

 

Жарнама орны

Esten TechСтандарттар қалай жасалатыны туралы ұзақ кіріспе

Барлық құқықтар қорғалған

HTML5-тің біржақты тарихы жөнінде
HTML5 Үздіксіз сызық

Ұқсас тақырыптар