11 ms·
Focus: A simple and fast text editor written in Jai
- sneak 3y agoGiven that the compiler for this language is not publicly available, is this still open source, considering that you cannot easily modify and rebuild it to your liking, despite being GPL?
- luckystarr 3y agoGPL (I'm not talking about AGPL) only forces you to publish the sources if the binary would be published. If you don't have the program you don't have a right to the source.
- benj111 3y agoI think you're missing the point. The source code to the program is available, but the compiler with which to compile that code isn't. To the OP I would say this is opensource. If you received an open source recipe, despite not having a kitchen you could still modify the recipe, pass it on etc. You still have the right to modify this code and pass it on, which is what the opensource licenses generally guarantee, opensource software for the latest supercomputer doesn't guarantee you access to that supercomputer.
- binary132 3y agoSounds like a community implementation of a Jai frontend for GCC waiting to happen.
- greatNespresso 3y agoThis is my first exposure to Jai code, did not know it was now available to play with! Congrats on building this! Really appreciate your comments in the source.
- flohofwoe 3y agoJai is still in "closed beta" as far as I'm aware.
- greatNespresso 3y agoOk thank you for the clarification
- version_five 3y agoI submitted a related article about Jai yesterday, and just realized it got a bit of discussion: https://news.ycombinator.com/item?id=37357408 https://news.ycombinator.com/item?id=37357408
- AlectronikLabs 3y agoAfaik is Jai still in private beta or something alike, just seen some sources like this and RayLib bindings but not the compiler itself.
- jhack 3y agoCool, an open source project in a language no one can use. Say what you will about V, at least it exists.
- christophilus 3y agoYou can use Jai. You just have to ask. It’s in closed beta, but afik “closed” pretty much means “open to anyone who wants to be a beta tester”.
- dmarcos 3y agoHow do you ask / apply?
- dottedmag 3y agoI have asked several times and got no answer.
- ohgodplsno 3y ago[flagged]
- deleted 3y ago[deleted]
- howinteresting 3y agoBlow is a smart guy who thinks he's far smarter and far more interesting than he really is. Smart people who don't seek out feedback, and especially those who haven't worked in a team environment, tend to be pretty bad at estimating the limit of their capabilities. Does Blow have a mentor? Friends who call his BS out?
- incrudible 3y agoHe does seek feedback, that is why there is a closed beta. I would say he is quick to flip the bozo bit, and easily irritable, but that is also a consequence of having an audience that is large enough to be annoying but too small to just ignore.
- Rochus 3y agoIt's interesting to look at the source code. However, I have yet to find a clear unique selling point that justifies the development of a new language and infrastructure, or clearly shows me why I shouldn't just use D, for example. Any hints?
- flohofwoe 3y agoPersonal preferences should be enough to choose a different language or create a new language (e.g. it can be as simple as "I don't like D"), in the end that's how progress happens, individuals not being happy with the status quo, and building something they like. If others like that thing too, it might even become popular (and if this happens without a big company behind it then that thing might even be objectively good). (I'm not a fan of Jai's closed development model though, but to each their own)
- Rochus 3y agoMaybe when it comes to learning compiler construction. But otherwise, what's the point of all this effort if the result is hardly different from anything existing? Some innovation or other special feature justifying all the effort to implement the language and toolchain and for the interested parties to adopt it should at least be present. I would still be interested to know where this can be found on Jay. Any hints?
- flohofwoe 3y agoIn the end it comes down to healthy competition, it doesn't matter much why one thing is better than another, it just has to be preferred by enough people. And all those people may have different opinions on why they would choose one language over another. Traditionally, there has been a real lack of "better C" languages. Now since a few years we suddenly have a number of promising options but still not enough: Odin, Zig, Jai, and a few lesser known like C2 and C3, that's about it - I count Rust and D as attempts to a "better C++", not a "better C" (I'm aware of D's "das better C" subset though). Apparently Jai is specifically tailored to game development problems and frustration with C++ for game dev (or at least it tries to fix rough edges that a typical game developer encounters in existing languages used for game dev) - whether that is actually true I can't tell though since I haven't used Jai yet.
- konsuko 3y agoJai is an amazing language to work with, I highly recommend checking it out once it becomes publicly released. It's elegant, simple, performant, takes all the best parts of Zig minus the annoying parts (like errors on unused local variables) and adds a bunch of super useful game development libraries as well as a built-in string type (which I really missed in Zig). Oh, and the compile times are just a joy, almost no other language even comes close to the speed of iteration that's possible with Jai, which is another great reason to use it for games and prototyping in general.
- flohofwoe 3y agoIf Jai can only be judged once it's public, Zig should only be judged once it hits 1.0 though. Personally I put a lot more trust into Zig than Jai.
- deleted 3y ago[deleted]
- ReleaseCandidat 3y agoI'd have preferred a `fun` (or `fn, if you insist on 2 characters) instead of the Haskell-esque double colon `::` in function definitions to make parsing them easier. And the semicolon after `case` is irritating for me too. But `foo := bar` for a type-less `foo: TYPE = bar` is too much parser-friendly syntax and inconsistent with using a double colon `::` for function types and struct definitions. And inconsistent with using just the colon in `foo: TYPE`. How do nested for-loops work, if `it` names the current iterator? for particles { // Inside for loops the "it" object is the iterator for the current object. particle_left := view_left \* it.particle_size; }
- ohgodplsno 3y agoJust like every language that implicitly names the current value of the iterator: - It's the innermost iterator that takes priority - You are encouraged to name your iterators if you do so (for particles { part -> part.velocity } ) - Compiler throws warnings if you shadowed names.
- ReleaseCandidat 3y agoThis is meant as more of a general comment than to critisize this editor: I fail to see the selling point of an editor that "can't do much", but is performant - there is an abundance of these already. If you made an editor that does "everything" and is "fast", I may be interested. Regarding Jai: the idea about a "language for good programmers" is just about the worst thing ever to say about a language and it's community in my opinion (and I'm being paid as a C and C++ programmer for 20 years now, so I guess I'm at least not totally bad at it).
- flohofwoe 3y agoThis looks at least untypical for a "small and fast" editor in that it is a UI application, not running in the terminal like vi or nano.
- ReleaseCandidat 3y agoThat's true. The modern day obsession with the terminál (emulátors) is something I don't get either. But I actually did use Unix back than (mostly Irix, which was the MacOS of it s day).
- Xeamek 3y agoGO was named a language for bad (not experienced) programmers by its creator. I don't see why doing the reverse of that automatically egregious I mean sure, people are in general hesitant when someone calls himself good, and for a decent reason. But pushing it to extreme and defaulting to reverse JUST BECAUSE someone dared to call himself good is also a pretty childish reaction. At the end of the day it is a fact that there are differences in skill between programmers and different languages expect from you different levels of understanding. Pretending it's only valid to acknowledge these differences in others but not in oneself is irrational.
- ReleaseCandidat 3y agoOk, so let me be a bit more concrete: I do _not_ want to work with or have to maintain or use the software of people who claim of themself to be "good programmers" who are "able to handle manual memory management" (and similar) any more. Yes, of course there are exceptions and I'm not saying that John Blow isn't one of them and I also don't know if the formulation is his or of somebody else (as I don't know anything about him or his games). But the problem is that now people are drawn to the language to "proof" that they are "good programmers". > Pretending it's only valid to acknowledge these differences in others but not in oneself is irrational. I do hope that we can agree that people are way better at assessing others than themselves - in both ways, under- and overestimation of their own capabilities.
- binary132 3y agoIt’s silly that these threads instantly devolve into weirdly personal socio-ideological debates about the merits of the designer, his personality, the community, and his unorthodox approach to the language rather than even a technical discussion. It seems like cloutchasing all the way down. I also recognize that I am participating in said dynamic.
- MattRix 3y agoHow is criticizing the creator of a project a form of clout chasing? It seems important to know the philosophy of the creator of a project, especially when that project is not yet finished.
- goostavos 3y agoI don't know (and really don't want to know) the philosophies of any of the people who've made most of the things I really like. The artist is different from the product.
- MattRix 3y agoI’m not talking about that kind of philosophy, I mean their development philosophies, the kind of things that would directly impact the directions they take the product in.
- binary132 3y agoI think when people compete to have the snarkiest take on a personality in a social context, it qualifies as low key cloutchasing.
- mariusor 3y agoI think that the only purely technical level complaint I have about the language, something that I haven't seen discussed in the docs but bit me because it worked differently than I expected is that return types are not part of a function's typing. Ie, when doing function polymorphism, functions "a :: (b: s32) -> bool" (a function called "a" that accepts a signed 4byte int and returns a boolean) and "a :: (b: s32) -> s32" (a function called "a" that accepts a signed 4byte int and returns a signed 4byte int) trigger a compilation error when you call one of them even if the type of the lvalue is known (either bool or s32).
- anta40 3y agohttps://github.com/focus-editor/focus/blob/main/compile.bat https://github.com/focus-editor/focus/blob/main/compile.bat: jai -quiet first.jai So... where can I find the Jai compiler?
- ohgodplsno 3y agoEither ask very politely for years, or be in denial like half the Jai community that writes Jai but is never able to compile it. Yes, there is a whole Jai community wiki made from half cobbled together knowledge (https://github.com/Jai-Community/Jai-Community-Library/wiki https://github.com/Jai-Community/Jai-Community-Library/wiki), and a super secret discord made for the super elite, non-compiler-having plebs are banned.
- mproud 3y ago> This editor is not designed for editing very large files. Anyone have any GUI (non-CLI) recommendations for editing larger files, specifically text files 10 MB+?
- WhereIsTheTruth 3y agoNo tabs? Weird If these GUI editors can't offer better than VIM + tmux, then something is wrong