Today's talk with Mitchell Hashimoto - we cover his career, experiences writing open source software professionally and as a passion project, as well as his thoughts after writing a lot of zig for Ghostty. We really hope you enjoy the episode! 0:00 - Intro 0:52 - CTO to Open Source 7:00 - Graphite Ad 8:10 - Future Of Ghostty 21:30 - How It Started 25:29 - Zig vs Rust 29:53 - Go’s Place In The Stack 34:28 - Managing Open Source 42:42 - Motivation 45:49 - AI 52:21 - Live Q&A Thanks to our sponsor, Graphite! Check them out for stacked pull requests, assisted PR review and more! gt.dev/topshelf
Brother I’ve probably written less than 1,000 lines of code, ever. I’m subbed and actively watch like 10 programming and compsci channels and I don’t even do it lol
I used to love Prime's takes on programming languages. It all just feels like content farming now. I don't see the need to put down Go or Rust just to talk about Zig or vice versa. We're simply confusing junior devs who don't know any better on what to focus on by constantly picking and pushing a new "favorite language" every 6 months. Pick whatever you think works best for whatever you're trying to get done.
It's funny because nobody in the industry talks about languages or tech in general like they do. It's not even the matter of using the right tool for the job, although it's that too. Nobody with any experience has these abstract debates about languages or tools that they use or would prefer to use, for that matter.
I think most of us professionals don't want to use zig, but he's most definitely targeting new viewers and languages that can better pin-down those algorithms. I actually only listen to him in the background because he's one of the few tubers that actually does programming correctly without being boring as h311. Personally I'd like to see him dig into LLVM/clang, the GCC compiler, and A.I. compilers/engines/modeling. But that would be too deep for most programmers.
Here's the issue: C is almost a perfect language, but compile time 'metaprogramming' support consists of basically the preprocessor which is capable of a lot but even in the case where it is capable of something it's very cryptic. C++'s 'solution' to C's limits works ok for some things like simple classes but added a bunch of confusing semantics for templates etc. Languages like zig are a step in the right direction but I think Nelua is even easier to do metaprogramming in. Of course you could hypothetically modify any language with compiler plugins but having the compiler toolchain, parser, AST etc. be more easily accessible from within something like lua or the language itself (such as zig) is the key.
Content farming is literally the business model, and this is pretty high-quality content. I think you may misunderstand the reasoning behind those switches, or maybe I do, but it isn’t really out of nowhere.
@@codeman99-dev This part of the podcast is strange. Yes, it sucks if you want to find a specific trait and get like 20 that match. But it also does suck to have to parse the code of generic Zig functions to figure out what my type needs to implement so that I can pass it to the function. It's not something where I see huge benefits of the Zig approach. Don't get me wrong, Zig does look cool and I need to dig in a bit more, but this specific thing was a bit unexpected to be pointed out as an advantage of Zig.
54:47 Strong disagreement with this statement "...even if AI autocomplete is right 1 out of 50 times you can just ignore the other 49..." AI is expensive to run. You either pay for someone else to buy hardware or you buy the hardware yourself. When IDEs like Eclipse were new to the scene there's no way this statement would have flown. Today is no different. I have workstation level compute, but it gives me correct suggestions just 2% of the time? Nope Nope Nope. All of my nope.
To me the bigger issue is how do you ensure the one you go with is the 1 correct result out of 50? Maybe you can "just ignore" half of the bad results but the whole premise of LLMs is that the outputs are plausible so once you've narrowed it down to that point it's going to become increasingly hard to choose which ones are wrong. And in reality there's no guarantee that even 1 result in 50 is correct. It's looking for a needle in a haystack made of fake needles and there may or may not be a needle inside it.
@Satook in the long run, same. these tools give a slight boost out of the gates compared to classic search but at some point knowing the ins and outs of what you're doing wins out
I also disagree with this one. If it's that bad it adds a lot of cognitive load. It's the reason I turned off AI suggestion and instead prompt it when I feel like it might speed up something.
I really enjoyed the video, but Prime, can you please title it with the name of the guest or mentioning this is TopShelf episode that were released, so that it gets more attention and hype when getting to someones feed?
19:44 if that's the definition, then at this moment, any wayland environment in linux has secure entry enabled globally, this is a design limitation of wayland itself (they wanted to make it secure), there isn't currently a way for apps to listen on inputs outside of themselves (that is native to wayland of course).
Secure entry mode was probably the worst example they could have chosen. Applications cannot listen to keyboard inputs in other applications on Linux on Wayland by default. It has been like this for years and to this day still prevents most applications from being able to have globally available keyboard shortcuts.
Need more serious programming content like this where serious experts discuss serious industry trends that employed software engineers obviously talk about (they only talk about making a CRUD apps and pointless terminal games). For the next video titles I propose "PoopScript is just better than CSHART", "Grumbo is just better than Mlep", and my favorite, "A slice of tangerine is just better than the color blue"
@20:00 In Wayland by default only the application you currently are can listen to the input, that's why global shortcuts don't work. At least that's how I understand. On mac, every application can listen to input events, unless you activate secure input. That sounds to me like the better approach.
@@brice.rhodes Yes if you are talking about ghostty. What I meant is, Wayland should have been this way around. Offer a feature like SecureInput and otherwise let programs be able to listen to the keyboard inputs. This way, global shortcuts would work.
@@blubblurbor, make the listening for inputs be configurable by the user. Right now, this is something the compositors have to implement in their own protocols.
I fucking understand man why zig > go when you want to do stuff that's involve some what low level go doesn't go that far. it starts to sucks. Btw I love Golang.
Golang is not a systems programming language (so is not a legit successor language to C). I put Golang as being closer to Java - but without the JIT overhead, and Golang objects get allocated at life-time fixed positions in memory whereas Java heap objects can be compacted so as to lessen memory fragmentation.
I meant when you already start whatever the fucking project in go by the time you realised you need low level things. You have to rewrite in whatever your fucking system programming languages.
@@kidpudel If he sticks to the same language it's harder to keep making new videos
15 часов назад+1
5:17 hat off, Having worked at various job levels and led a company, I fully understand the importance of recognizing and accepting the trade-offs between financial gain and status. Admitting this is a significant achievement. I have been following Mitchell since the Ruby days, and these statements are as impressive as all his past achievements and contributions.
I've literally been pondering the implications of LLMs training on GPL licensed code for the past few days, so that bit of discussion was wild to hear. The conclusion I've come to (as a non-lawyer, to be clear) is that training your LLM on GPL code is using GPL code to build [the functional utility of] your product, and therefore your product is beholden to the terms of the license. I have zero faith it'll play out that way in an actual court of law, but to my mind that logic is intact. Also, it'll be tragically and disgustingly ironic if these products partially built from the open source fruits of altruistic labor are leveraged in a manner that steals jobs from and deprives of livelihoods the very people responsible for writing and freely sharing that code in the first place.
That’s not how copyright law works. A GPL challenge would fundamentally be a copyright challenge, and if you can’t clearly show what you claim was copied, and it’s significant enough and distinct enough to survive fair use analysis, you’ll just be wasting the court’s time. Indeed, if things worked that way you want it to, a lot of major open source projects would themselves be at risk, as there are both enough common idioms in software programming as well as natural ways to do specific things in specific languages and platforms, that it would be too easy otherwise to claim that some code in the the projects copied something else. Fortunately, the Oracle/Google Java libraries case places a high bar in the U.S. for what you have to prove to get a court to agree that code was not only copied but that it was significant and distinct enough to matter.
Mitchell Hashimoto is such an amazing and charismatic person; I loved his enthusiasm for technology. The combination of you three was perfect and I laughed several times.
I am sure there will be other ports, the primary project is libghostty, the front-end can change. Think of it as mpv: you can create different front-ends for the same underlying library.
Ghostty having it as a stated goal to feel native and then completely failing to deliver that on everything that isn't Gnome really highlights the big problem with client-side decorations (and libadwaita).
we have to stop with these lame things where codefluencers hype up every new thing and everything else is all of a sudden bad. Ghostty is like a very slight improvement in terminal emulation that 99% of people wouldnt even fucking notice. Zig is popular right now but its not the best tool for most people in most jobs so few people will use it anyway. also clapping for someone not using reddit and then talking about twitter is a hilarious meme. They're both terrible platforms
Idk if I’d categorize billionaire hashimoto as a “codefluencer”. I also strongly disagree with ghostty being a slight improvement. I was in the beta and even then it was MUCH more stable, bug free, and performant than kitty, Wezterm, foot etc
Sticking around for when he's at it long enough and realizes the only "edgy" option left is to go back to standard Java or PHP with a claim of "tried and true is best" or something. Of course using nvim. 🙄
code influencers don't really have that much influence. it's mostly new developers that don't have jobs and too much time on their hands. if i had to bet on zig getting mass adoption i wouldn't. the main reason rust got adoption was because it aimed to solve a very specific problem and is very radical in that. these "swiss army knife" languages are never successful. if it was that simple then the most popular languages in the world would not be the most popular.
@@ferociousjuggler2668 Such a great way to put it. I love it when people unironically have a strong dislike for Go because "it just lets them work" like what? Like I could understand if you wanted to learn about something specific and the language abstracted a lot of the steps needed to understand said concept, but if it's to make money then it literally is the best thing ever lmao
21:00 freedesktop and Linus can cut and say DO IT. Wayland 15 years old project can implement that. Yes, people will cry and use system-v in 2025 but it is doable.
I was out of job for over a year, could not find any, and one of my biggest gripes was feeling uselessness. Even doing some personal projects did not quite solved it. By chance there was an opensource project I now support and that filled a big gap for me. After that I were almost upset when found a new job :) So no, I do believe most people (not everyone, but most) will still want to find something to work on even if UBI will becomes a thing.
Learn a language that has a considerable amount of freelance jobs and become independent (PHP is good for that). Or just learn something different, demand for programmers will decrease yearly.
26:40 as crazy as it sounds that's partly why i enjoy rust a lot. i enjoy the process of it. it drives me crazy when i see very unstructured and imprecise code. it makes me more productive too because i think that way in general. following the step by step process and thinking more logically than creatively.
Even opt out would be fine, so long as there's some standard behavior for application portability. I will probably be forever bitter about Wayland due to how terribly it's evolved over the years with basic features getting rejected time and time again because it didn't fit someone's idealistic vision.
People love to hate. Hating ghostty and Zig has become fashionable at this point. Everybody wants to show how NOT on the bandwagon they are by hating on software that no one is asking them to use.
Ghostty has got to be the most over hyped mediocre software product ever released. It’s so mid lol. Tech influencers are pushing it like Raid Shadow Legends.
Ghostty will do for terminals what retroarch did for emulation. You don't understand it now. likely never will, but the fact that it's boring is easily the best thing about it.
True It's definitely mediocre. Idk why the colors and fonts look much more better in kitty and I am satisfied with kitty. So I'll not be moving to Ghostty.
Feel like you guys should make a dedicated channel for this type content and just post a community post to get the word out there. keep all the old episodes up on this channel, but make a playlist where people can find all the episodes.
@@ThePrimeTimeagen I meant a playlist that the new channel would hold, unless you can pin other accounts playlists as your own. but basically the same thing Epic Rap Battles did when moving away from posting on one of the co-creators channel.
dynamic dispatch be like "let's use the whole computing paradigm to solve this little code cleanliness problem". Zig comptime be like "let's use the whole computing paradigm to solve this little code cleanliness problem .... but let's do it in build time".
Can someone explain to me why another terminal? I’ve just installed it but didn’t get the point of it yet. I’m on Linux. I don’t see any special features except that it’s cross platform
What an awesome interview! So many takeaways! Also, I understand why people are frustrated with Prime abandoning Rust, but save that comment for some other video. This is great content.
Oh, and to be clear. I don't think Prime is disingenious with leaving Rust, I understand completely where he is coming from and I think Mitchell really drives it home why people might want to do (Zig, Jai, Odin) instead of Rust. For some, Rust gives joy. For others not so much.
"fishing is just better than farming". These are two very different things with very different goals. You're not comparing zig and c or whatever, youre comparing zig with a very very high level language, it's just a weird comparison
@@christophernoneya4635 exactly, if the comparison is in the networking domain, do we have a lot of real-world examples of a real-service or real network software written in zig? I am not the biggest go fan I'm a C programmer primarily and do C++ at my work but for networking I don't see why zig would be better in terms of productivity, code readability, "enjoyment", or anything with zig I don't even see them as the same class of language. It'd be like comparing C to Php they're like two different languages meant for totally different things. Like yeah sure I could write a web server in C or C++ if I wanted to but why would I do that? Does it really matter if your main bottleneck is ping delay 😂😂 it all depends on what you're trying to do.
@@christophernoneya4635 I've been writing Go for about 3 years now almost and I've got a few complaints with it, it does enforce a certain style which I hate, it has Gc, etc, but if you follow the guidelines and write dumb simple code you can get a lot done in it and I've never had a problem where there was no library to do x that I wanted I always found something to solve my problem in Go can't say the same about any other language. Plus, you can use go by itself with only the standard library and do a lot you don't even need to install third-party code. Why would I overcomplicate my life with C or Zig if all I want is a dumb simple web site or some server that barely does any computing (or not to the level where you'd want to manage memory yourself for example or want precise control over your output asm) ?
you and teej should do a cheap greenscreen series where you read out feature requests in a snowstorm or in a desert when you're dying of dehydration or at a rock concert or on the titanic or inside the oceangate sub
I appreciate Mitchell & Prime's pragmatism, but for me most of the joy I get from coding is being able to reuse something. FP style composition is useful and exciting for me. I would be more excited to learn Rust over Zig for that reason (though, Ocaml and Haskell are more even more appealing). Being able to say "X lets me do what I want, it's fun for me, and I used it to build cool thing Y" is a based take. Some day I hope I can say that I built cool thing Y with Ocaml or Haskell. I just need to go back to school and get a PHD first.
Regarding the Copilot pause I was on a long flight last week and there was no wifi so I took the chance to see how I'd do without Copilot by writing a simple game and it was actually not that bad. It felt akin to switching keyboard layouts (that you are already familiar with) and took about 15 mins to overcome. Granted I'm not 100% familiar with the syntax of Zig as well as the stdlib but a quick peek into the source with peek definition was all it took to get around the language.
20:39 I'm no expert but I'm pretty sure I saw some videos saying the Wayland protocol, which every Linux Desktop has migrated to, doesn't allow global key press capture by default.
Hmm, I don't know if or to what extent that's true, but if it is then there are surely caveats/exceptions. For example, changing desktops and triggering the launcher via key combos while in an application works seamlessly on Sway. No action to move focus away from the current application is required.
@@apatterndarkly Yeah it is true, but not for the compositor itself of course, it's for the applications. In wayland there's no way a program can listen to keystrokes outside of themselves like it could in X11 or any other environment (MacOS, Windows). But this is not about keybinds for the compositor (UI, window manager, desktop environment).
I'm a seasoned engineer and I used CodeWhisperer for 6 months in 2023 and I felt like it was progressively making me disabled. I don't know if it's like this for everyone, but my memory got worse, my already formed habits degraded and I started depending on it for things I did not want to. So for me it wasn't even that suggestions were incorrect - yes they often were - but writing software has more to it than just fixing autocompleted snippets. I used ZERO autocomplete in 2024 and feel I'm way ahead of my version in alternate universe who has.
Awesome episode. Kept waiting for them to ask about his shirt. Don't know if that is like a tech-bro shirt where the collar dips down and forms a v-neck 🤯?
Everyone dreams about eliminating the ground works, and just build on top But those never involved in the ground works never build anything on top So periodically someone comes along and says "hey let's rebuild all these attempts from the ground up"
IDK Go is pretty freaking awesome! I've been able to make things that have amazing performance but do things I thought only possible in python( at least easily done) Does Zig really have a bunch of really well thought out packages and libraries that allow building stuff? Not just coding masturbation admiring the syntax or semantics? Hopefully I make sense to people. I'm new to Go too but so far I've been REALLY impressed with it.
zig and go fill in different niches. Go is a python replacement. Zig is a C replacement. Stop saying "X is better than X", really the only thing you need to be worried about is "what is the best tool for the job?" Also, "what is being used in the real world right now?"
Hello, RUclips commenters, you’re the reason I usually watch this on another platform. Some of these comments make me want to cry. So many bad takes. L
Companies need to have PM's and product owners not just define the product for engineering, but explain the use cases and reasons for the solutions they are proposing. Engineers can *sometimes* be intelligent and find a better solution to the real problem.
Sr management is constant damage control. On the other end the positive is you can set up a great environment for programmers to do great things that counters some of that
Ghostty is super overhyped though. It doesn’t feel “native” on anything other than GNOME only if you use libadwaita apps (which by the way means it doesn’t respect ANY theming AT ALL). It look like trash in KDE or any other QT based system, but again refuses to be styled because libadwaita means that the style is baked into the binary. It also takes like seconds to open up on an i7 13700k, nvme and 32gb ddr4. Opposed to Konsole the built in KDE terminal which takes like half a second max.
@@attentioncestpaslegal7847 GTK is still by a large majority the most popular DE framework on linux. You can disable adwaita like I said then its just GTK that doesnt use any gnome specific features
@@brice.rhodes you can disable adwaita but you cannot disable libadwaita. adwaita is just a theme but libadwaita is a component library that is baked into applications themselves. It cannot be styled because the colors and symbols etc are literally stuffed into the binary not pulled from a theme so Ghostty just doesn’t use your gtk theme at all
It’s kinda funny. The reason the world runs on C is because Unix was written in C. Writing Unix in C was VERY MUCH NOT an obvious choice. The reason Unix is written in C is because it was, basically, the Zig of its day: new, small, fast, and fixed a lot of the bloat problems of the mainstream languages. Not a “good” language per se, but like JavaScript it got the things the devs wanted right and didn’t give you shit about things you really didn’t want to care about: e.g. compile-time proofs and complex types
I'm currently on the lookout for another low level language. I mostly use Rust but sometimes its hard to get non Rust libraries to work, maybe skill issue idk. Anyway, I dont really want to learn C or C++ rn because I dont like the syntax, which is why I cant wait for Carbon. Is there any other option besides Zig, preferably without a lot of explicit memory management? Edit: I found a github threat showcasing new llls like crystal or ODIN and I liked: Alumina, Beef, Cspydr and V. Will watch those in the future
why kid? lmao. prime never mastered rust, i cant say someone that cant create websocket using very high level library is rust programmer, same as someone that know how to pass pointer around in c++ but they dont know multithreading in c++ and the safe practices, you cant call them they mastered c++. we rust programmer that actually mastered rust already experienced the easy and strong rust safety is, saving so much time from debugging hell, producing production ready high quality easily. only moron brain kid that worship an entertainment like a ghospel. prime himself said stop listening to tech influencers in his old video 🤣🤣🤣
Today's talk with Mitchell Hashimoto - we cover his career, experiences writing open source software professionally and as a passion project, as well as his thoughts after writing a lot of zig for Ghostty. We really hope you enjoy the episode!
0:00 - Intro
0:52 - CTO to Open Source
7:00 - Graphite Ad
8:10 - Future Of Ghostty
21:30 - How It Started
25:29 - Zig vs Rust
29:53 - Go’s Place In The Stack
34:28 - Managing Open Source
42:42 - Motivation
45:49 - AI
52:21 - Live Q&A
Thanks to our sponsor, Graphite! Check them out for stacked pull requests, assisted PR review and more! gt.dev/topshelf
now zig is the new cool thing?
When they Zig I zag
zig is now the current thing on the prime programming industrial complex
Yes. For the next 6 months every other language is terrible.
Naa
Zig has been cool for a while now
I never wrote Zig, Rust, or Go and I'm having a great time through the entire talk
I'm glad you wrote this comment even if you never wrote any of those languages
Brother I’ve probably written less than 1,000 lines of code, ever. I’m subbed and actively watch like 10 programming and compsci channels and I don’t even do it lol
Me too. It's funny to see those Rust fan boys angry as if Rust were a religion.
@ idk, I didn't really much of that at all. I'm not an anti-fanboy kind of guy, people like whatever they like
I used to love Prime's takes on programming languages. It all just feels like content farming now. I don't see the need to put down Go or Rust just to talk about Zig or vice versa.
We're simply confusing junior devs who don't know any better on what to focus on by constantly picking and pushing a new "favorite language" every 6 months.
Pick whatever you think works best for whatever you're trying to get done.
It's funny because nobody in the industry talks about languages or tech in general like they do. It's not even the matter of using the right tool for the job, although it's that too. Nobody with any experience has these abstract debates about languages or tools that they use or would prefer to use, for that matter.
I think most of us professionals don't want to use zig, but he's most definitely targeting new viewers and languages that can better pin-down those algorithms. I actually only listen to him in the background because he's one of the few tubers that actually does programming correctly without being boring as h311. Personally I'd like to see him dig into LLVM/clang, the GCC compiler, and A.I. compilers/engines/modeling. But that would be too deep for most programmers.
Here's the issue: C is almost a perfect language, but compile time 'metaprogramming' support consists of basically the preprocessor which is capable of a lot but even in the case where it is capable of something it's very cryptic.
C++'s 'solution' to C's limits works ok for some things like simple classes but added a bunch of confusing semantics for templates etc.
Languages like zig are a step in the right direction but I think Nelua is even easier to do metaprogramming in.
Of course you could hypothetically modify any language with compiler plugins but having the compiler toolchain, parser, AST etc. be more easily accessible from within something like lua or the language itself (such as zig) is the key.
Content farming is literally the business model, and this is pretty high-quality content. I think you may misunderstand the reasoning behind those switches, or maybe I do, but it isn’t really out of nowhere.
@@aarholodian “nobody with any experience” 😂 You made me laugh, good one. You ARE trolling, right?
very strong ad i actually watched it. good job dudes
Agreed. Now I'm curious how long it will take for it to be suggested in our office.
@@Rakstawr You suggest it. You become the leader
A trait in Rust doesn’t necessarily mean dynamic dispatching.
It’s not even the default behavior. You have to opt into dynamic dispatch with the dyn keyword.
Sure, but it feels dynamic. The example they gave was using an editor's "Go to definition" feature and getting multiple results.
Exactly. Rust monomorphizes generic types to perform static dispatch. You have to explicitly opt in to dynamic dispatch by using trait objects.
The JavaScript web bros acting like they have degrees in compilers and language design always colors me pink. It’s great entertainment.
@@codeman99-dev This part of the podcast is strange. Yes, it sucks if you want to find a specific trait and get like 20 that match. But it also does suck to have to parse the code of generic Zig functions to figure out what my type needs to implement so that I can pass it to the function. It's not something where I see huge benefits of the Zig approach.
Don't get me wrong, Zig does look cool and I need to dig in a bit more, but this specific thing was a bit unexpected to be pointed out as an advantage of Zig.
54:47 Strong disagreement with this statement "...even if AI autocomplete is right 1 out of 50 times you can just ignore the other 49..."
AI is expensive to run. You either pay for someone else to buy hardware or you buy the hardware yourself.
When IDEs like Eclipse were new to the scene there's no way this statement would have flown. Today is no different. I have workstation level compute, but it gives me correct suggestions just 2% of the time?
Nope Nope Nope. All of my nope.
To me the bigger issue is how do you ensure the one you go with is the 1 correct result out of 50? Maybe you can "just ignore" half of the bad results but the whole premise of LLMs is that the outputs are plausible so once you've narrowed it down to that point it's going to become increasingly hard to choose which ones are wrong. And in reality there's no guarantee that even 1 result in 50 is correct. It's looking for a needle in a haystack made of fake needles and there may or may not be a needle inside it.
Yeah it is hyperbole I think, but you cant argue about AI utility usage
Sifting through every pile of junk code it offers up is just annoying.
I find it so much faster to get a mental grip on what I’m doing and just do it.
@Satook in the long run, same. these tools give a slight boost out of the gates compared to classic search but at some point knowing the ins and outs of what you're doing wins out
I also disagree with this one. If it's that bad it adds a lot of cognitive load. It's the reason I turned off AI suggestion and instead prompt it when I feel like it might speed up something.
I really enjoyed the video, but Prime, can you please title it with the name of the guest or mentioning this is TopShelf episode that were released, so that it gets more attention and hype when getting to someones feed?
Or use Dearrow
Yes, please. I really want to seperate "Prime reacts to shit on the internet" from the awesome content.
19:44 if that's the definition, then at this moment, any wayland environment in linux has secure entry enabled globally, this is a design limitation of wayland itself (they wanted to make it secure), there isn't currently a way for apps to listen on inputs outside of themselves (that is native to wayland of course).
Pretty sure any app can just read the dev(s) directly unless it’s sandboxed.
@@Satook No, no program can read devices under /dev/input unless the user that executes the program is in the input group or has root permissions.
and under x11 you can use XGrabKeyboard to prevent other applications from receiving input events while you are inputting the password
Loving this podcast! It would be cool if you could get Andrew Kelly (Zig creator) on.
And then the odin creator, or both at the same time and let them talk.
@blubblurb They already did an episode with the Odin creator
@pokefreak2112 Didn't know. Thanks.
Secure entry mode was probably the worst example they could have chosen. Applications cannot listen to keyboard inputs in other applications on Linux on Wayland by default. It has been like this for years and to this day still prevents most applications from being able to have globally available keyboard shortcuts.
Yeah I wasn't sure I understood the feature correctly, but it does sound like what we have by default all the time.
Prime and teej are both on X11 (i3 and AwesomeWM). They wouldnt know this about wayland.😅
the secure input is for macos specifically how is that a bad example
Dude, the ad was amazing.
58:10 - 58:19
this needs to be an animated emote. It needs to. I want it.
100%
i'll be honest i usually skip those ads but that one was actually funny lol
Need more serious programming content like this where serious experts discuss serious industry trends that employed software engineers obviously talk about (they only talk about making a CRUD apps and pointless terminal games). For the next video titles I propose "PoopScript is just better than CSHART", "Grumbo is just better than Mlep", and my favorite, "A slice of tangerine is just better than the color blue"
the last one is demonstrably wrong and I'm willing to argue about it
Great timing. I just got the zig init program running yesterday. Looking forward to actually building something soon
@20:00 In Wayland by default only the application you currently are can listen to the input, that's why global shortcuts don't work. At least that's how I understand. On mac, every application can listen to input events, unless you activate secure input. That sounds to me like the better approach.
that was specifically for macos
@@brice.rhodes Yes if you are talking about ghostty. What I meant is, Wayland should have been this way around. Offer a feature like SecureInput and otherwise let programs be able to listen to the keyboard inputs. This way, global shortcuts would work.
@@blubblurbor, make the listening for inputs be configurable by the user. Right now, this is something the compositors have to implement in their own protocols.
@ That also sounds like a good idea.
I fucking understand man why zig > go when you want to do stuff that's involve some what low level go doesn't go that far. it starts to sucks. Btw I love Golang.
I really am looking at the language spec of zig right now and it's super easy to follow. I main go but zig looks like it will be quick and easy
Golang is not a systems programming language (so is not a legit successor language to C).
I put Golang as being closer to Java - but without the JIT overhead, and Golang objects get allocated at life-time fixed positions in memory whereas Java heap objects can be compacted so as to lessen memory fragmentation.
I meant when you already start whatever the fucking project in go by the time you realised you need low level things. You have to rewrite in whatever your fucking system programming languages.
glad you fucking understand
@@kidpudel If he sticks to the same language it's harder to keep making new videos
5:17 hat off, Having worked at various job levels and led a company, I fully understand the importance of recognizing and accepting the trade-offs between financial gain and status. Admitting this is a significant achievement. I have been following Mitchell since the Ruby days, and these statements are as impressive as all his past achievements and contributions.
I've literally been pondering the implications of LLMs training on GPL licensed code for the past few days, so that bit of discussion was wild to hear. The conclusion I've come to (as a non-lawyer, to be clear) is that training your LLM on GPL code is using GPL code to build [the functional utility of] your product, and therefore your product is beholden to the terms of the license. I have zero faith it'll play out that way in an actual court of law, but to my mind that logic is intact.
Also, it'll be tragically and disgustingly ironic if these products partially built from the open source fruits of altruistic labor are leveraged in a manner that steals jobs from and deprives of livelihoods the very people responsible for writing and freely sharing that code in the first place.
It's highly probable that an LLM one day will spit out the exact name and content of a function from some GPL code.
That’s not how copyright law works. A GPL challenge would fundamentally be a copyright challenge, and if you can’t clearly show what you claim was copied, and it’s significant enough and distinct enough to survive fair use analysis, you’ll just be wasting the court’s time.
Indeed, if things worked that way you want it to, a lot of major open source projects would themselves be at risk, as there are both enough common idioms in software programming as well as natural ways to do specific things in specific languages and platforms, that it would be too easy otherwise to claim that some code in the the projects copied something else.
Fortunately, the Oracle/Google Java libraries case places a high bar in the U.S. for what you have to prove to get a court to agree that code was not only copied but that it was significant and distinct enough to matter.
Mitchell Hashimoto is such an amazing and charismatic person; I loved his enthusiasm for technology. The combination of you three was perfect and I laughed several times.
Dude is a genuine person, it's awesome and refreshing.
The issue with using GTK / Adwaita to render the UI parts of Ghostty on Linux is that it only really looks native on Gnome.
I am sure there will be other ports, the primary project is libghostty, the front-end can change. Think of it as mpv: you can create different front-ends for the same underlying library.
you can disable adwaita, and the large majority of DE on linux use GTK so it looks native beyond gnome
gtk-adwaita = false
gtk-titlebar = false
gtk-wide-tabs = false
window-theme = system
gtk-tabs-location = hidden
Ghostty having it as a stated goal to feel native and then completely failing to deliver that on everything that isn't Gnome really highlights the big problem with client-side decorations (and libadwaita).
Great macOS terminal, mediocre Linux terminal at best.
it's still fast af, tho as the backend is meant to be pluggable, anyone can go and make a qt front-end or with any other UI toolkit for that matter
@@XDjUanZInHO is it faster than all other terminals?
@@noomade It is the slowest to open that's for sure
@@LucasAndradeX interestings. I am not on a Mac. Was just wondering, because of all the noise around it.
we have to stop with these lame things where codefluencers hype up every new thing and everything else is all of a sudden bad. Ghostty is like a very slight improvement in terminal emulation that 99% of people wouldnt even fucking notice. Zig is popular right now but its not the best tool for most people in most jobs so few people will use it anyway.
also clapping for someone not using reddit and then talking about twitter is a hilarious meme. They're both terrible platforms
Idk if I’d categorize billionaire hashimoto as a “codefluencer”. I also strongly disagree with ghostty being a slight improvement. I was in the beta and even then it was MUCH more stable, bug free, and performant than kitty, Wezterm, foot etc
Sticking around for when he's at it long enough and realizes the only "edgy" option left is to go back to standard Java or PHP with a claim of "tried and true is best" or something.
Of course using nvim. 🙄
How do you want these suckers to get money ? They need to hype things up otherwise no money in the bank.
code influencers don't really have that much influence. it's mostly new developers that don't have jobs and too much time on their hands. if i had to bet on zig getting mass adoption i wouldn't. the main reason rust got adoption was because it aimed to solve a very specific problem and is very radical in that. these "swiss army knife" languages are never successful. if it was that simple then the most popular languages in the world would not be the most popular.
Well prime had this choosing a language talk
Go is boring but it works perfectly for small to big teams for backend services.
Boring for generating content, amazing for generating revenue
@@ferociousjuggler2668 Such a great way to put it. I love it when people unironically have a strong dislike for Go because "it just lets them work" like what? Like I could understand if you wanted to learn about something specific and the language abstracted a lot of the steps needed to understand said concept, but if it's to make money then it literally is the best thing ever lmao
@@ferociousjuggler2668 Very well said
> "It's just so fRUSTrating ..."
The door is over there
Does this weak pun mean that the Rust hype cycle is on the downslope now?
😂@@TheSulross
Zig is the Zag she told you not to worry about
21:00
freedesktop and Linus can cut and say DO IT. Wayland 15 years old project can implement that.
Yes, people will cry and use system-v in 2025 but it is doable.
Has anybody ever thought man my terminal is too slow?
Yes
No
yes. hope you ain't a windows terminal user.
Yes
Yeah, gvim is somehow noticeably more responsive than vim in my terminal both in powershell and zsh in WSL. Not sure if that’s normal though
I was out of job for over a year, could not find any, and one of my biggest gripes was feeling uselessness. Even doing some personal projects did not quite solved it. By chance there was an opensource project I now support and that filled a big gap for me. After that I were almost upset when found a new job :) So no, I do believe most people (not everyone, but most) will still want to find something to work on even if UBI will becomes a thing.
Learn a language that has a considerable amount of freelance jobs and become independent (PHP is good for that). Or just learn something different, demand for programmers will decrease yearly.
This is a factual statement. It's an actual research concluded fact
Zig is basically a golden mean when ya can't choose between Rust and Go
Great discussion! 🙂👍 now I'd like to take a look at Zig...
26:40 as crazy as it sounds that's partly why i enjoy rust a lot. i enjoy the process of it. it drives me crazy when i see very unstructured and imprecise code. it makes me more productive too because i think that way in general. following the step by step process and thinking more logically than creatively.
20:00 wayland should have had such feature opt in so there wouldn't be problem with global shortcuts
that was specifically for macos
@brice.rhodes i know i was saying it as suggestion
Even opt out would be fine, so long as there's some standard behavior for application portability. I will probably be forever bitter about Wayland due to how terribly it's evolved over the years with basic features getting rejected time and time again because it didn't fit someone's idealistic vision.
Probably the best content I have seen in ages! Zig all the way👊👌
Echo chamber keeps echoing and chambering
People love to hate. Hating ghostty and Zig has become fashionable at this point. Everybody wants to show how NOT on the bandwagon they are by hating on software that no one is asking them to use.
@@ForeverZer0 Those people don’t get it, they may never, and they can wallow in their own mental filth for all I care.
@ well I could tell ya the same about Rust. Or C++. Or CMake. Or …
What’s clearly lacking is recognition of biases and fair assessment.
And echoing
Cope and seethe
This episode was great, by far my favorite so far in the series.
Ghostty has got to be the most over hyped mediocre software product ever released. It’s so mid lol. Tech influencers are pushing it like Raid Shadow Legends.
It's free software. No one is saying it's the best everyone is hyped because the author has previously delivered incredible OSS work
over hyped sure,
mediocre nope
Ghostty will do for terminals what retroarch did for emulation. You don't understand it now. likely never will, but the fact that it's boring is easily the best thing about it.
in your opinion what is better then? I downloaded ghostty and it is really good. it is high quality by default.
True It's definitely mediocre. Idk why the colors and fonts look much more better in kitty and I am satisfied with kitty. So I'll not be moving to Ghostty.
Feel like you guys should make a dedicated channel for this type content and just post a community post to get the word out there. keep all the old episodes up on this channel, but make a playlist where people can find all the episodes.
There is a playlist
@@ThePrimeTimeagen I meant a playlist that the new channel would hold, unless you can pin other accounts playlists as your own.
but basically the same thing Epic Rap Battles did when moving away from posting on one of the co-creators channel.
dynamic dispatch be like "let's use the whole computing paradigm to solve this little code cleanliness problem". Zig comptime be like "let's use the whole computing paradigm to solve this little code cleanliness problem .... but let's do it in build time".
Can someone explain to me why another terminal? I’ve just installed it but didn’t get the point of it yet. I’m on Linux. I don’t see any special features except that it’s cross platform
Nice try but nothing beats GOATlang when writing rock solid production grade web apis
Crave those minerals
What an awesome interview! So many takeaways!
Also, I understand why people are frustrated with Prime abandoning Rust, but save that comment for some other video. This is great content.
Oh, and to be clear. I don't think Prime is disingenious with leaving Rust, I understand completely where he is coming from and I think Mitchell really drives it home why people might want to do (Zig, Jai, Odin) instead of Rust. For some, Rust gives joy. For others not so much.
lol statements like "Zig is just better than go" are horribly misleading
"fishing is just better than farming". These are two very different things with very different goals. You're not comparing zig and c or whatever, youre comparing zig with a very very high level language, it's just a weird comparison
its clickbaity, if you base your opinions on a video exclusively from the title that's concerning behaviour
@@christophernoneya4635 exactly, if the comparison is in the networking domain, do we have a lot of real-world examples of a real-service or real network software written in zig? I am not the biggest go fan I'm a C programmer primarily and do C++ at my work but for networking I don't see why zig would be better in terms of productivity, code readability, "enjoyment", or anything with zig I don't even see them as the same class of language. It'd be like comparing C to Php they're like two different languages meant for totally different things. Like yeah sure I could write a web server in C or C++ if I wanted to but why would I do that? Does it really matter if your main bottleneck is ping delay 😂😂 it all depends on what you're trying to do.
@@christophernoneya4635 I've been writing Go for about 3 years now almost and I've got a few complaints with it, it does enforce a certain style which I hate, it has Gc, etc, but if you follow the guidelines and write dumb simple code you can get a lot done in it and I've never had a problem where there was no library to do x that I wanted I always found something to solve my problem in Go can't say the same about any other language. Plus, you can use go by itself with only the standard library and do a lot you don't even need to install third-party code. Why would I overcomplicate my life with C or Zig if all I want is a dumb simple web site or some server that barely does any computing (or not to the level where you'd want to manage memory yourself for example or want precise control over your output asm) ?
I use Dearrow
next year: zig sucks
2026 odin better than zig
you and teej should do a cheap greenscreen series where you read out feature requests in a snowstorm or in a desert when you're dying of dehydration or at a rock concert or on the titanic or inside the oceangate sub
Great ad read boys, Graphite is straight dope.
once you reach based programmer level, "i write it in X because i have fun" is all you need
I appreciate Mitchell & Prime's pragmatism, but for me most of the joy I get from coding is being able to reuse something. FP style composition is useful and exciting for me. I would be more excited to learn Rust over Zig for that reason (though, Ocaml and Haskell are more even more appealing). Being able to say "X lets me do what I want, it's fun for me, and I used it to build cool thing Y" is a based take.
Some day I hope I can say that I built cool thing Y with Ocaml or Haskell. I just need to go back to school and get a PHD first.
Nobody is going to pull me out from Alacritty, ballz deep loyalty till the end.
Friendship broken with Go
Now Zig is my new best friend
I need to go to sleep
No!
ghostty is going to scare you with it's speed
hell no!
You need to Go(lang) to sleep
Take meth and refuse to use git. Works out great. function(🥔)
That career growth is impressive
aaaactually with TJ looks like going to be the new best meme in my surrounding
for reference the title was "HashiMoto" at first pthis video published
Thanks I’ve always remembered this video as having that title (for the first hour it was up) and I was confused when I couldn’t find it anymore
I use Dearrow.
The video thumbnail is peak.
Good job with the layout of the speaker panels 👍🏾
Super excited for this 🎉 his work record is phenomenal
The penguin in the office is a great analogy
I skipped the sponsor part. Fight me.
The comments about PMs (15 mins in) is spot on. They have to apply their “taste” to the feature request.
People in 2025 still asking for pineapple pizza when we're already in the kiwi bacon pizza arc.
Regarding the Copilot pause I was on a long flight last week and there was no wifi so I took the chance to see how I'd do without Copilot by writing a simple game and it was actually not that bad. It felt akin to switching keyboard layouts (that you are already familiar with) and took about 15 mins to overcome. Granted I'm not 100% familiar with the syntax of Zig as well as the stdlib but a quick peek into the source with peek definition was all it took to get around the language.
3:11 man I understood this question so deeply
why not elixir?? for 2025?
Cause it can't handle multiple requests at once.
@@henrik908 what?
@@hamm8934 yeah it can't do multi-threading.
@@henrik908 are you being serious? lol
@@hamm8934 sarcasm
20:39 I'm no expert but I'm pretty sure I saw some videos saying the Wayland protocol, which every Linux Desktop has migrated to, doesn't allow global key press capture by default.
Hmm, I don't know if or to what extent that's true, but if it is then there are surely caveats/exceptions. For example, changing desktops and triggering the launcher via key combos while in an application works seamlessly on Sway. No action to move focus away from the current application is required.
@@apatterndarkly Yeah it is true, but not for the compositor itself of course, it's for the applications. In wayland there's no way a program can listen to keystrokes outside of themselves like it could in X11 or any other environment (MacOS, Windows). But this is not about keybinds for the compositor (UI, window manager, desktop environment).
that secure input was specifically about macos
I’ll just stick with Go. Thanks.
On Hashis take on copilot, well I feel like you have to be good first then use copilot. Then you can even notice when its wrong.
I'm a seasoned engineer and I used CodeWhisperer for 6 months in 2023 and I felt like it was progressively making me disabled. I don't know if it's like this for everyone, but my memory got worse, my already formed habits degraded and I started depending on it for things I did not want to. So for me it wasn't even that suggestions were incorrect - yes they often were - but writing software has more to it than just fixing autocompleted snippets. I used ZERO autocomplete in 2024 and feel I'm way ahead of my version in alternate universe who has.
wow I came in to learn about Ghostty but I'm enjoying the vibes! Mitchell Hashimoto seems like a pretty cool dude
what's the use case for go?
i think web apis right?
Awesome episode. Kept waiting for them to ask about his shirt. Don't know if that is like a tech-bro shirt where the collar dips down and forms a v-neck 🤯?
Everyone dreams about eliminating the ground works, and just build on top
But those never involved in the ground works never build anything on top
So periodically someone comes along and says "hey let's rebuild all these attempts from the ground up"
casually mentions “you know how when you throw yourself off a cliff…” lmao
They forgot the ask about the imminent license change.
Ok that Reddit idea is just phenomenal
What is the future of multi-cloud or is there vendor lock-in in the nearest future?
Im sticking with go
Mitchell Hashimoto how do you use copilot inside vim? Or maybe you have switched to neovim or vscode?
Different font sizes is one of the reasons I use Emacs
IDK Go is pretty freaking awesome! I've been able to make things that have amazing performance but do things I thought only possible in python( at least easily done) Does Zig really have a bunch of really well thought out packages and libraries that allow building stuff? Not just coding masturbation admiring the syntax or semantics? Hopefully I make sense to people. I'm new to Go too but so far I've been REALLY impressed with it.
Yes the standard libraries are at least as important as the language itself.
@@blubblurbsince when zig has http lib in std lib 😂
@ I have no clue about Zig.
zig and go fill in different niches. Go is a python replacement. Zig is a C replacement. Stop saying "X is better than X", really the only thing you need to be worried about is "what is the best tool for the job?" Also, "what is being used in the real world right now?"
These kinds of cheap, clickbait titles are cringe. Great conversation, though.
Look at Dearrow
Hello, RUclips commenters, you’re the reason I usually watch this on another platform. Some of these comments make me want to cry. So many bad takes. L
Companies need to have PM's and product owners not just define the product for engineering, but explain the use cases and reasons for the solutions they are proposing. Engineers can *sometimes* be intelligent and find a better solution to the real problem.
best graphite ad.. ever. :P
Sr management is constant damage control. On the other end the positive is you can set up a great environment for programmers to do great things that counters some of that
I watched the entire sponsor ad for the first time XD
Ghostty is super overhyped though. It doesn’t feel “native” on anything other than GNOME only if you use libadwaita apps (which by the way means it doesn’t respect ANY theming AT ALL). It look like trash in KDE or any other QT based system, but again refuses to be styled because libadwaita means that the style is baked into the binary. It also takes like seconds to open up on an i7 13700k, nvme and 32gb ddr4. Opposed to Konsole the built in KDE terminal which takes like half a second max.
you can disable adwaita
It's a native macOS app + native for the Gnome desktop that Hashimoto uses in his NixOS VM.
@@attentioncestpaslegal7847 GTK is still by a large majority the most popular DE framework on linux. You can disable adwaita like I said then its just GTK that doesnt use any gnome specific features
@@brice.rhodes you can disable adwaita but you cannot disable libadwaita. adwaita is just a theme but libadwaita is a component library that is baked into applications themselves. It cannot be styled because the colors and symbols etc are literally stuffed into the binary not pulled from a theme so Ghostty just doesn’t use your gtk theme at all
@@attentioncestpaslegal7847 yeah I mean that’s fine and all but why use that over a terminal that’s “native” on all DE instead of just gnome.
we're almost there people
It’s kinda funny. The reason the world runs on C is because Unix was written in C.
Writing Unix in C was VERY MUCH NOT an obvious choice. The reason Unix is written in C is because it was, basically, the Zig of its day: new, small, fast, and fixed a lot of the bloat problems of the mainstream languages.
Not a “good” language per se, but like JavaScript it got the things the devs wanted right and didn’t give you shit about things you really didn’t want to care about: e.g. compile-time proofs and complex types
Whether you like it or not, 2025 is the Year of Zig. Period.
I wanted to click the Graphite link because I'm lazy but it wasn't in the description as is was promised...
How feasible would it be to make Ghostty feel native on KDE Plasma (Qt environments in general)?
Ziggo is a internet provider in the Netherlands.
This is the problem when programming is your God!
I'm currently on the lookout for another low level language. I mostly use Rust but sometimes its hard to get non Rust libraries to work, maybe skill issue idk. Anyway, I dont really want to learn C or C++ rn because I dont like the syntax, which is why I cant wait for Carbon. Is there any other option besides Zig, preferably without a lot of explicit memory management?
Edit: I found a github threat showcasing new llls like crystal or ODIN and I liked: Alumina, Beef, Cspydr and V. Will watch those in the future
foot > ghostty
based
Prime in shambles on the server question on Go
Im learning zig now cause i need to build something unique
RIP to all those that learned Rust because prime said so
why kid? lmao. prime never mastered rust, i cant say someone that cant create websocket using very high level library is rust programmer, same as someone that know how to pass pointer around in c++ but they dont know multithreading in c++ and the safe practices, you cant call them they mastered c++. we rust programmer that actually mastered rust already experienced the easy and strong rust safety is, saving so much time from debugging hell, producing production ready high quality easily. only moron brain kid that worship an entertainment like a ghospel. prime himself said stop listening to tech influencers in his old video 🤣🤣🤣
Primer is a fr4ud