Лил' Фун Лангс' Гутс | Mewayz Blog Skip to main content
Hacker News

Лил' Фун Лангс' Гутс

Коментари

1 min read Via taylor.town

Mewayz Team

Editorial Team

Hacker News
<х2>Зашто вас гледање испод хаубе малих програмских језика чини бољим градитељем <п>Сваки део софтвера који користите — од ЦРМ-а који прати ваше потенцијалне клијенте до механизма за аутоматизацију који шаље фактуре у поноћ — направљен је помоћу програмског језика. Али, да ли сте се икада запитали шта чини програмски језик <ем>откуцаним? Не масивни екосистеми попут Питхон-а или ЈаваСцрипт-а, већ они мали, неуобичајени, дивно чудни које програмери граде током викенда да би решили један проблем или само да би научили. Ови „мали забавни језици“ — језици играчака, језици специфични за домен (ДСЛ) и образовни преводиоци — су места где живе неке од најелегантнијих идеја у рачунарству. Разумевање њихове храбрости вас не чини само бољим програмером; суштински мења начин на који размишљате о изради алата, аутоматизацији радних токова и дизајнирању система који заиста раде за људе. <х2>Шта су заправо „Лил' Фун Лангс“? <п>Свет програмирања је пун језика који никада нису били намењени за напајање производних сервера или обраду милиона трансакција. Језици као што су Лок (из <ем>Црафтинг Интерпретерс Роберта Нистрома), Монкеи (из Тхорстена Балл-а <ем>Вритинг ан Интерпретер ин Го), или чак језици шале као што су Браинфуцк и Цхеф постоје да би подучавали, забављали и померали границе онога што „језик“ чак и значи. Ови мали језици уклањају сложеност ланаца алата у стварном свету и откривају сирову механику како код постаје акција. <п>Али „лил' фун лангс“ нису ограничени на образовне вежбе. Језици специфични за домен покрећу неке од најефикаснијих пословних алата на тржишту. Сваки пут када напишете формулу у табели, дефинишете правило филтера у свом клијенту е-поште или конфигуришете ток рада аутоматизације на платформи као што је <стронг>Меваиз, ви ступате у интеракцију са малим, наменски направљеним језиком. 207 модула унутар Меваиза — који обухватају ЦРМ, фактурисање, ХР, управљање возним парком и још много тога — ослањају се на интерне механизме правила и парсере израза који су, у својој сржи, мали језици дизајнирани да корисницима дају моћ без потребе за дипломом из рачунарства. <п>Разумевање анатомије ових језика открива зашто су неки алати интуитивни, док се други осећају као да се рвају са приручником написаним у другој димензији. <х2>Лекер: Разбијање речи у атоме <п>Сваки језик, без обзира колико мали, почиње истим основним кораком: лексичком анализом, или „лексирањем“. Лексер узима необрађени низ знакова — нешто попут <цоде>укупно = цена * количина + порез — и разбија га на смислене делове који се називају токени. Лексер још не мари за значење. Он само идентификује да је <цоде>тотал идентификатор, <цоде>= је оператор додељивања, <цоде>прице је други идентификатор, <цоде>* је множење и тако даље. <п>Израда лексера за мали језик је изненађујуће задовољавајућа. У мање од 100 линија кода можете научити програм да препознаје бројеве, низове, кључне речи и операторе. Поента је у једноставности — она вас тера да размислите о томе шта је апсолутно минималном скупу „речи“ потребно вашем језику. Ово исто размишљање важи и када се дизајнирају алати окренути кориснику. Када Меваизов механизам за аутоматизацију дозволи власнику малог предузећа да постави правило попут „када фактура касни 7 дана, пошаљи подсетник е-поштом“, систем тихо преноси то правило у структуриране токене на које може да делује. Најбољи интерфејси се осећају без напора управо зато што је неко дубоко размислио о томе како изгледају најмање смислене јединице намере корисника. <х2>Разбор: претварање равних токена у жива стабла <п>Када имате токене, потребна вам је структура. Парсинг трансформише равну секвенцу токена у апстрактно синтаксно стабло (АСТ) — хијерархијску репрезентацију која обухвата односе између различитих делова израза. Израз <цоде>3 + 4 * 5 није само низ од пет токена; то је дрво где се множење чвршће везује од сабирања, стварајући 23 уместо 35. <п>Овде ствари постају заиста забавне. Алгоритми за рашчлањивање као што су рекурзивно спуштање или Пратт рашчлањивање су елегантни делови инжењеринга који се уклапају у једну датотеку, али могу да обрађују изненађујуће сложене граматике. Парсери рекурзивног спуштања, посебно, читају се скоро као спецификација самог језика — свака функција одговара граматичком правилу, чинећи код самодокументирајућим на начин који је редак у развоју софтвера.<п>Лекције из рашчлањивања сежу далеко од дизајна језика. Сваки систем који обрађује структурирани унос — образац за резервацију са распонима датума, конфигурацију платног списка са условним правилима, ЦРМ цевовод са логиком гранања — решава проблем рашчлањивања. Више од 138.000 корисника на Меваизовој платформи генерише сложене, структуриране податке сваког дана. Разумевање начина на који парсери претварају двосмислен унос у недвосмислену структуру је разлика између изградње система који елегантно обрађује ивице случајева и система који се прекида у тренутку када неко унесе датум у неочекиваном формату. <х2>Тумач: Где код оживљава <п>Тумач је место где се магија дешава. Шета АСТ, чвор по чвор, и <ем>извршава га. Бројни чвор враћа своју вредност. Чвор бинарне операције процењује своје леве и десне потомке и комбинује их. Позив функције тражи функцију у окружењу, повезује аргументе и процењује тело. На језику играчака, цео преводилац може имати 200-300 редова — довољно мали да држите у глави, али довољно моћан да покрене праве програме. <п>Постоје два широка приступа извршењу: тумачи који ходају по дрвећу и виртуелне машине за бајткод. Шетачи дрвећа су једноставнији, али спорији; они директно прелазе АСТ. Битецоде ВМ компајлирају АСТ у низ једноставних инструкција (попут малог асемблерског језика) и извршавају их уместо тога, тргујући сложеношћу имплементације за драматично боље перформансе. ЦПитхон, стандардна Питхон имплементација, користи бајткод ВМ. Луа, један од најефикаснијих језика за уградњу, био је пионир дизајна ВМ заснованог на регистрима који је утицао на машине за игре широм света. <блоцккуоте> <п><стронг>Кључни увид: Најмоћнији пословни алати нису они са највише функција – они имају најбољи интерни „језик“ за изражавање онога што је корисницима заправо потребно. Сваки механизам за правила, систем формула и креатор аутоматизације је мали прерушени тумач. Квалитет тог тумача одређује да ли се алатка повећава са 10 корисника на 100.000. <х2>Окружење и обим: Скривена архитектура државе <п>Један од најзахтевнијих концепата у имплементацији језика — и један од најдиректнијих применљивих на пословни софтвер — јесте како језици управљају стањем кроз окружења и опсег. Када напишете додељивање променљиве унутар функције, та променљива не би требало да исцури и препише нешто у глобалном опсегу. Ово звучи очигледно, али за његову исправну имплементацију потребна је структура података која се зове <стронг>ланац окружења: повезана листа хеш мапа где сваки ниво представља опсег, а претраживања променљивих иду уз ланац док не пронађу подударање. <п>Овај образац се појављује свуда у добро дизајнираном софтверу. Корисничке дозволе на пословној платформи функционишу на исти начин — приступ члана тима се одређује тако што се прво провере њихове појединачне дозволе, затим дозволе њихове улоге, а затим подразумеване вредности организације. Меваизов систем модула, који обухвата све, од страница са линком у биографији до потпуне обраде платног списка, користи слојевиту конфигурацију која одражава овај тачан принцип. Власник предузећа поставља подразумеване вредности за целу организацију, менаџери одељења могу да замене одређена подешавања, а појединачни корисници могу да прилагоде сопствени радни простор — све без сукоба. <п>Погрешно постављање опсега у програмском језику узрокује грешке. Погрешан обим на пословној платформи узрокује цурење података, ескалацију дозвола и врсту оперативног хаоса који кошта прави новац. Лекције су исте на сваком нивоу апстракције. <х2>Чему вас заправо учи изградња малог језика <п>Ако никада нисте направили мали програмски језик, ево шта вам искуство конкретно учи – и зашто је важно да ли сте програмер, технички оснивач или неко ко само жели да разуме алате које свакодневно користе: <ул> <ли><стронг>Прецизност мисли: Не можете бити нејасни када дефинишете граматику. Свака двосмисленост у вашој језичкој спецификацији постаје грешка у вашем парсеру. Ова дисциплина се директно преноси на писање бољих спецификација, јаснију документацију и прецизније захтеве функција. <ли><стронг>Емпатија према корисницима: Када дизајнирате језик, дизајнирате интерфејс за људску мисао. Научите да питате: „Шта корисник <ем>мисли под овим?“ — питање које треба да покреће сваку одлуку о производу.<ли><стронг>Интуиција перформанси: Научите зашто су неке операције брзе, а друге споре, не из читања референтних вредности, већ из увида колико тачно корака преводилац предузима. Ово вас чини бољим у дизајнирању система који се прилагођавају. <ли><стронг>Мајсторство у отклањању грешака: Када ваш језик произведе погрешан излаз, немате где да се сакријете. Нема оквира за кривицу, нема сукоба верзија библиотеке. То је ваша логика, ваше структуре података, ваш алгоритам. Ово гради врсту вештине дубоког отклањања грешака која одваја добре инжењере од великих. <ли><стронг>Захвалност за апстракцију: Разумете зашто су језици вишег нивоа направили изборе које су урадили — зашто ЈаваСцрипт има затварања, зашто је Питхон одабрао значајан размак, зашто постоји Руст-ова провера задуживања. Ово нису произвољне одлуке; они су решења за стварне проблеме на које ћете наићи у сопственој примени. <х2>Од језика играчака до аутоматизације у стварном свету <п>Јаз између језика играчака и машине за аутоматизацију производње је мањи него што већина људи мисли. Схопифи-јев Ликуид језик шаблона почео је као једноставан, безбедан систем шаблона и сада покреће милионе излога. Синтакса тока посла ГитХуб Ацтионс је језик специфичан за домен изграђен на ИАМЛ-у. Стрипеов Сигма језик упита омогућава финансијским тимовима да испитују податке о плаћању без писања СКЛ-а. Сваки од њих је почео тако што је неко питао: „Који је најмањи, најједноставнији језик који решава овај специфичан проблем?“ <п>Ово је иста филозофија која стоји иза платформи које имају за циљ да консолидују пословне операције у један екосистем. Када Меваиз служи слободњаку коме је потребна страница са линком у биографији <ем>и компанија средње величине која води платни списак за 50 запослених у својих 207 модула, основни изазов је исти са којим се суочава сваки дизајнер језика: како да креирате систем који је довољно једноставан за почетнике, али довољно моћан за сложене случајеве употребе? Одговор, као што ће вам рећи сваки језички имплементатор, лежи у исправним примитивима — малим, састављајућим блоковима које корисници могу да комбинују на начине које дизајнер никада није очекивао. <п>Следећи пут када конфигуришете правило аутоматизације, направите прилагођену контролну таблу или подесите условни ток рада у било ком пословном алату, запамтите: пишете програм на мало забавном језику. Неко је дизајнирао унутрашњост тог језика — његов лексер, парсер и тумач — да учини вашу намеру извршном. А квалитет њиховог рада је невидљива сила која одређује да ли се ваше искуство осећа као магија или беда. Разумевање тих храбрости, чак и на површинском нивоу, даје вам супермоћ: могућност да видите машину испод интерфејса, да предвидите где ће се покварити и да је гурнете даље него што су њени дизајнери икада замислили. <див стиле="бацкгроунд:#ф0ф9фф;бордер-лефт:4пк солид #3б82ф6;паддинг:20пк;маргин:24пк 0;бордер-радиус:0 8пк 8пк 0"> <х3 стиле="маргин:0 0 8пк;цолор:#1е3а5ф;фонт-сизе:18пк">Изградите свој пословни ОС данас <п стиле="маргин:0 0 12пк;цолор:#475569">Од слободњака до агенција, Меваиз покреће 138.000+ предузећа са 207 интегрисаних модула. Почните бесплатно, надоградите када растете. <а хреф="хттпс://апп.меваиз.цом/регистер" стиле="дисплаи:инлине-блоцк;бацкгроунд:#3б82ф6;цолор:#ффф;паддинг:10пк 24пк;бордер-радиус:6пк;тект-децоратион:ноне;фонт-веигхт:600">Направи бесплатан налог → <х2>Честа питања <х3>Шта су "лил' фун лангс" и зашто би ме било брига? <п>Лил' фун лангс су мали, експериментални програмски језици направљени да истражују специфичне идеје или подучавају основне концепте. Они се крећу од тумача играчака написаних током викенда до језика специфичних за домен (ДСЛ) дизајнираних за уске задатке. Разумевање начина на који функционишу даје вам дубљи увид у то како функционише сав софтвер — укључујући пословне алате на које се свакодневно ослањате. То знање вас чини оштријим програмером и информисанијим доносиоцем одлука при избору или изградњи система за аутоматизацију. <х3>Како учење о језичким унутрашњим елементима помаже у аутоматизацији пословања? <п>Када разумете концепте као што су рашчлањивање, евалуација и тумачи, почињете да видите аутоматизацију другачије. Препознајете обрасце у креаторима тока посла, шаблонима и системима правила. Платформе као што је Меваиз користе исте принципе у својим 207 модулима како би вам омогућиле аутоматизацију фактурисања, ЦРМ токове посла и још много тога — све без писања кода. Познавање основа помаже вам да унапредите ове алатке и брже решите проблеме.<х3>Да ли ми је потребна диплома из рачунарства да бих направио мали језик? <п>Никако. Многи програмери праве свој први тумач за један викенд користећи туторијале и водиче отвореног кода. Језици као што су Питхон и ЈаваСцрипт чине једноставним писање основног лексера, парсера и евалуатора. Циљ није стварање следећег продукцијског језика – већ учење кроз рад. Чак и једноставан језик калкулатора вас учи како се изрази рашчлањују и извршавају, вештине које се директно преносе на развој у стварном свету. <х3>Да ли ми разумевање ДСЛ-ова може помоћи да изаберем боље пословне алате? <п>Апсолутно. Многе пословне платформе уграђују језике специфичне за домен за формуле, филтере и правила тока посла. Када разумете како ДСЛ-ови функционишу испод хаубе, можете критичније проценити алате. На пример, Меваиз нуди свеобухватан пословни ОС почевши од 19 УСД месечно са уграђеном логиком аутоматизације у својим модулима. Познавање ДСЛ концепата помаже вам да у потпуности искористите те функције уместо да загребете по површини. <сцрипт типе="апплицатион/лд+јсон">{"@цонтект":"хттпс:\/\/сцхема.орг","@типе":"ФАКПаге","маинЕнтити":[{"@типе":"Куестион","наме":"Изградите свој пословни ОС данас","аццептедАнсвер":{"@типе":"Менаваи":"Менаваис агерс","Међуспремник фрееланце"," Више од 138.000 предузећа са 207 интегрисаних модула Почните бесплатно, надоградите када растете."}},{"@типе":"Куестион","наме":"Шта су \"лил' фун лангс\" и зашто би ме занимало?","аццептедАнсвер":{"@типе":"Ансвер","Идее специфиц лангуагес аре фунгицал":"Л. подучавају основне концепте од играчких тумача до језика специфичних за домене (ДСЛ) који су дизајнирани за уске задатке. аутоматизација?","аццептедАнсвер":{"@типе":"Ансвер","тект":"Када разумете концепте као што су рашчлањивање, евалуација и интерпретатори, почињете да видите аутоматизацију на другачији начин, препознајете обрасце у креаторима тока посла, системима шаблона и системима правила као што је Меваиз да бисте омогућили да вам 207 аутоматизују ток и модуле. \у2014 Све то без писања кода помаже вам и да их покренете"}},{"@типе":"Куестион","наме":"Да ли ми је потребна диплома из рачунарства да бих направио мали језик?","аццептедАнсвер":{"@типе":"Одговор","тект":"Уопште не воле да користе водиче за први језик за програмере Питхон и ЈаваСцрипт олакшавају писање основног лексора, рашчлањивања и евалуатора. Циљ није да се направи следећи продукцијски језик – већ да се научите како се изрази рашчлањују и извршавају, а вештине "}},{"@типе"""Сл. алати?","аццептедАнсвер":{"@типе":"Ансвер","тект":"Апсолутно многе пословне платформе уграђују језике специфичне за домене за формуле, филтере и правила тока рада, можете критичније да процените алате у оквиру система за покретање система $1. модули Познавање концепта ДСЛ-а помаже вам да у потпуности искористите те функције, а не с"}}]}

Try Mewayz Free

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

Start managing your business smarter today

Join 6,203+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 6,203+ 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