Most active commenters
  • perching_aix(6)
  • ksec(5)
  • lifthrasiir(4)
  • worthless-trash(4)
  • yjftsjthsd-h(4)
  • steveklabnik(3)

←back to thread

Four Years of Jai (2024)

(smarimccarthy.is)
166 points xixixao | 61 comments | | HN request time: 0.898s | source | bottom
Show context
sph ◴[] No.43726312[source]
Surprising deep and level headed analysis. Jai intrigues me a lot, but my cantankerous opinion is that I will not waste my energy learning a closed source language; this ain’t the 90s any more.

I am perfectly fine for it to remain a closed alpha while Jonathan irons out the design and enacts his vision, but I hope its source gets released or forked as free software eventually.

What I am curious about, which is how I evaluate any systems programming language, is how easy it is to write a kernel with Jai. Do I have access to an asm keyword, or can I easily link assembly files? Do I have access to the linker phase to customize the layout of the ELF file? Does it need a runtime to work? Can I disable the standard library?

replies(4): >>43726339 #>>43726530 #>>43726853 #>>43730682 #
1. mjburgess ◴[] No.43726339[source]
Iirc, pretty sure jblow has said he's open sourcing it. I think the rough timeline is: release game within the year, then the language (closed-source), then open source it.

Tbh, I think a lot of open source projects should consider following a similar strategy --- as soon as something's open sourced, you're now dealing with a lot of community management work which is onerous.

replies(3): >>43726361 #>>43726379 #>>43749235 #
2. xigoi ◴[] No.43726361[source]
> as soon as something's open sourced, you're now dealing with a lot of community management work which is onerous.

This is a common misconception. You can release the source code of your software without accepting contributions.

replies(5): >>43726406 #>>43726410 #>>43726436 #>>43726493 #>>43726632 #
3. sph ◴[] No.43726379[source]
That’s what I meant by forked. If Jonathan wants to keep his branch closed source, that’s fine, as long as he cuts a release, gives it a GNU license and calls it OpenJai or something. He doesn’t have to deal with the community, somebody will do that for him.
4. mjburgess ◴[] No.43726406[source]
I don't think the issue is just contributions. It's the visibility.

When you're a somewhat famous programmer releasing a long anticipated project, there's going to be a lot of eyes on that project. That's just going to come with hassle.

replies(2): >>43726743 #>>43726843 #
5. 0x1ceb00da ◴[] No.43726410[source]
There is a lot of experimentation going on as well. Few months ago 2 new casting syntaxes were added for users to evaluate. The plan is to keep only one and remove the others before release.
6. perching_aix ◴[] No.43726436[source]
It's not a "misconception". Open source implying open contributions is a very common stance, if not even the mainstream stance. Source availability is for better or for worse just one aspect of open source.
replies(3): >>43726604 #>>43726625 #>>43726653 #
7. chii ◴[] No.43726493[source]
> without accepting contributions.

it's not even contributions, but that other people might start asking for features, discuss direction independently (which is fine, but jblow has been on the record saying that he doesn't want even the distraction of such).

The current idea of doing jai closed sourced is to control the type of people who would be able to alpha test it - people who would be capable of overlooking the jank, but would have feedback for fundamental issues that aren't related to polish. They would also be capable of accepting alpha level completeness of the librries, and be capable of dissecting a compiler bug from their own bug or misuse of a feature etc.

You can't get any of these level of control if the source is opened.

