1 टिप्पणियां

 
GN⁺ 2024-11-12
Hacker News की राय
  • अगर Figma में UI behavior भी जोड़ा जा सके, तो शायद वह कुछ ऐसा ही दिखेगा। वेब कई सालों से उलटी दिशा में जाता महसूस होता है; हमने Flash खो दिया और HTML5 पर आ गए, लेकिन वह दौर जिसमें रचनात्मक लोग बहुत कुछ बना रहे थे, धीरे-धीरे फीका पड़ गया
    पहले Visual Basic, Delphi, Borland JBuilder जैसे IDE में सरल application builder होते थे, और Eclipse में भी कुछ समय तक एक साधारण Swing UI builder था। वेब की तरफ Dreamweaver, FrontPage वगैरह थे
    इसका मतलब यह नहीं कि वे tools परफेक्ट थे, लेकिन उनका कोई ढंग का विकल्प नहीं आया। अब Figma में “design” करने के बाद dev team लगभग शुरुआत से दोबारा implement करती है, जो गहराई से wasteful लगता है

    • असल में कितना waste है, यह मुझे ठीक से नहीं पता। overlap तो है, लेकिन मेरे अनुभव में बहुत ज्यादा नहीं था; frontend के समय का ज्यादातर हिस्सा components के पीछे के behavior, device interactions, security, API calls में जाता है
    • मुझे नहीं लगता कि visual UI builder ही आगे का रास्ता थे। Static UI के लिए वे ठीक हैं, लेकिन जैसे ही dynamic constraints को express करने की कोशिश करते हैं, वे बिखर जाते हैं
      Figma भी यही दिखाता है। तेज prototype के लिए elements को absolute position में रखना और symbols इस्तेमाल करना उपयोगी है, लेकिन जैसे ही autolayout लाते हैं, CSS flexbox और grid वाली समस्याएं लगभग ज्यों की त्यों सामने आ जाती हैं। फर्क बस इतना है कि यह सब आप बहुत खराब system में झेलते हैं, जिसमें version control, refactoring tools और ChatGPT नहीं हैं
      निजी तौर पर भी किसी specific component को चुनने के लिए 15 groups को double-click करना या cmd-click से भीतर घुसकर text-form properties edit करने की तुलना में, XML structure को सीधे संभालना कहीं आसान है। इसलिए लगता है कि Apple और Android ने interface builders को DSL की तरफ धकेल दिया
  • VB6 उन लोगों के लिए, जिन्हें अभी तुरंत output बनाना होता था, निस्संदेह सबसे अच्छा IDE था
    2000 के दशक के बीच में जब मैं PC-based CCTV system install करता था, एक restaurant customer को PC demo करते समय मैंने Pandora music service दिखाई, तो उसने पूछा कि क्या इसे restaurant speakers पर सुना जा सकता है। कार में मौजूद 3.5mm-RCA-BNC cable से amplifier से जोड़ दिया, और customer को लगा जैसे वह 21वीं सदी में प्रवेश कर गया हो—वह बहुत खुश था
    फिर उसने पूछा कि क्या music को थोड़ी देर रोककर guests के लिए announcement किया जा सकता है। मैंने desktop पर sndvol32.exe sound mixer का shortcut बना दिया। जब उसने कहा कि staff इसे office में नहीं, counter से करना चाहते हैं, तो मैंने कहा—एक paperclip और 30 मिनट दे दीजिए
    कार से stranded Cat 5 और पुराना beige IBM 2-button mouse निकाला, office से reception desk तक wire बिछाई, Cat 5 की एक pair को left-click switch पर solder किया, और mouse body में drywall screw ठोककर उसे दीवार पर ऐसे टांग दिया जैसे stuffed deer head हो। Office side पर DB-25 साथ नहीं था, इसलिए paperclip पर leads solder करके PC के LPT port में reliably connect कर दिया
    इसके बाद सब आसान था। “VB6 Volume Mixer” search करके download किया, stereo mix mute checkbox खोलकर one-liner को timer में copy किया, और 100ms interval पर check किया कि LPT pin short हुआ है या नहीं; short होने पर stereo mix mute हो जाए और mic unmute हो जाए
    यह सब बिना पहले से planning के, site पर ही बनाया गया था, और वह customer आज भी customer है। हरफनमौला worker के लिए यह सचमुच शानदार tool था

    • कुछ साल पहले Reddit पर मुझे लगता है मैंने एक comment पढ़ा था जिसमें किसी ने कहा था कि उन्होंने restaurant staff को दीवार पर लगे mouse को दबाकर announcement करते देखा था। शायद order ready notification था, लेकिन setup इतना अनोखा था कि संभव है वह यही case रहा हो
    • मुझे VB6 भी पसंद है, लेकिन यह 10% VB6 और 90% MacGyver जैसा लगता है। Phoenix Foundation को ऐसे इंसान की जरूर जरूरत होगी
    • “VB6 सबसे अच्छा IDE” नहीं था, दूसरा नंबर था। सबसे अच्छा Delphi था, और अब शायद Lazarus हो सकता है
  • सचमुच बहुत अच्छी तरह बनाया गया है, और अब अगर Delphi भी आ जाए तो development environment की स्थिति से फिर संतुष्ट हो पाऊंगा
    Source code: https://github.com/BAndysc/AvaloniaVisualBasic6
    Lazarus बताने वाला comment delete हो गया, इसलिए जोड़ दूं: Lazarus के बारे में जानता हूं और उसे पुराने project में इस्तेमाल कर रहा हूं। लेकिन browser के अंदर भी चलने वाला modern version चाहिए, और इस उदाहरण की तरह .NET उस use case के लिए ठीक लगता है। शायद यह https://pascalabc.net/en/ पर based भी हो सकता है
    मजाक नहीं है—Pascal/Lazarus और Common Lisp programming आजकल के tools की तुलना में अब भी ज्यादा enjoyable लगती है; anxiety नहीं, सिर्फ मजा और productivity है

    • Client या browser के अंदर .NET-based technology इस्तेमाल कर सकते हैं, इसका मतलब यह नहीं कि करनी ही चाहिए। ऐसे frameworks में आमतौर पर बड़े trade-offs होते हैं, और एक बार इस्तेमाल शुरू कर दें तो जल्दी dependent हो जाते हैं
      उदाहरण के लिए MVC से MVC में migrate करना, webforms से blazor/avaloniaui/dotvvm में migrate करने की तुलना में कहीं आसान है
    • Turbo Pascal/C++ की और जरूरत है
  • 90s के अंत और 2000s की शुरुआत में VB5/6 के साथ मैं बहुत productive था। छोटी-छोटी समस्याएं हल करने वाली बहुत सारी utility apps बनाईं, और उन्हें जोड़-तोड़कर बनाना बेहद आसान था। vb.net पर जाने की कोशिश की, लेकिन वही feel नहीं था

    • यहां का VB6 Winforms builder, आज आए latest Visual Studio 2022 के Winforms builder से लगभग 100% identical है
      मैं इसे रोज कई घंटे इस्तेमाल करता हूं; form पर कुछ components drag-and-drop करता हूं, थोड़ी logic जोड़ता हूं, और कुछ ही मिनटों में छोटी desktop app चलने लगती है
      2021 से support बेहतर हो गया है, इसलिए दुर्भाग्य से C# में coding करता हूं, लेकिन code readability की वजह से ईमानदारी से कहूं तो VB.NET ज्यादा superior था
    • वह feel मैं जानता हूं। University में GPIB, UART, RS422 आदि equipment की test automation लिखने वाला VB6 person था, और electrical engineering department में grad student के तौर पर अच्छा-खासा कमाया। TA job छोड़ दी तो उसकी जगह equipment role ने ले ली, और master’s tuition का ज्यादातर हिस्सा उसी से निकला
  • उस समय के सबसे बेहतरीन programming tools में से एक याद आ गया। BASIC से Visual Basic पर जाना वाकई चौंकाने वाला था। आज के दौर में भी ऐसे tools की कमी खलती है, और आजकल के तथाकथित no-code या low-code tools काफी अलग तरीके से काम करते हैं। मुझे अब भी लगता है कि सबसे अच्छा low-code वही तरीका है जो VB ने अपनाया था

    • याद करने की जरूरत नहीं है। ऐसा tool अब भी है जो मिलते-जुलते तरीके से काम करता है: https://www.lazarus-ide.org/
    • ईमानदारी से कहूं तो reactive programming approach हो, तो IDE में उससे जुड़ा user experience जोड़ना इतना मुश्किल नहीं होना चाहिए
      लगता है कि ज्यादातर framework developers productivity को core metric के रूप में भूल जाते हैं। यह बात थोड़ी unfair हो सकती है, लेकिन visual tools की कमी निराशाजनक है
  • वाह, VB6 वही tool था जिसने बचपन में मुझे software development से परिचित कराया था। आज के लिए ठीक वही nostalgia था जिसकी जरूरत थी

    • मेरा भी यही अनुभव था। लेकिन युवा जोश में BASIC को बेकार language घोषित करके MS Visual C++ 6 पर जाने में ज्यादा समय नहीं लगा
      C++ और MFC दूसरी वजहों से और भी खराब थे, लेकिन फिर Linux मिला और उसके बाद की कहानी सबको पता है
      फिर भी VB6 के RAD जितना शक्तिशाली कुछ अब तक नहीं मिला। आजकल तो हम पूरी तरह आदिम इंसानों की तरह UI को हाथ से place करते हैं या XML लिखकर बनाते हैं
    • मेरे साथ भी यही था। VB6 की pirated copy और उसे काफी अच्छे से समझाने वाली website के download से शुरुआत की थी
      याद है कि Win32 API से image पर DMA लगाकर sprites के बीच pixel-level collision detection जैसी चीजें भी बनाई थीं। मजेदार दिन थे
    • high-performance DLL Visual C++ में बनाना और उसे VB में इस्तेमाल करना—उस समय VB एकदम perfect balance point था
  • लेखक का GitHub देखा तो लगता है कि वे classic Win9x look and feel के लिए UI library भी maintain करते हैं: https://github.com/BAndysc/Classic.Avalonia
    यह मुझे पसंद आया, और इसे इस्तेमाल करके खुद app बनाकर देखना चाहता हूं

    • सिर्फ वह library भी VB6 recreation जितनी ही अलग से post करने लायक है। details शानदार हैं, जिससे Avalonia को फिर से explore करने का मन करता है
  • वे दिन याद आते हैं। हर IDE में line-by-line debugger होता था
    आज Angular/React applications में कई साल बाद भी वैसा कुछ नहीं है, और syntax अब भी उलझाता है

    • मैंने इस तरह कभी नहीं सोचा था, लेकिन बात सही है। React के लिए अच्छे browser plugin tools हैं, पर उन्हें IDE में वापस लाने की प्रक्रिया अब भी दर्दनाक है
    • जो लिखा जाता है और जो असल में run होता है, वे इतने अलग हैं कि single-page apps को अलग language मानना ही बेहतर है। Firefox में अच्छा JavaScript debugger है, और अगर build tool का output sourcemap देता है तो वह ठीक से काम करता है
  • अच्छा है। एक छोटा bug report है
    मैंने button add किया, double-click करके code window खोली, और MsgBox "Hello" जैसा simple code डालने के बाद code window के top-right में x दबाया
    code save नहीं हुआ। code update करने के लिए project को “Save” या “Run” करना पड़ता है। पुराने VB IDE में type की गई हर चीज याद रहती थी; यह बात अलग है

    • button control में तो काम करता है, लेकिन label control में चाहे जो करूं, Click event fire होता हुआ नहीं लगता
  • याद है कि 90s में बहुत-सी छोटी कंपनियां VB और Access पर चलती थीं। इसने non-programmers को सच में बहुत ताकत दी थी
    काश web पर भी कुछ ऐसा होता। कुछ low-code solutions ऊपर से मिलते-जुलते लगते हैं, लेकिन VB की खास बात यह थी कि बीच में platform बदले बिना भी वह एक full app में grow कर सकता था। आजकल web CRUD app को develop और deploy करने की complexity देखकर हमेशा हैरानी होती है

    • web, app platform के तौर पर सच में बहुत खराब है। इसके popular होने की दो वजहें हैं
      पहली, installation की जरूरत नहीं होती और operating system packaging से निपटना नहीं पड़ता। क्योंकि हर operating system की packaging भयानक है
      दूसरी, SaaS ही DRM है। software को cloud में host कर दो तो piracy नहीं होती और monthly subscription fee आसानी से ली जा सकती है
      अगर तीसरी वजह गिननी हो तो collaboration features बनाना आसान हो जाता है, लेकिन यह सिर्फ कुछ software पर लागू होता है
    • PowerApps है। Office365 में built-in है