Youtube comments of (@pierreollivier1).

  1. 322
  2. Zig is definitely an amazing language, but there is so much you should have mentioned, maybe in another video, because as a C developer, Zig is really everything I wish C was. 1 - It's simple and easy to use. 2 - I'ts the most refactorable language (meaning you don't have to jump in 30 files fixing headers and function prototypes. 3 - Comptime is capturing 90% of the power of C++ templates/Macros, while still being very readable and type safe. 4 - The build system is insanely good, I replaced make/cmake with Zig, and with Zig itself it's really amazing. 5 - Zig found the right balance of freedom, meaning you can do exactly what you are doing in C (aka crazy casting and weird stuff unlike Rust) but at the same time the language design makes it very inconvenient and verbose to do so. Which makes it actually easier to just to the right thing and not take any shortcuts. So for once the Type system is actually one that doesn't deceive you because of how loose it is like C or how tight it is like Rust. 6 - Allocators are first class citizen. Even the Std is build around that which is amazing. I really don't get how a manual memory managed language like C didn't come with some form of interface for allocators. 7 - The interops with C is the most natural, intuitive, and straightforward that I've ever seen. You literally just add an @cImport("header.h"); and a exe.addCsourceFile("") in your build.zig and you are good to go. 8 - Zig also has integrated unit testing, which makes it so easier and cheaper to test code. In C I would literally spend 30 minutes writing some code and one hour testing it properly. In Zig you write a function write 2/3 tests forget about it and just do a quick zig build test and you are good to go. Which is also why it's so easy to refactor Zig btw. 9 - No hidden memory allocation, no hidden control flow, everything you read is everything you get, you don't have to guess whether this functions aborts, returns -1 or 0, or whether it sets ernno. 10 - The error handling and all the builting safety features makes it so much easier to write fast and correct code. I could go on an on but TLDR if you are a C developer you should definitely try Zig as I'm sure it's going to be the real C replacement. In System level programming.
    262
  3. 89
  4. 56
  5. 44
  6. 33
  7. 26
  8. 25
  9. 25
  10. 24
  11. 23
  12. 21
  13. 19
  14. 17
  15. 16
  16. 16
  17. 15
  18. 14
  19. 14
  20. 12
  21. 12
  22. 11
  23. 10
  24. 10
  25. 10
  26.  @dmdjt  Be careful, with all that logic, the "Skill issues" folks are going to come here and say that C++ is perfect and easy and that the sole reason why you want another language is because of "Skill issues". When in reality C++ is the absolute worst programming language in existence (in terms of design). It's so bad, that it's a text book example for pl designer of what not to do. I think the reason so many people are fighting tooth and nails to defend C++ is because of all those years they have invested in learning things that are not transferable to other language. Programming is already hard, but on top of that when you master C++ there is not much you can transfer to another language. Because debugging C++ is 20% debugging your logic, 80% debugging your language knowledge. That's unlike any other language out there. This is an undeniable proof of poor design, if C++ was correctly designed you would spend most of your time debugging logical errors, but no instead you have to remember that this overload, does this but this one is slightly different, oh and this is not a function but actually a macro, and this template will produce this type, but not if it's a reference, or a universal reference, and the forwarding doesn't work if you do that, which means this template 20 function down the road, uses this overload instead of this one, but now because of the casting rules you get this instead of that, how but this lambda is actually doing that instead of this. It's just an incredible mess, where you are constantly triggering UB if you are not careful, where Error handling is really hard to achieve, and where all the "Zero Cost" abstractions actually have a big cost, outside of the iterator, all those smart-pointers aren't cheap in the slightest. And they also have their own quirks and logic that you have to remember and this creates just an exponential amount of cognitive load, but people will still say "skill issue" but I'm sorry if your language requires 20y of experience, before it becomes easily usable, it's a language problem not a skill problem.
    10
  27. 10
  28. 10
  29. 10
  30.  @thomasjohnson2862  i agree with you but both extreme of the same ideas are dumb you can’t say that living in close border is the way to go but you can’t say that we need to welcome 250 millions peoples from North Africa by 2050 both cases aren’t gonna work, but since that discussion is so politically divisive no one is actually trying to figure a way to properly manage those issues. All culture communicate and evolve altogether but the speed at which it used to evolve has been really slow thus inducing next to no conflict between the populations, what you see throughout history is that tensions rises as soon as it’s a short but massive amount of immigrants, bc everything is in the number if every year you have 1 million people from another country joining that’s an enormous amount to process and what you see accros all humans is that we tend to prefer to live with people that look like us, speak like us and have the same values. When there’s too many immigrants they kind of aggregate together and create communities within the national communities and the more they are the less they need the national communities to work, have relationships etc, which lead to a feeling of invasion by the people that were here before and a feeling of exclusion by the communities of immigrants, thus the best way to mitigate that is by having enough immigrants that they have some people to rely and have a sense of community but not too many, so,that they have to rely on the national community which will eventually integrate them and make them more compatible so to speak
    10
  31. 9
  32. 8
  33. 8
  34. 8
  35. 8
  36. 8
  37. 7
  38. 7
  39. 7
  40. 7
  41. 7
  42. 7
  43. 7
  44. 7
  45. 7
  46. 6
  47. 6
  48. 6
  49. 6
  50. 6
  51. 6
  52. 5
  53. 5
  54. 5
  55. 5
  56. 5
  57. 5
  58. 5
  59. 5
  60. 5
  61. 5
  62. 5
  63. 5
  64.  @LeviShawando  Dude you are trying so hard to defend C, this is actually text book example of average C/Cpp dev sunken cost bias. I've worked 8/12 h a day in C for the past year, and while C is an amazingly cool language, the more time you spend writing C the more you realise it's evident flows, thinking that there is an ounce of argument in favour of C is ridiculous when Zig exists, the goal of a programmer is ultimately to write code, who cares that you've built your application in C, Zig, Rust, Javascript for that matter, the end goal of any code is to be good at what it's trying to do, and sorry to break it to you but in the light of what modern programming languages offer to the developer in terms of ease of use, simplicity, effectiveness, correctness, readability, usability. Zig even in it's early pre-production stage is light years away from the average C/cpp experience. To be semi-decent at C I had to watch probably a hundred conferences and videos about C detailing all of it's intricacies, I've read 6 books on C and advance C, I've read countless repo of big C codebase to get a feel of how good software is written in C, I've made my own version of almost all of the C std functions, I've written a C lexer/parser from scratch, a posix compliant C shell, a hand written simd library for some functions of the std, and despite all of that practice (probably around 100k lines rn) I still bang my head on the absolutely terrible ergonomic of the language, this is insufferable to waste so much time fighting the language, between all of the implicit conversion rules that you have to know and carry around when doing basically anything, the keyword semantic changing in regard to the scope, the 80 different type_t that are all typedef of 400 int's variant, the fact that you constantly have to check for NULL which isn't even a thing just a stupid macro for (void*)0, the dogshit std library, the lack of namespace, the shadowing of identifiers, the macro which are just stupid to debug, the terrible linker, and errors that just go un notice unless you use static analysis tools, the 800 compiler flags, the absolutely horrendous build system and overall tooling clunkiness, the lack of portability (despite being the "most portable language" the lack of modern tooling and standards make that "portability" very very very relative, you can only hope there is no #undef, or #define, conflicting with any of you header file or you are screwed.) The fact that enums are just integers, the lack of type safety, the lack of generic, the lack of basically everything. C is awesome to make you a better programmer not because of the fact that it's a low level system programming language, no but because to achieve any meaningful success in writing anything in C you have to go get such a wide array of knowledge and understanding of the whole bloody ecosystem and environment of the system you are working in. It's great for learning but that's it. On the other hand in less than a week I was writting Zig code, using the Zig build system, and thoroughly testing my code because unlike C in Zig they understand that to improve code quality and developer ergonomic, the language most natural way of doing thing has to also be the most correct one, it has to be the path of least resistance otherwise it's not going to be widely use. In zig I write a function and I immediately write a bunch of test because to test any code I just have to do : test "name of the test" { code running a comptime}. I don't have to create separate C files, and fight the build system to integrate nicely with my suit of test, and if mid developement I change my mind on the type of my functions / parameters, I don't have to modify and maintain 50 files just to have some working test, no I just use comptime and type inference to do that for me. There is no more hidden control flow, and implicit garbage conversion rules to remember. Easy 10x on the type safety, Easy 10x in reduce cognitive load, the tooling is already better in some areas than C will ever be, If the code compiles and run I already know it's 99% correct. This is just my opinion after a year of experience, I can't even begin to imagine how badly any C devs want Zig to become a reality. Like if you think C is fun than go try zig, there is no going back C really does pale in comparaison, and again the language is not even finished or production ready and yet it's already 10 times better than C on all fronts. Unless you are doing embedded stuff, or kernel development where zig is not supported yet, honestly there is no excuse to keep using C. edit : I'm comparing C to zig because I happen to write zig, but Those arguments are probably true, for Rust, nim and many other languages that are basically not C or Cpp.
    5
  65. 5
  66. 5
  67. 5
  68. 4
  69. 4
  70. 4
  71. 4
  72. 4
  73. 4
  74. 4
  75. 4
  76. 4
  77. 4
  78. I think this isn't an expression of a lack of education, most people listening to Lex's podcast, have at least some background that allows them to judge. The truth is that people aren't interested in communism. Mainly because we've seen what communism means (and I know right know you are probably thinking that everything called communism so far hasn't been "real" communism), and although theoretically communism is definitely superior on some aspects, it will never be for the simple reason that it doesn't take into account Human nature, the truth is most people don't want to have the same as their neighbors, they don't necessarily want to be dependent on others/state/whoever is giving them their share of the production. Humans are vile creature, they want power, they want to dominate, they want to be better than others. Unfortunately that's fundamentally incompatible with Communism, every attempt will result in the same problematics, overtime as more and more people will be dispossessed arbitrarily by those who have nothing until nobody has anything, than peoples in charge of said dispossession will start to do more and more to keep their power even if that means killing every of their "brothers". Communist are wasting their time on things that aren't possible instead of contributing for things that could actually happens and be beneficial. Now I'm not saying capitalism is perfect because it's not but at least this system acknowledge the fundamental of the human nature, and channels it to the profit of the group. Human selfishness ? no problem in capitalism you are free to do whatever you want with your money, but to get money you either need to work for someone higher up in the hierarchy (aka cooperation), or to create your own business but even then you'd still have to find costumers willing to cooperate with you to buy your product. Human needs for Power and dominance ? well in capitalism outside of the problematic nepotism (which would exist in communism) the only way to achieve power and dominance is still by cooperating with others, you have to be talented, and approved by your peers to become powerful therefore it is still a matter of cooperation. Anyway TL;DR capitalism is imperfect but works ok because at least it takes into account the truth about human nature, whereas communism will always fail because it fails to recognize human nature.
    4
  79. 3
  80. Hard disagree, I think practical experience will always be more impressive to recruiters no matter what field you are in. The reason it's so prevalent in SWE is that we can get experience with only a computer, and because most of the knowledge you need is widely available and not necessarily unattainable. If you wanted to be a self taught doctor or self taught material or civil engineer the reason you would fail as little to do with your lack of a degree and more to do with the fact that you weren't able to get experience at all in that field so you are effectively worthless. This will never be the case in SWE. Everyone can teach themselves how to code, contribute to FOSS or build a good FOSS project and convince a recruiter that they are worth the bet. Sure someone with a degree might be more reassuring, but honestly most people that come straight from university aren't good at code, they may have implemented a lot of basics and you might get them up to speed in a reasonable amount of time. But people who taught themselves how to code and actually have hands on experience with complex problem or projects are much more interesting for recruiters. At least that has been my experience as a self taught, most recruiters were very upfront with the fact that they really appreciated the fact that I was already "operational" in the sense that despite being classified as a "junior" my portfolio was more inline with a mid-level engineer. Because while learning SWE I built tons of things that very few people from a university did. I have a working compiler, I built multiple games, and even built my own engine, I have implemented tons of data structures, did a lot of multithreading, and SIMD code. Built a few other projects like HTTP servers and CLI utilities, and I'm currently writing an x86_64 kernel. I've yet to find a company that I truly want to work for but so far they all made a proposition to hire me despite having no previous professional experience, just solid technical skills, and good people skills. Which everyone is able to learn just like I did by googling and taking online courses. So yeah I don't think the field is going to shift toward hiring only people with a CS degree.
    3
  81. 3
  82. 3
  83. As a Zig longtime user, I've never used it on Windows, but I have to agree with you, on everything except for the memory efficiency, while Rust can like any compiled languages be used to write very memory efficient code, there is often a high skill barrier in front of it, the lack of a stabilized allocator_api certainly doesn't help Rust. From my experience being mainly a C developer, I would say that Zig is a great middle ground for high performance software. Rust can be but sometimes the added time of development and the additional complexity required to prove to the compiler that everything is safe, aren't worth the safety benefits, a lot of software doesn't need to be airtight safe, those who do should obviously try Rust first, but Zig is a good middle ground, as @maledil1 said technically both C and Zig offer the same level of "safety" but from experience I've built a strong opinion that the main reason why C is so problematic is because it lacks a lot of the ergonomics of modern languages, and the tooling certainly doesn't help there too. Zig just like Rust is trying to improve on that by taking a slightly different approach. Rust enforces correctness with a combination of a strong type system, strong static analysis tools, and an airtight semantic that's meant to prevent developers from being able to compile erroneous code. Zig does I would say 50% of that, and the rest requires the developer to be extra explicit which I find to be a great middle ground, because a lot of "unsafe" pattern in Zig are very verbose on purpose to make, it clear to the reader that this code may need more attention. This makes fixing bug so much easier than in C because it's really easy to see block containing tons of cast, and memory access, and it focuses the attention. On top of that they offer a wide array of great tools to help you catch bugs early, the testing framework, the debug allocators that help to catch use after free, double free, the optional semantic, and 99% of C UB are replaced by Zig panics, with stack trace. Technically in C you can enable all of what I've mentioned too, but the point is that this is not a default, and C still relies on UB unless asked otherwise. Plus even with everything enabled the tooling is still inferior and the debug ability is really not good. But I think you are wise to keep on using Rust, it's should definitely be used over C, but as a friendly suggestions you might want to wait a few years and revisit Zig once it's a bit more stable :)
    3
  84. 3
  85. 3
  86. 3
  87. 3
  88.  @ІО-13ГлібШин  Well there are many things that are broken in C for a multitude of good reasons, it's hard to blame them considering when the language was made. But many things are really annoying. The most broken things has to be header inclusion, this can lead to absolute nightmares because things will still compile, due to C relax rules about shadowing/definition. But once you flash it, it just doesn't work and you have to figure it out. On top of that you don't get a lot of visibility on the platform you are working on, on what types look like, because of the poor reflection, in Zig it's trivial to print a type info at comptime, even for weird targets, cross-compilation is a pain, linking is a pain, I mean it's not unusable per say, but you constantly have to keep in mind all of that C doesn't do for you that it should do. It might be counter intuitive but I'd rather have Zig or Rust compiler yell at me for missing something or doing something stupid, rather than C assuming I'm the god of programming and I cannot make any mistakes. There is also a ton of rules to keep in mind with implicit promotion rules, and also how they play with the thousands different typedef. It's also a language where everything is hidden in the compiler. One thing that's really nice in Zig is that I can just goto definition and I can inspect the source code of the std. I don't need to look what version of muslc or glibc I'm linking against, and then go look into their github. Figuring out which 200 #ifndef/#define is enabling which macro/function to understand how is the implementation for my thing. If you had the poor build system, and the poor ecosystem. C is really cool but I think it's time we try to get some better tools, because whether it's Zig or Rust, or any modern option, It honestly can't be worse than C.
    3
  89. 3
  90. 3
  91. 3
  92. ​ @MrZnarffy  Agree by no means, was I trying to imply that C++ is good, hell no. For Rust I'm on the same fence as you. On one hand from my limited experience with rust (probably 20/30k loc). I think it's a great language to rewrite stuff, because when the problem space is solved you can really encode the correctness in Rust, and the compiler will protect you from making a lot of wrong assumptions in the future when working with the code. But despite all of it's features and facilities, I think that the kernel layer isn't well suited for Rust, it's not even about the extensive use of "unsafe" because even in "unsafe" block the compiler still offers better safety features than a C compiler. No the real problem with languages like Rust or C++, is that those language are harder to write kernel code, because the truth is that in a Kernel you need to squeeze every bit of memory, every cache line matter, every cache-miss is a loss. Unfortunately I find it extremely difficult in both Rust and C++ to manage the memory layout to fit the performance requirements of what's possible, grant it I wouldn't call myself a Rust expert, and obviously it's feasible, but the cost/benefit is IMO way to high right now. In languages like C/Zig/ASM, it's really really easy to actually "manage memory" you can exactly layout your memory for it to fit in cache, to be as tight as possible, and not waste ton of space, the current problem is that to achieve that result in C you have to walk on a very fine line were you can easily invoke UB by managing your memory with such precision. This is why I think a language like Zig (or any other language that has a modernized C semantic) is a better fit. Because the real problem with C is that the wobbly semantic and the poor ecosystem makes testing/debugging way harder than it should be. In Zig you have a lot of facilities in the STD and in the semantic that help you catch those bugs early. I think if C devs were given a language that has a very similar semantic but with better tooling, better defaults, better debugging/testing utilities they would easily write safer code, which again makes me really doubt that we will ever see a broader adoption of Rust in the lower layer of the Linux kernel.
    3
  93. 3
  94.  @_Karlsson  I'm curious now, like I can understand that one might not like Zig's syntax depending on your taste and background, I come from C so for me it's very familiar, and intuitive. Now for the ceremony part I've done some Java so I'm very much aware of the "ceremony fatigue" same with C++, I hate C++ for that reason, I'm tired of spending 5 minutes writing the same thing for each class definition. But in zig I really don't have that feeling, like it's not more verbose than C, it's actually less in a lot of ways, and C is well known to be simple. The stuff that's added is usually small and readable. For example in C when you have a complex struct with lots of dynamic memory allocation for the  initialization, you have to eitheir have a :  this->field3 = (field*) malloc(1 * sizeof(field)); if (this->field3 == NULL) { ....free(this->field1) ....free(this->field2) ....free(this) } and the thing gets longer and longer. or you have to use GOTO: label. in zig just :   errdefer allocator.free(this); and this is just a silly example but point being there's actually a lot of conveniences . Zig has done a fantastic job of making correct but hard thing in C trivial in Zig but easy and error prone stuff from C harder in Zig (like type casting for example, const vs var, unused variable or wrong type, exhaustive switch etc) So I would really appreciate if you could provide any example such that I could see if there is something that I'm missing, because I'm not sure where zig is more verbose ?
    3
  95. 3
  96. 3
  97. 3
  98. 3
  99. 2
  100. 2
  101. 2
  102. 2
  103. 2
  104. 2
  105. 2
  106. Great insights! Regarding Zig, I agree with you wholeheartedly. While it's true that at the moment Zig is still evolving, once it solidifies into a stable language, there will be every reason to embrace it fully. Zig truly embodies the spirit of being a "better C." It's not just about its impressive features, but also its underlying philosophy, which aligns closely with what C aimed to be originally. C was designed to provide a higher level of abstraction over assembly language, making it more manageable and easier to understand, while still retaining a close relationship with the underlying hardware. However, over time, C has accumulated its fair share of shortcomings, from poor portability and a cumbersome build system to a lack of type safety and a quirky preprocessor. Despite these flaws, C remains deeply entrenched in many codebases, and expecting it to suddenly evolve into a better language isn't realistic. This is where Zig shines as a compelling alternative. Its simplicity is evident in its explicitness, self-contained nature, and lack of ambiguity. Everything in Zig is clear and straightforward, making it easier to reason about code and catch errors early on. The language offers superior generics, a streamlined build system, and improved error handling, all of which contribute to a more pleasant and productive development experience. Moreover, Zig prioritizes ergonomics, enabling developers to write safe and performant code without the fear of undefined behavior. From custom memory allocators to SIMD support and runtime checks for undefined behavior, Zig empowers developers to write code that is both efficient and reliable. And perhaps most importantly, transitioning from C to Zig feels natural, thanks to its familiar syntax and structure. Finally while Zig may still be on its journey to maturity, its potential as a successor to C is undeniable. With its emphasis on simplicity, safety, and performance, Zig presents a compelling option for developers looking to modernize their codebases without sacrificing familiarity or efficiency. If Zig continues on its current trajectory, it's most certainly going to become the go-to choice for C developers in the years to come.
    2
  107. 2
  108. 2
  109. 2
  110. 2
  111. 2
  112. 2
  113. 2
  114.  @Kuraitou  have they tho ? I hear this all the time that people have been trying to replace C for decades but failed like it was impossible ? All those languages who ""tried"" to replace C where failing from the start. For example Jave could never be a C replacement yet in the early days it was advertised as such, On the other hand nowadays we have in my opinion real contenders, Zig for examples actually feels like a C replacement, as a C developer, Zig makes me feel at home, it's imperative, there is no inheritance, it's lower level than C. Everything feels better in Zig than in C, the type system feels better, the std is light years more useful, the semantic feels more cohesive, the error handling is better, testing code as never been easier, building it too, allocators as first class citizen is awesome, I could go on but all those things considered makes me feel like Zig could be an actual replacement to C, same with Rust, It feels a lot like Cpp, I hate Cpp, but Rust makes it more fun, it's still way too convoluted for my taste but It's a fantastic C++ replacement. So I think the argument of many have tried and they all failed isn't relevant anymore, because now that programming as a whole as evolved people have grown tired of C, myself included, it's a great language but the developer experience is really terrible and outdated, I see that everyday around me the programmers I work with all hate C in one way or another, and none of them use C in their spare time to build toy project, they all use Rust, Zig, Odin, Nim, OCaml and whatnot. I think the question is not about whether any of these languages will replace C, it's more of a when ? because it's pretty obvious that nobody in the industry wants a decade more of C, let alone another 50 years of it.
    2
  115. 2
  116. ​ @NoBoilerplate  For better or for worse C is kind of all we have with Assembly, a stable ABI is a step in the right direction, but fundamentally we simply don't need what Rust offers. For what we do its more cumbersome, for example Rust solves memory safety, ok great in embedded you only have two scenarios, first one is no memory allocation at all, second, is taking a chunk of memory and using it as an allocator. The hard part in embedded is not to write the code, it's to work within the constraints of the system, it's reading and understanding the hardware, what it can or cannot do. What makes C great is that it's really just a more readable assembly. C is a terrible language in many regards, but it's like assembly you can just do whatever you want and it will work if you are correct. C is basically just a a language that you can define with header files, if you put in your stdint.h that a int is 12bits it's 12bits. It's that simple, There isn't a lot of values for us. Same thing with parallelism, Rust solves that, but most of the time you just have a single core, and the "parallelism" is simply interrupt based. Or if you work on a more powerful chip you use RTOS, where you organize threads in a very different way than what most are used to. Now there are some areas where maybe one day Rust might be kind of good, like automotive and aerospace, but even that is like years away, because while this kind of code would benefit from Rust features, you still need proving software, and a ton of testing infrastructure to make it viable, and compliant.
    2
  117. 2
  118. 2
  119. 2
  120. What's even more frustrating with our voting system is that it's so bad that it's the reason why the mandates are so short, because of the voting system essentially forcing division and alienation, mandates cannot be too long or a good portion of the population feels miserable. I believe that someone getting elected should at least get 10y as the head of the country he/she is leading. The truth is nobody can make meaningful changes in 4/5y, you barely start to see the effect of someone's decision after the 10y mark, which should be indefinitely renewable btw, as there is no reason to pass on a good leader even if it means the guy/gal stay for 30y as the president. Candidates shouldn't have a "program", they should have a vision and convince people that vision needs to be followed, this would lead to a way better political scene. Part of the reason politic is so bad this days is that you have to promise the world to people just to be noticed, you need to be sketchy, and appeal to the masses, lie and manipulate, you have to play a horrific game of demagogy and "move" and lie and deception, its just so bad. Whereas when you have 10y to do something, than you can relax and actually take the time to put your vision into action. Long term planning is essential for anyone to be successful. The most successful companies and countries don't plan for the next 5y, instead they have plan for the next 10, 25, 50y ahead of them because that's the kind of scale where a vision is essential.
    2
  121. 2
  122. 2
  123. 2
  124. 2
  125. 2
  126. 2
  127. 2
  128.  @testtest-qm7cj  That's true, but the real problem with C is simply that it's type system is non-existent, that compilers defaults are terrible, and although UB existed and was used for a reason, There is no reason why modern languages should not actually defined those UB. On top of that the tooling around C is bad, making it even harder to actually make safe code. This is why Rust is so awesome, it provides a strong type system, a powerful suit of static analysis tools through the borrow checker / lifetime annotation system. The defaults in Rust are sane defaults. But the things I've just mentioned are not something unique to Rust, what they are at their core is good tools. Which is why I think Zig is actually a very safe language too, it's not as safe as Rust that's for sure. But it doesn't need a borrow checker and static lifetime annotations to get there. What Zig needs to reach Rust level of safety is simply to provide the tools to ensure that the code is correct and safe. Because the true measure of a language safety potential is not just that it can be safe. C code can be made as safe as Rust, same goes with C++ or Assembly, the reason they are not considered safe, is simply because there is very few tools inside or outside those languages to ensure correctness and safety, and their defaults assumptions are also terrible. Which means that realistically to make safe and correct code in those languages you have to invest a ton more time into proper infrastructure, testing, etc. Which is tedious and means you can't ship as fast, so most companies simply skipped this part. But Zig already provides a lot of tools to ensure safety and correctness, and more importantly those tools are very easy to use and they fit perfectly with the language, if you add that Zig is very strongly typed, and comes with the sanest defaults, has very simple syntax/semantic, provides unit testing, fuzzy testing, has allocators which provides protections against, double free, use after free, protection against any UB because Zig doesn't accept any UB. You end up with a mix where it's actually quite hard to make unsafe code out of the box. It's not perfect and it will improve in the future. But the point is simply that Yes with Rust you are 99% guaranteed that the code you wrote is valid and safe. And with Zig it might be only 80%, but because of every tools provided and how easy they are to use, ironing out the last 20% is actually quite easy. So in practice you can expect safer code than C despite the fact that both languages are relatively similar. Because again safety is not a feature of a language itself, it's a feature of the tools the language comes with to ensure safety (compiler, fuzzer, unit testing, memory sanitizers, sane defaults, not allowing UB to be used by the compiler, bound checking, protection against use after free, double free, use of uninitialized memory, use of null pointer etc.)
    2
  129. 2
  130. 2
  131. I think memory safety is a bit overblown, yes rust has strong guarantees about memory safety thanks to the borrow checker, but as long as a language can provide you with some extensive facilities to ensure safety and correctness than I'd consider that language to be viable. For example Zig doesn't have a concept of borrowing, but in debug mode using the GeneralPurposeAllocator, you can detect memory leaks. use after free, you need to handle nullability and errors explicitly, you have some runtime safety for out of bound indexing, uninitialized memory read etc. You get to execute your code at compile time, to test it and configure it. This to me sounds like a reasonable tradeoff between safety and ease of use. But of course there are other languages, that will propose the same kind of facilities, I just think that Rust is not the only language that can offer strong guarantees in terms of safety. I also don't think that Rust is a great language for system level programming, like I'd like to use it for writing a driver, or a deamon or something like that, maybe a server or some system utilities. But for the Linux kernel I don't think it's a great choice. But I love Rust for CLI tools I think that there is quite frankly nothing that is as good as Rust for that. Regarding C and C++ I think that no matter what they try they won't be able to compete with those new languages because fundamentally the problems regarding safety in C/C++ is rigged inside the type system / semantic of the languages. So despite loving C I have to admit that yes it shouldn't be use for newer project with long term support in mind
    2
  132. 2
  133. 2
  134. 2
  135. 2
  136. 2
  137. 2
  138. 2
  139. 2
  140. 2
  141. 2
  142. 2
  143. 2
  144. 2
  145. 2
  146. That's a feature not a bug imo, firstly all the syntax of the language can and will probably evolve, I remember Andrew saying that once the language is "stable" they will try to improve the syntax to make it more cohesive. But second one of the reason why you have to write a bit more code in Zig is because one of their moto is "no hidden control flow", the reason for this is that it makes the code more readable but it also offers a new capability which is that even people who never programmed in Zig can fairly easily read and understand what some zig code is doing I have one example of that I was working on a linter for C to autofix my style and I had a bug in the AST and a friend of mine who never coded in Zig was able to sit down with me and help me figured where the bug came from despite never seing any Zig prior to that, I don't think I would be able to do the same in C++, Rust or Haskell for that matter. The same thing can't be said about C++ templates, or Rust Macro, yet Zig comptime just read like normal code to anybody. One good exercise that I can advice you to try for yourself to understand how the explicitness of the language makes it trivial to read it, is to go into llvm compiler c++ codebase, pick a random part and try to understand what it does, then try going into a similar part of the Zig compiler codebase and understand what it does. The difference is the answer why it's a bit more verbose and less syntactically convenient. On top of that I don't think syntax should be a primary concern, the lifetime of any code is that you spend less than 10% of your time typing code, 90% reading it. Even for projects in teams at companies, your code will maybe take a few weeks or month to be written, but it will lives for years, so in the grand scheme of things I don't think that syntax is such a big deal especially if the trade off of weird syntax, enhances readability and maintainability at scale. Also you've mentioned C++ and Rust which in my opinion have both one of the ugliest and convoluted syntax that I know, in comparison zig feels simpler, but I guess it's familiarity.
    2
  147. 2
  148. 2
  149. 2
  150. 2
  151. 2
  152. 2
  153. 2
  154. 2
  155. 2
  156. 2
  157. 1
  158. 1
  159. 1
  160. 1
  161. 1
  162. 1
  163. 1
  164. 1
  165. 1
  166. 1
  167. 1
  168. 1
  169. 1
  170. 1
  171. 1
  172. 1
  173. 1
  174. 1
  175. 1
  176. 1
  177. 1
  178. 1
  179. 1
  180. 1
  181. 1
  182. 1
  183. 1
  184. 1
  185. 1
  186. 1
  187. 1
  188. 1
  189. 1
  190. 1
  191. 1
  192. 1
  193. 1
  194. 1
  195. 1
  196. 1
  197. 1
  198. 1
  199. 1
  200. 1
  201. 1
  202. 1
  203. 1
  204. 1
  205. 1
  206. 1
  207. 1
  208. 1
  209. 1
  210. 1
  211. 1
  212. 1
  213. 1
  214. 1
  215. 1
  216. 1
  217. Agree, In my opinion a piece of code can be qualified as "readable" if someone with any programming background can read it and understand it intuitively. This is why I love programming languages like C or Zig. They are both very easy to read and harder to write. This is also the reason I dislike C++ and complex Rust (because simple Rust reads really well). Both languages offer very complex syntax and encode way more information into the semantic, and while it might benefit the "experts" the truth is that it cannot be qualified as "readable" in the broader definition. If you look at the same code in the 4 languages mentionnned. Zig code : pub fn foo(allocator : std.mem.Allocator, n : usize) AllocatorError![]u8 { const mystring : []u8 = try allocator.alloc(u8, n); return (mystring); } C code : char *foo(size_t n) { char *mystring = (char*) malloc(sizeof(char) * n); return (mystring); } C++ code : std::string* foo(size_t n) { std::string* mystring = new std::string(n, '\0'); return mystring; } Rust code : fn foo(n: usize) -> String { let mystring = String::with_capacity(n); mystring } You can clearly see that the C and the Zig code are more explicit, in the eyes of everyone, the Rust example is really nice when you already know rust, but if I were to come from basically any other languages the lack of a return is very frustrating, also if I'm not familiar with String than I can't say if this code returns a dangling stack pointer ? in C++ if you don't know how the std::string works or what std:: is than it's quite confusing and again from just reading the code it's hard to know where the memory is coming from, The C code is a bit better, because the there is an alloc which takes the size of a char and mutiply it by N returning a char something, but still hard to know where the memory is coming from unless you know malloc, the Zig code on the other hand is IMO really explicit, because you can answer all the questions that you might have. Where is the memory coming from ? the Allocator. What is the function returning ? it returns an AllocatorError something something or an Array of u8. the allocator try to alloc n elements of the type u8 and returns it. Yes there is some subjectivity in readability but I think some objectivity can be found when you try to define "readability" as the proportion of code that one can clearly understand without being familiar with the language semantic.
    1
  218. 1
  219. 1
  220. 1
  221. 1
  222. 1
  223. 1
  224. 1
  225. 1
  226. 1
  227. 1
  228. 1
  229. 1
  230. Ce qui est surprenant avec Mr Slama, c'est que à 28:50 il est terrifié par Twitter, et selon moi ce n'est pas un rien, cela en dit long, là où nous les français de la campagne, des petites, moyennes villes ont sait tous (soit à cause d'une expérience perso, d'un proche à qui c'est arriver, ou à cause des incessants faits divers ) qu'il y à certains coins, et certains quartiers dans lesquelles ont ne peut pas passer sans perdre son téléphone ou se faire lyncher, lui a peur de 0 et de 1 sur un écran de téléphone, c'est tout le problème enfaite ses personnes qui votent pas dans le bon sens elles le font car le réel, les y poussent par par gaîté de cœur. Qui plus est, je dénote une indignation à géométrie variable qui me fait doucement rire, je veux dire ce monsieur, défend la loi comme outil fondamental de défense des droits publiques, et d'épanouissement de l'indidivualité, néanmoins aucune indignation vis à vis du fait que aucune peine n'est appliqués dans ce pays, aucune indignation que les OQTF ne soit pas appliqués, aucunes indignation lorsque la loi ne va pas dans son sens enfaite. Je veux dire la plupart des personnes votant MLP ou zemmour veulent juste une chose, QU'ON APPLIQUE LA LOI. Je suppose également que il ne s'offusquerais pas du référendum de 2005 et ce qui a suivis. Alors moi je veux bien qu'on s'érige en défenseur de la démocratie mais à ce moment là c'est partout pareil, si demain 90% des français votent l'ouverture des frontières totales, moi j'opèrent juste mon choix individuel de partir mais je trouve ça totalement normal et légitime, et de la même manière j'attends de mes opposant idéologiques, que lorsque 70% des Français dans tous les sondages d'opinions se disent contre l'immigration qu'il y est au moins un début de remise en question, surtout quand je le répète, aucune loi n'est appliqué dans ce pays, j'ai des connaissances de collège dont on ne citera pas les origines qui ont été condamné plus de fois qu'ils n'ont de bougie et qui n'ont jamais vue de prison de leurs vie.
    1
  231. 1
  232. 1
  233. 1
  234. 1
  235. 1
  236. 1
  237. 1
  238. 1
  239. 1
  240. 1
  241. ​ @jackblack1801  It's not about what I want to hear, but let's set the record straight about the future of programming. Despite the buzz surrounding developments in AI, particularly language models like LLMs, the notion that they will replace software engineers is absurd. Understanding the capabilities and limitations of AI, particularly LLMs, is essential to dispel any misconceptions. LLMs, in essence, operate as sophisticated Trie, inferring the most likely sequence of tokens given a prompt. While we could delve into the technical nuances and complexities involved, it's crucial to recognize that this falls far short of replicating human capabilities, especially in professional contexts. Will AI enhance code writing efficiency and quality? Undoubtedly. Will it alleviate the mundane tasks of testing, deployment, bug analysis, and security? Absolutely. However, the idea of AI supplanting human expertise is far-fetched. While a cursory knowledge of JavaScript and a simple app might have sufficed in a previous job market bubble, genuine software engineering expertise remains indispensable. Those who dedicate themselves to mastering software engineering, continuously learning, gaining experience, and developing domain knowledge, along with effective communication skills, are poised for long-term success. Adapting to utilize AI tools to augment our skills is essential for staying relevant in the evolving landscape. However, the belief that AI will imminently match the complexity and versatility of even entry-level web developers is misguided. While incremental progress is typical in many fields, AI operates on a different paradigm, with advancements often driven by hardware capabilities rather than fundamental breakthroughs. The consensus among most experts, not driven by commercial interests, is that LLMs pose minimal threat to skilled professionals. While acknowledging the need to adapt, it's crucial to recognize that AI is not a substitute for human expertise, at least not in the foreseeable future. The only reason we are having those conversation is that : 1 - People have a general lack of understanding of how those "AI" work at their core. 2 - We as human are very bad at discerning something from the illusion of something. Which LLM are all about (they are emulating human speech and capabilities but can't produce anything on their own, because they lack the fundamental ability to understand what they do or say). 3 - We let ourself be scared by our environnement changing and we tend to overreact and imagine the worst outcome possible. I was among the first to tell my father that in a few years he would be replaced by self driving vehicle, but since then I've been learning about AI, following the progress in the field, and my best friend who works at Hugging Face, has been really helpful to understand the future prospects of the field). Now I'm confident that we are safe for decades to come. Unless there is an absurd amount of breakthrough into hardware/techniques and energy.
    1
  242.  @jackblack1801  It's not about what I want to hear, but let's set the record straight about the future of programming. Despite the buzz surrounding developments in AI, particularly language models like LLMs, the notion that they will replace software engineers is absurd. Understanding the capabilities and limitations of AI, particularly LLMs, is essential to dispel any misconceptions. LLMs, in essence are just fancy Trie data structure, inferring the most likely sequence of tokens given a prompt. While we could delve into the technical nuances and complexities involved, it's crucial to recognize that this falls far short of replicating human capabilities, especially in professional contexts. Will AI enhance code writing efficiency and quality? Undoubtedly. Will it alleviate the mundane tasks of testing, deployment, bug analysis, and security? Absolutely. However, the idea of AI supplanting human expertise is far-fetched. While a cursory knowledge of JavaScript and a simple app might have sufficed in a previous job market bubble, genuine software engineering expertise remains indispensable. Those who dedicate themselves to mastering software engineering, continuously learning, gaining experience, and developing domain knowledge, along with effective communication skills, are poised for long-term success. Adapting to utilize AI tools to augment our skills is essential for staying relevant in the evolving landscape. However, the belief that AI will imminently match the complexity and versatility of even entry-level web developers is misguided. While incremental progress is typical in many fields, AI operates on a different paradigm, with advancements often driven by hardware capabilities rather than fundamental breakthroughs. The consensus among most experts, not driven by commercial interests, is that LLMs pose minimal threat to skilled professionals. While acknowledging the need to adapt, it's crucial to recognize that AI is not a substitute for human expertise, at least not in the foreseeable future.
    1
  243. 1
  244. 1
  245. 1
  246. 1
  247.  @concernedcitizen6572 That's assuming AI will reduce the need for labor, which at least historically is very much incorrect, progress has always led to more jobs. Before the clock alarm some people job was to wake up very early and go with a stick around town, hitting on people's window to wake them up. Some people's job was to turn on the public light before electricity was invented. Before the invention of the printing press, thousands of books were handwritten. Every time there has been progress, it always led to more job, and more demand, it's the same with software, AI, will only improve our ability to get stuff done. Imagine what you would have been able to deliver with 5 more engineers ? Imagine how much more features the client would have ask if you could get stuff done for half the amount of time or money ? For example C was a big improvement over assembly, developers could finally be more productive, was it the end of assembly ? no it's still a very popular platform to this day. But the same way we don't handwrite books nowadays we don't need to write assembly everywhere to get stuff done. Ai will have the same impact, in a few years I can see writing unit test being a thing of the past, AI will be able to generate complete test coverage for each functions, and help us move faster in the process. Ai might be able to generate and improve our CI/CD pipelines, correct them, and make sure deployment is smooth. But will it be able to make a commit with a 6 month plan, on how to improve the code base, and steer it in one direction, because you and your team thinks it will lead to an improvement in reliability and velocity ? Hell no, it struggles to this day to even just complete a fairly simple Linked List insert_at() implementation, without completely omitting edge cases. And everyone seems to think that in 2/3 years we are out of jobs ? That's just silly and baffling to hear.
    1
  248. 1
  249. 1
  250. 1
  251. 1
  252. Being part of the Gen Z myself i understand why so many are depressed, unless you learn about some stoïcism there's no way you feel happy with our current situation given the environment we've grown up in, unless you are from a privileged background. Mainly because most of us have grown up in an environment where we've been told that our world is doomed, that humanity will disappear or at the very least face huge catastrophe. On top of that we are statistically the poorest generation since the 19th century. Plus because of the population aging in some countries we have to sacrifice our future to pay for the boomers, because they are the demographic that make the election and that politicans really work for them more than for us despite being the litteral future of humanity. I'm not even gonna mention that now you can't speak freely, you can't date or meet people like we used to do, everything has to be online, you have to be as fake as possible, on Insta, Tinder, etc or people won't be interested in you. So yeah it suck, especially the economic part, because we can't solve that one, since GDP growth is based on the energy intake growth of the whole system (the world) we can't even expect economic prosperity in the future because we are globaly in an energy contraction that can't be solved indefenitly by debt. So unless someone figures a way to increase our energy intake massively we will be in a permanent recession which mean we'll get even poorer and more in debt than we are. Now i don't belive that we are doomed i've out grow that philosophy becayse even if it's true it doesn't make me happy and i have to take accountability and make the best i can with what i have but ofc a lot of gen z are gonna be depressed if they can't outgrow that.
    1
  253. 1
  254. 1
  255. 1
  256. 1
  257. 1
  258. 1
  259. 1
  260. 1
  261. 1
  262. 1
  263. 1
  264. 1
  265. 1
  266.  @Descent098  Exactly, Like if you just want a quick and easy desktop app cross-platform and the app isn't really complex and it's not even that important if it's really snappy and reactive, or you have a small team or a small budget, than yes Electron is really fine by me. But if you are a billion dollar company like Microsoft, that you are literally a company that sells, Freaking proprietary kernel code (aka Windows), but you are telling me that they went with Electron for VScode ? Like It's embarrassing like most of their products, but 2006 Visual Studio, booted in a fraction of a seconds. Everything was snappy and fast, mind you it was freaking 2006 hardware. But now 19 years later we basically have super computers at home. Microsoft is literally one of the biggest company one the planet, recruiting top notch talents across the world, And you are telling me that those guys can't even be bothered to make a native cross-platform editor ? Like VScode is the app I have in mind, it's just so slow, there is no excuse for that, I'm not even asking for much, but not having my UI update in real-time when I change code, is just straight up disrespectful for all of the engineers at AMD and Intel and there is no amount of money that will make me use that piece of trash, when I need to help someone, if they only have vs code, I'll open note, or text edit, or vi, just to make sure I don't ever touch that embarrassment. In absolutely zero parallel universe should a vanilla text editor, doing absolutely jack shit, take 1gb to 1.5gb of memory doing nothing, and if for some reasons it actually need all that memory it better be a thousand times more responsive that it currently is. To me VScode is probably the absolute worst app for Electron.
    1
  267. 1
  268. 1
  269. 1
  270. 1
  271. 1
  272. 1
  273. 1
  274. 1
  275. 1
  276. 1
  277. 1
  278. 1
  279. 1
  280. 1
  281. 1
  282. 1
  283. 1
  284.  @oresteduvillage  Je pense pas que la gauche soit fondamentalement supérieur à la droite ou vice-versa, il faut simplement comprendre ce que signifie ses étiquettes, la gauche est par essence un mouvement qui se veut de "rupture" pour apporter un "progrès", là ou la droite est généralement un mouvement dit "conservateur" au sens ou il veut conserver les valeurs de la société, ses principes, structures et fondement. Or je pense que chacun d'entre nous ici à fait ses années lycée et si c'est le cas en philosophie nous avons tous dû disserter sur la notion de progrès, et à la fin n'importe quel petit philosophe en herbe arrive à la même conclusion ou le progrès en un sens est positif, mais il ne l'est pas par essence. Et c'est tous le problème des mouvements de gauche à mon sens, c'est qu'il vont quasi systématiquement vers un progrès aveugle sans s'interroger sur les conséquences de ce "progrès". Je vais prendre des exemples concret pour clarifier mon propos. La gauche actuel est pour l'immigration, elle considère que les immigrées si ils sont légitime exercent un droit (celui d'émigrer) qu'à ce titre ont devrait les accueillir dans de bonne conditions, et ceux sans considérations pour leurs cultures d'origine, leurs religion, ou leurs couleurs de peau comme si ses caractéristiques n'avait au final pas d'importance et qu'on fond c'était un devoir moral d'aider son prochain. Sauf que si on veut s'en tenir aux factuels il à été démontré par des études, que plus une société est "multiculturel" moins il y a de capital social (confiance entre les individus, coopération, productivité horaire, etc.) en résulte dans cette étude pour les groupes multiculturel une productivité inférieur aux groupes homogènes, une confiance et une coopération également inférieur. Là ou je veux en venir c'est que nous avons ici un exemple d'une volonté de progrès et de rupture voulu par les mouvements de gauche qui s'arrête seulement à la qualité morale de cette idée sans s'interroger sur les conséquences réel de cette décision. Là ou je veux en venir c'est que pour résumer brièvement tout ce travail de recherche que j'ai lu, plus une société est multiculturel, plus il y a de haine, de racisme, de violence etc. Et d'ailleurs le réel leurs donne raison si on compare rapidement la France une société avec un modèle historiquement assimilationiste et les États-Unis une société très communautaire. On s'aperçoit que le niveau de violence en France est bien moindre que là bas (bien évidement c'est une réalité multicausale et d'autres facteurs l'explique j'en présente un pour ne pas être exhaustif). Donc si on essayait d'être pragmatique, si on voulait réellement luter contre la haine raciale. il faudrait voter pour un parti qui souhaite au minimun réduire l'immigration, et qui propose de restaurer le modèle assimilationiste qui à permis d'intégrer génération d'immigrés polonais, allemand, autrichien, juif, italien etc. qui aujourd'hui sont indistinguable des français de souche car ils en font eux même parti par la voie de l'intégration. Ensuite je pense que tu fais une erreur quand tu dis que s'intégrer c'est se soumettre et oublier sa diversité, s'intégrer ce n'est pas se soumettre c'est exprimer la volonté active de s'intégrer de faire partie de l'ensemble nationale pour partager avec les autres, tu prétends qu'il n'existe pas de socle commun mais je pense sincèrement que tu te trompes il existe une culture et une identité française elle est réel, et c'est difficle à décrire car c'est un ensemble complexe de pleins de code et d'habitus qui créer cette ensemble qui permet de distinguer un Français d'un non-Français. Que ce soit la bise, le vocabulaire, les repas de famille le dimanche, le syndicalisme, la littérature, le cinéma, le vin le fromage et j'en passe toutes ses petites choses misent bout à bout font de toi un français et sans renier le caractère unique de ta personne elle te permettent d'un point de vue sociologique d'être plus sociable avec les autres et donc de contribuer à une société généralement plus apaisés car si tous les individus qui la compose partage cette ensemble de code ils communiquent et coopèrent d'une manière plus efficiente. Et lorsque cela est vraie il y a moins de tensions basés sur la race, la religion ou autres et ça c'est un fait. Or qui défend ses valeurs, cette culture ? et qui cherche à la déconstruire ? si tu arrives à répondre à ces deux questions tu sauras probablement déterminer qui va créer des problèmes et qui va tenter de les résoudre.
    1
  285. 1
  286. 1
  287. 1
  288. 1
  289. 1
  290.  @JwokeLionheart  Bah je suis desole, j'ai fais des etudes d'economie, et bien que ce ne soit pas ma profession, je sais exactement comment fonctionne la dette, maintenant je me doute bien que vous ne considerer pas qu'il y est de probleme, moi je fais parties de ceux qui au contraire trouve sa problematique. Tout ce que je dis c'est que l'enfer est pave de bonne intentions, c'est bien de vouloir aider, mais il faut aller plus loin que ca et reflechir pragmatiquement, combien meme je penserais comme vous (que l'on a heriter d'une responsabiliter envers ses peuples du fait de notre passe coloniale) comment aide t-on ses gens, dans une France en stagnation economique depuis des annees, avec zero perspective de croissance, du fait de la desindustrialisation, de l'energie trop chere, et de la main d'oeuvre trop chere ? La realiter, c'est que on ne peut pas aider ses gens la, puisque on ne peut deja pas s'aider nous meme. J'ai enumerer les problemes auquel on fait face (education nationale, sante, armee, justice, police, acces aux service public, etc...) Je ne vois vraiment pas comment inviter encore plus de gens a venir va les aiders, ils vont se retrouver sans travail, ils seront sans formation adequates, notre systeme de solidarites ne peut pas supporter du volume, et tout sa fait le jeux des patrons, plus de competition pour les recrutements egales, salaires plus bas, et moins de leviers de negociations pour les salaries. Franchement je suis pas contre l'aide, je suis juste contre l'aide a domicile, aidons les chez eux, si une entreprise francaise veut delocaliser, faisons en sorte qu'elle delocalise la bas, si ils manquent d'access aux soins, construisons des hopitaux la bas, pareils pour les ecoles, et autres, aidons les chez eux, faisons en sorte qu'ils puissent rester chez eux pour developer leurs economies et infine ameliorer leurs conditions de vie. Oui aux droit d'asile, et a l'acceuil d'urgence, mais n'invitons pas la planete entiereres chez nous, aidons les a s'aider eux meme. Car ceux qui viennent chez nous ce ne sont pas les femmes/enfants/veillards non ce sont les hommes en age de travailler, jeunes adultes precisement la tranche demographique qui permettrait si elle restait chez elle de developer l'economie locale. Bref j'en ai juste marre des gens qui veulent acceuillir pour acceuillir sans penser d'abord la question de l'acceuil et des consequences de ce dernier.
    1
  291. 1
  292. 1
  293. 1
  294. 1
  295. 1
  296. 1
  297. 1
  298. 1
  299. I've been part of the development process since early on, and I think a lot of the discussion around this project misses the core point. Let's break it down. Some people say, "Why should I care if my terminal is fast? I don't notice the difference." But here's the thing, why settle for slow software at all? If a terminal doesn't offer a feature you care about, like WezTerm's Lua scripting, that's fair, or if you are missing something that's essential to your workflow, by all means don't use Ghostty. But if you're indifferent beyond that, why not prioritize speed? I'm not saying everyone should use Ghostty, but I do believe anyone who spends significant time in a terminal should at least try a faster one. The difference becomes apparent when you're handling verbose output, such as package installations or extensive logs. Terminals can lag, especially if you're using nerd fonts, special glyphs, or working with non-English languages. Speed matters. I used kitty extensively before switching to Ghostty. As someone who practically lives in the terminal, performance hiccups are glaring. In iTerm2, for example, text rendering artifacts or paste lag can be painfully noticeable. It's not just a minor inconvenience, when pasting a large block of text takes seconds or more, it disrupts workflow and feels archaic. That friction compounds over time. Ghostty's goal isn't just to be another terminal emulator. Its ambition is to serve as a cross-platform, drop-in replacement for existing terminals. Admittedly, the current Windows experience isn't ideal, and on Linux, GTK as the sole native option may put some people off. But let's keep in mind this is version 1.0. The project has been developed behind closed doors, but over the next few years, expect more features, backend flexibility, and expanded customization. The combination of the Zig build system and Ghostty's modular architecture makes adding new platform support straightforward. One of Ghostty's most exciting aspects isn't Ghostty itself, but libghostty the terminal emulation library that powers it. Ghostty is essentially a frontend for libghostty, which is shaping up to be one of the most comprehensive cross-platform terminal emulation libraries available. Right now, Ghostty is the primary showcase, but I envision other projects with embedded terminal components adopting libghostty. Many existing terminals embed home-grown, brittle terminal emulation layers. Replacing those with libghostty could drastically improve performance and feature parity across different environments. Ambition is what sets Ghostty apart. Some features might seem niche today, like the terminal inspector. But consider this: if you ever develop internal TUI tools, having the ability to deeply introspect your terminal could become invaluable. Debugging TUI apps is notoriously cumbersome, and tools like this could make a real difference when printf debugging isn't enough. In the end, Ghostty isn't just about speed, being written in Zig, or ticking off feature checkboxes. It's about elevating the terminal experience. The project's mission, to create an open-source, high-performance, feature-rich terminal is worth paying attention to. It pushes the boundaries of what terminal emulators can do and encourages innovation in a space that often feels stagnant. If nothing else, that ambition deserves recognition.
    1
  300. 1
  301. 1
  302. 1
  303. 1
  304.  @_Karlsson  I get your point, but still can't really understand it, in my experience C end up more verbose when you try to make idiomatic and correct code. Because of dynamic memory allocation failure you always need to check if the pointer is valid and if not you need to either signal an error and do some cleanup or do the cleanup directly which in both cases is quite verbose. Probably 10 % of my code is just if (this == NULL) cleanup; and the lack of optional value makes it even more cumbersome to handle error correctly because as soon as one of your function does some memory allocation, it can fail and as such you need to check that where it's called we check and include some cleanup code, which ends up polluting everything. Also the fact that you don't have generics means you either have to write custom code for each data types, or use void* which is slower and ugly, or use header and casting which is dangerous, or use macro which is cumbersome, error prone and not easy to debug. Zig is not perfect of course, there's quite a few area where it's inconsistent at best and straight up weird in the worst case. But I really don't understand the "verbosity" complaint, like if you write even a small program like idk reimplenting cat, The same code in Zig is easier to follow, and quite a lot shorter, because it's easier to handle options, and arguments, it's easier to handle errors, and memory management is pretty much automatic with defer. The same code in C is ok I'm not saying it's bad but if you look at it there's a lot of verbosity involved in checking every pointers, and cleanup code everywhere, premature returns etc.
    1
  305. 1
  306. 1
  307. 1
  308. 1
  309. 1
  310. 1
  311. 1
  312. 1
  313. 1
  314. 1
  315. 1
  316. 1
  317. 1
  318. 1
  319. 1
  320. 1
  321. 1
  322. 1
  323. 1
  324. 1
  325. 1
  326. 1
  327. 1
  328. 1
  329. 1
  330. 1
  331. 1
  332. I'm currently in a programming school, called 42, for those who know, the way you learn, is by building a series of projects compliant to a given specification, the school is open 24/7 you can come when you want, and the only required in person part is when other students have to correct your work, or when you have to correct someone else's code. In that context in my experience, working from home is really really important, when I need to get stuff done, because I can focus on my work, there is nobody to distract me or to sidetrack me. But when it's a group project and you have to tightly collaborate with people, in person is the clear winner, It's so much more fluid, and enjoyable, than having to send messages on someone's discord and wait for them to respond to you, you get less opportunity to be clear, and you loose that fine granularity, and clarity that in person conversation can provide, which leads to a significant decrease in productivity, confusion, and overall frustration. I just want to mention that we are all very "junior" so I don't know if some of those observations of mine vanishes as you work or collaborate with more senior individuals. But if I had to take a guess, I would say that as long as the task is fairly well defined in scope, specification and that the task you are assigned doesn't depend on domain specific knowledge or business logic, I think remote work gives you the ability to explore more efficiently, otherwise I would assume that in person would be probably the best, when the task or the scope and knowledge required is less well defined.
    1
  333. 1
  334. 1
  335. 1
  336.  @plum_colored_dahlia  yeah exactly when I say that humans are greedy and selfish it's not a critique, it's absolutely normal to better yourself, and primary care for yourself and those who happen to be close to you, I'm not saying that humans are bad by nature, but that the expression of said nature in a communist context just can't work. When I say that some humans want's more money, power and success it's not that they want more to simply have more, they want more usually to provide for their family, friends, or to support the cause they cherish. Either way even if you don't consider all the bad apples among people, who actually want to take advantage of others, by lying, and stealing for their own profit you would still end up in a system where people would treat their "own" differently which is actually the true issue of capitalism as well. People don't have issue with the principle of the accumulation of wealth in itself or whatever because that can be tackle within capitalism it self with redistribution policy through taxes. No what people (and rightfully) despise the most is that the rules don't apply to everyone in the same way, small to medium companies pay full taxes while giants like Amazon, Apple etc are paying pocket money. poor and middle class individuals pay everything full price while really rich people have their money where it can't be taxed. average people are going to jail for meaningless offense while real gangster can easily donate for the campaign of a judge, a senator, or whatever and get away with real crimes. Unfortunately this issue is not related to capitalism it self rather than our human nature. Which is why changing economic paradigm will never happen or work.
    1
  337. 1
  338. 1
  339. 1
  340. 1
  341. 1
  342. 1
  343. 1
  344. 1
  345. 1