Live data from Hacker News

Yatima: A programming language for the decentralized web

github.com

51–60 of 67 posts

Re: Yatima: A programming language for the decentralized web

#51

Earlier quoted context omitted.

Hi, Yatima co-author here, the intended use case is to write portable, safe and efficient programs using Yatima's advance type-system features (dependent types, substructural types, etc) and WebAssembly runtime. That said, we're still pre-alpha, so there's a lot of work to do before I'd recommend anyone other than PL nerds actually use the project for anything. As far as ideology goes, yes, definitely I have strong o…

How does your language solve that diversity problem? It looks like a high barrier to entry language like Haskell, Rust or Ocaml. If you wanted to bring in new people wouldn’t it be more effective to make a python for beginners and children youtube course? Why not build a GPT-3 to python code generator? Please never do that last one, actually, you’ll make everyone here unemployed. Sorry if I sound hostile. Really not…

I didn't claim that we have solved or will solve the diversity problem, but I did articulate in the README a few ways that I thought Yatima might contribute.

I also don't agree with your characterization of Haskell, Rust and OCaml as being "high-barrier-to-entry" compared to Python. Personally, I find languages like Python much harder to work with given how arbitrary and detail oriented they are. I think for a lot of people that kind of language is fine. Those people are already well served by existing resources.

The people I want to reach are people who have not yet been exposed to a presentation of mathematics or computer science as an elegant unified field, where proofs are programs and theorems are types. This is what I would have responded well to as a kid who detested Math and CS well into my late teens. Much of what is marketed as "accessible" or "educational" in programming languages comes across as patronizing, a lot of visual programming languages are guilty of this. That approach would also not have worked for me.

So what I'm doing instead is building a language that I would thought was awesome when I was 12. Will that work for everyone, who knows? Probably not. But it would have worked for me, and if there are other people out there in the same situation, then that's good enough motivation for me to keep building.

Re: Yatima: A programming language for the decentralized web

#52

Earlier quoted context omitted.

How does your language solve that diversity problem? It looks like a high barrier to entry language like Haskell, Rust or Ocaml. If you wanted to bring in new people wouldn’t it be more effective to make a python for beginners and children youtube course? Why not build a GPT-3 to python code generator? Please never do that last one, actually, you’ll make everyone here unemployed. Sorry if I sound hostile. Really not…

I didn't claim that we have solved or will solve the diversity problem, but I did articulate in the README a few ways that I thought Yatima might contribute. I also don't agree with your characterization of Haskell, Rust and OCaml as being "high-barrier-to-entry" compared to Python. Personally, I find languages like Python much harder to work with given how arbitrary and detail oriented they are. I think for a lot of…

> I also don't agree with your characterization of Haskell, Rust and OCaml as being "high-barrier-to-entry" compared to Python. Personally, I find languages like Python much harder to work with given how arbitrary and detail oriented they are.

This is an interesting POV to be sure, but it should be made more practical and testable, by writing introductory resources for the average user that are targeted to these languages. Right now, the closest comparison to your prospective design for Yatima might actually be ATS, and I have trouble seeing ATS as figuring in a "Programming 101" tutorial.

Re: Yatima: A programming language for the decentralized web

#53
post #43

Earlier quoted context omitted.

Your readme points out that math and computer science are fundamentally very similar, maybe the same - do you also have objections to the fact that math expertise follows a similar distribution to computer expertise? Is this math’s “fault” somehow? You seem to be assuming that the current state of affairs is based on some kind of human failure rather than a natural outcome, but I’m not sure that explanation generaliz…

I think the same problems manifest in math, but to a different degree and in a different way. We do have some expectation of universal mathematics literacy, or at least math is a required subject in most schools around the world. But I don't think that math education is generally very successful at teaching people math, as described in Lockhart's Lament: https://www.maa.org/sites/default/files/pdf/devlin/Lockharts...…

One aspect of bad math education is that most folks competent in math can choose a different field than teaching and earn far more, without also figuring out how to motivate children while constrained by bureaucratized pedagogic dogma of the moment. Management is only sometimes a mob-of-children equivalent :-).

Re: Yatima: A programming language for the decentralized web

#54

Earlier quoted context omitted.

Totally a fair point. Honestly I'm not sure the Yatima's actually ready for on-boarding language users, as distinct from language contributors, just yet. Like, if you want to hack on a Rust implementation of a functional language and can figure out a lot stuff from the source, we're just about ready for you. If you want to use the language to build software that's useful for some other purpose, I don't think we're qu…

> if you want to hack on a Rust implementation of a functional language and can figure out a lot stuff from the source, we're just about ready for you This sounds like an invitation and a challenge, I might dig around your repo and see what's what. Good luck with the project!

Come join our matrix channel! #yatima:matrix.org https://matrix.to/#/!bBgWgXJqeKuDuiUYWN:matrix.org?via=matri...

Re: Yatima: A programming language for the decentralized web

#55
post #44

The README makes a lot of bold claims for what, as far as I can tell, seems to be vaporware. Does this language have any kind of effect system yet, or can it only evaluate pure expressions?

"vaporware" is a pretty harsh accusation for a project that has:

- A performant lazy functional runtime with sharing implemented from scratch in Rust

- A dependent type system with substructural types

- Parsing, tooling, a standard library, ability to run on the web via wasm

- Content-addressing and serialization to IPLD so that packages can be shared over IPFS

That's what we claim to do in our README, and that's what we do.

It's true that Yatima doesn't have an effect system yet, nor is it production-ready, but it's a pre-alpha programming language project, what's the standard being applied here?

