1 पॉइंट द्वारा GN⁺ 5 시간 전 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • Elm 0.19.2, Elm 1.0 की ओर बढ़ने से पहले कई छोटी रिलीज़ के जरिए compiler सुधारों को शामिल करने की दिशा में पहला कदम है
  • बड़े Elm codebase में शुरुआत से compile करने में 5.7 सेकंड और उसके बाद incremental build में 350ms से कम समय मापा गया, जिससे development के दौरान focus flow टूटने की संभावना कम होती है
  • इस सुधार का focus parsing के दौरान allocations घटाने पर था, और 8.5 लाख lines के प्रयोग में GC copy मात्रा 20% कम, peak memory usage 10% कम, और कुल speed 7% बेहतर देखी गई
  • असली projects के tests में improvement का स्तर अलग-अलग रहा; 351 modules को शुरुआत से compile करने वाले एक case में समय 4.981 सेकंड से 2.595 सेकंड हो गया, यानी 1.9 गुना तेज़
  • Acadia के काम से निकले performance और language ideas आगे compatibility न तोड़ने वाली releases में क्रमशः शामिल किए जाएंगे, और final polish के बाद Elm 1.0 की ओर बढ़ने की योजना है

Elm 0.19.2 में तेज़ हुआ compilation

  • Elm 0.19.2, जमा हुए compiler improvements को Elm में छोटे-छोटे हिस्सों में शामिल करने वाली पहली release है
  • तेज़ compiler उन स्थितियों को कम करता है जहां developer browser tab पर switch करते हुए focus खो देता है
    • अगर incremental compilation 400ms से कम हो, तो किसी और काम पर जाने की गुंजाइश लगभग नहीं रहती
  • 8.5 लाख lines वाले Elm code के आधार पर performance इस प्रकार है
    • शुरुआत से compile: 5.7 सेकंड
    • incremental build: 350ms से कम
  • असली बदलाव parsing के दौरान allocations घटाने के काम पर केंद्रित था
    • GC copy मात्रा 20% कम
    • peak memory usage 10% कम
    • कुल speed 7% बेहतर
  • 5 लाख lines से बड़े programs में moderate improvement की उम्मीद की जा सकती है, और छोटे programs में Elm compiler अब भी काफी तेज़ है
  • real-world environment tests में improvement project के हिसाब से अलग-अलग रहा
    • कुछ projects में मामूली improvement हुआ
    • 351 modules को शुरुआत से compile करने के मामले में 4.981 सेकंड से 2.595 सेकंड हो गया, यानी 1.9 गुना improvement
  • नया version Elm compiler 0.19.2 release से लिया जा सकता है

Elm 1.0 की ओर अगले releases

  • Acadia नाम के database-related compiler work से मिले ideas का उपयोग Elm में भी किया जाएगा
    • Acadia फिलहाल private alpha stage में है
    • public sharing इस साल के अंत के लिए planned है
  • Elm में शामिल किए जाने वाले ideas में performance improvements और language features दोनों शामिल हैं
    • उदाहरण: तेज़ parser
    • उदाहरण: equatable, hashable types
  • इन changes को Elm में naturally integrate करने के लिए compatibility न तोड़ने वाली छोटी releases की series के रूप में शामिल किया जाएगा
  • final polish stage में Elm 1.0 पर जाने की योजना है
  • Elm से पहली बार परिचित होने वाले users online examples और guide से शुरुआत कर सकते हैं
  • Elm 0.19.2 patch release है, इसलिए existing projects में भी नया version download करके तुरंत इस्तेमाल किया जा सकता है

