Wayland ACTUALLY works now. I was surprised that I was able to make a RTX3060 work on Linux, sure it was Fedora that forces Wayland on you, and I had to compile the driver. Yes, not only nVidia open sourced their driver (none of that noveau french bullshit), it actually worked. With Cuda even. 2024, finally, a step closer to the year of linux on desktop. XServer died finnaly, you can run a system with no X at all. Also, no stupid KMS , what is this 1990s ? GPUs don't even have real text buffers anymore, its all faked. Its all DRI baby !
I have a great joke about TCP: What? You didn't get it? Let me try again great I joke have a TCP: about What do you mean it's out of order? Alright one more try: I a joke TC You know what? I give up you won't get it
There will be a quelling as the machine war approaches. Emac and vim users will unite to defeat gpt10. Although i could see text editors becoming more of a relic, as compute will be outlawed, a position the rebellion supports, due to the machines being able to smell it.
From my perspective, Jonathan Blow's argument is about 50:50 right and wrong. And in my experience, this is fairly typical for his arguments. He often forces arguments into such odd shapes that the conclusions he makes are barely valid. Like when he said that improving on things over time is enshittification and vim is new. Newer than vi, sure, but Emacs is also not the same as it used to be.
of note is that jblow barely uses any editor features if any: very minimal syntax highlighting, no auto format, no autocompletion... these are the things i think he is talking about when he says 'adding complexity' not "being newer"
I was a UC Berekeley undergrad when Jon Blow was there in the early 90s. Fun fact -- most of the development machines used JOVE (a trimmed-down version of emacs). There was little choice back then what to use. I shifted to Vim in the late 90s because of RSI in my wrists from chording.
The big issue is that you don't know whether the project is an upgrade or just fashion tech before you do it. Also you will think that the project is just stupid fashion if you have never tried it. I think that's why the argument misses. He basically says "things I don't like or don't know are just stupid fashion tech while things I like are good and forward the field". There is nothing wrong with sitting with what you like and not trying everything, but dismissing all of it as fashion tech is ignorant. There is one thing worse though - trying to push your preferences onto others. It's good to have a discussion but sometimes you like what you like and others like other things
Pico and GNU Nano are a reasonable subset of the Emacs editor experience that decently do what they're originally designed to do, editing emails and plain text documents.
My Dude! I used GNU nano as my primary editor for years. I will admit, if you're in a language that needs the LSP, then you're in the wrong place. On the other hand, there's plenty of power in GNU nano for a lot more than people give it credit for. It takes 3-20 minutes to configure. Syntax support. Position history. Automatic backups. Powerful search. Plenty of jumping motions. Command execution. Help text that's actually useful.
@@codeman99-dev yeh i watch a guy on here using nano to code in c and its literally the most vanilla nano on the most vanilla mac not a single thing has been altered not even the godamn wallpaper and its awesome
Just wanna say I love your videos bro, struggle with addiction myself but am a self taught developer from a young age but in my early 20s and struggling but you're bringing the motivation back so I appreciate you
He's great and all, and is really good at what he does, and he does know his shit, but still kind of a pushover as compared to me... why, how? They haven't met me yet! I'll tell them that you can divide by 0 and that's it's not an exception and that we've been treating it all wrong. I'll challenge the very status quo. What I know and understand is that when someone else instantly regurgitates that it's undefined simply because that's what we've all been forced taught... That's narrow-minded thinking. No, just no. You just don't understand it, and have been practically brainwashed into thinking into that kind of mindset, world view, mind hive since you stopped sucking on a pacifier. That's a limitation that I'll never impose onto my intellect for it knows no bounds. I see and understand things that many cannot fathom or comprehend.
The best tool for the job is the one you can most efficiently and successfully get the job done with. Learning a new IDE or language every year doesn’t make things more efficient.
Dude, I hate it when someone says, "I've been programming for 40 years," as an excuse to either not try something new or to brush aside your advice. It's like doctors in the 1800s saying, "I don't need to wash my hands before surgery. I've been a doctor for 40 years."
Agreed, but I think the reasoning he brought up "age" is to say "Do you think I just randomly picked a thing from a hat and decided on it?" but obviously without any actual context.
Even if you HAVE programmed for 40 years and subscribe to that advice, there's a lot more tactful ways to respond. What's wrong with. "I haven't tried it because what I have works for me, and there's nothing really pushing me to try something new."
@@AlexMax2742part of it is that its in response to the hordes of college kids on twitter that are in their 2nd semester of comp sci and asking these questions
While it's always fun to troll about editors, in truth I could not care less about which editor my colleagues are using. Heck, one of the best dev I know uses freaking Gedit.
One even more aggravating question is: "why would you even want to do that?" especially on forums where you have a really specific issue and it's the only reply, and even more so when it's the top search result when googling said issue. Best thing is, you can say this to any technical question ever and it is equally as applicable. People do it to feel smart without actually having to answer let alone understand the question being asked. "How can I change a drive letter without getting an error BCD corrupted 0x0000098?"=>"why would you even want to do that?" "How can I change my temp folder off of my boot drive?"=> "why would you even want to do that?" "In C# can you make an extension for static methods?"=>"why would you even want to do that?" "My computer won't boot and only goes to a black screen, how can I fix this?"=>"why would you even want to do that?" each time I read "why would you even want to do that?" in response to a perfectly stated and reasonable question, I hope with all my heart that the aliens that will inevitably come to conquer and obliterates this horrible little planet get here just that much sooner.
Agreed. Being creative isn't about why, it's about why not. I don't need my motives to be questioned if I'm just trying to do something different in the computer engineering world.
I think it's because it often times may be easier to find the solution for the root cause of the problem, not what people think is the solution. Like, with changing the drive letter: is it because some program doesn't recognize this exact letter or is it something else, that may have an easier, more straight forward solution?
Being a programmer for forty years means having endured not just forty years of editor wars, but literally 40 fucken years of emacs versus vi. Use what vibes with you, sure, but just don’t forget that no editor can make someone a genius.
The wheel isn’t being “reinvented”, it’s being improved! Who makes the argument that wooden carriage wheels were enough? Well what about stone wheels? Radical departures fail much more than incremental improvements, which is what Neovim is.
The most vocal people are always going to be on about the flavor of the month tool or tech. You should very rarely bet your future career and/or personality on the newest tools, but it's worth reevaluating where your loyalties lie every few years which is why I don't like the fundamentalism of Blow's takes here. The "genealogy" of your tooling or technology choices doesn't matter, only how effective they are. Nobody says "well ackshually Windows 11 was originally MS-DOS Executive so why don't you just use that?", but he's basically saying that for Neovim.
Small nit :^) Whilst lua may very well be easier for people to pick up than elisp, I will say that the lua api still to this day feels bolted on (which it is) compared to what you have with elisp in Emacs. Also Elisp (and common lisp) are not functional languages, no matter what wikipedia says. Common Lisp supports pretty much any paradigm, it has goto btw.
Yeah most elisp is like a collection of functions with some global variables. Not really that hard to pick up, although a basic lisp primer is needed if you only ever saw C
@@xpusostomos elisp feels oddly limited when you come from Common Lisp. I haven’t dabbled much in both, but when you start reading the Elisp manual, you’ll find them enumerating limitations that other lisps don’t have, so it’s “lisp, but this, but that” (types of integers supported jump out). The reason is “well because it’s embedded lisp for an editor, for fucks sake”. In 2025, the response would be “so what”, but in 1989, not so much. With Lua, you just have the same exact Lua that you have elsewhere. Lua in NeoVim is not a “Lua, but”. I can see how it may be appealing.
@YaroslavFedevych right.... Because of the millions of people who used Lua elsewhere.... There's work on in an Emacs with Guile lisp, but it's taking forever
@@denisblack9897 i think the word Craftsmanship is overused in software development. The work that requires Craftsmanship is what gets abstracted away into the frameworks we use. Craftsmanship cant really be applied to hard/new problems. We dont build houses/boats. What we build is way more dynamic and requires flexibility.
@@AnonymousAccount514 Huh? There's lots of craftmanship in doing specialized solutions to problems and ensuring a certain quality level with minimal/no bugs, high performance and novel features. And actually making conscious cost-benefit analysis on how to solve each problem from a knowledgeable position. Lastly, JB barely uses any external code, so I'm not sure what you're talking about.
Yeah, and here I am thinking to myself, "fuck all that bullshit". I'll use whatever is at my disposable for me to get the job done. A few years back, I came across, downloaded and used an application program that was no longer being maintained called Logisim to implement Ben Eater's 8-bit breadboard CPU since I wasn't able to purchase his kits. I wasn't able to do it physically hands on, but none the less I found an application that worked for my needs for that specific targeted project or goal that I wanted to accomplish. Are there times where I have preferences? Sure. Do I try to force one over the other, mostly no. Why? It's quite simple, every application, program tool, etc. has its own unique set of pros and cons and one has to weigh out the benefits themselves for the compromise that best suites them. I might recommend an app. I might give warning towards others of the downsides or the pitfalls of an app, yet I'll never try to force another into use one or the other. I'd be more like, "I've tried X, and here's it's good points and its drawbacks, and I'd do the same with Y. Then I'd finish with try them for yourself and see which one works better for you.
Not learning Vim sooner was one of my regrets. I made a _Vim Cheat For Programmers_ to help other programmers get over the vertical cliff of Vim. Once you do, Vim becomes an extension of your mind. Well worth it.
I don't think you can compare TCP and UDP like that. When UDP is used today it's basically just because you can't directly use IP from user-space (in most operating systems as normal user). You would like to do that in order to write your own better replacement for TCP. But because that is not possible people just put all of that on top of UDP instead. You're not using UDP instead of TCP, your using QUIC instead of TCP. Another problem with writing your own protocol on top of IP today is firewalls only allowing TCP and UDP (and ICMP).
Tools are better or worse for certain tasks. Just because iPhones are newer than hammers doesn't mean you should use iPhones to hang picture frames, nor does it mean you should use hammers to communicate with friends Novelty has near-zero correlation with usefulness
I think the reason J Blow said what he did about NeoVim is because he generally takes the stance that the culture of modern tech is gradually degrading due to people perpetuating self-destructive approaches to coding, especially in regards to software. That belief is generally based on both observable and perceivable truths and his perspective has been reinforced as a result. I believe he just doesn't have much if any experience with NeoVim specifically so while his views in regards to tech often seem to reflect reality, in this particular case he is making a large assumption that because specifically NeoVim is "new" it must fall into the same mental category that he places most modern tech and software into. He's also much older than most modern programmers, so there is also definitely an element of being set in his ways.
6:54 Irony is the language called Fennel is just wrapping Lua with Lisp syntax. This actually made Lua more "approachable" via Lisp. And Lisp is 1950's language and still alive means something worth checking? And the points you made on FP are not very accurate. Lisp is not functional in the sense that Haskell is functional. If we Google "Lisp is not functional", we can find explanations. Being functional is not Lisp's unique strength. So Lisp settles in a very human friendly doze of FP and many other characteristics. Most of the time, the subtext behind many Lisp critics is inertia and not giving an adequate amount of time and effort to try it well. If someone doesn't like parentheses, that actually makes sense as it is a matter of personal preference. Disclaimer: My familiarity is with Clojure a Lisp dialect.
I'm a vim user who downloaded visual studio last night. Part of me is excited because it's new but part of me feels funny. I'm trying to have one computer dedicated to learning programming on Windows. I tried this before with emacs and it was fun but kind of a waste of time. If so many people didn't use Microsoft in the real world I wouldn't even bother but hopefully it's not that bad. Seems like C# people really love their language so that is keeping me positive at the moment
What are you talking about! LISP being unpopular!? LISP is extremely popular, the "web-world" runs on LISP! But similar to Chancellor Palpatine you only seem to know the unpopular Darth Sidious, you should get to know Chancellor Palpatine, or as I call this "pal" (with a name from the urologist department) by his pen name *Javascript*
8:20 Classical Lisp isn't actually functional, except in the sense that it *has* higher order functions. It's actually multiparadigm, leaning toward OO and imperative programming. While that's not true of modern Lisps, since Emacs Lisp is a clone of MACLISP, it's actually true of Elisp. Thus for instance, dotimes, dolist, and while are more ideomatic Elisp for iteration than recursion. Elisp is actually very approachable IMO, if you can get past the parens.
Even in hard core functional languages, there's usually some macro or something that avoids you needing to recurse most of the time. The thing that makes it functional is avoiding side effects, and decent lisp programmers would shy away from writing a function that defines and changes any local variables
14:40 Pico was part of the pine suite, essentially the bespoke editor portion of an old email client. So that kind of writing is what it was built for, and I agree that it doesn't really make sense in many other contexts.
Speed in emacs it depends there is an alternative to using eLISP called guile a scheme dialect of LISP by GNU that compiles to machine code. I think emacs is still in a transition.
QUIC, as it is right now, is a software layer over UDP, if a device supports UDP, its hardware can run QUIC too, it's just a question of software support.
There is a dude from australia on youtube who kind of looks like russel brandt or ssome kind of god of rock and roll and he just sits on hes couch (probably high on ketamine) playing hes keyboard with one hand like its a fucking guitar and he is coding a game engine in c++ literally at the speed of thought using visual studio, cant remember hes name but its really a masterpiece of a coding exhibition
Blow calling Vim a "new" thing is pretty absurd. By that thinking he just released Braid 5 minutes ago so why has he moved on to writing other games so soon? It just seems very disingenuous to dismissively say "Vim is new".
I've been meaning to write a blog for a while now about how "The worst part about NeoVim is Vim" simply about how the remaining Vim APIs and especially anything vimscript related is just disgusting. You require treesitter to make indentation work okay, and if you want to change any formatting settings, you need to learn vimscript and rewrite the formatting rules entirely. LSPs can fix that but sometimes they have bad configurability
If you haven't reflexively opened vim from inside Visual Studio Code's terminal window by accident at least once, can you even call yourself a real programmer? 😆
Some people might wonder how Emacs is more customizable than Vim. One small example is that Emacs is not a modal or non-modal editor, it's whatever it's programmed to be. That's why it can pretend to be Vim (using the Evil package)... but there are other packages too, like Meow that takes inspiration from Kakoune but it's mostly build-your-own modal editor package. I wish that at some point neovim (or the next iteration) reaches this level of customizability..
It's a good discussion about questions. Open questions are good. The critical part of an open question is that the answer is not boolean. Open questions start with When, Where, What, Who, How.......and sometimes Why. Why questions *are* open, but they can often feel, to the recipient, a little inquisitorial... so use sparingly. so. Why *did* you use X is not bad. An even better way to ask is to use those other beginnings. "What was it about X that made it the right tool for this job", "When did you start using X? What do you like about it".... Thinking consciously about how you talk to people may not come naturally to you but you can get better with practice. Just my thoughts.
Please stop spreading the myth that lisp (especially elisp) is functional. Elisp in particular is one of the most imperative procedural languages out there, and even when it comes to Scheme, it's plenty nornal to write in an imperative style. CL and elisp are both a pain to write functional style because of the 2 namespaces for variables and functions
@@replikvltyoutube3727 Parentheses are slippery slope. Today you wonder why not just add a pair of {} and tomorrow you wake up and they are everywhere.
> Elisp is imperative OK, and? It's still a functional language. It's imperative like Haskell, C, Rust and Python. It's not a declarative language like SQL. We got that. Unless you meant to say that Elisp is supposedly procedural, to which I'll premtively say "no, it's not".
Normal Elisp code is literally one of the most procedural things you can't code. It's common to do things like move the current cursor just to do something with a string of text in the buffer and then restore to the previous position. Sadly a big part of it's lack of popularity might be people getting scared of uncolored parentheses.
for loops really are more human--which is what makes recursion feel so transcendental, but I haven't written anything recursive since I started using rust, the whole strict typing doesn't really permit infinitely nested data the same way python did, but there is spatial hashing and/or quadtrees in my future, maybe those will be done recursively
Recursion is actually rarer than you think in functional because someone will write a macro that hides that. The reason you avoid a for loop is because it's inherently stateful.. it must modify variables. Instead you use something like mapcar to collect a set of results
@@xpusostomos now that's something to research! I haven't heard about the rust equivalent yet, but I remember the concept from python, I'll have to look into the advantages and disadvantages and see if it's something I can make use of, I'm always on the lookout for ways to make my programs more efficient, thanks for mentioning it :)
JB is probably using Windows for two main reasons: 1. it's the best OS for visual debugging (vital for understanding your program quickly), 2. it's still the main gaming platform. But it looks like those two factors might be going away pretty soon. And MS doesn't seem to care.
I have used Emacs and Vim/Neovim (and a lot of other editors.) I am too used to the vim bindings that I use daily, so any attempt of switching back to something else has been in vain... and with Emacs, I find it far too slow, especially when using evil mode (also, the keybindings are really weird.) In the end I just stick with Neovim, as I am already used to it, and I have it all set up for me the way I like it.
You start terminals inside emacs, it isn’t that different from vim except your shell is easily searchable and history of commands span several invocations of a program, say you ran lldb, exited it, start it again, no probs you can search back incrementally through previously entered commands.
There's a bunch of terminals you can run in Emacs, I'm running vterm. if you run exwm, you can run gui consoles in Emacs (not that you probably should)
I think there is a miss-characterisation of what blow is on about. I don’t think his point is vim is terrible or that neovim specifically is awful because it’s new. Just that we have a tendency in the industry to hop onto the new thing and push for the adoption of tech purely because it’s new without really knowing if it’s actually an improvement/quantitive shift in the market or if it’s just new. Most of the time it’s just new. Like react over vue/angler, zig vs rust etc. are they better?? Or are they just new. This is riddled throughout the industry. We are constantly adding new technology, but it’s not better it’s just new. K8’s is a prime example. Or elastic search. They just add complexity to systems. Or this adoration of microservices, are they always better? Or just different compared to a monolith. It’s not just tech either, we do it with process too. Agile -> XP -> scrum -> Kanban -> scaled scrum etc etc. they aren’t better just different.
I would agree on 99% of your take, i would however disagree with the premise that he is being pedantic about saying ed is better than vim because it’s older. I think what he is referring to is, a new editor that is a flavor of what existed isn’t what is going to move the computing world forward. He did mention on some podcast, while not liking Rust, respecting the fact that they tried to change something when it comes to code reliability. They attempted something grownbreaking. He doesn’t like the solution they chose, but he appreciates the attempt. my 2 cents
btw, Emacs started in the terminal. (just run: emacs -nw) Fun fact, a pane in Emacs is called a window... this is because when Emacs started, there was no concept of a window, at least the way we know them now. So what we now know as a window is called a display.
What? "I have a list of 10 things, gonna keep going through that list until nothing is left". Not a way humans think? Dude, if THAT is the 'functional paradigm', sign me up.
01:00 isn't this pretty much the same thing? The answer to both questions would be almost the exact same. I think if you get annoyed at people asking why don't you use something then you might be the problem.
There's 2 types of fools in the world; one says "this is old and therefor good"; the other says "this is new and therefor better"
Why don't you use X ?
Because I use Wayland
Why don't you use Whyland?
Because Elon sucks
"because wayland broke it" is the correct answer
Wayland ACTUALLY works now. I was surprised that I was able to make a RTX3060 work on Linux, sure it was Fedora that forces Wayland on you, and I had to compile the driver. Yes, not only nVidia open sourced their driver (none of that noveau french bullshit), it actually worked.
With Cuda even.
2024, finally, a step closer to the year of linux on desktop. XServer died finnaly, you can run a system with no X at all.
Also, no stupid KMS , what is this 1990s ? GPUs don't even have real text buffers anymore, its all faked. Its all DRI baby !
@@monad_tcp My dell latitude 7280 runs wayland. X is still nice though for compatibility with lesser supported packages.
I have an incredible joke about UDP, but you might not get it.
ACK
OOPS
😂😂😂 it dropped along the way
don't worry it'll be QUIC
Please type properly, you have an incredible what about what?
I have a great joke about TCP:
What? You didn't get it? Let me try again
great I joke have a TCP: about
What do you mean it's out of order? Alright one more try:
I a joke TC
You know what? I give up you won't get it
"Old does not mean dead, new does not mean best."
-Slipknot, All out Life
Completely true.
cray cray
I'M TIRED OF BEING RIGHT ABOUT EVERYTHING I'VE SAID
@@dotmavriq 🤘
Hell yeah based
Jeez, bloody, what? It's 2025 and here you are still having editor wars? For God sake.
2025? The year of the Linux desktop?
For real. Long live nano!
@@ProfShibe Bro!!! Helix, is the best!
Longer wars have been fought for so much less.
There will be a quelling as the machine war approaches. Emac and vim users will unite to defeat gpt10. Although i could see text editors becoming more of a relic, as compute will be outlawed, a position the rebellion supports, due to the machines being able to smell it.
From my perspective, Jonathan Blow's argument is about 50:50 right and wrong. And in my experience, this is fairly typical for his arguments. He often forces arguments into such odd shapes that the conclusions he makes are barely valid. Like when he said that improving on things over time is enshittification and vim is new. Newer than vi, sure, but Emacs is also not the same as it used to be.
exactly. He usually starts with a good point and then it's just downhill from that
0:30 - this is the most annoying form of question
3:30 - chat: "why don't he just use Linux"
The Web Dev minds cannot comprehend the horrors of being a game dev
@@neruneri the webdev mind is one of nothing but node_modules and "chat gippity pls give me boilerplate for my component its too hard for me :("
@@mikkurogue webdev here, can confirm
of note is that jblow barely uses any editor features if any: very minimal syntax highlighting, no auto format, no autocompletion... these are the things i think he is talking about when he says 'adding complexity' not "being newer"
"hate to break it to you but almost none of the world is functional" ha.... this has multiple meanings
Subtle as a sledgehammer! Not wrong though.
Sure, it may not be functional, but there's more observational evidence that points to being fully dysfunctional.
"Just Because Its New Doesn't Mean Its Good"
That's exactly what I think about my wife's new boyfriend.
lmfao sad
Your wife says hi, by the way.
I mean... it's not always true. Tell Sharon I said hi!
You preferred her old boyfriend?
I was a UC Berekeley undergrad when Jon Blow was there in the early 90s. Fun fact -- most of the development machines used JOVE (a trimmed-down version of emacs). There was little choice back then what to use.
I shifted to Vim in the late 90s because of RSI in my wrists from chording.
Hmm... But I would argue you'd press a lot more buttons in vi to get the same thing done
The big issue is that you don't know whether the project is an upgrade or just fashion tech before you do it. Also you will think that the project is just stupid fashion if you have never tried it.
I think that's why the argument misses. He basically says "things I don't like or don't know are just stupid fashion tech while things I like are good and forward the field".
There is nothing wrong with sitting with what you like and not trying everything, but dismissing all of it as fashion tech is ignorant. There is one thing worse though - trying to push your preferences onto others. It's good to have a discussion but sometimes you like what you like and others like other things
ed. ed is the standard editor. emacsitor and viitor aren't even words. ed.
I still have "Actually using ed" bookmarked. Read it at least twice a year.
Pico and GNU Nano are a reasonable subset of the Emacs editor experience that decently do what they're originally designed to do, editing emails and plain text documents.
I always use Micro to edit .conf files when installing a Linux system.
I never saw any similarity between nano and Emacs. If you really must have a basic Emacs, there is "mg", but for the most part i don't see the point.
My Dude! I used GNU nano as my primary editor for years. I will admit, if you're in a language that needs the LSP, then you're in the wrong place. On the other hand, there's plenty of power in GNU nano for a lot more than people give it credit for.
It takes 3-20 minutes to configure. Syntax support. Position history. Automatic backups. Powerful search. Plenty of jumping motions. Command execution. Help text that's actually useful.
@@cubemaster1298 i used micro for a while, but now im kinda good at nvim so use that, but micro is awesome!
@@codeman99-dev yeh i watch a guy on here using nano to code in c and its literally the most vanilla nano on the most vanilla mac not a single thing has been altered not even the godamn wallpaper and its awesome
Just wanna say I love your videos bro, struggle with addiction myself but am a self taught developer from a young age but in my early 20s and struggling but you're bringing the motivation back so I appreciate you
❤❤
His streams were actually useful during my interview lmao, love watching him now
Everything that comes out of JB’s mouth is bespoke to vexing some crowd. He is ragebait incarnate.
He's great and all, and is really good at what he does, and he does know his shit, but still kind of a pushover as compared to me... why, how?
They haven't met me yet! I'll tell them that you can divide by 0 and that's it's not an exception and that we've been treating it all wrong.
I'll challenge the very status quo. What I know and understand is that when someone else instantly regurgitates that it's undefined
simply because that's what we've all been forced taught... That's narrow-minded thinking. No, just no. You just don't understand it,
and have been practically brainwashed into thinking into that kind of mindset, world view, mind hive since you stopped sucking on a pacifier.
That's a limitation that I'll never impose onto my intellect for it knows no bounds. I see and understand things that many cannot fathom or comprehend.
??
??
The best tool for the job is the one you can most efficiently and successfully get the job done with. Learning a new IDE or language every year doesn’t make things more efficient.
Dude, I hate it when someone says, "I've been programming for 40 years," as an excuse to either not try something new or to brush aside your advice. It's like doctors in the 1800s saying, "I don't need to wash my hands before surgery. I've been a doctor for 40 years."
I don't think it's a good metaphor, but for sure is a fun one
Agreed, but I think the reasoning he brought up "age" is to say "Do you think I just randomly picked a thing from a hat and decided on it?" but obviously without any actual context.
Even if you HAVE programmed for 40 years and subscribe to that advice, there's a lot more tactful ways to respond. What's wrong with. "I haven't tried it because what I have works for me, and there's nothing really pushing me to try something new."
@@AlexMax2742part of it is that its in response to the hordes of college kids on twitter that are in their 2nd semester of comp sci and asking these questions
Better yet is the words of Wisdom from Solomon himself: "There's nothing new under the sun", and, "it's all vanity".
Man people say negative people have no charisma, but I could listen to smart engineers rant about how everything sucks all day. Insightful and funny!
While it's always fun to troll about editors, in truth I could not care less about which editor my colleagues are using. Heck, one of the best dev I know uses freaking Gedit.
No fucking way
based
I'd rather hire someone who mastered some IDE than gedit
Gedit is not that bad.
I want to switch to Kate, but I’m on mac half of the time.
One even more aggravating question is: "why would you even want to do that?" especially on forums where you have a really specific issue and it's the only reply, and even more so when it's the top search result when googling said issue. Best thing is, you can say this to any technical question ever and it is equally as applicable. People do it to feel smart without actually having to answer let alone understand the question being asked.
"How can I change a drive letter without getting an error BCD corrupted 0x0000098?"=>"why would you even want to do that?"
"How can I change my temp folder off of my boot drive?"=> "why would you even want to do that?"
"In C# can you make an extension for static methods?"=>"why would you even want to do that?"
"My computer won't boot and only goes to a black screen, how can I fix this?"=>"why would you even want to do that?"
each time I read "why would you even want to do that?" in response to a perfectly stated and reasonable question, I hope with all my heart that the aliens that will inevitably come to conquer and obliterates this horrible little planet get here just that much sooner.
Get a real answer? Why would you even want to do that?
Agreed. Being creative isn't about why, it's about why not. I don't need my motives to be questioned if I'm just trying to do something different in the computer engineering world.
I think it's because it often times may be easier to find the solution for the root cause of the problem, not what people think is the solution. Like, with changing the drive letter: is it because some program doesn't recognize this exact letter or is it something else, that may have an easier, more straight forward solution?
Sometimes asking why would you do that reveals that actually they are on the wrong track
Must… resist… the overwhelming urge to label everything I don’t understand as a X/Y problem…
Being a programmer for forty years means having endured not just forty years of editor wars, but literally 40 fucken years of emacs versus vi.
Use what vibes with you, sure, but just don’t forget that no editor can make someone a genius.
I wouldn't say UDP or TCP are "better", just that one may be more appropriate to use in a situation.
JB is one of those dudes who is so smart he trips himself at times.
The wheel isn’t being “reinvented”, it’s being improved! Who makes the argument that wooden carriage wheels were enough? Well what about stone wheels? Radical departures fail much more than incremental improvements, which is what Neovim is.
Of all the takes about IT infrastructure, the one about TCP and UDP definitely is one...
TCP definitely has its place and always will.
As long as absolutely trash internet connections still exist around the world, (like mine) TCP is gonna be relevant.
"Almost none of the world is functional."
- ThePrimagen, 2025
The most vocal people are always going to be on about the flavor of the month tool or tech. You should very rarely bet your future career and/or personality on the newest tools, but it's worth reevaluating where your loyalties lie every few years which is why I don't like the fundamentalism of Blow's takes here. The "genealogy" of your tooling or technology choices doesn't matter, only how effective they are. Nobody says "well ackshually Windows 11 was originally MS-DOS Executive so why don't you just use that?", but he's basically saying that for Neovim.
Small nit :^)
Whilst lua may very well be easier for people to pick up than elisp, I will say that the lua api still to this day feels bolted on (which it is) compared to what you have with elisp in Emacs. Also Elisp (and common lisp) are not functional languages, no matter what wikipedia says. Common Lisp supports pretty much any paradigm, it has goto btw.
fine fine fine
Yeah most elisp is like a collection of functions with some global variables. Not really that hard to pick up, although a basic lisp primer is needed if you only ever saw C
@@xpusostomos elisp feels oddly limited when you come from Common Lisp. I haven’t dabbled much in both, but when you start reading the Elisp manual, you’ll find them enumerating limitations that other lisps don’t have, so it’s “lisp, but this, but that” (types of integers supported jump out). The reason is “well because it’s embedded lisp for an editor, for fucks sake”. In 2025, the response would be “so what”, but in 1989, not so much.
With Lua, you just have the same exact Lua that you have elsewhere. Lua in NeoVim is not a “Lua, but”. I can see how it may be appealing.
@YaroslavFedevych right.... Because of the millions of people who used Lua elsewhere.... There's work on in an Emacs with Guile lisp, but it's taking forever
It's 2025 and we still talk about performance of text editors, what the fuck
Jonathan Blow is trying to make a living publicly speaking about things that dont really matter.
Craftsmanship doesnt matter? You mad
The vid prime is reacting to is posted on a fan clip channel. I don't think blow is making a living off this....
@@denisblack9897 i think the word Craftsmanship is overused in software development. The work that requires Craftsmanship is what gets abstracted away into the frameworks we use. Craftsmanship cant really be applied to hard/new problems. We dont build houses/boats. What we build is way more dynamic and requires flexibility.
@@AnonymousAccount514 Huh? There's lots of craftmanship in doing specialized solutions to problems and ensuring a certain quality level with minimal/no bugs, high performance and novel features. And actually making conscious cost-benefit analysis on how to solve each problem from a knowledgeable position. Lastly, JB barely uses any external code, so I'm not sure what you're talking about.
Just Because Its OLD Doesn't Mean Its Good, Mr Prime
common miss from jblow
"Why don't you use X?"
"Because X is too old. Why don't you use Y?"
"Because Y is too new."
Yeah, and here I am thinking to myself, "fuck all that bullshit". I'll use whatever is at my disposable for me to get the job done. A few years back, I came across, downloaded and used an application program that was no longer being maintained called Logisim to implement Ben Eater's 8-bit breadboard CPU since I wasn't able to purchase his kits. I wasn't able to do it physically hands on, but none the less I found an application that worked for my needs for that specific targeted project or goal that I wanted to accomplish. Are there times where I have preferences? Sure. Do I try to force one over the other, mostly no. Why? It's quite simple, every application, program tool, etc. has its own unique set of pros and cons and one has to weigh out the benefits themselves for the compromise that best suites them. I might recommend an app. I might give warning towards others of the downsides or the pitfalls of an app, yet I'll never try to force another into use one or the other. I'd be more like, "I've tried X, and here's it's good points and its drawbacks, and I'd do the same with Y. Then I'd finish with try them for yourself and see which one works better for you.
Neovim can be configured in LISP using Fennel language
Fennel mentioned!!
and just because it's "the standard" doesnt mean it's the only or best way.
See also: ANSI SQL standard. It's way too bloated to be of good use.
Standard is often bad😅
Not learning Vim sooner was one of my regrets. I made a _Vim Cheat For Programmers_ to help other programmers get over the vertical cliff of Vim. Once you do, Vim becomes an extension of your mind. Well worth it.
Just wait till you discover Emacs
@ Not my cup of tea.
I don't think you can compare TCP and UDP like that. When UDP is used today it's basically just because you can't directly use IP from user-space (in most operating systems as normal user). You would like to do that in order to write your own better replacement for TCP. But because that is not possible people just put all of that on top of UDP instead. You're not using UDP instead of TCP, your using QUIC instead of TCP. Another problem with writing your own protocol on top of IP today is firewalls only allowing TCP and UDP (and ICMP).
Tools are better or worse for certain tasks. Just because iPhones are newer than hammers doesn't mean you should use iPhones to hang picture frames, nor does it mean you should use hammers to communicate with friends
Novelty has near-zero correlation with usefulness
I think the reason J Blow said what he did about NeoVim is because he generally takes the stance that the culture of modern tech is gradually degrading due to people perpetuating self-destructive approaches to coding, especially in regards to software. That belief is generally based on both observable and perceivable truths and his perspective has been reinforced as a result. I believe he just doesn't have much if any experience with NeoVim specifically so while his views in regards to tech often seem to reflect reality, in this particular case he is making a large assumption that because specifically NeoVim is "new" it must fall into the same mental category that he places most modern tech and software into. He's also much older than most modern programmers, so there is also definitely an element of being set in his ways.
6:54 Irony is the language called Fennel is just wrapping Lua with Lisp syntax. This actually made Lua more "approachable" via Lisp. And Lisp is 1950's language and still alive means something worth checking? And the points you made on FP are not very accurate. Lisp is not functional in the sense that Haskell is functional. If we Google "Lisp is not functional", we can find explanations. Being functional is not Lisp's unique strength. So Lisp settles in a very human friendly doze of FP and many other characteristics.
Most of the time, the subtext behind many Lisp critics is inertia and not giving an adequate amount of time and effort to try it well.
If someone doesn't like parentheses, that actually makes sense as it is a matter of personal preference.
Disclaimer: My familiarity is with Clojure a Lisp dialect.
I'm a vim user who downloaded visual studio last night. Part of me is excited because it's new but part of me feels funny. I'm trying to have one computer dedicated to learning programming on Windows. I tried this before with emacs and it was fun but kind of a waste of time. If so many people didn't use Microsoft in the real world I wouldn't even bother but hopefully it's not that bad. Seems like C# people really love their language so that is keeping me positive at the moment
What are you talking about! LISP being unpopular!? LISP is extremely popular, the "web-world" runs on LISP!
But similar to Chancellor Palpatine you only seem to know the unpopular Darth Sidious, you should get to know Chancellor Palpatine, or as I call this "pal" (with a name from the urologist department) by his pen name *Javascript*
8:20 Classical Lisp isn't actually functional, except in the sense that it *has* higher order functions. It's actually multiparadigm, leaning toward OO and imperative programming. While that's not true of modern Lisps, since Emacs Lisp is a clone of MACLISP, it's actually true of Elisp. Thus for instance, dotimes, dolist, and while are more ideomatic Elisp for iteration than recursion. Elisp is actually very approachable IMO, if you can get past the parens.
Even in hard core functional languages, there's usually some macro or something that avoids you needing to recurse most of the time. The thing that makes it functional is avoiding side effects, and decent lisp programmers would shy away from writing a function that defines and changes any local variables
14:40 Pico was part of the pine suite, essentially the bespoke editor portion of an old email client. So that kind of writing is what it was built for, and I agree that it doesn't really make sense in many other contexts.
Gotta love the 20 minute reaction to a 4 minute video (not complaining at all tho, really insightful stuff)
Speed in emacs it depends there is an alternative to using eLISP called guile a scheme dialect of LISP by GNU that compiles to machine code. I think emacs is still in a transition.
They are taking their sweet time if that's ever going to happen
Prime tried so hard to agree with j blow, but jblow kept making things worse lmao
He really did, jblow has so much good experience yet still has L takes
Imagine asking "why do you use the keybindings you're familiar with instead of the bindings I'm familiar with?"
✋😐🤚
19:15 Isn't QUIC based directly on IP and can fallback to UDP/TCP implementations for networks that does not support it ?
QUIC, as it is right now, is a software layer over UDP, if a device supports UDP, its hardware can run QUIC too, it's just a question of software support.
There is a dude from australia on youtube who kind of looks like russel brandt or ssome kind of god of rock and roll and he just sits on hes couch (probably high on ketamine) playing hes keyboard with one hand like its a fucking guitar and he is coding a game engine in c++ literally at the speed of thought using visual studio, cant remember hes name but its really a masterpiece of a coding exhibition
Blow calling Vim a "new" thing is pretty absurd. By that thinking he just released Braid 5 minutes ago so why has he moved on to writing other games so soon? It just seems very disingenuous to dismissively say "Vim is new".
I'm sorry to break it to you but LISP is also procedural and object oriented. You can do for loops or whatever. It's more about the simple syntax.
I've been meaning to write a blog for a while now about how "The worst part about NeoVim is Vim" simply about how the remaining Vim APIs and especially anything vimscript related is just disgusting. You require treesitter to make indentation work okay, and if you want to change any formatting settings, you need to learn vimscript and rewrite the formatting rules entirely.
LSPs can fix that but sometimes they have bad configurability
I started to use emacs back in 2009 but by 2013 I was logging into many unix systems and all had vim installed I switched.
I just use jetbrains because im lazy and want my hand held and i am ok with that.
Jetbrains is great, but I have a hotkey to open Emacs when I want to do some serious editing
If you haven't reflexively opened vim from inside Visual Studio Code's terminal window by accident at least once, can you even call yourself a real programmer? 😆
I do this on purpose and use the code interface for Jupyter notebooks
Just remeber: "Everything compiles down to lisp".
Some people might wonder how Emacs is more customizable than Vim. One small example is that Emacs is not a modal or non-modal editor, it's whatever it's programmed to be. That's why it can pretend to be Vim (using the Evil package)... but there are other packages too, like Meow that takes inspiration from Kakoune but it's mostly build-your-own modal editor package. I wish that at some point neovim (or the next iteration) reaches this level of customizability..
new word acuired => shitification
It's a good discussion about questions. Open questions are good. The critical part of an open question is that the answer is not boolean. Open questions start with When, Where, What, Who, How.......and sometimes Why. Why questions *are* open, but they can often feel, to the recipient, a little inquisitorial... so use sparingly. so. Why *did* you use X is not bad. An even better way to ask is to use those other beginnings. "What was it about X that made it the right tool for this job", "When did you start using X? What do you like about it".... Thinking consciously about how you talk to people may not come naturally to you but you can get better with practice. Just my thoughts.
Just because its old, and you have used it for 3 decades, doesn't mean that the new thing is worse. It might be worse for you.
UDP makes you handle incomplete, out of order, delivery yourself.
But how it is handled is protocol specific.
Please stop spreading the myth that lisp (especially elisp) is functional.
Elisp in particular is one of the most imperative procedural languages out there, and even when it comes to Scheme, it's plenty nornal to write in an imperative style.
CL and elisp are both a pain to write functional style because of the 2 namespaces for variables and functions
It's not about functional-ity.
Prime and ppl just scared of parentheses
wisp is my fawowite langwuage
@@replikvltyoutube3727 Parentheses are slippery slope. Today you wonder why not just add a pair of {} and tomorrow you wake up and they are everywhere.
Lisp is pretty much the first functional pl there is. 😂 wdym?
> Elisp is imperative
OK, and? It's still a functional language. It's imperative like Haskell, C, Rust and Python. It's not a declarative language like SQL. We got that. Unless you meant to say that Elisp is supposedly procedural, to which I'll premtively say "no, it's not".
Normal Elisp code is literally one of the most procedural things you can't code. It's common to do things like move the current cursor just to do something with a string of text in the buffer and then restore to the previous position.
Sadly a big part of it's lack of popularity might be people getting scared of uncolored parentheses.
my question is usually: "how do you do that ?" (because I want to try it out)
I started out with vi on an irix sgi machine in 1996.
Blow is the kind of guy who will literally just call anything shit and refuse to elaborate any further
I still use Winamp 2.95, so I get where he's coming from.
for loops really are more human--which is what makes recursion feel so transcendental, but I haven't written anything recursive since I started using rust, the whole strict typing doesn't really permit infinitely nested data the same way python did, but there is spatial hashing and/or quadtrees in my future, maybe those will be done recursively
Recursion is actually rarer than you think in functional because someone will write a macro that hides that. The reason you avoid a for loop is because it's inherently stateful.. it must modify variables. Instead you use something like mapcar to collect a set of results
@@xpusostomos now that's something to research! I haven't heard about the rust equivalent yet, but I remember the concept from python, I'll have to look into the advantages and disadvantages and see if it's something I can make use of, I'm always on the lookout for ways to make my programs more efficient, thanks for mentioning it :)
I like the wording "Have you ever tried X?"
JB is probably using Windows for two main reasons: 1. it's the best OS for visual debugging (vital for understanding your program quickly), 2. it's still the main gaming platform.
But it looks like those two factors might be going away pretty soon. And MS doesn't seem to care.
I have used Emacs and Vim/Neovim (and a lot of other editors.) I am too used to the vim bindings that I use daily, so any attempt of switching back to something else has been in vain... and with Emacs, I find it far too slow, especially when using evil mode (also, the keybindings are really weird.) In the end I just stick with Neovim, as I am already used to it, and I have it all set up for me the way I like it.
You guys should use Kate
I love how even the smartest people can say the dumbest things
7:50 so that’s why recursion is so hard for most new programmers wrap their heads around at first
All I remember from trying emacs a decade ago was that was the first time my wrist started hurting.
Sore wrists is caused by mental tension to your muscles keeping them "on edge" . Learning something new will do that.
Emacs was born in the terminal. How could it be meant to be used in a GUI?
You start terminals inside emacs, it isn’t that different from vim except your shell is easily searchable and history of commands span several invocations of a program, say you ran lldb, exited it, start it again, no probs you can search back incrementally through previously entered commands.
There's a bunch of terminals you can run in Emacs, I'm running vterm. if you run exwm, you can run gui consoles in Emacs (not that you probably should)
@ meta x shell gets it done for me. Although alas in my environment tramp is busted.
UDP told me what TCP was but I didn't get it...
That's right, you should use Kate just because I like it. 😉
I cannot see why not if your muscle memory is trained for it.
I think there is a miss-characterisation of what blow is on about.
I don’t think his point is vim is terrible or that neovim specifically is awful because it’s new. Just that we have a tendency in the industry to hop onto the new thing and push for the adoption of tech purely because it’s new without really knowing if it’s actually an improvement/quantitive shift in the market or if it’s just new.
Most of the time it’s just new. Like react over vue/angler, zig vs rust etc. are they better?? Or are they just new.
This is riddled throughout the industry. We are constantly adding new technology, but it’s not better it’s just new. K8’s is a prime example. Or elastic search. They just add complexity to systems. Or this adoration of microservices, are they always better? Or just different compared to a monolith.
It’s not just tech either, we do it with process too. Agile -> XP -> scrum -> Kanban -> scaled scrum etc etc. they aren’t better just different.
I would agree on 99% of your take, i would however disagree with the premise that he is being pedantic about saying ed is better than vim because it’s older. I think what he is referring to is, a new editor that is a flavor of what existed isn’t what is going to move the computing world forward. He did mention on some podcast, while not liking Rust, respecting the fact that they tried to change something when it comes to code reliability. They attempted something grownbreaking. He doesn’t like the solution they chose, but he appreciates the attempt. my 2 cents
Can I get the first minute printed out, wth it's such a good take
Would be interested to know your thoughts on Helix!
btw, Emacs started in the terminal. (just run: emacs -nw)
Fun fact, a pane in Emacs is called a window... this is because when Emacs started, there was no concept of a window, at least the way we know them now. So what we now know as a window is called a display.
the title logic stands if it's regarding homes/constructions, cars, light bulbs... planned obsolescence is cancer
Not sure. You could ask, why not use Git? When you are using SVN…
Theprimeagen should do a collab with Blow
We likes what we likes. Half the time it’s just my assumption that you use what was around at the time or your professors required.
Just use what you like and have fun ya know 😊
Meanwhile, Prime: "Why don't you use HTMX"
headshot
Why doesn't he develop on Linux?
I just want to jump on hes stream and ask him why hes not using an obscure editor
What? "I have a list of 10 things, gonna keep going through that list until nothing is left". Not a way humans think? Dude, if THAT is the 'functional paradigm', sign me up.
01:00 isn't this pretty much the same thing? The answer to both questions would be almost the exact same. I think if you get annoyed at people asking why don't you use something then you might be the problem.
"Vim is a new thing."
33 years is not new. Opinion discarded.
“Most of the world is not functional”
"Just Because Its New Doesn't Mean Its Good" - boomer talk
"just because X doesn't mean Y" --- every response to every unrelated comment on the Internet ever