this post was submitted on 17 Sep 2023
40 points (100.0% liked)
Programming
14710 readers
2 users here now
All things programming and coding related. Subcommunity of Technology.
This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I have dozens of projects in varying levels of completion and maybe like 2 finished projects. Here's my list, steal to your liking because I come up with ideas I want to see in the world, and clearly I'm not a great medium for that:
d(0, 255) = 1, and it still worked. Stochastic updates work, even in a distributed context, because it's a kind of "simulated annealing".And finally then there's my magnum opus, Espresso, my favorite project I keep coming back to time and time again and ~~bikeshedding~~ refining over many years. If anyone else takes it up I'd be ecstatic.
proto[...T] Super Sub(...args) { ... }, egproto class Animal { ... }andproto Animal Monkey { ... }class,enum,union,interface,struct, etc. Compare to [P0707];is an optional operator to explicitly disambiguate their ending.afteroperator,x() after y() == (var t = x(); y(); t)- surprisingly useful for conciseness.[...for(var x in 10) x] == list(range(10))proto class { +(rhs) { console.log("\{this} + \{rhs}"); } }delegate()method which define how to represent the variable on the stack. Untyped variables use an inferred type or an implicitany, which wraps a dynamic object. This lets you create objects likeint32while still using the prototype semantics.unsafecompilation distinction to avoid catastrophic vulnerabilities.try!semantics, exceptions are actually wrapped in a returnedResult[T, E]type:tryis an operator which unwraps the result and returns if it's an error. Thus you getvar value = try can_fail();. Using type object operator overloading, theResulttype doesn't need to be explicitly annotated becauseResult[T, E] == T | Result[T, E] == T | fail E.failkeyword instead ofthrow/raise.I could go on for hours with all of the stuff I've thought of for this language. If you want to know more, the README.md and ideas.md are usually the most authoritative, and specification.md is a very formal description of a subset of the stuff that is absolutely 100% decided (mostly syntax). I've written turing complete subsets of it before. First usable implementation to arrive by sometime in 2200 lmao. 🫠 I can also unpack the other projects if you want to know more.
Holy moley, you keep yourself busy. :D