2 टिप्पणियां

 
GN⁺ 4 시간 전
Hacker News की राय
  • आजकल Elm को मैं काफी प्रभावशाली research language के तौर पर ज़्यादा देखता हूँ
    इसका focus साफ़ है, कोई public roadmap या official support नहीं है, और leadership को community या core team बनाने में ज़्यादा रुचि नहीं दिखती
    फिर भी इसके साथ काम करने का अनुभव वाकई अच्छा है, और इसी वजह से कई forks और derivative projects बने हैं। हाल की Gleam conference में Louis Pilfold ने मज़ाक में कहा था कि “Elm users अपना-अपना compiler maintain करते हैं”, और असल में कम से कम 6 तो हैं ही, पिछले महीने 2 और announce हुए
    Evan का 1.0 की ओर बढ़ना खुशी की बात है, और उम्मीद है कि Elm को “complete” कहने के बाद successor projects में से कोई एक forks को consolidate करने और community बढ़ाने का कठिन काम संभाल सकेगा
    निजी तौर पर अगर अगली बार Elm जैसा कुछ ढूँढूँगा तो Gleam + Lustre देखूँगा। maintainers का ऐसा combination अच्छा लगता है जो community और design की परवाह करता है, और यह frontend और backend दोनों पर चलता है

    • Elm की trajectory काफी अजीब रही है, लेकिन इसे research language कहना सही लगता है
      एक समय इसे बहुत उत्साह से promote किया गया था, blog posts और talks खूब थे, और उत्साह व adoption भी काफी था
      फिर author लगभग गायब हो गए और project रुक गया
      बेशक यह उनका अपना project है, इसलिए उन्हें ऐसा करने का अधिकार है, लेकिन मुझे लगता है शुरुआत से expectations बेहतर set करनी चाहिए थीं। aggressive promotion ने ideas फैलाने में मदद की, लेकिन developers को अचानक छोड़े जाने जैसा भी महसूस कराया
    • Elm की सबसे अच्छी बात यह है कि इसमें Haskell जैसा feel बहुत मजबूत है। कुछ साल पहले मैंने Elm में कई मज़ेदार चीज़ें बनाई थीं
      दूसरी सबसे अच्छी बात “compile हो जाए तो चलेगा” वाली philosophy है। सच कहूँ तो Rust के अधिकतर हिस्सों में भी वैसा ही feel मिल जाता है। Haskell वाला feel कम है, लेकिन functional ancestors की गर्मजोशी भरी छाया जैसी कुछ बात जरूर है
    • Gren काफी सक्षम successor लगा, और community भी active और मददगार है
    • मैं भी उनमें से एक हूँ। मैंने language को extend करके कई convenience features डाले, और मूल रूप से proper error channel तथा erase किए जा सकने वाले sum types के जरिए dependency injection support कराया
      Elm अच्छी language है, लेकिन Evan को सच में उपयोगी चीज़ बनाने में रुचि नहीं दिखती और language governance कुल मिलाकर बिखरी हुई है
    • Elm इतनी अच्छी है कि लोग इसके stagnation से निराश लगते हैं। लेकिन वही stagnation Elm को अच्छा बनाने की वजह भी है
  • 2023 में मैंने लिखा था कि मैं अब भी Elm क्यों इस्तेमाल करता हूँ
    https://taylor.town/elm-2023
    2026 में आज भी उन्हीं वजहों से Elm इस्तेमाल कर रहा हूँ :)
    bonus के तौर पर Claude, Elm के साथ काफी अच्छी तरह fit होता लगता है
    https://taylor.town/diggit-000

  • करीब 2 साल पहले, मैंने अपनी पसंदीदा language Elm में browser के लिए Snake game ChatGPT vibe coding से बनाने का experiment किया था
    उस समय यह काफी rough था, और मैंने निष्कर्ष निकाला था कि large language models शायद Elm को मार भी सकते हैं
    अब मैं production में Elm इस्तेमाल कर रहा हूँ, और large language models बहुत बेहतर हो गए हैं। उल्टा, मुझे लगता है Elm अभी large language models के लिए ideal language है, इसलिए adoption बढ़ भी सकता है। यह ज़्यादातर languages से simple और stable है, और language के अंदर opinionated architecture शामिल है, इसलिए codebases एक-दूसरे से काफी मिलते-जुलते हो जाते हैं

    • AI की वजह से मैं music में भी और ज्यादा उतर गया, और मैंने MIDI keyboard खरीदा और proper DAW software भी setup किया
      Rust में भी ज़्यादा बनाने लगा हूँ और Rust docs भी ज़्यादा पढ़ रहा हूँ। large language models उस चीज़ को सीखने से बचने का बहाना नहीं होने चाहिए जिसका आप इस्तेमाल कर रहे हैं; ऐसा हो तो आप खराब engineer हैं
      large language models आपको इतना समय दे देते हैं कि मिले हुए output को maintain कर सकने के लिए research और learning कर लें। अगर आप problem समझते हैं तो prompts भी बेहतर लिख सकते हैं
    • यह कहना कि large language models Elm adoption बढ़ा सकते हैं, सही भी है और नहीं भी
      आखिरकार यह इस पर निर्भर करता है कि training data और RLHF में Elm कितना शामिल है। मैं सहमत हूँ कि structured frameworks या languages में codebases ज़्यादा समान होते हैं, इसलिए generation आसान हो जाती है
      लेकिन सिर्फ इतना काफी नहीं है, और आम तौर पर developer adoption अपने-आप में कहीं ज़्यादा complex discourse है
    • सुधार हुआ हो सकता है, लेकिन Claude Code जैसे agents को Elm के significant whitespace पर बार-बार अटकते देखकर मुझे काफी निराशा हुई
      Python को वह बहुत अच्छे से संभालता है, इसलिए यह अजीब लगा, और Elm modern languages में सबसे stable में से है। इतनी stable कि लोग शिकायत करते हैं कि यह बदलती ही नहीं। हालांकि मैंने आखिरी बार करीब 1 साल पहले try किया था, इसलिए अब बेहतर हो गया होगा
    • यह viewpoint valid है। मैंने इस तरह कभी नहीं सोचा था, लेकिन अगर ecosystem आगे नहीं बढ़ रहा है तो शायद मैं अब भी हिचकूँगा
  • JavaScript से जुड़ी limitations हल हुईं क्या? मेरी याद में JavaScript के साथ integrate करने के लिए Elm का Ports mechanism इस्तेमाल करना पड़ता था, और सीधे wrapper लिखने नहीं देता था
    लगता है किसी ने fork करके direct JavaScript wrapper या FFI लिखने की सुविधा दी थी और उस पर controversy भी हुई थी

    • FFI अब भी ज़्यादातर ports से handle होता है। view side में कभी-कभी web components भी इस्तेमाल होते हैं
      यह intentional choice है, और 1.0 तक तो निश्चित रूप से, और उसके बाद भी बने रहने की संभावना ज्यादा है
  • मुझे पता ही नहीं था कि यह प्रोजेक्ट अभी भी जीवित है। तंज नहीं कर रहा, लेकिन लगा था कि यह खत्म हो चुका है

    • प्रोजेक्ट सचमुच मृत था। पिछली रिलीज़ 7 साल पहले थी, और संस्थापक के maintenance रोकने के बाद community BDFL model से आगे नहीं बढ़ पाई, इसलिए सब वहीं रुक गया
      इसलिए यह मृत था, और अब बस फिर से जीवित हुआ है। इस बीच community काफी मुरझा गई होगी, ऐसा मुझे लगता है
    • मैं community में गहराई से शामिल नहीं था, लेकिन उस समय शामिल लोगों को जानता हूं, और मेरी समझ के मुताबिक custom infix operators हटाने से community का काफी support चला गया
      यह बहुत लोकप्रिय feature था, लेकिन language के संस्थापक को यह पसंद नहीं था, इसलिए community की मजबूत मांग के बावजूद इसे हटा दिया गया
      तकनीकी रूप से शायद यह सही फैसला रहा होगा, लेकिन सामाजिक रूप से यह बहुत अलोकप्रिय था और शायद गलत फैसला था
    • इसे वापस आते देखकर खुशी हुई। Elm में हमेशा एक अद्भुत elegance थी, जिसे support करने का मन करता था
    • पिछले 2 साल से मैं एक बहुत profitable और lean company में professionally Elm इस्तेमाल कर रहा हूं
      join करने से पहले मुझे यह नहीं आता था, लेकिन React, Redux वगैरह का अनुभव था, इसलिए जल्दी सीख गया
      Elm community शायद इसे feature कहेगी। 6–8 साल पहले लिखे गए React code में से कितना आज के React toolchain में बिल्कुल उसी तरह ठीक से चलता होगा?
      values पूरी तरह अलग हैं। 2026 का अच्छा React code, 2016 के बाद compile होने वाले Elm code जैसा दिखता है
    • मुझे भी लगता था कि Elm के आसपास की community लगभग खत्म हो चुकी है। फिर भी लगता है कि अकेला maintainer और संस्थापक अभी भी मौजूद है
      मैंने Elm को tutorials के अलावा कभी इस्तेमाल नहीं किया, लेकिन हाल में मैंने एक Gleam full-stack app बनाया और ज्यादातर coding agents का इस्तेमाल किया। शुरुआत में मैंने code structure को काफी सख्ती से control किया, और वह प्रक्रिया काफी अच्छी तरह fit हुई
  • मुझे Elm 1.0 से ज्यादा Elm 0.19 के बाद में दिलचस्पी है। 0.19 वह version था जिसने Elm author द्वारा official approval न पाए सभी native modules को रोक दिया था, और मेरी नजर में उसने practically Elm के अंत को mark किया

  • 1.0 की ओर जाने की announcement के तौर पर इससे बुरा कुछ सोचना मुश्किल है। किसे फर्क पड़ता है? localization या accessibility support न हो तो किसी UI framework को production-ready 1.0 कहना समझ में नहीं आता
    third-party contributors के browser APIs जोड़ने की क्षमता को सीमित करने ने toy projects को छोड़कर Elm की momentum मार दी, ऐसा मुझे लगता है
    अब यह production के लिए कम, और Evan का compiler ideas के साथ खेलने वाला sandbox ज्यादा लगता है

    • मुझे नहीं लगता कि यह बात सही है। जिस Elm app को मैं maintain करता हूं वह पूरी तरह localized है, और accessibility भी मेरे हिसाब से काफी अच्छी है
      localization को हम हर language के लिए एक बड़ा record रखकर, और strings इस्तेमाल करने वाले app के हर हिस्से में उसे pass करके handle करते हैं। plurals या language-specific special cases के लिए record में simple functions डाल सकते हैं, जो बहुत सुविधाजनक है
      accessibility अच्छी HTML, ports, और autocomplete typeahead जैसे जटिल cases में web components को जोड़कर हासिल की जाती है
    • बस उन्हें बनाने दो। जो सच में जानते हैं, वे ready होने पर पहचान लेंगे, और trend के पीछे चलने वालों को तो वैसे भी बचाया नहीं जा सकता
    • एक तरफ, Evan को अच्छा करते देखकर अच्छा लगता है। language development को लेकर उनके पास काफी अच्छे ideas हैं, और Elm ने कई बहुत interesting projects को काफी inspiration दी है
      दूसरी तरफ, 7 साल तक कुछ नहीं, फिर एक छोटा-सा compiler performance improvement निकालना और उसे “1.0 की राह” कहना थोड़ा अजीब है। कोई दुर्भावना नहीं, लेकिन क्यों? यह पहले ही मर चुका था, शोक भी पूरा हो चुका था, और लोग बहुत पहले आगे बढ़ चुके थे
      जब तक कोई सचमुच चौंकाने वाली release नहीं आती, मुझे नहीं लगता कि बहुत लोग परवाह करेंगे
  • लगता है Evan किसी चीज की ओर इशारा कर रहे हैं, लेकिन सब लोग सिर्फ उंगली देख रहे हैं। मेरे हिसाब से यह असल में Elm के बारे में नहीं, बल्कि Acadia की तैयारी के बारे में है
    उनकी presentation Economics of Programming Languages https://www.youtube.com/watch?v=XZ3w_jec1v8 में उन्होंने पिछले 7 साल से जिस चीज पर काम किया है, उसकी झलक दिखाई। यह functional ideas लागू करने वाली query language है
    वे बताते हैं कि web apps में type information आम तौर पर किन boundaries पर टूटती है: language और storage के बीच, और storage और transport के बीच
    अगर इन boundaries के पार type information बचाकर रखी जा सके तो क्या मिलेगा? उन्होंने जो जवाब दिए उनमें से एक है आसान migrations। हाथ से SQL लिखने के बजाय type differences से handle किया जा सकता है
    इसलिए सही सवाल यह है कि Elm में आने वाले changes देखकर क्या हम अंदाजा लगा सकते हैं कि Acadia कैसी होगी। incremental compilation किसी query language को क्या देगी?

    • Elm के इतिहास को देखते हुए, हमें क्यों मानना चाहिए कि Arcadia का हाल वैसा ही नहीं होगा?
      ideas चाहे कितने भी अच्छे हों, अगर Arcadia में ज्यादा future-oriented और community-driven development model नहीं हुआ, तो कोई उसे अपनाएगा नहीं। ज्यादा से ज्यादा वह “XYZ को inspire करने वाला project” बनकर रह जाएगा
      Evan सोच सकते हैं कि यह अगली बहुत बड़ी चीज है, और शायद वे सही भी हों, लेकिन Elm के बाद की दुनिया इतनी ध्यान से सुनेगी या नहीं, पता नहीं
  • क्या उन्होंने वह फैसला वापस लिया जिसमें कुछ language features सिर्फ Elm team ही इस्तेमाल कर सकती थी? वह language को मार देने लायक फैसला लग रहा था

  • क्या यह कहना सही है कि Elm ने काफी momentum खो दी है? अब HN पर भी इसकी चर्चा मुश्किल से होती है, और सोच रहा हूं कि releases और news के बीच लंबे gaps की एक वजह क्या यही है
    release gaps देखें तो 0.19.2 “Faster builds, and the Road to Elm 1.0” जुलाई 2026 में है, और 0.19.1 “Friendly syntax hints, faster builds” अक्टूबर 2019 में था

 
