Hacker News

Lil' Fun Langs' Imsaren

Kummenti

14 min read Via taylor.town

Mewayz Team

Editorial Team

Hacker News

Għaliex Tħares Taħt Il-Lingwa ta' Programmazzjoni Ċkejkna tagħmlek Bennej Aħjar

Kull biċċa softwer li tuża — mis-CRM li jsegwi ċ-ċomb tiegħek sal-magna ta' awtomazzjoni li tibgħat fatturi f'nofsillejl — inbniet b'lingwa ta' programmar. Imma qatt ħsibt x'jagħmel lingwa ta' programmar immarka? Mhux l-ekosistemi massivi bħal Python jew JavaScript, iżda dawk żgħar, scrappy, delightfully stramb li l-iżviluppaturi jibnu fi tmiem il-ġimgħa biex isolvu problema waħda jew sempliċement biex jitgħallmu. Dawn il-"lil' fun langs" — lingwi tal-ġugarelli, lingwi speċifiċi għad-dominju (DSLs), u interpreti edukattivi — huma fejn jgħixu wħud mill-aktar ideat eleganti fix-xjenza tal-kompjuter. Il-fehim tal-imsaren tagħhom ma jagħmilx biss programm aħjar; jibdel b'mod fundamentali kif taħseb dwar il-bini ta' għodod, l-awtomatizzazzjoni tal-flussi tax-xogħol, u t-tfassil ta' sistemi li fil-fatt jaħdmu għan-nies.

X'Inhuma Eżattament "Lil' Fun Langs"?

