(article (h1 "beginning work on LATL") (p "a little introduction to a project i started thinking about in early 2020, as i was learning how to do web development and wanted to try my hand at combining some hobbies.") (section (hgroup (h2 "what even is this?") (p (em "of linguistics and hubris.")) (hr)) (p "so, when i was a wee little child, i discovered language. i was one of those kids who picked up reading real quick (like before i could form memories) and just have always been fascinated by what those words and symbols do. like, most wee little children discover language, but some wee little children get given the lord of the rings when they're ten or something and get into the narrative and the characters, sure. but those appendices.... there's .. a language here? called quenya? and this tolkien guy just made this up? " (small "this is not in fact how i talked as a child, just go with me.")) (p "so, i did the precocious kid thing and said to myself \"if this dead british weirdo (who's like really into the concept of royalty) can make a whole new language, then surely i can to.\"") (p "i did not, in fact, make a language. i made a relex of the language i already spoke (my own peculiar idiolect of u.s. english,) but we all gotta start somewhere." ) (p "for a long time the internet to me was mostly " (a ((href "https://listserv.brown.edu/archives/conlang.html")) "the brown university conlang listserv.") " here i learned about different phonology, what the heck morphosyntactic alignment is, diachronicity and how different languages can be related. i got exposed to awkwords and sca2 (tools for generating words and modeling changes to those words.) but i never interacted with ppl much. i was a kid and the ppl in there really knew their stuff, and i never much felt comfy with the idea of being just " (em "in public") " on the internet like that.") (p "anyway i got better at making languages and learning about how language works, and it's just been a (at times more consistent, at times less) hobby of mine for most of my life.") (p "flash forward to a few years ago, i'm working on a language that has turned into the passion project that i've spend the majority of my conlanging on and i'm getting frustrated with my tools. i want to do more complex, phonological-feature-aware, sound change rules; i want a tighter feedback loop; i want to see how a derivational pattern at one stage in a parent form of a language branches out or collapses into different derivational patterns in a child language.") (p "all was not well in my conlanging.") (p "i would need to " (strong "do some programming.")) (p "the thing is, i had just learned javascript. (it was a tech bootcamp. someday i'll talk about my ~feelings~ about ~that~, but not here, not now.) i had built a few little toy web apps, and i was not ready to execute on a vision for a multi-purpose conlanging tool that was beginning to take shape in my head.") (p "i tried anyway.") (p "and i made " (a ((href "settled/1")) "a bad first draft of a sound change tool.")) (p "there's an ebnf grammar in that project somewhere! the hubris i had then, to think i could make a little javascript-backed language tool with all of the bells and whistles i needed! with the knowledge that i had then! (or more accurately, didn't have)") (br) (p "but now...")) (section (hgroup (h2 "reviving this project") (p (em "whatcha gonna do sorrel?")) (hr)) (p "i'm still not ready.") (p "but at least, today i'm forgoing bells and whistles for execution models. core abstractions. experience using " (a ((href "https://racket-lang.org")) "a (programming) language-oriented programming language") " maybe. there's a lot to think about.") (p "so, i'm going to try reviving this project. or, more accurately, reimagining this project. from the little sound change tool that was merely an unusably buggy iteration on tools that other conlangers had executed better, to a more robust environment for conlanging. one which gives language nerds the power to solve all of their language nerding problems in one runtime, with an extensible and reflective interface. and which is written in such a way, with the appropriate abstractions, that lanuage nerdy hackers can hack their own tools on top of it.") (p "and i'm going to be doing " (a ((href "https://www.recurse.com/")) "a hecking hacking retreat") " about it. i'll spend some full-time programming days making a goofy little thing for goofy little language nerds surrounded by goofy programming nerds doing whatever rad things they happen to be getting up to when i happen to be there.") (p "like many of the communities i am a part of, i am a quiet part of the conlanging community. so, we'll see how this goes. maybe it is only ever something of interest to me and the conlangers i interact with in meatspace. maybe it only teaches me some things about designing and building a tool of the type that i'm designing and building. hoooopefully it is helpful in a way to other conlangers such that it evolves beyond what i could do on my own (cause i ain't no whiz kid 10x programmer.)") (p "but that's all me getting ahead of myself (as is often my wont.) first! to pack for the trip!")) (section (hgroup (h2 "packing for the trip") (p (em "a biggg heap of things to expand")) (hr)) (p "i'm just gonna fly right through these. there's going to be a lot to read up on, to explore, to think and talk through, before it gets time to prototyping and to building a workable tool. so, here's the very start of the thinking-in-public. each of these little thoughts is going to get at least it's own writeup (if not several) and i'll update with additional sections and links to the writeups as i go.") (section (h3 "notes on the goals") (p "it's good to have goals! to define what it even is yr tring to do. so here's my attempt. my goal is to create a foss+ working runtime that *can* serve as a singular tool for conlangers with some basic programming capacity. it should be linguistically *theory neutral* to the extant that such a thing is possible. it should allow for the definition of all relevant structures of a language *in code* and support the construction of grammars, dictionaries, text documents and (stretch goal) non-programmer friendly tools *from code*. it should support phonological, lexical, syntactic, morphological, semantic, etc transformations across different 'epochs' be they diachronic or synchronic. these transformations should work on transformations, ie morphological transformations should themselves be transformed by phonological transformations. users of the tool should be able to edit their work and see the consequences of their changes quickly. hopefully, this can all happen on the web, i guess, cause ppl like using their browser as the everything app. ") (section (h3 "notes on existing tools") (p "i'm going to talk a bunch about existing tools made by conlangers or made for professional linguists and used by conlangers or just yr regular old spreedsheets and such. i'm going to be doing some research about how conlangers do their conlanging, lest this truly be a just-for-me type project.")) (section (h3 "notes on primitives") (p "i think some interesting things start to bubble out of some of those goals up there. like the idea of supporting a bunch of different kinds of transformations that should themselves be transformable. the primitives we're working with have to work below the level of \"lexeme\" or \"phoneme\" to have something abstract that can apply to both. i'm not going to get into specifics even a little bit at this point-you'll have to stay tuned for more."))) (section (h3 "notes on execution model") (p "this is going to be some crunchy computer language stuff. i'm going to make some arguments for some things that (it is my belief) fall out of these goals. things like dynamic typing. things like reflectivity (this is sooo important it gets its own section.) things like lazy evaluation (because languages are big and sometimes you only want to look at a subset of a language.) means of combination: propositions.") (section (h3 "notes on reflectivity and interaction")) (section (h3 "notes on portability")) (section (h3 "notes on the substratum (racket?)"))) (section (hgroup (h2 "about the name") (p (em "it's pronouced ˈlæ.ɾɫ̩")) (hr)) (p "i don't know dude, naming things is hard. it's a working name, it works good as an extension. " (code "my-conlang.latl") "anyone?") (p "i also just like syllabic laterals? they sound neat to me. the official initialism is _l_inguistic _a_nalytic _t_ransformation _l_anguage, but it also double entendres to _l_ower _a_nterior _t_emporal _l_obe, so that's just kind of fun.") (p "maybe it'll have a different name some day, idk"))))