GN⁺ 5 시간 전
Lobste.rs की रायें
  • वाह! Elm 0.19.1 21 अक्टूबर 2019 को आया था, यानी अब 7 साल पहले, और Elm डेवलपमेंट के बारे में वही आखिरी सार्वजनिक खबर भी थी
    प्रोजेक्ट से नई खबर देखकर काफी खुशी हुई

    • Evan v1 रिलीज़ की योजना बना रहे हैं, यह सुनकर सच में उत्साह है
    • मैं भी यही कहने आया था
      एक side project में Elm इस्तेमाल किया था और वह सच में बहुत अच्छा अनुभव था, लेकिन बाहर से देखने पर community थोड़ी शांत लगती थी। यह बहुत उत्साहित करने वाली खबर है
  • Elm ने web development को मजेदार बना दिया था
    1.0 क्या लेकर आएगा, इसका इंतजार है

  • सच में बहुत सुखद surprise है
    Elm की stability मुझे हमेशा पसंद रही है, और लगता है 1.0 भी कोई बहुत radical बदलाव नहीं करेगा; व्यक्तिगत रूप से मुझे यह अच्छी दिशा लगती है

    • बताई गई breaking change काफी बड़ा असर डाल सकती है
      अगर == वगैरह अब किसी भी type को स्वीकार नहीं करेंगे, तो काफी Elm code बदलना पड़ेगा। upgrade प्रक्रिया कैसी होगी, यह जानने की उत्सुकता है
  • Elm update देखकर अच्छा लगा
    किसी programming language में कई साल तक कोई update न होना थोड़ा असामान्य है। वजह समझ आती है, लेकिन public perception भी अजीब चीज होती है

    • सही, खासकर frontend में, जहां सब कुछ पागलपन भरी रफ्तार से चलता है
  • यह खबर अच्छी है
    कभी-कभी आधुनिक frontend development के पागलपन से बचने के लिए Elm को फिर से देखना एक अच्छी राहत जैसा लगता है

  • ZuriHac 2026 में Evan का talk देखने का मौका मिला, और उन्होंने संकेत दिया कि नया Elm release आ रहा है, जिससे मैं सच में हैरान रह गया
    उम्मीद है video जल्द आएगा, लेकिन ऐसा लगा कि उन्होंने समझ लिया है कि stability को लक्ष्य बनाकर चलने का तरीका इस industry की तेज progress के जुनून से ठीक मेल नहीं खाता। मेरी समझ के अनुसार Elm अब छोटे और तेज steps भी ले सकता है। मैं उत्साहित हूं, और उस talk ने मुझे Elm की बहुत याद दिला दी

  • यह देखना दिलचस्प होगा कि Elm equatable और hashable types जैसी ज्यादा स्पष्ट features को कैसे handle करेगा
    इस language के विवादास्पद design choices में से एक यह है कि यह typeclass जैसे ज्यादा शक्तिशाली Haskell-style type system features से बचती है। व्यक्तिगत रूप से मुझे हमेशा असुविधा हुई कि natural और well-defined ordering वाले custom types भी dictionary keys के तौर पर इस्तेमाल नहीं किए जा सकते। फिर भी Elm पर काम जारी है, यह कुल मिलाकर अच्छी खबर है

    • typeclass-style features की बहुत उम्मीद न रखना बेहतर होगा
      blog post की wording देखकर लगता है कि मौजूदा constrained type variables, यानी number, appendable, comparable, compappend के अलावा कुछ नए constrained type variables जोड़ने भर की बात हो सकती है