CommunityNews

CommunityNews

Yatima: A programming language for the decentralized web

In one sense, the Truth Mines were just another indexscape. Hundreds of thousands of specialized selections of the library’s contents were accessible in similar ways–and Yatima had climbed the Evolutionary Tree, hopscotched the Periodic Table, walked the avenue-like Timelines for the histories of fleshers, gleisners, and citizens. Half a megatau before, ve’d swum through the Eukaryotic Cell; every protein, every nucleotide, even carbohydrate drifting through the cytoplasm had broadcast gestalt tags with references to everything the library had to say about the molecule in question.

In the Truth Mines, though, the tags weren’t just references; they included complete statements of the particular definitions, axioms, or theorems the objects represented. The Mines were self-contained: every mathematical result that fleshers and their descendants had ever proven was on display in its entirety. The library’s exegesis was helpful-but the truths themselves were all here.

Diaspora, Greg Egan

Yatima is a pure functional programming language implemented in Rust with the following features:

  • Content-Addressing powers reproducible builds, and peer-to-peer package management. A Yatima content-address represents an immutable program and all its dependencies. That means if someones shares an address with you, you can perfectly replicate their computation (and in principle even their computing environment!). Since the program is immutable, the way it runs the first time is the way it runs everytime.
  • First-class types. This lets you the programmer to tell the compiler what you intend to do in your program. Then, like a helpful robot assistant, the compiler will check to make sure that what you’re actually doingmatches those expressed intentions. Type-driven programming lets the compiler act as your “correctness exocortex”, i.e. a cognitive augmentation that helps you catch your mistakes.
  • Linear, affine and erased types give you fine-grained control over resource usage during execution. Substructural types allow you to get the memory safety benefits of using a high-level language, while also allowing you to work “close to the metal” when you want to.
  • Type-safe dependent metaprogramming lets Yatima have the flexibility and extensibility of a dynamically-typed language, without sacrificing the safety of static-typing.

Read in full here:

This thread was posted by one of our members via one of our news source trackers.

Most Liked

Korbin73

Korbin73

People should try and do some work instead. Too much languages is a bad thing, a diffusion of good will and energy in too many directions.

It could also make it easier to innovate. Languages are absorbing features from each other all the time. It’s harder to mutate (pun intended) an existing language to express and idea than creating a new language that keeps those ideas front and center since it was built with those ideas in mind.

As an example, I quit doing C# dev after 13 years because I got tired of waiting for them to add features like immutable types, discriminated unions, null safety, and first class functions. Swift/Kotlin are newer languages and have all of those features. A few years ago I watched a Q & A session online with the creator of C# and he was answering the question of C# turning in to F# and his answer was that C# is an OO language at it’s core, you can’t change the fundamental basis of the language.

dimitarvp

dimitarvp

But that’s exactly my point: adding a ton of new languages contributes to this same problem. One day people might be completely in love with them but the core team will likely not be interested in adding whatever the language was eventually found to be lacking.

I agree that some of the new languages are good innovations but IMO most are just noise and a product of somebody getting overly excited over a single concept.

AstonJ

AstonJ

Yatima looks interesting.

Added a #new-languages tag so we can keep track of new languages before deciding which ones to create portals for :nerd_face:

Where Next?

Popular General Dev topics Top

New
First poster: bot
The overengineered Solution to my Pigeon Problem. TL;DR: I built a wifi-equipped water gun to shoot the pigeons on my balcony, controlle...
New
First poster: cpgo
8 reasons to ditch Chrome and switch to Firefox. Chrome may dominate, but Firefox is a known name among browsers for a reason. Whether y...
New
First poster: joeb
GitHub - crablang/crab: A community fork of a language named after a plant fungus. All of the memory-safe features you love, now with 100...
New
CommunityNews
The Definitive PHP 7.2, 7.3, 7.4, 8.0, and 8.1 Benchmarks (2023). We tested the performance of 14 PHP platforms (WordPress, Drupal, Lara...
New
First poster: fullstackplus
Why Python is terrible… Nice language, but unsuitable for most professional purposes
New
First poster: AstonJ
GitHub - exelban/stats: macOS system monitor in your menu bar. macOS system monitor in your menu bar. Contribute to exelban/stats develo...
New
First poster: adamaiken89
Why Ruby on Rails still matters. An old tool endures in a Next.js world
New
First poster: alvinkatojr
Over the last decade, we’ve seen great advancements in distributed systems, but the way we program them has seen few fundamental improvem...
New
CommunityNews
Rendering Action Mailer emails with Phlex components and layouts: Clean, Composable, and Completely Ruby - Blog post by Camillo Visini
New

Other popular topics Top

DevotionGeo
I know that -t flag is used along with -i flag for getting an interactive shell. But I cannot digest what the man page for docker run com...
New
DevotionGeo
The V Programming Language Simple language for building maintainable programs V is already mentioned couple of times in the forum, but I...
New
foxtrottwist
A few weeks ago I started using Warp a terminal written in rust. Though in it’s current state of development there are a few caveats (tab...
New
New
PragmaticBookshelf
Programming Ruby is the most complete book on Ruby, covering both the language itself and the standard library as well as commonly used t...
New
New
sir.laksmana_wenk
I’m able to do the “artistic” part of game-development; character designing/modeling, music, environment modeling, etc. However, I don’t...
New
Fl4m3Ph03n1x
Background Lately I am in a quest to find a good quality TTS ai generation tool to run locally in order to create audio for some videos I...
New
PragmaticBookshelf
As digital systems increasingly run the world, mastery of the recurring patterns of software development risk is the key to fast and effe...
New
xiji2646-netizen
Woke up to this today: Claude Code’s complete source code exposed via npm source map. Not a snippet. All 512,000 lines. 1,900 TypeScript ...
New