"लगता है, जाकर थोड़ा लेटना पड़ेगा."
(twitter.com/multikev)- TLDraw के Make Real डेमो को आज़माने का अनुभव
- AI का इस्तेमाल करके चित्रों को काम करने वाले software में बदलने वाला टूल
- OpenAI's GPT-4V का उपयोग करके vector images को HTML/TailWind CSS और Javascript में बदलना
1 टिप्पणियां
Hacker News की राय
मैं tldraw का Steve हूँ। माफ़ी, यह खराब security patterns वाला toy project है। अगर इसे local पर चलाना है या source देखना है, तो यहाँ है: https://github.com/tldraw/draw-a-ui
दूसरे examples https://twitter.com/tldraw पर देखे जा सकते हैं। tldraw या इस project के बारे में सवाल हों तो जवाब दे सकता हूँ। यह किसी की नौकरी खत्म करने वाली चीज़ नहीं है, लेकिन इसके साथ खेलना वाकई मज़ेदार है, और ज़्यादा जटिल example यहाँ है: https://twitter.com/tldraw/status/1725083976392437894
एक license server भी है जिसे अभी MIT license के तहत release किया है। यह Elixir में लिखा है और https://go.robocoder.app को चलाता है। setup में मदद चाहिए हो तो संपर्क कर सकते हो: https://github.com/emcmanus/robocoder-server/
जवाब GitHub README में मिला। उसमें लिखा है कि “अपनी API key इस्तेमाल करने के लिए usage tier 1 access चाहिए, और अपना current tier व upgrade करने का तरीका OpenAI settings में देखें”
repository में मौजूद system prompt यह है:
यहाँ "creative license" का ज़िक्र क्यों है, यह ठीक से समझ नहीं आया। हर generation के लिए user prompt इस तरह है:
https://github.com/tldraw/draw-a-ui/blob/8a889bf36afc06fbb0c...
सामान्य tldraw canvas का screenshot लेकर इस prompt के साथ API को भेज दें, तो इसे “private” तरीके से चलाना भी काफी simple लगता है
Facebook interview question से आया mockup डालकर देखा। इसमें दो checkbox lists और checked items को एक-दूसरे में move करने के लिए दो buttons थे, और इसने ठीक से कर दिया: https://gist.github.com/milesrichardson/2a2f77d4bfb19c3b28dc...
toList.appendChild(item.closest('li'));item को move कर देता है। हर दिन कुछ नया सीखते हैंकोई announcement न हो तो user को पता नहीं चलता कि button दबाने पर सच में कुछ हुआ या नहीं। test page: https://output.jsbin.com/jixoqur/quiet
ये नए-नए demos एक तरफ यह दिखाते हैं कि हाल में machine learning/AI में हुई प्रगति कितनी प्रभावशाली है, और साथ ही यह भी कि दुनिया भर के लाखों developers कितने दोहराव वाले और कम मौलिक काम को बार-बार implement करते रहते हैं
ज़्यादातर UI screens को एक-दो paragraphs में ठीक-ठीक समझाया जा सकता है, इसलिए यह भी अजीब नहीं कि उन्हें अपेक्षाकृत छोटे embedding vector में काफी विस्तार से व्यक्त किया जा सकता है
असल काम में AI का गहन इस्तेमाल न करने वाले non-technical roles खास तौर पर इस भ्रम में आ जाते हैं। मैदान में इसका अनुभव रखने वाले लोग आम तौर पर इसे ज्यादा बारीकी से देखते हैं। यह बेहद उपयोगी है, लेकिन गलतियाँ भी खूब करता है, और production-level नतीजा पाने के लिए सावधानी से fine-tune/सुधारना पड़ता है। AI optimist होने के नाते भी, value सचमुच है और प्रभावशाली demos हमें दिशा दिखाते हैं, लेकिन औसत नतीजों को बढ़ी-चढ़ी उम्मीदों तक पहुँचने में समय लगेगा
इस demo में सचमुच CSS की दो properties adjust करने वाले दो sliders हैं, इसलिए UI spec में information content ज्यादा नहीं है। अगर कोई ठीक UI specification language होती, तो यह तीन lines का code होता। कठिनाई web UI boilerplate को manage करने से आती है
अजीब बात यह है कि HN पर traditional no-code platforms की बात करते समय लोग scalability और maintenance की सीमाएँ आसानी से पहचान लेते हैं, लेकिन AI जुड़ते ही जैसे ये समस्याएँ अचानक हल हो जाती हैं और black box से निकले spaghetti के बारे में चिंता करने की ज़रूरत नहीं रहती
असल में चाहिए था functionality और presentation को अलग करना। संयोग से 1996 का pure HTML web ठीक यही था। फिर कुछ कल्पना से परे मूर्खतापूर्ण तरीके से भयानक रूप से गलत हो गया, और कोई भी बेहतर नहीं हुआ। इसके बजाय बस shadow effects और internal flexbox जैसी चीज़ें रह गईं
office jobs का बड़ा हिस्सा वही काम बार-बार दोहराना है, और अलग-अलग companies में मूलतः वही tasks अलग-अलग लोग दोहराते रहते हैं
यह UI designers, और शायद product owners को स्मार्ट और सक्षम दिखाने वाला tool लगता है। लेकिन असली काम पहले की तरह programmers के पास ही जाएगा
UI designer “demo” दे सकता है, लेकिन यह basic feature app के बाकी हिस्से से कैसे जुड़ेगा? नहीं जुड़ेगा
GPT से पहले से ही यह तर्क था कि बहुत शुरुआती prototypes या mockups को उनकी internal functionality के स्तर के अनुपात में visually भी कम polished दिखना चाहिए। सुंदर और ऊपर से “चलती हुई” लगने वाली UI-only prototypes, साफ-साफ समझाने के बाद भी unrealistic expectations बनाती हैं और prototype के सीधे production बन जाने वाली proto-duction की संभावना बढ़ाती हैं
मैंने कई projects देखे हैं जहाँ किसी executive द्वारा approve किए गए Figma design की constraints के कारण घटिया system design engineers पर थोप दिया गया। बेशक ऐसी organizations में और भी बड़ी समस्याएँ होती हैं, लेकिन आसानी से बनने वाले high-fidelity mockups ने wireframes की तुलना में इस समस्या को और बिगाड़ा
अगर इससे और अच्छा काम करवाना हो तो "it's very important for my career" भी जोड़ दीजिए
box को enlarge और rotate करने वाला demo बनाने वाले developers की नौकरी अब जाती दिख रही है
customer के साथ यह discuss कर रहा था कि हमारे software को उनके software में कैसे integrate किया जाए, तभी customer ने main form का screenshot भेजा
मैंने वह screenshot ChatGPT में डाला और कहा, “इस तरह का React form Bootstrap से बना दो।” कुछ adjustments के बाद मैंने अपना software जोड़ा, और कुछ घंटे बाद system इतनी जल्दी integrate हो गया देखकर customer उस proof of concept से हैरान था। Web development में CSS layout समस्या हो तो मैं screenshot ChatGPT पर upload करके समाधान पूछ लेता हूँ; tweet का demo भी काफी similar लगता है
ऐसे frameworks आते रहे जो fancy use cases में शानदार हैं, लेकिन आम और basic tasks के लिए overkill हैं। कुछ exceptions भी कभी-कभी थीं, लेकिन ज़्यादातर web developers उन्हें पसंद नहीं करते। resume में भी वे cool नहीं दिखते, और सच कहें तो पूरी career में web forms ही बनाते रहना कौन चाहता है
आखिरकार यह turtles all the way down ही है :+)
Coding के लिए मैंने ChatGPT से ज्यादा command-line pipes या Bash scripts से data जल्दी process करने में इसका इस्तेमाल किया है। command output देकर desired formatting, aggregation, sorting, extraction के लिए Bash माँगने से debugging या hypothesis-checking जैसे वे काम भी आसान हो जाते हैं जिन्हें पहले शायद करता ही नहीं। manually भी कर सकते हैं, लेकिन धीमा है और options/arguments याद रखने के लिए search या man pages चाहिए होते हैं। code के लिए मैं मुख्यतः GH Copilot इस्तेमाल करता हूँ
आप मुझे संदेहवादी कह सकते हैं, लेकिन मैं no-code solutions के भविष्य पर भरोसा नहीं करता। छोटे device resolutions पर buttons align करने पड़ते हैं, दूसरी भाषाओं में भी अच्छा दिखे इसलिए whitespace छोड़ना पड़ता है, और दूसरी requirements भी लगातार आती रहती हैं
ज़्यादा से ज़्यादा यह ऐप्स को किसी और ज़्यादा abstracted language में तेज़ी से बनाने में मदद करेगा। यह tic-tac-toe जैसी बेहद basic और आम चीज़ों के लिए काम करता है, लेकिन मौलिक कामों के लिए फिट नहीं बैठता
कल्पना कीजिए कि हल्की-फुल्की तकनीकी समझ रखने वाले दर्जनों लोग sketches बनाते हैं और “असल में बना दो” दबाकर features जोड़ते हैं। हर कोई सैकड़ों lines का code बना देता है। दिन के अंत में किसी को उस output को समझना पड़ेगा, और output non-deterministic होने की वजह से हमारे पास बचता भी वही है
साथ ही, नए लोग जिन्होंने सुर में गाना सीख नहीं पाया या सीखना नहीं चाहा, वे बहुत कम मेहनत में पूरी तरह नए music genres और mainstream pop बनाएंगे। कारीगर भी अपने कुछ workflows को मजबूत करने, polish बढ़ाने और speed लेने के लिए कभी-कभार इसका इस्तेमाल करेंगे
लगता है Canva, Figma जैसे tools इस तरह की features को aggressively adopt करेंगे और high-fidelity wireframes और demos को काफ़ी बेहतर करेंगे
Squarespace, Wix वगैरह पहले ही market का lower end ले चुके हैं, और अगर वे नहीं लेते तो Indian outsourcing ले लेती
यह उसी concept का natural evolution है। अगर मैं किसी website builder का product manager होता, तो इस तरह के AI builder integration पर तुरंत लग जाता। यह कम परिभाषित complex business tasks के लिए कभी काम नहीं करेगा, लेकिन photography business के लिए cost calculator जैसी चीज़ अच्छी तरह बना सकेगा
business process workflow software काफ़ी popular है। बहुत-से apps हैं जिनमें लोग drag-and-drop या interactive widget editors से मिलते-जुलते काम करते हैं, और वे complex forms, parent-child relationships, state transitions भी संभाल सकते हैं। GPT Vision जैसी चीज़ इस्तेमाल करें तो widget drag-and-drop छोड़कर ज़्यादा free-form drawing tool या hand-drawn sketches इस्तेमाल किए जा सकते हैं। आज का सबसे popular example शायद Notion है, और उससे बहुत पहले से कहीं ज़्यादा complex examples भी मौजूद थे
अब खुद को बूढ़ा महसूस कर रहा हूँ। दशकों पहले भी VB या Delphi से लगभग इसी speed पर यह किया जा सकता था। बस tool के label names से infer करने के बजाय result थोड़ा ज़्यादा deterministic होता था
हमारे पास यह पहले से था, और हम यह भूल गए कि सब कुछ browser में ठूँसे बिना और generative AI models की भारी computation इस्तेमाल किए बिना भी यह हो सकता था। बादलों पर चिल्लाते बूढ़े जैसा महसूस हो रहा है
बेशक Dreamweaver code बदसूरत और लगभग बेकार स्तर का था, और AI-generated code कभी-कभी इतना खराब नहीं होता। फिर भी लगता है हम आज की स्थिति के काफी करीब पहले ही पहुँच चुके थे
VB बहुत opinionated tool था और सिर्फ़ native Windows style UI बनाता था। designer द्वारा लाए गए किसी arbitrary mockup या पूरी तरह custom look-and-feel को pixel-by-pixel VB में replicate करने की बात नहीं थी। आज ज़्यादातर product GUIs brand का हिस्सा हैं। अच्छा हो या बुरा, हर company unique look-and-feel और UI behavior चाहती है। इसलिए बनाने वाले tools को कहीं ज़्यादा complex होना पड़ता है। browser में भी VB को recreate किया जा सकता है और सच में कई लोगों ने वैसा बनाया भी है, लेकिन companies boring और generic UI नहीं चाहतीं, इसलिए product development में उसका ज्यादा इस्तेमाल नहीं होता
मूल रूप से यह diagram screenshot को GPT-4 पर भेजकर “इसे implement कर दो” कहने के तरीके से काम करता है
उसके 10 साल बाद Visix Vibe नाम की कोई चीज़ 1–2 साल तक घूमती रही, जो उस समय की अपेक्षाकृत नई language Java के लिए यही देने का दावा करती थी। हर कुछ साल में, लगभग 4–5 साल या 10 साल में एक बार, कोई न कोई सारी complexity गायब कर देना चाहता है। लेकिन अंत में वे operating system ही बना बैठते हैं
और वे सच में ठीक से काम करते हैं, बाकी toolkit के साथ expected तरीके से interact करते हैं, और internationalization तथा accessibility भी लगातार अच्छे से काम करते हैं। कोई वजह नहीं कि HTML default रूप से इससे कहीं ज़्यादा काम न कर सके, और ऐसा करने से हर साल developers का भारी समय और users की frustration बच सकती है। लेकिन बस ऐसा किया नहीं जाता