वे बातें जो सिर्फ 90 के दशक के वेब डेवलपर्स को याद होंगी (2014)
(zachholman.com)- 1990 के दशक के पर्सनल वेब में standardized layout tools की कमी थी, इसलिए
,,1x1.gif,, DHTML जैसी तकनीकों से layout और effects को किसी तरह गढ़ा जाता था - CSS layout के स्थापित होने से पहले
1x1.gifऔर बार-बार दोहराए गएतत्वों को धकेलने वाले मुख्य layout tools की तरह इस्तेमाल होते थे, और लेख इसे बढ़ा-चढ़ाकर दिखाई गई nostalgia के रूप में व्यंग्य करता है - शुरुआती CSS लिंक के underline हटाने और
a:hoverstyle बदलने जैसे छोटे visual effects पर केंद्रित था, और नतीजतन लिंक और सामान्य text के बीच का फर्क धुंधला हो गया - DHTML, CSS और JavaScript को मिलाकर loading
alert(), बर्फ़ के फाहे, accordion menu, custom `` जैसे effects बनाने वाली copy-paste culture से जुड़ा हुआ था - pixel fonts, 88x31 buttons, Internet Explorer 4.0, GeoCities, FrontPage ’98 उस दौर में पर्सनल वेबसाइटों के तकनीकी चुनाव और पहचान दिखाने के तरीक़े के रूप में सामने आते हैं
वह दौर जब और ही animation थे
कोके अंदर रखना 1990 के दशक के वेब में किसी कमाल की computer animation की तरह, मज़ाकिया अंदाज़ में लिया जाता था- इसमें यह बढ़ा-चढ़ाकर दिखाया गया गर्व छिपा है कि 1990 के दशक के वेब डेवलपर्स के पास आज की jQuery या non-relational databases से भी ज़्यादा अहम कहानियाँ थीं
1x1.gif से पेज को धकेलने वाला layout
1x1.gif,spacer.gif,transparent.gifसभी 1 pixel × 1 pixel transparent GIF को ही दर्शाते हैं- HTML image के
WIDTHऔरHEIGHTattributes को बड़ा सेट करके अदृश्य space बनाई जा सकती थी, और पेज के elements को मनचाही जगह तक धकेला जा सकता था - उदाहरण कोड में
,,,, ``, और web counter CGI को साथ इस्तेमाल करके structure और decoration दोनों एक साथ संभाले जाते थे - व्यंग्य आगे कहता है कि
1x1.gifकी वजह से elements को पेज में कहीं भी रखा जा सकता था, और आज तक vertical center alignment का वही एकमात्र तरीका है
से हाथ से किया गया spacing
- अगर image tag इस्तेमाल करना मुश्किल हो, तो
को बार-बार दोहराकर spacing मिलाने का तरीका भी था PLEASE SIGNऔरMY GUESTBOOK BELOW:के बीच कईडालकर guestbook टेक्स्ट को जमाने का उदाहरण दिया गया है- फिर मज़ाक में कहा गया है कि अगर 1990 के दशक में इस्तेमाल किए गए हर
पर एक nickel मिला होता, तो AOL के monthly overage charges भरने के लिए काफ़ी पैसे हो जाते
शुरुआती CSS ने पहले लिंक के underline हटाए
- CSS को HTML के स्वर्ण युग के अंत में आए उस तकनीक के रूप में पेश किया गया है, जिसने content और style को अलग करने का वादा किया था
- उस समय CSS से सबसे पहले किया गया काम था लिंक के underline हटाना
- लिंक text जैसे दिखने लगे और text लिंक जैसा, जिससे यह समझना मुश्किल हो गया कि कहाँ क्लिक करना है
- mouse cursor के पीछे आग की लपटों जैसी trail छोड़ने वाले effect का भी ज़िक्र आता है
- 2000 की
index.shtmlफ़ाइल के उदाहरण में inline CSS के रूप में सिर्फa:hover {text-decoration: none; color: #000000}है- hover पर underline हटता है और रंग काला हो जाता है
- यह
index.shtmlफ़ाइल SSI का इस्तेमाल करती है, इस बात को भी मज़ाकिया ढंग से उभारा गया है
DHTML और code copy culture
- CSS से लिंक के underline हटाने के बाद JavaScript से page load पर
alert("Welcome to my website!")दिखाने वाला क्रम आता है - CSS और JavaScript का मेल DHTML नाम की “डरावनी तकनीक” के रूप में व्यंग्यात्मक ढंग से पेश किया गया है
- DHTML effects में पेज पर ऊपर से गिरते बर्फ़ के फाहे, accordion menu, animated image maps, और
का उपयोग करने वाला customशामिल है - Dynamic Drive जैसी साइटों की वजह से, समस्या को खुद हल करने के बजाय 50 lines का code block copy-paste कर देने से ही काम हो जाता है, ऐसा दिखाया गया है
- DHTML की तुलना उस दौर के Twitter Bootstrap से की गई है
pixel font और low-resolution aesthetics
- उस समय कंप्यूटर स्क्रीन CRT होती थीं, इसलिए उनका physical size बड़ा था लेकिन resolution बहुत ऊँचा नहीं होता था
- सीमित pixels का असरदार इस्तेमाल करने के लिए 6-point के आसपास के छोटे fonts इस्तेमाल करने का चलन था
- ऐसी साधारण pixel-based typefaces देखकर कई web developers illustrator बनना चाहते थे, और splash screen में isometric pixel illustration डालने की कोशिशें भी होती थीं
- साथ ही यह मज़ाक भी जोड़ा गया है कि वह समय और पैसा Photoshop install करने के बजाय dot-com IPO में निवेश करना बेहतर होता
Internet Explorer 4.0 और 88x31 buttons
- व्यंग्य यह कहता है कि आज लोग Internet Explorer से नफ़रत इसलिए करते हैं क्योंकि वह Internet Explorer 4.0 के “शुद्ध रूप” से दूर हो गया
- Internet Explorer 4.0 को Active Desktop और Channels से लैस एक परफेक्ट browser की तरह बढ़ा-चढ़ाकर पेश किया गया है
- उस दौर की वेबसाइटों पर ऐसे 88x31 pixel buttons बहुत लगे होते थे, जो बताते थे कि visitor को कौन-सा browser इस्तेमाल करना चाहिए और साइट कौन-से tools व services इस्तेमाल करती है
- इन buttons की तुलना सैन्य वर्दी पर लगे medals से की गई है, जो साइट चलाने वाले के चुनाव और संबद्धता दिखाते थे
- editor का उदाहरण: FrontPage ’98
- web server का उदाहरण: GeoCities
- web ring के बारे में मज़ाक है कि लोग उसे साइट को सबसे ऊपर ले जाने वाली जगह मानते थे, जबकि असल में ऐसा कुछ था ही नहीं
आज के web पर एक मज़ाक
- आज के web को JavaScript के ऊपर कई layers of abstraction चढ़ी हुई अवस्था के रूप में दिखाया गया है
- JavaScript के साधारण गणित भी ठीक से न कर पाने वाले मज़ाक के साथ बात ख़त्म होती है कि फिर भी यह हैरानी की बात है कि web यहाँ तक पहुँच गया
- अंत में सुझाव दिया गया है कि अगली pull request में ढेर सारे
जोड़कर टीम को मज़ाक-मज़ाक में परेशान किया जाए
1 टिप्पणियां
Hacker News की राय
server-side image maps की बात बिल्कुल अपनी जैसी लगती है
मैं वेब प्रोग्रामर से ज़्यादा कभी-कभार web-based tools बनाने वाला system administrator हूँ, इसलिए मेरी web skills 2000 के शुरुआती दशक में ही अटकी हुई हैं, और JavaScript से एक अजीब-सी दूरी भी है। हाल की एक tool में image पर points को संभालने वाला basic behavior चाहिए था; जो काम JavaScript की 5 lines में हो जाता, उसे मैंने 2023 में server-side image map से किया
नतीजा यह हुआ कि JavaScript की 5 lines की जगह state संभालने वाली Python की 50 lines और उस अजीब fragment syntax को handle करने के लिए request handler में special case बन गया। थोड़ा शर्मनाक है, लेकिन फिर भी उसे चलने लायक बना दिया, इस बात पर अजीब-सा गर्व भी है
archive.org Wayback Machine पर एक पुरानी site मिली, लेकिन अगर पूरी homepage ही server-side image map हो, तो मूल server के बिना बाकी site के destination URL पता करने का कोई तरीका नहीं रहता, और बात पूरी तरह dead end पर आकर रुक जाती है
उस समय वह लगभग टूटा हुआ था, इसलिए अगर zoom 100% न हो या padding 0 न हो, तो coordinates बिगड़ जाते थे, और ऐसे कई मिलते-जुलते issues थे। किसी ने ध्यान नहीं दिया, क्योंकि image maps खुद ही लगभग इस्तेमाल नहीं होते थे, और server-side image maps तो उससे भी कम
मैं भी JavaScript के बिना आसान रास्ता निकालना चाहता था, इसलिए 90s HTML याद आया। लेकिन आखिर में Chromium bug ठीक करने के बाद यही निष्कर्ष निकला कि server-side image maps अच्छे नहीं हैं, और मैंने JavaScript इस्तेमाल किया; JavaScript वाला version बेहतर था
HTMX सच में किसी उद्धार जैसा है, और Tailwind UI खरीद लो तो कोई भी frontend में काफ़ी खतरनाक इंसान बन सकता है। फिर भी JavaScript से असहजता क्यों होती है, इस पर दूसरी राय भी जानना चाहूँगा। मेरे लिए तो syntax की असंगति बड़ी वजह है, और TypeScript की तरफ़
node_modulesfolder देखते ही जी मिचलाने लगता हैकुल मिलाकर लंबे समय तक frontend से दूर रहने की वजह यही रही कि कभी लगता ही नहीं था कि जो कुछ हो रहा है, उस पर मेरा नियंत्रण है
मैंने Lisp की कुछ दर्जन lines से एक web server बनाया जो screen का image map देता था, और image map request आने पर click insert कर देता था। यह एक छोटा-सा one-off tool था, जो सिर्फ office आना-जाना बचाने के लिए बनाया था, लेकिन बाद में COVID आ गया और बहुत ज़्यादा लोगों ने उसका इस्तेमाल करना शुरू कर दिया। शायद आज भी कोई न कोई उसे इस्तेमाल कर रहा हो
“अब भी किसी element को vertically center करने का यही एक तरीका है” अब सही नहीं है, लेकिन पिछले 30 सालों में
divके अंदर बसvertical-align: middle;न चला पाने की productivity cost शायद अरबों डॉलर रही होगीIE4 या IE6 के दौर में links के
:hoverपर overline style देने वाला चलन भी याद है। tables से rounded-cornerdivऔर buttons बनते थे, और 2000s में भी Photoshop से slices काटकर table cells में भरने वाला दर्द जारी थाVALIGN=MIDDLEथा90s में भी था या नहीं, पता नहीं, लेकिन 2000s में तो निश्चित रूप से था
लेकिन अक्सर 2~3 rules काफ़ी होते हैं, फिर भी वह 5 से ज़्यादा जोड़कर redundant rules मिला देता है। सच में हद दर्जे का बेवकूफ़ है
उन corners की वजह से न जाने कितना समय बर्बाद हुआ
Tailwind CSS में भी यह सीधा नहीं है; element block है या text, parent layout क्या है, जैसी बातें बार-बार देखनी पड़ती हैं
div { display: table-cell; vertical-align: middle; }यह हर situation में काम नहीं करता, लेकिन शुरुआत में चाहे गंदा लगे, concerns की separation फिर भी बनी रहती है और कोई खास दूसरी कमी नज़र नहीं आती
इस संदर्भ में DHTML का मतलब Distributed HTML नहीं बल्कि Dynamic HTML था, और इसलिए Dynamic Drive का Dynamic भी वही है
जब दूसरे लोगों ने भी उसे उसी तरह गलत उद्धृत किया, तो लगता है लेखक ने हाल में मज़ाक में उसे बदल दिया होगा
निष्कर्ष यही था कि यह मज़ाक तो है, लेकिन अच्छा मज़ाक नहीं है
frames को भी नहीं भूल सकते। यह हर page के navigation bar को बदलने की समस्या का मूल “solution” था
समस्या यह थी कि search engine हर frame page को अलग-अलग index कर सकते थे, इसलिए अगर कोई सीधे किसी frame page पर आ जाए तो उसे कैसे handle करना है, यह सोचना पड़ता था। sections के बीच की dividing line भी हमेशा साफ़ दिखती थी, इसलिए सब कुछ अटपटा और असुविधाजनक लगता था
HTML के अंदर special comments डाल दिए जाते थे, और Apache उन्हें client को भेजने से पहले किसी दूसरी file के contents से replace कर देता था
frame-busterscript चलाते थे, और अगर मेरा page अपने frame के बिना orphan बन जाए, तोframe-joinerscript बुलाते थेइसका theory https://martinfowler.com/articles/micro-frontends.html#Run-t... में है, और implementation https://luigi-project.io पर देख सकते हैं
अगर इसके साथ HTML tables में built-in functionality होती, और data source आधारित tables और list views 2000s के मध्य में मिल गए होते, तो बेहिसाब समय और पैसा बच सकता था
और अगर web ने payment standards अपना लिए होते और browser खुद payment input handle करता, तो कितना पैसा बचता, यह गिनना शुरू करें तो बात खत्म ही न हो
बच्चों, एक ज़माना था जब सब लोग एक ही browser इस्तेमाल नहीं करते थे
1996 में Microsoft homepage पर hover करने पर खुलने वाला menu bar था, और मैंने ठान लिया था कि यह कैसे काम करता है, पता लगाकर रहूँगा
उस समय IE में “View Source” button था, लेकिन platform sense की कमी के कारण वह Notepad document की तरह खुलता था, और server Unix पर था इसलिए line breaks
\nथे, जबकि Windows\rकी उम्मीद करता था, नतीजा यह कि पूरा HTML source एक ही लंबी line में दिखता थाsource को कितनी भी ध्यान से देखो, HTML tags सब जाने-पहचाने थे और contents भी वही text था जो page पर दिख रहा था। बस HTML entities ही अनजान थीं, और क्योंकि वे हर उस site पर दिखती थीं जहाँ moving menu था, मुझे पूरा यक़ीन हो गया था कि राज़ उन्हीं में है
6 महीने तक मैं मानता रहा कि DHTML effects असल में HTML entities के रूप में छिपे जादुई मंत्रों से बनते हैं, और बाद में जब WebMonkey tutorial मिला, तो वहीं से पूरी career की शुरुआत हो गई
minification tools और compilers शानदार हैं, लेकिन अच्छी तरह designed sites का साफ़-सुथरा, maintain किया गया source पढ़ने वाले दिन सच में याद आते हैं
काश हम ऐसे compression तक पहुँचे होते जो production code में भी original source formatting को बचाए रखता, और यह उम्मीद बनाए रखता कि दुनिया भर के दूसरे लोग हमारा code पढ़ेंगे। शुरुआती web के तेज़ी से बढ़ने में इस culture की बड़ी भूमिका थी, और मेरे इस industry में आने की कहानी में भी इसका हिस्सा बहुत बड़ा था
Barnes & Noble से JavaScript Bible खरीदी, weekend भर पढ़ी, और उसके बाद सीखना चलता ही रहा
यह भी नहीं भूलना चाहिए कि tables का इस्तेमाल rounded corners के लिए भी होता था
3×3 table बनाते थे और बीच वाले cell को छोड़कर बाकी cells में images डालते थे, ताकि rounded corners वाला website element बनाया जा सके, और उस समय यह इंसानी अभिव्यक्ति की चरम सीमा जैसा लगता था
HTML email भी चलन में था, और email clients browsers की तुलना में बहुत धीरे update होते थे, इसलिए अगर आप चाहते थे कि चीज़ें सही दिखें, तो यह technique 2010s तक भी इस्तेमाल होती रही
tl.gif,tr.gif,bl.gifजैसी image sets बनाना मैं कभी नहीं भूलूँगाउस समय browsers खाली cells की background images render नहीं करते थे, इसलिए बाएँ और दाएँ cells का background दिखाने के लिए लेख में बताए गए
1x1.gifकी भी ज़रूरत पड़ती थी। क्या दिन थेborder-radiusमिला, design trend बदल गया और किसी को rounded corners चाहिए ही नहीं रहेtables से rounded corners बनाने से पहले मुझे Trillian नाम का multi-chat app skinning की तरह customize करना याद है। वह Yahoo Chat, ICQ वगैरह संभालता था, और rounded corners की तरह ऊपर और side cells में repeating images डालकर window resizing ठीक रखी जाती थी
महान और सर्वशक्तिमान Oz की सबसे बड़ी उपलब्धि। खैर, iPhone शायद उससे भी बड़ा रहा हो
90s/00s की websites की बात हो और “800×600 resolution के लिए optimized” button न हो, ऐसा हो ही नहीं सकता था
अगर थोड़ा और style मारना हो तो “Valid HTML 4.01” भी जोड़ देते थे
उस समय ads आज की तरह जटिल JavaScript bundles और video ads नहीं थे, बल्कि simple standard-size banners होते थे। मुझे याद है, Norton Internet Security 2003 चुपचाप visited page के HTML को rewrite कर देता था, standard ad-size banners को हटा देता था और बाकी सब छोड़ देता था—यह देखकर मैं दंग रह गया था। यह इस बात की 20 साल पुरानी पुष्टि भी है कि ad blocker दरअसल security solution है
हैरानी है कि पूरे लेख में webmaster शब्द एक बार भी नहीं आया; तब तो लगता है Zach सच में 90s में था भी या नहीं
उस समय यह title कितना “cool” लगता था, यह आज कोई समझ ही नहीं सकता। अब देखकर मुझे खुद भी थोड़ी शर्म आती है, लेकिन उससे जुड़ी यादें बहुत प्यारी हैं
यह मज़ाक नहीं था
अगर आप 90s के web को सीधे अनुभव करना चाहते हैं, तो The Geocities Gallery https://geocities.restorativland.org/ की सिफारिश है
इन personal webpages में कुछ सुंदर-सा है। हर page का अपना एक अलग रूप होता है, और सिर्फ उससे ही लेखक की personality काफी झलकती है
आमतौर पर इनमें self-introduction, कुछ random personal photos, छोटे विवरण के साथ recommended links की list, और hobbies पर ढीले-ढाले लिखे नोट्स होते थे, इसलिए वे बहुत व्यक्तिगत और शांत लगते थे। यह आज के social media से साफ़ तौर पर अलग था, जहाँ हर profile page एक जैसा फीका और उबाऊ दिखता है, content अंतहीन बढ़ता रहता है, और एक खास तरह की life image बनाए रखने का दबाव रहता है
मैं काफी देर तक अपना पुराना site ढूँढ़ता रहा, जो Area51 के नीचे किसी directory में था, लेकिन याद नहीं कि कहाँ, और शायद वह archive भी नहीं हुआ होगा; साथ ही बस उस दौर को फिर से जीता रहा
यादें अजीब होती हैं। Geocities देखते ही मुझे पुराने internet की गंध तक याद आ गई, शायद वह उस family room की गंध थी जहाँ computer रखा था
ACID, ICE, FIRE जैसे BBS art groups के शुरुआती काम भी उस समय सचमुच बहुत शानदार लगते थे
IE5/6 के दबदबे से पहले, ज़्यादा advanced चीज़ें आम तौर पर Flash की ओर खिसक गई थीं। 2000s की शुरुआत में E4X आधारित React-जैसा framework बनाया गया था, जिसे ActionScript/Flash/Flex और Mozilla/Netscape support करते थे, और वह VB.Net के XML literal notation जैसा भी था
Microsoft और Google ने इसे नहीं अपनाया, और आखिरकार JSON ही राजा बन गया
90s में web layout से जुड़े सवालों का जवाब लगभग हमेशा table होता था
text alignment बिगड़ गया? table. कोई शानदार menu चाहिए? table. पूरा site बना रहे हैं? nested tables. जब rows और cells से design को hack किया जा सकता था, तो CSS की क्या ज़रूरत थी
fonttag डालना पड़ता थावे dynamic design के लिए सचमुच शानदार हैं, और column/row merge, alignment, और weighting भी support करते हैं। CSS अब भी पुराने tables की तुलना में कहीं ज़्यादा जटिल है