replies(1): >>43726534 #
8. lifthrasiir ◴[] No.43726534{3}[source]
You can simply ignore them. This worked for many smaller programming languages so far, and there exist enough open source softwares that are still governed entirely by a small group of developers. The closedness of Jai simply means that Blow doesn't understand this aspect of open source.
replies(5): >>43726583 #>>43727170 #>>43729370 #>>43731354 #>>43734631 #
9. worthless-trash ◴[] No.43726583{4}[source]
I believe sqlite does this.
replies(2): >>43729199 #>>43730877 #
10. echoangle ◴[] No.43726604{3}[source]
It is a misconception. Open source doesn’t mean the maintainer needs to interact with you. It just means you can access the code and do your own fork with whatever features you like.
11. xigoi ◴[] No.43726625{3}[source]
Would you say that SQLite is not open source?
replies(1): >>43729867 #
12. mort96 ◴[] No.43726632[source]
IMO the main thing they're risking by open sourcing it is adoption. Keeping it closed source is a pretty clear sign to the rest of the world that the language is not ready for widespread adoption. As soon as you open source it, even if you mark it as alpha, you'll end up with people using the language, and breaking changes will at that point break people's code.
replies(1): >>43727302 #
13. worthless-trash ◴[] No.43726653{3}[source]
Open Source definition ( https://opensource.org/osd ) says nothing about community involvement or accepting contributions. It may be common, but it is not necessary, required or even hinted at in the license.

Open source is not a philosophy, it is a license.

replies(1): >>43730294 #
14. diggan ◴[] No.43726743{3}[source]
> That's just going to come with hassle.

Well, it is the public internet, people are free to discuss whatever they come across. Just like you're free to ignore all of them, and release your software Bellard-style (just dump the release at your website, see https://bellard.org/) without any bug tracker or place for people to send patches to.

replies(1): >>43729746 #
15. tialaramex ◴[] No.43726843{3}[source]
Having a lot of eyes on it is only a problem if you either have a self-esteem problem and so the inevitable criticism will blow you up or, you've got an ego problem and so the inevitable criticism will hurt your poor fragile ego. I think we can be sure which of these will be a problem for Jonathan "Why didn't people pay $$$ for a remaster of my old game which no longer stands out as interesting?" Blow.
replies(2): >>43730316 #>>43730760 #
16. ksec ◴[] No.43727170{4}[source]
>You can simply ignore them.

You say this now but between 2013 - around 2023, The definition of Open source is that if you dont engage with the community and dont accept PRs it is not open source. And people will start bad mouth the project around the internet.

Working on a project is hard enough as it is.

replies(4): >>43727460 #>>43729162 #>>43729787 #>>43730116 #
17. diggan ◴[] No.43727302{3}[source]
> language is not ready for widespread adoption.

Keeping things closed source is one way of indicating that. Another is to use a license that contains "THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED [...]" and then let people make their own choices. Just because something is open source doesn't mean it's ready for widespread adoption.

replies(2): >>43731744 #>>43753082 #
18. lifthrasiir ◴[] No.43727460{5}[source]
Open source softwares with closed development model have existed for a very long time so that should have been considered no matter it was considered as open source or not. (And I think it was around 2000s, not 2010s, when such misconception was more widespread.)
replies(1): >>43729385 #
19. yjftsjthsd-h ◴[] No.43729162{5}[source]
Linux doesn't take PRs on github, and sqlite doesn't take patches. Open Source isn't a community model, only a license model.
replies(1): >>43729401 #
20. yjftsjthsd-h ◴[] No.43729199{5}[source]
Famously, yes: https://sqlite.org/copyright.html (see "Open-Source, not Open-Contribution")
replies(1): >>43730393 #
21. furyofantares ◴[] No.43729370{4}[source]
Maybe there's aspirations to not be a "smaller programming language" and he'd rather not cause confusion and burn interested parties by having it available.

Releasing it when you're not ready to collect any upside from that decision ("simply ignore them") but will incur all the downside from a confused and muddled understanding of what the project is at any given time sounds like a really bad idea.

replies(1): >>43733281 #
22. ksec ◴[] No.43729385{6}[source]
I dont deny what you said. I am merely pointing out this isn't a popular modem or opinion between that time line.
23. ksec ◴[] No.43729401{6}[source]
>Open Source isn't a community model, only a license model.

Again, not between 2015 - ~2023. And after what happened I dont blame people who dont want to do it.

replies(1): >>43729644 #
24. yjftsjthsd-h ◴[] No.43729644{7}[source]
So your position is that Linux no longer counts as open source?
replies(2): >>43730845 #>>43733946 #
25. sesm ◴[] No.43729746{4}[source]
One is also free to not provide the food for discussion, that's the choice jblow made.
replies(1): >>43730272 #
26. MyOutfitIsVague ◴[] No.43729787{5}[source]
> if you dont engage with the community and dont accept PRs it is not open source

You'd be really hard pressed to find somebody who doesn't consider SQLite to be open source.

27. perching_aix ◴[] No.43729867{4}[source]
Yes. I'd call it source available instead. Although it does have some hallmarks of open source, such as its funding.
replies(1): >>43730089 #
28. steveklabnik ◴[] No.43730089{5}[source]
Source available is already a well understood term that does not mean this.

https://en.wikipedia.org/wiki/Source-available_software

replies(1): >>43730227 #
29. bigstrat2003 ◴[] No.43730116{5}[source]
That was never the definition of open source. That may have been how people were using it, but they were in error if so.
replies(1): >>43733949 #
30. perching_aix ◴[] No.43730227{6}[source]
Reading the preamble there, and the parapgraph after that, I find what I said to be consistent what the page is saying there.
replies(1): >>43730284 #
31. codr7 ◴[] No.43730272{5}[source]
Timing IS important, releasing too early can kill public opinion on a project.
replies(1): >>43730588 #
32. steveklabnik ◴[] No.43730284{7}[source]
> Any software is source-available in the broad sense as long as its source code is distributed along with it, even if the user has no legal rights to use, share, modify or even compile it.

You have the legal right to use, share, modify, and compile, SQlite's source. If it were Source Available, you'd have the right to look at it, but do none of those things.

replies(1): >>43730307 #
33. perching_aix ◴[] No.43730294{4}[source]
For many it is very much a philosophy, a principle, and politics. The OSI is not the sole arbiter of what open source is, and while their definition is somewhat commonly referred to, it is not the be all end all.
replies(1): >>43735050 #
34. perching_aix ◴[] No.43730307{8}[source]
But not necessarily any of the other things! Big difference. Please read it again.
replies(1): >>43730473 #
35. stinkbutt ◴[] No.43730316{4}[source]
yep and JBlow is a massive gatekeeper who discourages people from learning programming if he doesn't believe they can program the way he thinks a programmer should. He is absolutely running from any criticism that will hurt his enormous yet incredibly fragile ego.
replies(1): >>43730791 #
36. BalinKing ◴[] No.43730393{6}[source]
By my reading, the restriction seems to simply impose some (reasonable?) legal restrictions on contributions rather than ban them out of principle.
replies(1): >>43731865 #
37. steveklabnik ◴[] No.43730473{9}[source]
That's your assertion, I am saying that it is not correct in the general way that people understand the terms "open source" and "source available."

I doubt we're going to come to an agreement here, though, so I'll leave it at that.

replies(1): >>43731526 #
38. ModernMech ◴[] No.43730588{6}[source]
So can announcing too early. See: Duke Nukem Forever. Or in the language domain, V-lang.
39. mkzetta ◴[] No.43730760{4}[source]
He routinely livestreams himself working on the language. He doesn't seem afraid of attention.
40. mkzetta ◴[] No.43730791{5}[source]
The hate he is receiving is bizarre. It takes guts to be opinionated - you are effectively spilling your mind (and heart) to people. And yet some people will assume the worst about you even if it's an exact inversion of the truth.
replies(1): >>43731011 #
41. ◴[] No.43730845{8}[source]
42. Capricorn2481 ◴[] No.43730877{5}[source]
That kind of means jack squat though. Jai is an unfinished *programming language*, Sqlite is an extremely mature *database*.

What chii is suggesting is open sourcing Jai now may cause nothing but distractions for the creator with 0 upside. People will write articles about its current state, ask why it's not like their favorite language or doesn't have such-and-such library. They will even suggest the creator is trying to "monopolize" some domain space because that's what programmers do to small open source projects.

That's a completely different situation from Sqlite and Linux, two massively-funded projects so mature and battle-tested that low-effort suggestions for the projects are not taken seriously. If I write an article asking Sqlite to be completely event-source focused in 5 years, I would be rightfully dunked on. Yet look at all the articles asking Zig to be "Rust but better."

I think you can look at any budding language over the past 20 years and see that people are not kind to a single maintainer with an open inbox.

replies(1): >>43735114 #
43. ModernMech ◴[] No.43731011{6}[source]
Opinionated people are polarizing, it makes perfect sense.
44. Zambyte ◴[] No.43731354{4}[source]
Yep. A closed set of core language designers who have exclusive right to propose new paths for the language to take while developing fully Free and in the open is how Zig is developing.
45. johnisgood ◴[] No.43731526{10}[source]
> even if the user has no legal rights to use, share, modify or even compile it.

Emphasis on even. It can have such rights, or not, the term may still apply regardless.

46. mort96 ◴[] No.43731744{4}[source]
If you have users, then breaking changes will break those users. This is true regardless of how many warranty disclaimers you have.
47. yjftsjthsd-h ◴[] No.43731865{7}[source]
Interesting, they've softened their stance. Today, it reads

> In order to keep SQLite in the public domain and ensure that the code does not become contaminated with proprietary or licensed content, the project does not accept patches from people who have not submitted an affidavit dedicating their contribution into the public domain.

But it used to read

> In order to keep SQLite in the public domain and ensure that the code does not become contaminated with proprietary or licensed content, the project does not accept patches from unknown persons.

(I randomly picked a date and found https://web.archive.org/web/20200111071813/https://sqlite.or... )

replies(1): >>43731881 #
48. dragonwriter ◴[] No.43731881{8}[source]
Seems to be hardened not softened: a person who has submitted an affidavit dedicating code fo the public domain is at least minimally known, but a person may be known without submitting an affidavit, so the new form is strictly a stronger restriction than the old one.
replies(1): >>43738865 #
49. lifthrasiir ◴[] No.43733281{5}[source]
In that case the release interval can be tweaked, just frequent enough to keep people interested.
replies(1): >>43734466 #
50. ksec ◴[] No.43733946{8}[source]
Linux started before 2013? So did SQLite? And both are not even comparable as they were the dominant force already and not a new started project.

And in case you somehow thinks I am against you. I am merely pointing out what happened between 2013 - 2023. I believe you were also one of the only few on HN who fought against it.

51. ksec ◴[] No.43733949{6}[source]
Well except no one pushed against it at the time. Worth remember that.
52. chii ◴[] No.43734466{6}[source]
It seems to be there's already enough interest for the closed beta to work.

A lot of things being open sourced are using open source as a marketing ploy. I'm somewhat glad that jai is being developed this way - it's as opinionated as it can be, and with the promise to open source it after completion, i feel it is sufficient.

53. globnomulous ◴[] No.43734631{4}[source]
Ignoring people is by itself tedious and onerous. Knowing what I do about him and his work, and having spent some time watching his streams, I can say with certainly that he understands open source perfectly well and has no interest -- nor should he -- in obeying any ideology, yours for instance, as to how it's supposed to be handled, if it doesn't align with what he wants. He doesn't care whether he's doing open source "correctly."
replies(2): >>43735160 #>>43755290 #
54. worthless-trash ◴[] No.43735050{5}[source]
Sovereign citizens believe they dont need to adhere to the law, individual belief sadly doesn't override reality.
replies(1): >>43736968 #
55. worthless-trash ◴[] No.43735114{6}[source]
We can muse about it all day, the choice is not ours to make. I simply presented the reality that other succcessful open source projects exist that were also in 'early development state'.

There are positives and negatives to it, I'm not naive to the way the world works. People have free speech and the right to criticise the language, with or without access to the compiler and toolchain itself, you will never stop the tide of crazy.

I personally believe that you can do opensource with strong stewardship even in the face of lunacy, the sqlite contributions policy is a very good example of handling this.

Closed or open, Blow will do what he wants. Waiting for a time when jai is in an "good enough state" will not change any of the insanity that you've mentioned above.

replies(1): >>43738052 #
56. lifthrasiir ◴[] No.43735160{5}[source]
Yeah, he is free to do anything as he wants, but I'm also free to ignore his work due to his choice. And I don't think my decision is unique to me, hence the comment.
57. perching_aix ◴[] No.43736968{6}[source]
I could say the same about the practical reality of open contributions being extremely heavily interwoven with open source.

We're debating made up stuff here. The reality is all in our collective heads.

58. Capricorn2481 ◴[] No.43738052{7}[source]
I don't have a stake in this particular language or its author, I was just discussing the pros and cons of the approach.

> Waiting for a time when jai is in an "good enough state" will not change any of the insanity that you've mentioned above.

I outlined some reasons why I think it would, and I think there's good precedent for that.

> the choice is not ours to make

I never said it was.

> People have free speech

I don't think I argued people don't have free speech? This is an easily defensible red herring to throw out, but it's irrelevant. People can say whatever they want on any forum, regardless of the projects openness. I am merely suggesting people are less inclined to shit on a battle-tested language than a young, mold-able one.

59. SQLite ◴[] No.43738865{9}[source]
I claim the edit is neither a hardening nor a softening but rather a clarification and an attempt to better explain the original intent.
60. baranul ◴[] No.43749235[source]
An argument can easily be make that Jai could have been released as closed-source, some time ago. Many fans and the curious, just want to be able to get their hands on it.

Jon is not going to stop public reaction nor will Jai be perfect, regardless of when he releases. At least releasing sooner, allows it to keep momentum. Not just generated by him, but by third parties, such as books and videos on it. Maybe that's where Jon is making a mistake. Not allowing others to help generate momentum.

61. scsh ◴[] No.43753082{4}[source]
You're describing pretty much every popular open source license here, including the Linux kernel(GPLv2). This doesn't set the expectation that things can and will break at any time. That's also not the approach maintainers take with most serious projects.