This is a freaking awesome lecture.
Programming for All: A Feminist Case for Language Design
https://on.acm.org/t/programming-for-all-a-feminist-case-for-language-design/3398
This is a freaking awesome lecture.
Programming for All: A Feminist Case for Language Design
https://on.acm.org/t/programming-for-all-a-feminist-case-for-language-design/3398
ConcreteChars
#minacoding2025 #minacoding27 #imitate #Imagination #poetry #ruby #concrete poems #electronicliterature
For MinaCoding2025 Prompt 27: Imitate , ConcreteChars coded in Ruby is inspired by Nick Montfort’s Concrete Perl: https://nickm.com/poems/concrete_perl/ as well as the 256 bytes poemes. Instead of using Perl, the ruby code will be making concrete poems.
Poem Examples More in Blog: https://blog.illestpreacha.com/minacoding2025imitate
af
["as", "bb", "ba"]
["ay", "p", "c", "b", "aq"]
["ae", "p", "y", "ay", "ak", "ab", "az"]
["af", "x", "az", "m", "i"]
abalap
ae
q
["ab", "y", "af"]
["m", "aj", "av", "a", "b"]
["ac", "as", "ae", "v", "ad", "x", "d"]
["q", "am", "ac", "f", "ax"]
xbban
ac
#scifi #worldbuilding #minacoding #illestpreacha #conlangs #modelling #napogenmo #digitalmedia #codedpoems #creativecoding #languagedesign
New blog post just dropped! Programming Language Design in the Era of LLMs: A Return To Mediocrity? kirancodes.me/posts/log-la... #ProgrammingLanguages #LanguageDesign #DSLs
For the gophers out there... Just a reminder: a bunch of consts + iota isn't an enum. Slugs aren’t enums. Interfaces, structs, and switch statements aren’t enums either.
Enums are enums.
Scala went through the same BS for what felt like a gazillion years.Just add a proper enum to the language. Go really needs a proper sum type. Don’t wait until Go v3 like we did in Scala.
"Simplicity" here is creating extraordinary levels of complexity.
Kotlin and Go couldn't be approaching their error handling pains more differently.
Go: https://go.dev/blog/error-syntax
Kotlin: https://medium.com/@internetcreationist/exploring-rich-errors-in-kotlin-a-game-changer-from-kotlinconf-2025-ea11ae23b585
TL;DR: While Kotlin is getting rich errors, Go is getting... nothing. And please stop asking for it, the community clearly won't come to a consensus.
Like it or not, `if err != nil` is here to stay.
#GoLang #Kotlin #ErrorHandling #LanguageDesign #ProgrammingLanguages #DevThoughts
Finally managed to migrate `Result`'s variant naming:
- `Pass` instead of `Ok`
- `Fail` instead of `Err`
Writing that changed how I think about programming languages
https://bernsteinbear.com/blog/pl-writing/
#HackerNews #ProgrammingLanguages #Writing #InsightfulThoughts #LanguageDesign #HackerNews
If all languages have a hard time create integrating with c++ but an easy time integrating with c, we could consider it a design failure of the c++ language itself
#AskFedi: Are there any fellow #LanguageDesign enthusiasts around here?
I would love to swap notes with someone -- been toying around with making programming languages as a hobby, and just got to making my first proper self-hoisted compiler recently. (:
My hobbyist continuations-based programming language is now self-hoisting. Wohoo! 🎉
Here, gorge your eyes on this cryptic list reversion routine deep in the compiler:
#languagedesign
#ContinuationPassingStyle
#FunctionalProgramming
Only a few tasks left before dropping the work-in-progress label of the "Principles of Language Design" talk. :awesome:
https://soc.me/talks/language-design
(requires browser with JXL support)
Rust calling their unchecked blocks "unsafe" is an ongoing cost that will never stop as long the language exists.
Interesting issue I hit recently: If you combine unified condition expressions with unions, you could get code like this:
union X of String
let foo: X = "bar"
if foo
... is String { ???.size }
How to refer to the "casted" value of String inside the curly braces here?
With "classic" enums it was easy, because they had an extra syntactic layer of wrapping that my unions lack.
Is it just me, or are all the language options for building shaders some milquetoast reinterprations of 80s' C/C++?
A module system that doesn't account for generics is also called "a draft of a module system".
Despite ample evidence to the contrary, #Ilive (hmm, if I were also #evil, that would be a pallindrome as well as a visual collision)
Fascinating (if I do say so) #lispgames #gamejam #gamedev #retrospective on #itch_io
https://lispy-gopher-show.itch.io/lispmoo2/devlog/834615/princess-revisited
I am enormously happy with the
{ verb [ dobj [ prep iobj ] ] } x
language dynamic, and how it shares your #lisp #repl, and their concerns are just... Different so they don't collide.
I guess I get my #languageDesign friends a little better now.
Thoughts?
I've been thinking about permacomputing and digital conservation lately.
Every language compiler or interpreter should contain a full guide + specification to its language. How else are people going to use it if they find it on some disk in a couple decades time...
What an innocent piece of #php .
`if ($record['hasCustomAttribute'] ?? 0 != 1) {`
It only eats the customers data when they look at it. Its only the third time I fell for this languages operator precedence rules, since the day I got a printed copy and put that next to my monitor. #languagedesign
At least our very-thorough(TM) QA process also failed to notice that the relevant part of the UI became blank and deployed it to production.
For the most part #Swift doesn't seem to have too many half-baked ideas in the language, but property wrappers definitely fall into the category of poorly thought out features. In particular, making wrappers composable is some thing that the language designers did not think through. This post by Noah Gilmore describes one technique. But it is fiddly.
https://noahgilmore.com/blog/nesting-property-wrappers/ #programming #languagedesign
#languagedesign #compiler quandary.
My favourite language (to be named) aims to be friendly and correct.
So, it allows a comment containing text that looks like literals. And it allows literal text containing all the markers that would normally mean a comment.
And it allows comments within comments, to allow a block of code to be commented out easily, even when it contains all the above.
Q: Have I gone too far?
I've spent more time getting this correct in pass 1 than anything else!