Id-dinja tal-ipprogrammar hija mimlija lingwi li qatt ma kienu maħsuba biex iħaddmu servers ta' produzzjoni jew jipproċessaw miljuni ta' tranżazzjonijiet. Lingwi bħal Lox (minn Robert Nystrom Crafting Interpreters), Monkey (minn Writing an Interpreter in Go ta 'Thorsten Ball), jew saħansitra lingwi taċ-ċajt bħal Brainfuck u Chef jeżistu biex jgħallmu, biex jiddevertu, u biex jimbuttaw il-konfini ta' xi tfisser "lingwa" saħansitra. Dawn il-lingwi żgħar ineħħu l-kumplessità tal-ktajjen tal-għodda tad-dinja reali u jesponu l-mekkaniżmi mhux maħduma ta 'kif il-kodiċi jsir azzjoni.

Imma "lil' fun langs" mhumiex limitati għal eżerċizzji edukattivi. Lingwi speċifiċi għad-dominju jħaddmu wħud mill-aktar għodod tan-negozju effettivi fis-suq. Kull darba li tikteb formula fi spreadsheet, tiddefinixxi regola tal-filtru fil-klijent tal-email tiegħek, jew tikkonfigura fluss tax-xogħol ta 'awtomazzjoni fi pjattaforma bħalMewayz, int interazzjoni ma' lingwa żgħira mibnija apposta. Il-207 moduli ġewwa Mewayz — li jkopru CRM, fatturazzjoni, HR, ġestjoni tal-flotta, u aktar — jiddependu fuq magni ta' regoli interni u parsers tal-espressjoni li huma, fil-qalba tagħhom, lingwi ċkejkna ddisinjati biex jagħtu lill-utenti setgħa mingħajr ma jeħtieġu grad fix-xjenza tal-kompjuter.

Il-fehim ta' l-anatomija ta' dawn il-lingwi jiżvela għaliex xi għodod iħossuhom intuwittivi filwaqt li oħrajn iħossuhom qed jiġġieldu ma' manwal miktub f'dimensjoni oħra.

Il-Lexer: Tkissir il-Kliem F'Atomi

Kull lingwa, tkun żgħira kemm hi żgħira, tibda bl-istess pass fundamentali: analiżi lessikali, jew "lexing." Lexer jieħu sensiela mhux maħduma ta' karattri — xi ħaġa bħal total = price * kwantità + taxxa — u jkisserha f'biċċiet sinifikanti msejħa tokens. Il-lexer għadu ma jimpurtahx mit-tifsira. Jidentifika biss li total huwa identifikatur, = huwa operatur ta' assenjazzjoni, prezz huwa identifikatur ieħor, * huwa multiplikazzjoni, eċċ.

Il-bini ta' lexer għal lingwa ċkejkna huwa sodisfaċenti b'mod sorprendenti. F'inqas minn 100 linja ta 'kodiċi, tista' tgħallem programm biex jirrikonoxxi numri, kordi, kliem ewlieni, u operaturi. Is-sempliċità hija l-punt — iġġiegħlek taħseb dwar dak li jeħtieġ is-sett minimu assolut ta' "kliem" il-lingwa tiegħek. Dan l-istess ħsieb japplika meta jiġu ddisinjati għodod li jiffaċċjaw l-utent. Meta l-magna ta 'awtomazzjoni ta' Mewayz tħalli lil sid ta 'negozju żgħir iwaqqaf regola bħal "meta l-fattura tkun skaduta b'7 ijiem, ibgħat email ta' tfakkira," is-sistema tkun bil-kwiet lexing dik ir-regola f'tokens strutturati li tista 'taġixxi fuqhom. L-aqwa interfaces iħossuhom mingħajr sforz preċiżament għaliex xi ħadd ħaseb fil-fond dwar kif jidhru l-iżgħar unitajiet sinifikanti tal-intenzjoni tal-utent.

Parsing: Tibdil Tokens Ċatti Fi Siġar Ħajja

Ladarba jkollok tokens, għandek bżonn struttura. L-analiżi tittrasforma sekwenza ċatta ta 'tokens f'Siġra tas-Sintassi Astratta (AST) — rappreżentazzjoni ġerarkika li taqbad ir-relazzjonijiet bejn partijiet differenti ta' espressjoni. L-espressjoni 3 + 4 * 5 mhix biss sekwenza ta 'ħames tokens; hija siġra fejn il-multiplikazzjoni torbot aktar minn żieda, u tipproduċi 23 minflok 35.

Dan huwa fejn l-affarijiet isiru ġenwinament divertenti. Algoritmi ta' parsing bħal dixxendenza rikorsiv jew Pratt parsing huma biċċiet eleganti ta' inġinerija li jidħlu f'fajl wieħed iżda jistgħu jimmaniġġjaw grammatiċi kumplessi sorprendentement. Parsers dixxendenti rikorsivi, b'mod partikolari, jaqraw kważi bħal speċifikazzjoni tal-lingwa nnifisha — kull funzjoni tikkorrispondi għal regola grammatika, u tagħmel il-kodiċi jiddokumenta ruħu b'mod li huwa rari fl-iżvilupp tas-softwer.

Il-lezzjonijiet mill-parsing jestendu ferm lil hinn mid-disinn tal-lingwa. Kwalunkwe sistema li tipproċessa input strutturat - formola ta 'prenotazzjoni b'firxiet ta' dati, konfigurazzjoni tal-pagi b'regoli kundizzjonali, pipeline CRM b'loġika ta 'fergħat - qed issolvi problema ta' parsing. Il-138,000+ utent fuq il-pjattaforma ta' Mewayz jiġġeneraw dejta kumplessa u strutturata kuljum. Il-fehim ta' kif parsers jibdlu input ambigwu fi struttura mhux ambigwa hija d-differenza bejn il-bini ta' sistema li tieħu ħsieb il-każijiet tat-tarf b'mod grazzjuż u waħda li tkisser fil-mument li xi ħadd jidħol f'data f'format mhux mistenni.

L-Interpretu: Fejn Il-Kodiċi Jiġi Ħaj

L-interpretu huwa fejn isseħħ il-maġija. Huwa jimxi l-AST, node b'node, u tesegwixxiha. Nodu numru jirritorna l-valur tiegħu. Nodu ta 'operazzjoni binarja jevalwa t-tfal tax-xellug u tal-lemin tiegħu u jgħaqqadhom. Sejħa tal-funzjoni tfittex il-funzjoni f'ambjent, torbot argumenti, u tevalwa l-ġisem. F'lingwa tal-ġugarell, l-interpretu kollu jista' jkun 200-300 linja — żgħir biżżejjed biex iżżomm f'rasek, iżda b'saħħtu biżżejjed biex imexxi programmi reali.

Hemm żewġ approċċi wesgħin għall-eżekuzzjoni: interpreti li jimxu fuq is-siġar u magni virtwali bytecode. Tree-walkers huma aktar sempliċi iżda aktar bil-mod; huma jaqsmu l-AST direttament. Bytecode VMs jikkompilaw l-AST f'sekwenza ta 'struzzjonijiet sempliċi (bħal lingwa ta' assemblaġġ ċkejkna) u jeżegwixxu dawk minflok, jinnegozjaw il-kumplessità tal-implimentazzjoni għal prestazzjoni drammatikament aħjar. CPython, l-implimentazzjoni standard ta' Python, juża bytecode VM. Lua, waħda mill-lingwi inkorporati l-aktar effiċjenti, kienet il-pijuniera ta' disinn VM ibbażat fuq ir-reġistru li influwenza l-magni tal-logħob madwar id-dinja.

Tagħrif ewlieni: L-aktar għodod tan-negozju b'saħħithom mhumiex dawk bl-aktar karatteristiċi — huma dawk bl-aħjar "lingwa" interna biex jesprimu dak li l-utenti fil-fatt jeħtieġu. Kull magna tar-regoli, sistema tal-formula, u bennej tal-awtomazzjoni huwa interpretu ċkejken moħbi. Il-kwalità ta' dak l-interpretu tiddetermina jekk l-għodda tiskalax minn 10 utenti għal 100,000.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

Ambjenti u Skop: L-Arkitettura Moħbija tal-Istat

Wieħed mill-iktar kunċetti delikati fl-implimentazzjoni tal-lingwa — u wieħed mill-aktar applikabbli direttament għas-softwer tan-negozju — huwa kif il-lingwi jimmaniġġjaw l-istat permezz tal-ambjenti u l-ambitu. Meta tikteb assenjazzjoni varjabbli ġewwa funzjoni, dik il-varjabbli m'għandhiex tnixxi u tissostitwixxi xi ħaġa fl-ambitu globali. Dan jidher ovvju, iżda l-implimentazzjoni korretta tirrikjedi struttura tad-dejta msejħa katina tal-ambjent: lista konnessa ta’ mapep tal-hash fejn kull livell jirrappreżenta skop, u lookups varjabbli jimxu 'l fuq fil-katina sakemm isibu taqbila.

Dan il-mudell jidher kullimkien f'softwer iddisinjat tajjeb. Il-permessi tal-utent fi pjattaforma tan-negozju jaħdmu bl-istess mod — l-aċċess ta’ membru tat-tim jiġi ddeterminat billi l-ewwel jiġu ċċekkjati l-permessi individwali tagħhom, imbagħad il-permessi tar-rwol tagħhom, imbagħad il-modalitajiet tal-organizzazzjoni. Is-sistema tal-moduli ta 'Mewayz, li tifrex minn kollox minn paġni link-in-bio għall-ipproċessar sħiħ tal-pagi, tuża konfigurazzjoni f'saffi li tirrifletti dan il-prinċipju eżatt. Sid tan-negozju jistabbilixxi nuqqasijiet fl-organizzazzjoni kollha, il-maniġers tad-dipartimenti jistgħu jegħlbu settings speċifiċi, u utenti individwali jistgħu jippersonalizzaw l-ispazju tax-xogħol tagħhom stess — kollha mingħajr kunflitti.

Il-kisba ta' skop ħażin f'lingwa ta' programmar tikkawża bugs. Il-kisba tal-ambitu ħażin fi pjattaforma tan-negozju tikkawża tnixxijiet tad-dejta, eskalazzjoni tal-permessi, u t-tip ta 'kaos operattiv li jiswa flus reali. Il-lezzjonijiet huma l-istess f'kull livell ta' astrazzjoni.

Dak li fil-fatt Tgħallem Il-Bini Lingwa Ċkejkna

Jekk qatt ma bnejt lingwa ta' programmar żgħira, hawn x'tgħallem l-esperjenza b'mod konkret — u għaliex huwa importanti jekk intix żviluppatur, fundatur tekniku, jew xi ħadd li jrid biss jifhem l-għodod li jużaw kuljum:

  • Preċiżjoni tal-ħsieb: Ma tistax tkun vag meta tiddefinixxi grammatika. Kull ambigwità fl-ispeċifikazzjoni tal-lingwa tiegħek issir bug fil-parser tiegħek. Din id-dixxiplina tittrasferixxi direttament għall-kitba ta' specs aħjar, dokumentazzjoni aktar ċara, u rekwiżiti ta' karatteristiċi aktar preċiżi.
  • Empatija għall-utenti: Meta tfassal lingwa, tkun qed tfassal interface għall-ħsieb tal-bniedem. Titgħallem tistaqsi: "X'jifhem l-utent ifisser b'dan?" — mistoqsija li għandha tmexxi kull deċiżjoni dwar il-prodott.
  • Intuwizzjoni tal-prestazzjoni: Titgħallem għaliex xi operazzjonijiet huma mgħaġġla u oħrajn bil-mod, mhux billi taqra l-benchmarks iżda billi tara eżattament kemm jieħu passi l-interpretu. Dan jagħmlek aħjar fit-tfassil ta 'sistemi li skala.
  • Ħakma tad-debugging: Meta l-lingwa tiegħek tipproduċi output ħażin, ma jkollokx fejn taħbi. M'hemm l-ebda qafas li t-tort, l-ebda kunflitt tal-verżjoni tal-librerija. Hija l-loġika tiegħek, l-istrutturi tad-dejta tiegħek, l-algoritmu tiegħek. Dan jibni t-tip ta 'ħila ta' debugging profonda li tifred inġiniera tajba minn dawk kbar.
  • Apprezzament għall-astrazzjoni: Tifhem għaliex lingwi ta' livell ogħla għamlu l-għażliet li għamlu — għaliex JavaScript għandu għeluq, għaliex Python għażel spazju abjad sinifikanti, għaliex jeżisti l-kontroll tas-self ta' Rust. Dawn mhumiex deċiżjonijiet arbitrarji; huma soluzzjonijiet għal problemi reali li tiltaqa' magħhom fl-implimentazzjoni tiegħek stess.

Mill-Lingwi tal-Ġugarelli għall-Awtomazzjoni tad-Dinja Reali

Id-distakk bejn lingwa tal-ġugarell u magna tal-awtomazzjoni tal-produzzjoni hija iżgħar milli jaħsbu ħafna nies. Il-lingwaġġ tat-templating Liquid ta' Shopify bdiet bħala sistema ta' mudell sempliċi u sigura u issa tagħti s-setgħa lil miljuni ta' vetrina. Is-sintassi tal-fluss tax-xogħol ta' GitHub Actions hija lingwa speċifika għad-dominju mibnija fuq YAML. Il-lingwa ta' mistoqsijiet Sigma ta' Stripe tippermetti lit-timijiet finanzjarji jinterrogaw id-dejta tal-ħlas mingħajr ma jiktbu SQL. Kull wieħed minn dawn beda b'xi ħadd jistaqsi: "X'inhi l-iżgħar u l-aktar lingwa sempliċi li ssolvi din il-problema speċifika?"

Din hija l-istess filosofija wara pjattaformi li għandhom l-għan li jikkonsolidaw l-operazzjonijiet tan-negozju f'ekosistema waħda. Meta Mewayz jaqdi freelancer li għandu bżonn paġna link-in-bio u kumpanija ta’ daqs medju li tmexxi l-pagi għal 50 impjegat fil-207 moduli tagħha, l-isfida sottostanti hija l-istess waħda li jiffaċċja kull disinjatur tal-lingwa: kif toħloq sistema li hija sempliċi biżżejjed għal dawk li jibdew iżda b’saħħitha biżżejjed għal każijiet ta’ użu kumplessi? It-tweġiba, kif jgħidlek kwalunkwe implimentatur tal-lingwa, tinsab fil-kisba tal-primittivi tajbin — blokki ta' bini żgħar u komposti li l-utenti jistgħu jgħaqqdu b'modi li d-disinjatur qatt ma antiċipa.

Il-ħin li jmiss li tikkonfigura regola ta' awtomazzjoni, tibni dashboard apposta, jew twaqqaf fluss tax-xogħol kondizzjonali fi kwalunkwe għodda tan-negozju, ftakar: qed tikteb programm f'lingwa pjaċevoli. Xi ħadd iddisinja l-imsaren ta’ dik il-lingwa — lexer, parser, u interpretu tagħha — biex jagħmel l-intenzjoni tiegħek eżekutibbli. U l-kwalità tax-xogħol tagħhom hija l-forza inviżibbli li tiddetermina jekk l-esperjenza tiegħek tħossx bħal maġija jew miżerja. Il-fehim ta' dawk l-imsaren, anke fil-livell tal-wiċċ, jagħtik superpotenza: il-ħila li tara l-magna taħt l-interface, li tbassar fejn se tinkiser, u li timbottaha aktar milli qatt immaġinaw id-disinjaturi tagħha.

Ibni l-OS tan-Negozju Tiegħek Illum

Minn freelancers għal aġenziji, Mewayz jagħti s-setgħa lil 138,000+ negozju b'207 modulu integrat. Ibda b'xejn, aġġorna meta tikber.

Oħloq Kont Ħieles →

Mistoqsijiet Frekwenti

X'inhuma "lil' fun langs" u għaliex għandi jimpurtani?

Lil' fun langs huma lingwi żgħar ta' programmar sperimentali mibnija biex jesploraw ideat speċifiċi jew jgħallmu kunċetti ewlenin. Dawn ivarjaw minn interpreti tal-ġugarelli miktuba fi tmiem il-ġimgħa għal lingwi speċifiċi għad-dominju (DSLs) iddisinjati għal kompiti dojoq. Il-fehim ta’ kif jaħdmu jagħtik ħarsa aktar profonda dwar kif is-software kollu jopera — inklużi l-għodod tan-negozju li tiddependi fuqhom kuljum. Dak l-għarfien jagħmlek żviluppatur aktar qawwi u persuna li tieħu d-deċiżjonijiet aktar infurmata meta tagħżel jew tibni sistemi ta’ awtomazzjoni.

Kif jgħin it-tagħlim dwar l-intern tal-lingwa fl-awtomazzjoni tan-negozju?

Meta tifhem kunċetti bħall-parsing, l-evalwazzjoni u l-interpreti, tibda tara l-awtomazzjoni b'mod differenti. Inti tirrikonoxxi mudelli fil-bennejja tal-flussi tax-xogħol, il-magni tal-mudelli, u s-sistemi tar-regoli. Pjattaformi bħal Mewayz jużaw dawn l-istess prinċipji fil-207 moduli tagħhom biex iħalluk awtomat il-fatturazzjoni, il-flussi tax-xogħol tas-CRM, u aktar - kollha mingħajr ma tikteb kodiċi. Li tkun taf il-prinċipji fundamentali jgħinek timbotta dawn l-għodod aktar u ssolvi l-problemi aktar malajr.

Għandi bżonn grad tax-xjenza tal-kompjuter biex nibni lingwa ċkejkna?

Lanqas xejn. Ħafna żviluppaturi jibnu l-ewwel interpretu tagħhom fi tmiem il-ġimgħa waħda billi jużaw tutorials u gwidi open-source. Lingwi bħal Python u JavaScript jagħmluha sempliċi biex tikteb lexer bażiku, parser, u evalwatur. L-għan mhuwiex li tinħoloq il-lingwa tal-produzzjoni li jmiss - hija li titgħallem billi tagħmel. Anke lingwaġġ ta' kalkolatur sempliċi jgħallem kif l-espressjonijiet jiġu analizzati u esegwiti, ħiliet li jittrasferixxu direttament għall-iżvilupp fid-dinja reali.

Jista' nifhem id-DSLs jgħinni nagħżel għodod tan-negozju aħjar?

Assolutament. Ħafna pjattaformi tan-negozju jintegraw lingwi speċifiċi għad-dominju għal formuli, filtri, u regoli tal-fluss tax-xogħol. Meta tifhem kif id-DSLs jaħdmu taħt il-barnuża, tista' tevalwa l-għodod b'mod aktar kritiku. Pereżempju, Mewayz joffri OS tan-negozju komprensiv li jibda minn $ 19/mo b'loġika ta 'awtomazzjoni integrata fil-moduli tagħha. Li tkun taf il-kunċetti tad-DSL jgħinek tisfrutta dawk il-karatteristiċi bis-sħiħ aktar milli tobrox il-wiċċ.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime