programmers eventually can't resist the urge to write their own OS kernel, their own programming language, or their own text editor probably is just how programmers deal with their mid-life crisis
what, i'm just 24 i've been doing my own OS kernel and my own C compiler (i used to make my own programming language before). are you implying that I'm already a mid-life crisis facing oji-san now?
Making a text editor was my first ever real project that I did. I built it using PyQt, and I learned a lot about how to code which helped me a lot when I started building more complicated C# programs, but BOY was it shit
Really? You think so? I was trying to follow a tutorial to Build the kilo text editor in C and couldn't just keep up because of the endless C macros. termios.h almost destroyed me.
I mean... from the way he explained everything, and if he's down to make it - with other engineers, as he mentioned... all I can say is: *LET HIM COOK* This is how software evolves, and people like this are the ones that make most difference in our day-to-day jobs - quality tools should never be underestimated. All power to him.
This is happening everywhere! A bunch of Indie Apple Devs are currently writing their own code editors as well 😂 - Runestone - Code Edit - Swift Studio - … It seems like a pattern
Variable width fonts are important for non-ascii text and other unicode features that cant fit inside a perfect rectangular grid of "letters", plain text that is just LTR graphemes does not exist. TUI first also has other issues like imposing one font size for everything and severely limiting you in what you can do with things like popups and other appearance related things.
Indeed, even if you don't care for writing essays/emails in your text editor, programs who work with BIDI text (e.g. devanagari) or hindi/arabic can have far better shaping and joining support than what would otherwise be available through a TUI (or even neovim guy). In emacs i personally prefer having proportional fonts for comments, but I can understand why it would throw some users off.
Monotheism => monospace God wrote the universe simulation in a monospace font And clearly vi comes straight fromm the mind of God Don't fall to the devil's snares
@@tauiin No, it's not that you don't want to, it's that you can't. Do you even understand what the performance issues are like when editing the universe? Takes way longer than 6 days!
so far every attempt to supplant bash and vim I've eventually given up on and gone back - no longer bother to check them out as am already at the promised land
Thats the original inspiration. I used to be a motorsports engineer before settling down and doing embedded, during that time I used to run my personal bike with some self-designed parts and aerokit, which I sold under a brand referred to as "nyoom-engineering" for fun Then I was writing a doom alternative for neovim a few years later, figured "I need something that rhymes with doom and sounds fast, nyoom!"
@@bored2171 Very interesting read, thanks for sharing man! I have an eye on some of your neovim projects and I really like the code quality. I am a subpar programmer, could you recommend some resources & practices that helped you along the way?
As someone who likes the concept of Emacs but has often ended up fighting lisp instead of enjoying the configuration aspect, I'm kinda interested on this project, if it aims to be a modern replacement / rewrite of emacs I hope it does well.
0:33 - After I saw this video from Casey Muratoi - "How fast should an unoptimized terminal run?" and couple others - I will never just believe, that editors are just what they are, and that there is no more juice to be squeezed ua-cam.com/video/hxM8QmyZXtg/v-deo.html&ab_channel=MollyRocket
Yeah, Lisp changes the way you think about programming for sure. I used to have a paying Common Lisp job. Emacs was basically a compromise when going from Lisp Machines to Unix and C. You have no idea how much people thought Lisp Machines would be the future.
Although I use Emacs I do agree with prime boi when it comes his take on vim, that is, GNU/Linux is your environment and vim is its editor. Emacs on the other hand is very different and it is hard for someone coming from vim (or any other text editor) to understand why a lot of people like Emacs simply by "trying it out". You most likely won't "get it" until you have learnt lisp in order to take advantage of the extensibility of Emacs, for while the biggest selling point of vim is its editing capabilities, extensibility is what makes Emacs great as well as the introspectability and interactive development experience that comes with being built on lisp.
I use Emacs with the default bindings no changes other than a dark background and text colours + get rid of the welcome screen that I stole from somebody on the internet. No interest in learning elisp. If a text editor doesn't offer defaults satisfiable enough to use for work, it's really not worth your time.
Why helix hate tho? It's good, and does pretty much everything i need it to at this point + default keybinds are more sensible imo. Yes, no plugin system (being worked on) and a bit cumbersome to configure the LSPs, but it's one time operation, and you're good, especially if you have your dotfiles backed up (I use NixOS for example, so i dont have to even do much to have the exact same experience on a totally different machine). I also use a multiplexer (Zellij, cuz Rust and floating panes (very useful, can't live without them now)) + broot for fuzzy searching, and it's all I need really, been working like this for about 4-5 months now and can barely use normal IDE's at this point.
He despises that it uses kakoune style bindings (select->action) instead of vim binds (verb->object). I'm personally impartial but the OOTB experience of Helix simply can't be beat.
@@covoeus I haven't gotten that far into vim (cuz bindings were driving me crazy + I personally dislike Lua) so I'm not sure I understand what the difference is. To me as an average consumer, (n)vim just has "more steps" to achieve something in many cases, which I personally don't like.
@@vitluk frankly, its not the same. vim and vi are on almost every machine, i can ssh into a server and it doesnt matter if i dont have install permissions, it has what i need. i use vim/vi with nearly no config at all, my .vimrc is less than 30 lines. helix is a bunch of bloated crap i never wanted, that doesnt run in the places i need it to anyway lol.
I saw a chat go by that said "In the absence of history, 1-based indexing is more intuitive." And I presume they're referring only to programming history, because in mathematical history, ever since right around 5,000 years ago all number systems start with zero. And, w.r.t common number systems on computers binary, octal, decimal, and hexadecimal all start with 0, but what else would you choose for binary? 1, 2? I don't think so.
I wrote (modified to do what I wanted the code to do) some Lisp back in 2004 since I needed to automate some tasks (finding a basic celluloid film cartridge and paper purchase strategy for my shop) in XMaxima. A plain LPP solver, nothing's extraordinary. The CAS can be extended to do anything imaginable in mathematics via Lisp scripts.
I still use M-x calc every single day. No RPN/RPL calculator, standalone or otherwise, even barely touches its capabilities, configurability, and scriptability.
Mandatory reminder, you wanted to use ed some time ago. (I barely managed to solve AoC2022 day 1 part 1 - managing python indentation from ed was a pain)
Behold a programmer reaching the critical state of transcendence. They will either ascend and unlock a new way for everyone else, or they will fall. But even if they do fall. They would still land at a pretty good altitude kekw
1 indexing isn't inherently bad, just like 0 indexing isn't inherently good. I think 1 indexing is more natural for newer users, but it does get quite annoying when you have to implement c/c++/ffi bindings for lua and constantly have to think about 1vs0 indexed lists. I wish it just stuck with 0 indexing.
lua indices are actually indices, in c it means the item address offset of the array address. Just take advantage of for/ipairs and you don't need to keep track of indices anyways
because number systems are actually based around 0, not 1. for instance if you want to look up into a table with the result of a modulo you always have to add 1 it's super annoying. or even if you have some function in a table, you always have to add 1 after some math operation. e.g. I have a 2048 element table that stores a sine wave, and a phase value that goes from 0 to 1 (exclusive). so after multiplying by the size of the table and doing floor or some other interpolation I have to add 1 before lookup. I love lua but in retrospect trying to combine arrays and hashtables into 1 general data structure was probably a mistake.
When is the day that I can switch from VSCode to a modularly preconfigured editor; something in between a bare bones die-hard nvim and a "bloatedly/bloatfully" preconfigured distro/cult. A simple nvim setup + a more powerful version of packer or lazy would make the experience of using nvim super duper cool, even my mom would love using it if the extension managers are fledged enough yet modularly.
Why do you call nvim distros "cults" ? What is wrong with lazynvim as a plugin manager (especially since you don't want bloat) ? Seems you're the one not really understanding the landscape since all the options are here, namely nvim and "do it yourself", kickstart for a minimal but working config and LazyVim for a modular distro
I always wonder what the general opinion is on something like MuJS over lua. While I am well aware that lua is really tiny, it feels horrible to write in for me, and I would much prefer using JS for those instances.
if emacs configuration language would not be lisp, i would use it. i dont wanna learn lisp , period I dont mind having mail, irc and other stuff in one place. it just makes sense actually if ur developer and sit hours on end on the computer and in editor, that the editor becomes ur pseudo-OS
One point from my side. Who really likes shell programming and the shell programming language? But I also want as much support for as less typing as possible. If I just want to write a fast script, of course, I can do that in whatever shell I like, but I really dislike the programming way. Now what alternatives do I have. Yes there is scsh (it uses Scheme, that's a nice and niche programming language, but it hardly supports all the interactive stuff I can have in zsh. Then there is the Python Shell, sorry, forget its name, you can program in Python and that is definitely a + to Shell. Now I just let my imagination run wild, how nice would be kind of shell / UI in Common Lisp, so yes Emacs with Common Lisp as programming language, that would be so great. Or the Smalltalks-gods may forbig a Smalltalk-Shell. Yes, you can use e.g Pharo Smalltalk to do a lot but it's not easy to handle the file system and there is not even one decent Editor. Not one. And so I bet this editor will please him (maybe) but ...
What prime said is basically what it is. You can spin up a "text editor" in like 2 minutes. You won't get a proper editor, or an "IDE" that fast though. Just look at something like nvim vs helix. At the top level, they do basically exactly the same thing, except one grew based on two decades of decisions, and the other one doesn't have any plugin support. This is very similar to Jetbrains' Fleet, which is essentially... useless
Thats a bit of a shallow way of looking at helix. Helix has the benefit of seeing where neovim went wrong and what they can do right. Notably, dap support from the start, integrated completion, and most importantly representing the buffer as a rope. Helix runs o(n) complexity throughout as opposed to neovim's o(n^2) at times.
@@bored2171 You're right, will admit that. I did use it myself for quite a bit, before it was popularized in socials, and I really appreciated what it does out of the box, but it let me wanting more
This just furthers the point that writing your own text editor is a great, fun idea. I tried out helix and I don't really miss anything from neovim which i had to configure much more. Your text editor doesn't need many features, just a solid experience when interacting with code via tree-sitter and lsp and navigation between files. I started writing my own text editor for fun and so far have integrated tree-sitter and some lsp features. I feel like discouraging people from doing that is a bad idea because it's fun!
@@anderdrache8504 Indeed! I think that even if nothing comes out of this project, hopefully it inspires someone to get into lisp, write their own text editor, etc. Writing a language and writing language tooling are IMO two of the greatest things you can do as a programmer to further your knowledge on how computing works.
What is the difference between php and lua? Honest question. I used both (besides many other languages) and I don't understand why one is hated and the other is not
I really like lua, but I also really hate lua for one reason. That it indexes from 1 instead of 0. Why? And it embeds into a bunch of other languages who index from 0, it's just wrong.
I actually prefer writing fennel over elisp The syntax just feels more modern to me, and this from someone using Emacs on a regular basis, mainly to write fennel...
Lua is kind of an abomination to me, but there's one thing I have to give it: Factorio. Factorio is written in lua and it's a mess of complex. And yet, somehow, the devs have made it so damn optimized. Perhaps it would be more optimized in Go, Rust, or C. But the fact that it can be that optimized at all is very impressive
The main issue with luajit isn't that you can't write fast code, it's just that you can't write idiomatic code fast. It's one or the other. Luau has made some project on that front though (by pretty much rewriting the entire interpreter), but well-written lua (especially with luau type hints) can still hold up to certain compiled languages!
If Factorio was entirely written in Lua the performance would be laughably bad. Lua is very fast for a scripting language, but it's still a scripting language. Factorio itself is written in highly optimized C++.
@@raiguard Completely agree, hence why the graphical framework, rope implementation, semantic parsing, and all of the performance-critical bits for the editor will be written in rust. However, just wanted to point out that luajit is still more than performant enough for most higher-level tasks (including templating and configuration) and that implementing the majority of code in lua shouldn't be a bottleneck.
@@bored2171Right, writing something like a text editor in Lua is fine. Factorio has to scale to immense sizes, and has to be deterministic for multiplayer, meaning that we had to heavily customize Lua to make it entirely deterministic. LuaJIT would be practically impossible for this use case.
programmers eventually can't resist the urge to write their own OS kernel, their own programming language, or their own text editor
probably is just how programmers deal with their mid-life crisis
what, i'm just 24 i've been doing my own OS kernel and my own C compiler (i used to make my own programming language before). are you implying that I'm already a mid-life crisis facing oji-san now?
@@stevefan8283🍪
Ngl I HAVE been thinking about designing and writing my own programming language with LLVM...
Making a text editor was my first ever real project that I did. I built it using PyQt, and I learned a lot about how to code which helped me a lot when I started building more complicated C# programs, but BOY was it shit
damnit im already at a mid life crisis at 17 (ive made a language and an editor)
I mean it is easier to write your own text editor than configure neovim
I concur
It can at least take as long.
Really?
You think so?
I was trying to follow a tutorial to Build the kilo text editor in C and couldn't just keep up because of the endless C macros.
termios.h almost destroyed me.
@@debajyatidey9468I mean, you were using C...
Following that right now@@debajyatidey9468
I mean... from the way he explained everything, and if he's down to make it - with other engineers, as he mentioned... all I can say is:
*LET HIM COOK*
This is how software evolves, and people like this are the ones that make most difference in our day-to-day jobs - quality tools should never be underestimated.
All power to him.
This is happening everywhere! A bunch of Indie Apple Devs are currently writing their own code editors as well 😂
- Runestone
- Code Edit
- Swift Studio
- …
It seems like a pattern
Variable width fonts are important for non-ascii text and other unicode features that cant fit inside a perfect rectangular grid of "letters", plain text that is just LTR graphemes does not exist. TUI first also has other issues like imposing one font size for everything and severely limiting you in what you can do with things like popups and other appearance related things.
Indeed, even if you don't care for writing essays/emails in your text editor, programs who work with BIDI text (e.g. devanagari) or hindi/arabic can have far better shaping and joining support than what would otherwise be available through a TUI (or even neovim guy). In emacs i personally prefer having proportional fonts for comments, but I can understand why it would throw some users off.
Monotheism => monospace
God wrote the universe simulation in a monospace font
And clearly vi comes straight fromm the mind of God
Don't fall to the devil's snares
@@TheSulrossIf this is the best god can do with vi I dont want to see what a world written in emacs would look like 😉
@@tauiin No, it's not that you don't want to, it's that you can't. Do you even understand what the performance issues are like when editing the universe? Takes way longer than 6 days!
@@mattymerr701hahahaha
The final destiny of a text editor is an email reader.
so far every attempt to supplant bash and vim I've eventually given up on and gone back - no longer bother to check them out as am already at the promised land
This is what programming does to your brain, you want to rewrite everything.
to make it to your liking, to your image. IT COMPELS YOU TO PLAY GOD!!
I got a few issues here myself. How can I pull request to GOD?
spot on
I don't understand the need to do this but I can appreciate the commitment, kudos
reinventing the wheel is the best way to level up as a dev even senior dev sometimes need that tip.
@@rushyscoper1651 It's more than a side project at this point imo
@@rushyscoper1651The wheel gets reinvented all the time for niche uses (sports cars for example), and I prize niche far above generalized equipment.
@@0ia doesn't matter what reinventing, its something that dev culture need to push so we don't end up with iseven() dependency
@@rushyscoper1651 hah, very true, iseven as a dependency is horrid :)
Funny thing, the name "Nyoom" is a onomatopoeia for the sound of a very fast object.
Thats the original inspiration. I used to be a motorsports engineer before settling down and doing embedded, during that time I used to run my personal bike with some self-designed parts and aerokit, which I sold under a brand referred to as "nyoom-engineering" for fun
Then I was writing a doom alternative for neovim a few years later, figured "I need something that rhymes with doom and sounds fast, nyoom!"
@@bored2171 Very interesting read, thanks for sharing man! I have an eye on some of your neovim projects and I really like the code quality. I am a subpar programmer, could you recommend some resources & practices that helped you along the way?
Yeah the brand name is cool! It's so cool, I'm going to actually keep an eye on the project.
BLAZINGLY FAAAAAAAAAAST
@@bored2171it's a great name
At some point, just open another window
As someone who likes the concept of Emacs but has often ended up fighting lisp instead of enjoying the configuration aspect, I'm kinda interested on this project, if it aims to be a modern replacement / rewrite of emacs I hope it does well.
0:33 - After I saw this video from Casey Muratoi - "How fast should an unoptimized terminal run?" and couple others - I will never just believe, that editors are just what they are, and that there is no more juice to be squeezed
ua-cam.com/video/hxM8QmyZXtg/v-deo.html&ab_channel=MollyRocket
ua-cam.com/video/GB_oTjVVgDc/v-deo.htmlsi=mrKeCbx1syWAGEy2&t=2433 this is imo a very interesting direction we could take things
vi and vim still the best, most wholesome, non pasterized juice
The LISP must flow!
Yeah, Lisp changes the way you think about programming for sure. I used to have a paying Common Lisp job. Emacs was basically a compromise when going from Lisp Machines to Unix and C. You have no idea how much people thought Lisp Machines would be the future.
And I had once even run it on my machine. And it has been grade, but I do not get it running anymore on my modern Linux.
“… he is trying to make Neovim into his operating system”
Objection your honor! Factious speculation!
Although I use Emacs I do agree with prime boi when it comes his take on vim, that is, GNU/Linux is your environment and vim is its editor.
Emacs on the other hand is very different and it is hard for someone coming from vim (or any other text editor) to understand why a lot of people like Emacs simply by "trying it out". You most likely won't "get it" until you have learnt lisp in order to take advantage of the extensibility of Emacs, for while the biggest selling point of vim is its editing capabilities, extensibility is what makes Emacs great as well as the introspectability and interactive development experience that comes with being built on lisp.
Damn I have to learn lisp
I use Emacs with the default bindings no changes other than a dark background and text colours + get rid of the welcome screen that I stole from somebody on the internet. No interest in learning elisp. If a text editor doesn't offer defaults satisfiable enough to use for work, it's really not worth your time.
Why helix hate tho? It's good, and does pretty much everything i need it to at this point + default keybinds are more sensible imo. Yes, no plugin system (being worked on) and a bit cumbersome to configure the LSPs, but it's one time operation, and you're good, especially if you have your dotfiles backed up (I use NixOS for example, so i dont have to even do much to have the exact same experience on a totally different machine). I also use a multiplexer (Zellij, cuz Rust and floating panes (very useful, can't live without them now)) + broot for fuzzy searching, and it's all I need really, been working like this for about 4-5 months now and can barely use normal IDE's at this point.
He despises that it uses kakoune style bindings (select->action) instead of vim binds (verb->object). I'm personally impartial but the OOTB experience of Helix simply can't be beat.
@@covoeus I haven't gotten that far into vim (cuz bindings were driving me crazy + I personally dislike Lua) so I'm not sure I understand what the difference is. To me as an average consumer, (n)vim just has "more steps" to achieve something in many cases, which I personally don't like.
@@covoeusootb?
@@vitluk frankly, its not the same. vim and vi are on almost every machine, i can ssh into a server and it doesnt matter if i dont have install permissions, it has what i need. i use vim/vi with nearly no config at all, my .vimrc is less than 30 lines. helix is a bunch of bloated crap i never wanted, that doesnt run in the places i need it to anyway lol.
Let him cook.
I saw a chat go by that said "In the absence of history, 1-based indexing is more intuitive." And I presume they're referring only to programming history, because in mathematical history, ever since right around 5,000 years ago all number systems start with zero. And, w.r.t common number systems on computers binary, octal, decimal, and hexadecimal all start with 0, but what else would you choose for binary? 1, 2? I don't think so.
7:00 truly ascend: simplicity _is_ sophistication
3:15 for a second i thought prime was talking about SPICE, the command line circuit simulator
Haha same
1 indexing is awesome, it reminds me everytime that I cannot trust zero-or-one-indexes anyway
It's only weird to me because of pointer arithmetic.
Yes but what editor did he used to write the editor
Neovim.
joe tried this challenge and it went pretty well for him
Wasn't that Joe Mama?
@@nefraceBro you are in a programming channel and don't know Joe?
JOE - Joe's Own Editor
I wrote (modified to do what I wanted the code to do) some Lisp back in 2004 since I needed to automate some tasks (finding a basic celluloid film cartridge and paper purchase strategy for my shop) in XMaxima. A plain LPP solver, nothing's extraordinary. The CAS can be extended to do anything imaginable in mathematics via Lisp scripts.
I still use M-x calc every single day. No RPN/RPL calculator, standalone or otherwise, even barely touches its capabilities, configurability, and scriptability.
@@bored2171 I've been looking for a calculator to use for a while. My goto is currently just dc (usually through `calc() { dc
Mandatory reminder, you wanted to use ed some time ago. (I barely managed to solve AoC2022 day 1 part 1 - managing python indentation from ed was a pain)
Python indentation is a pain*
If I was as skilled as OP, I would probably try the same thing.
Emacs version 25 makes you old?! 😂 (ehem started on version 20 here…)
Behold a programmer reaching the critical state of transcendence.
They will either ascend and unlock a new way for everyone else, or they will fall.
But even if they do fall. They would still land at a pretty good altitude kekw
Is 1 indexing really all that bad? It matches the way we speak/think. I think heads would explode if I asked what the zeroth item on the todo list is.
1 indexing isn't inherently bad, just like 0 indexing isn't inherently good. I think 1 indexing is more natural for newer users, but it does get quite annoying when you have to implement c/c++/ffi bindings for lua and constantly have to think about 1vs0 indexed lists. I wish it just stuck with 0 indexing.
it's one of those things when you master most people can't wrap their heads around the alternative.
It doesn't make sense if you understand how pointers and indexing work.
lua indices are actually indices, in c it means the item address offset of the array address. Just take advantage of for/ipairs and you don't need to keep track of indices anyways
because number systems are actually based around 0, not 1. for instance if you want to look up into a table with the result of a modulo you always have to add 1 it's super annoying.
or even if you have some function in a table, you always have to add 1 after some math operation. e.g. I have a 2048 element table that stores a sine wave, and a phase value that goes from 0 to 1 (exclusive). so after multiplying by the size of the table and doing floor or some other interpolation I have to add 1 before lookup.
I love lua but in retrospect trying to combine arrays and hashtables into 1 general data structure was probably a mistake.
When is the day that I can switch from VSCode to a modularly preconfigured editor; something in between a bare bones die-hard nvim and a "bloatedly/bloatfully" preconfigured distro/cult.
A simple nvim setup + a more powerful version of packer or lazy would make the experience of using nvim super duper cool, even my mom would love using it if the extension managers are fledged enough yet modularly.
Why do you call nvim distros "cults" ? What is wrong with lazynvim as a plugin manager (especially since you don't want bloat) ?
Seems you're the one not really understanding the landscape since all the options are here, namely nvim and "do it yourself", kickstart for a minimal but working config and LazyVim for a modular distro
I always wonder what the general opinion is on something like MuJS over lua. While I am well aware that lua is really tiny, it feels horrible to write in for me, and I would much prefer using JS for those instances.
> "elisp sucks!"
> uses fennel
unfortunately, it's true. elisp is just not a good lisp
@@weakspirit_ It's a better Lisp than fennel.
“This mentat is not a retard, he’s just suffering a Segfault” - CHOAM engineer probably
I like Vim’s keybinds and motions, but I do not like Vim/Neovim as a text editor. 4coder seems like a far better option
lol what that a Dune reference @2:57? hahaha
Using a text editor to write a text editor is cheating. Punch cards and dip switches or GTFO!!!
I remember when i wanted to program my own shell.😂😂
if emacs configuration language would not be lisp, i would use it.
i dont wanna learn lisp , period
I dont mind having mail, irc and other stuff in one place. it just makes sense actually if ur developer and sit hours on end on the computer and in editor, that the editor becomes ur pseudo-OS
If Emacs didn't use Lisp it would not be Emacs.
One point from my side. Who really likes shell programming and the shell programming language? But I also want as much support for as less typing as possible. If I just want to write a fast script, of course, I can do that in whatever shell I like, but I really dislike the programming way. Now what alternatives do I have. Yes there is scsh (it uses Scheme, that's a nice and niche programming language, but it hardly supports all the interactive stuff I can have in zsh. Then there is the Python Shell, sorry, forget its name, you can program in Python and that is definitely a + to Shell. Now I just let my imagination run wild, how nice would be kind of shell / UI in Common Lisp, so yes Emacs with Common Lisp as programming language, that would be so great. Or the Smalltalks-gods may forbig a Smalltalk-Shell. Yes, you can use e.g Pharo Smalltalk to do a lot but it's not easy to handle the file system and there is not even one decent Editor. Not one. And so I bet this editor will please him (maybe) but ...
What prime said is basically what it is. You can spin up a "text editor" in like 2 minutes. You won't get a proper editor, or an "IDE" that fast though. Just look at something like nvim vs helix. At the top level, they do basically exactly the same thing, except one grew based on two decades of decisions, and the other one doesn't have any plugin support. This is very similar to Jetbrains' Fleet, which is essentially... useless
Thats a bit of a shallow way of looking at helix. Helix has the benefit of seeing where neovim went wrong and what they can do right. Notably, dap support from the start, integrated completion, and most importantly representing the buffer as a rope. Helix runs o(n) complexity throughout as opposed to neovim's o(n^2) at times.
@@bored2171 You're right, will admit that. I did use it myself for quite a bit, before it was popularized in socials, and I really appreciated what it does out of the box, but it let me wanting more
This just furthers the point that writing your own text editor is a great, fun idea. I tried out helix and I don't really miss anything from neovim which i had to configure much more.
Your text editor doesn't need many features, just a solid experience when interacting with code via tree-sitter and lsp and navigation between files.
I started writing my own text editor for fun and so far have integrated tree-sitter and some lsp features. I feel like discouraging people from doing that is a bad idea because it's fun!
@@anderdrache8504 Indeed! I think that even if nothing comes out of this project, hopefully it inspires someone to get into lisp, write their own text editor, etc.
Writing a language and writing language tooling are IMO two of the greatest things you can do as a programmer to further your knowledge on how computing works.
I uninstalled Neovim and went back to Vim. Neovim was way too powerful with accidentally deleting things as a consequence, and gone it is.
That's why you should do daily backup 🙂
@@GreyDeathVaccineNo worries, I didn't lose anything. But I don't like it.
@@GreyDeathVaccineactually you're supposed to tell others to do backups without ever doing them yourself
So happy to hear you speak to using tmux to manage context switching between projects. The tmux-sessionist plugin rules. Great stuff.
IM STILL READING DUNE STOP SPOILING IT
Portuforrakis dies.
What is the difference between php and lua? Honest question. I used both (besides many other languages) and I don't understand why one is hated and the other is not
3:00 always buddy
Nvim configuration is a great pain in the rear
lisp is helluva drug
I really like lua, but I also really hate lua for one reason. That it indexes from 1 instead of 0. Why? And it embeds into a bunch of other languages who index from 0, it's just wrong.
is it written in JDSL?
"boomering really hard" 🤣
I have a pet project that is an code editor 😅
Does anyone know if he uses a Dvorak layout or something?
Yes, he uses Dvorak.
Simplicity is good to arrive back to but when you start there and see caveman like code all over its hell
Nyooooooom cars😊
lua on top yeaaaa
That sounds like a modern version of emacs. They want emacs.
I actually prefer writing fennel over elisp
The syntax just feels more modern to me, and this from someone using Emacs on a regular basis, mainly to write fennel...
Nice place here!
Core yootles
Helix is the best so far
Hilarious 😂 no one tool can fit all the needs of many. This reminds me of how much time is wasted on bs 🎉
being a Linux user mean that you have to spend your time configuring your environment
instead of using it
kakuone
uwu
Lua is kind of an abomination to me, but there's one thing I have to give it: Factorio. Factorio is written in lua and it's a mess of complex. And yet, somehow, the devs have made it so damn optimized.
Perhaps it would be more optimized in Go, Rust, or C. But the fact that it can be that optimized at all is very impressive
Factorio is written in C++. It just has a Lua API interface for modders.
The main issue with luajit isn't that you can't write fast code, it's just that you can't write idiomatic code fast. It's one or the other. Luau has made some project on that front though (by pretty much rewriting the entire interpreter), but well-written lua (especially with luau type hints) can still hold up to certain compiled languages!
If Factorio was entirely written in Lua the performance would be laughably bad. Lua is very fast for a scripting language, but it's still a scripting language. Factorio itself is written in highly optimized C++.
@@raiguard Completely agree, hence why the graphical framework, rope implementation, semantic parsing, and all of the performance-critical bits for the editor will be written in rust. However, just wanted to point out that luajit is still more than performant enough for most higher-level tasks (including templating and configuration) and that implementing the majority of code in lua shouldn't be a bottleneck.
@@bored2171Right, writing something like a text editor in Lua is fine. Factorio has to scale to immense sizes, and has to be deterministic for multiplayer, meaning that we had to heavily customize Lua to make it entirely deterministic. LuaJIT would be practically impossible for this use case.
Meh
vscode better uwu
@theprimetime you're using vim the way UNIX was designed. UNIX is the IDE, vi/vim is the text editor (btw I have zero qualms with Emacs)