Re: Yatima: A programming language for the decentralized web

#57

From the readme, I can't exactly tell what this is for, why I should use it, or how I should use it. Instead the readme is an expression of the creator's ideology. Nothing wrong with expressing that, but without anything concrete to look at and help me understand this project, it just sounds like another ideologically motivated project looking for a use-case.

Hi, Yatima co-author here, the intended use case is to write portable, safe and efficient programs using Yatima's advance type-system features (dependent types, substructural types, etc) and WebAssembly runtime. That said, we're still pre-alpha, so there's a lot of work to do before I'd recommend anyone other than PL nerds actually use the project for anything. As far as ideology goes, yes, definitely I have strong o…

I find it hard to reconcile these goals with the language you created: Monads, applicatives etc:

That is a steep hill to climb for beginners. Any ideas how to guide them along?

And it is also not clear how programming languages or computing are tied to corporations and not to individuals. There's no contradiction here.

And you need corporations to build the device you are currently using to reply. We do our jobs on the shoulder of giants. Thousands of corporations in a world-wide link that provide the necessary resources and know-how to build computers. Not sure how that rhymes with "computing should belong to individual users".

Re: Yatima: A programming language for the decentralized web

#58

I'll be the one to tell it : it's a bit weird for the README of a programming language to have an esoteric quote, pages of prose, links to five research papers / theory books, a flame war on build system, a political manifesto and grand visions about the future of programming, but not a single line of, ahem, the programming language in question ? (I hope I'm not missing sarcasm.) Or is it to weed out the people who d…

You must do a Straussian reading of ALL REAMDEs.

Re: Yatima: A programming language for the decentralized web

#59
post #57

Earlier quoted context omitted.

Hi, Yatima co-author here, the intended use case is to write portable, safe and efficient programs using Yatima's advance type-system features (dependent types, substructural types, etc) and WebAssembly runtime. That said, we're still pre-alpha, so there's a lot of work to do before I'd recommend anyone other than PL nerds actually use the project for anything. As far as ideology goes, yes, definitely I have strong o…

I find it hard to reconcile these goals with the language you created: Monads, applicatives etc: That is a steep hill to climb for beginners. Any ideas how to guide them along? And it is also not clear how programming languages or computing are tied to corporations and not to individuals. There's no contradiction here. And you need corporations to build the device you are currently using to reply. We do our jobs on t…

> I find it hard to reconcile these goals with the language you created: Monads, applicatives etc

You know, I've never understood the the "Monad is hard" meme. Monad isn't hard. Functor is hard. Like, really hard, especially when you consider contravariance and covariance. Monad is like a tiny little teaspoon of hard on top of the swimming pool of Functor hard.

But does any of that complexity prevent you from calling `Option::map` in Rust or `Array.prototype.map` in JS? Or from seeing the pattern between them?

"I have an A and a function A -> B, so I can make a B."

"I have a List A and a function A -> B, so I can make an List B."

"I have an Option A and a function A -> B, so I can make an Option B."

"I have an F A and a function A -> B, so I can make an F B."

Is that too steep of a hill for people? I don't think so. It may not be intuitive, but neither is learning to read and write, and it turns out that virtually everyone can do that with enough practice.

Yatima is not an intuitive language, but it is very simple, whereas a language like Python is much more intuitive, but vastly more complicated. My take is that the former set of properties makes for a more learnable system than the latter. Maybe I'm wrong on that, who knows, but to me it seems like a thesis worth exploring.

> And you need corporations to build the device you are currently using to reply. We do our jobs on the shoulder of giants. Thousands of corporations in a world-wide link that provide the necessary resources and know-how to build computers. Not sure how that rhymes with "computing should belong to individual users".

I appreciate the intricate dance of capital behind making the devices we're communicating on. That is not what I'm talking about when I say "computing should belong to individuals rather than corporations." I simply mean that users should have control and agency of what they do on the computing instruments they buy, in the same way they have control and agency of what they do with the writing instruments, or musical instruments they buy.

Or in concrete terms, I have nothing against Apple selling me an iPhone, great piece of hardware. But I do think that once I buy the phone, it's mine and I should be able to run what I want on it, without the phone telling Apple what I'm doing. It's a question of mental autonomy and integrity; I'm extending my mind through the device, so if Apple controls the phone it's like they control a piece of my mind.

For a programming language this philosophy informs a lot of decisions, particularly regarding build system servers. Consider for example that in JS npm is owned by Microsoft, whereas in Rust crates.io is owned by the Rust Foundation. I think the latter is better than the former. But I think the way Yatima's package management works over the decentralized IPFS network is better than either.

Re: Yatima: A programming language for the decentralized web

#60

Earlier quoted context omitted.

How does your language solve that diversity problem? It looks like a high barrier to entry language like Haskell, Rust or Ocaml. If you wanted to bring in new people wouldn’t it be more effective to make a python for beginners and children youtube course? Why not build a GPT-3 to python code generator? Please never do that last one, actually, you’ll make everyone here unemployed. Sorry if I sound hostile. Really not…

I didn't claim that we have solved or will solve the diversity problem, but I did articulate in the README a few ways that I thought Yatima might contribute. I also don't agree with your characterization of Haskell, Rust and OCaml as being "high-barrier-to-entry" compared to Python. Personally, I find languages like Python much harder to work with given how arbitrary and detail oriented they are. I think for a lot of…

At last I truly see. Thanks.

Do you think the math emphasis of your language would make it an especially good introductory language for mathematicians?

Post reply on HN