- SSH daemon अब डिफ़ॉल्ट रूप से shell और exec services को निष्क्रिय करता है, इसलिए जब तक इन्हें स्पष्ट रूप से कॉन्फ़िगर न किया जाए, authenticated users मनमाना Erlang code नहीं चला सकते
- SSH daemon शुरू होने पर SFTP subsystem भी अब डिफ़ॉल्ट रूप से सक्षम नहीं होती, जिससे security defaults और मज़बूत हुए हैं
-unsafe attribute जोड़ा गया है, जिससे unsafe functions को चिह्नित किया जा सकता है, और compiler अब उन function calls पर डिफ़ॉल्ट warning देता है जिन्हें Erlang/OTP में हमेशा unsafe माना जाता है
xref अब unsafe function calls और बिना documentation वाले functions को खोज सकता है, और ignore_xref attribute filtering भी अब xref के भीतर ही संभाली जाती है
- SSL default settings में x25519mlkem768 अब सबसे पसंदीदा key exchange group बन गया है, और SSH default key exchange algorithm भी ML-KEM-768 और X25519 को मिलाकर
mlkem768x25519-sha256 कर दिया गया है
- Erlang system के default code path में current working directory
. की position पहले से बदलकर सबसे अंत में कर दी गई है, जिससे loading order बदल गया है
- Windows के लिए 32-bit Erlang/OTP builds अब उपलब्ध नहीं कराए जाएंगे
- EEP-79 के native records को implement किया गया है, और Erlang/OTP 29 में इन्हें experimental feature माना गया है
is_integer/3 guard BIF, EEP 78 आधारित multi-value comprehension, और compr_assign feature के ज़रिए comprehension के भीतर variable binding जोड़ी गई है
- compiler अब
catch, subexpression के बाहर variables export करना, and/or, और {a,B} = {X,Y} जैसे match alias patterns पर डिफ़ॉल्ट warnings जोड़ता है, और हर एक के लिए disable option भी देता है
- पुराने guard tests को Erlang/OTP 30 में language से हटाया जाएगा, और मौजूदा obsolete guard usage warnings लागू रहेंगी
io_ansi के ज़रिए terminal पर ANSI/Virtual Terminal Sequence output किया जा सकता है, और ct_doctest से Erlang module documentation और documentation files के examples test किए जा सकते हैं
1 टिप्पणियां
Hacker News की राय
सुधार काफ़ी अच्छे लग रहे हैं। SSH daemon को डिफ़ॉल्ट रूप से disable करना और SFTP को भी डिफ़ॉल्ट रूप से disable करना सुरक्षा के लिहाज़ से अच्छा बदलाव है
io_ansi मॉड्यूल भी काफ़ी बढ़िया लग रहा है। अभी Erlang के बारे में complex command-line applications बनाने के लिए बहुत ज़्यादा चर्चा नहीं होती, लेकिन अगर यह standard library में आ गया है तो आगे काफ़ी मददगार हो सकता है।
fwriteका nodes के बीच स्वाभाविक रूप से काम करना भी Erlang से अपेक्षित वही फ़ायदा हैNative Records का जुड़ना भी दिलचस्प है। अभी Elixir में स्थिति के हिसाब से records, tuples और maps मिले-जुले इस्तेमाल होते दिखते हैं, इसलिए यह आगे कैसे इस्तेमाल होगा यह जानने की उत्सुकता है। EEP में जैसा कहा गया है, मौजूदा records पूरी तरह हटेंगे ऐसा नहीं लगता, लेकिन यह काफ़ी बड़ा सुधार दिखता है
https://www.erlang.org/doc/apps/ssh/ssh.html
https://www.erlang.org/docs/29/apps/stdlib/io_ansi.html
https://github.com/erlang/eep/pull/81
SSH daemon में अब shell और exec services डिफ़ॉल्ट रूप से disable हैं, जिससे यह secure by default सिद्धांत का पालन करता है। अगर इसे साफ़ तौर पर configure न किया जाए, तो authenticated users मनमाना Erlang code execute नहीं कर पाएँगे
SFTP subsystem भी SSH daemon start होने पर अब डिफ़ॉल्ट रूप से enable नहीं होता
जो लोग जानना चाहते हैं कि Erlang/OTP में OTP क्या है, उनके लिए: यह मूल रूप से libraries और principles का एक सेट है, जो telecom क्षेत्र के लिए high-reliability और fault-tolerant applications को standardize करके बनाने में मदद करता है
मूल विचार के लिए “OTP Design Principles” की शुरुआत थोड़ा पढ़ना उपयोगी रहेगा
https://www.erlang.org/doc/system/design_principles.html
अगर आपका production app 29 से कम पर है, तो इस version या नवीनतम patch version पर जितना जल्दी हो सके update करना अच्छा हो सकता है। मैंने अभी production में deploy किया, और automated security scan में फरवरी से मई 2026 की तारीख वाले 2 CRITICAL CVE और कई HIGH risk items पकड़े गए
सोच रहा हूँ कि क्या अभी भी कोई नए projects में Erlang इस्तेमाल करता है
मुझे पता है यहाँ Elixir पसंद करने वाले बहुत लोग हैं, लेकिन बात pure Erlang की कर रहा हूँ
अगर आप अभी भी Erlang इस्तेमाल करते हैं, तो Elixir की तुलना में उसे पसंद करने की वजह क्या है?
Elixir मुझे Erlang के मुकाबले कोई ठोस फ़ायदा नहीं देता। निश्चित रूप से उसके अपने फ़ायदे हो सकते हैं, लेकिन Erlang मेरी सोच से ज़्यादा मेल खाता है। सीखने या मदद लेने को किसी social gathering जैसा बनाना भी अच्छा लगेगा, लेकिन मेरे लिए सही जगह मिल नहीं पाती
क्या कोई internal architecture समझा सकता है?
https://blog.stenmans.org/theBeamBook/
records ecosystem में कैसे जगह बनाएँगे, यह जानने की उत्सुकता है
दिलचस्प है। सोच रहा हूँ कि क्या कभी ऐसा समय आएगा जब Elixir maps को native records में compile करेगा
क्या किसी को पता है कि WhatsApp अभी भी Erlang पर आधारित है?
2010 के शुरुआती वर्षों से वे Erlang इस्तेमाल कर रहे हैं, और उसी समय tech industry को यह पता चला था कि WhatsApp लगभग 30 engineers के साथ 40 करोड़ से ज़्यादा active users को support कर रहा था
उस समय मैंने वहाँ के एक engineer से संपर्क किया था, और जब मैं अमेरिका में रहता था तब उन्होंने ईमेल पर मेरे कुछ सवालों के बड़े विनम्र जवाब दिए। बाद में हम कॉफ़ी पर भी मिले और आज तक संपर्क में हैं
इतना कहा जा सकता है कि Erlang आज भी WhatsApp का एक अहम हिस्सा है
-unsafeattribute support जोड़ा गया है, यानी Rust में फिर से rewrite करने का एकदम सही समय है /sसमझ नहीं आता Erlang आखिर इस्तेमाल कौन करता है। Rails इस्तेमाल करने के बाद मैंने Phoenix भी आज़माया, लेकिन उसमें कुछ हासिल करना बहुत ज़्यादा मुश्किल लगा
Phoenix के लिए इतना उत्साह क्यों है, यह मेरी समझ से बाहर है
एक solo developer के लिए Rails शायद सबसे productive webapp system है। LLM भी Ruby on Rails code बहुत अच्छी तरह लिखते हैं। Python training corpus बहुत बड़ा होने के बावजूद, मेरे अनुभव में वे Django से काफ़ी बेहतर लिखते हैं
experimental apps मैं Rails में लिखता हूँ, और जब वे stable हो जाएँ तो Go में rewrite करता हूँ। जब app का scope साफ़ न हो, तब सीधे Go में लिखने पर tokens काफ़ी ज़्यादा खर्च होते हैं, जबकि Rails में यह बहुत efficient है
आजकल React या Angular की भी ज़रूरत नहीं रह गई है; Rails में Hotwire और Go में HTMX इस्तेमाल करता हूँ
Erlang forum भी खुद Rails में बने Discourse का इस्तेमाल करता है
थोड़ा नज़रिया व्यापक रखना बेहतर होगा
method_missingजैसी चीज़ों से टकराते हैं, और फिर यह समझने में ज़्यादा समय लगता है कि चीज़ें काम कैसे कर रही हैंElixir/Phoenix इस मामले में ज़्यादा explicit है, इसलिए long-term maintenance में, यानी पहले हफ़्ते के बाद, यह काफ़ी आसान हो जाता है। कोई hidden state नहीं,
ModuleName.method(params)कहाँ से आया यह खोजते फिरने की ज़रूरत नहीं, और उस method को चलाने के लिए कुछ set up करने की भी ज़रूरत नहीं—बस सही arguments पास कर दीजिए। कमी बस इतनी है कि ready-made package libraries का ecosystem थोड़ा छोटा हैEcto भी बुरा नहीं है
Claude Code, Elixir code बहुत अच्छा लिखता है
हैरानी की बात है कि LLM हो या न हो, इंसान उसी tech stack में ज़्यादा productive होता है जिसे वह पहले से जानता है