I don't see why he wouldn't just continue using Go for the use case he outlined initially. There's nothing about these low-level languages he's talking about that make them desireable for such types of tasks. Quite the opposite, going through the additional trouble isn't going to actually matter to anyone as certainly for such programs squeezing that last 10% of performance out of a computer is irrelevant compared to network latency and other issues.
@@PixelThornYou are very close. It's not for a lack of motivation. It's that I want to make sure 2025 that I take time to showcase a great language that could be useful for a lot of people. The problem is jai is closed. That means if I showcase it, even if it is a superior language and a fantastic developer experience, I Iam showing something that is not available. My heart wants JAI, my head wants zig
I've seen lots of interviews with Casey. He specifically mentioned he is not like Prime and doesn't want to try out new languages for the sake of it. He only uses C++ for two features that C doesn't have. He also likes to go extremely in depth with understanding how the code will run on the hardware, which a lot of languages try to hide from you. So, yeah, I definitely don't expect him to do a detailed comparison between 15 languages.
@@Zodiacman16 Yes, every lang is going to have their rough edges and pains. All of the commenters pretending that retreating to C of all langs would be a sane decision are off their rocker. They got keywords for true and false as well as a nullptr_t type in C23, so that's cool, I guess?
It was. And the result was: There isn't really a good one to pick for now because everything new is still in its infancy and everything that's already there is not worth it.
I've actually been contemplating writing a programming language whose code can be authored by voice. I've even read a book on Arm 64 bit programming to get started. For example: declare myInteger as private constant unsigned 8 bit integer = 64.
You're a content creator in the programming space. Your entire "job" is to experiment with different languages and get a feel for them. If you're not happy with zig, there must be a reason why, so just create content around that. Us normie programmers are stuck with maintaining legacy systems, while sticking to the same language, which is why having you explore options and provide positive and negative feedback on each is so nice. We'll just never have time otherwise
I think Prime is overthinking this. There is no ideal language for his needs. Having a language agnostic attitude and just enjoying any language would help more.
He's doing for the youthful audience. You're right though -- if you're going to be a career programmer, you better learn all of them. The post 3 years after I graduated university, I literally learned a new programming language and IDE every week. You get really good at mining what you need to know from documents and what queries to ask google. A pro or senior programmer can pick up a language in a like 4 hours (if they have the internet (and know the correct question and use the correct auto-completion IDE)).
@@tbunreallspot on! Get very good at a mainstream language (C# is the best option there as it's fantastic and is improving very quickly, C, Rust and Java are the others) but also become proficient at Python, Javascript/Typescript, Golang, Java, Zig but only once you've mastered one language. It's the same for spoken language, if you learn your own language well it's much easier to get good in a second language.
Jonathan Blow first needs to release his language before you can talk of abandonment lol. It’s been so long already. He might lose all momentum and market share that way
The Odin compiler code is really easy to read, partially thanks to the language being simple. I'm certain people could pick it up if they needed to. More worried about Jai in that sense
@@christianm4906 Yes. We always have a C option that we can do seamlessly in C++ code. And when in certain types of special situations it is necessary to optimize absolutely all the micro/nanoseconds out, then with a pure C compiler and we are the fastest solution on the market.
@@Pete292323 He said he is chasing the high of learning C, not cpp. He has said he hates cpp over and over and over (including in this video right here)
@@Pete292323 Prime might have loved learning it, but he sure never sounded like he remotely liked using it. And in this video, Casey just seems to have an irrational hate toward C++.
John Carmack, who is on of the most famous programmer in the world, uses C++. Each programming language has its own niche, so does C++. When it comes to work with embedded systems, game engines, and scientific computing C++ is the de facto choice. So, don't worry about what he might have said about C++.
If you‘re already considering Zig you should try Nim as your next language 🙏 Its really flexible in terms of meta programming and compile time execution
I feel like Prime really has some Rust-based cognitive dissonance when it comes to Go, yeah it's super productive, readable, fast, compiles rapidly and I can do pretty much anything I want with it quickly and easily, and I enjoy using it, but it's objectively a bad language. Huh? I don't see what the issue is with just saying Go is good or even great.
he has a huge rust fanatic audience, better do a bit of fence-sitting than estranging a chunk of his viewers for virtually zero benefit aside from putting a statement
I love writing go, so far my favourite language for web dev, , but there are for sure things that are painful: lack of proper metaprogramming, annotations, too repeatable error handling, poor iterators, subpart generics, weird behaviors in channels - it's basically a c but for web development. You simply cannot do many things that you can do easly in other languages, and that doesn't mean that you don't need them - because sometimes you do - and then you have to write sooo much code compared to any other language to fix these weird issue. It's just a language that is all in into the most common use cases. Not mentiononing Go templating system that is just bad compared to the any other language. Map is a hashmap and only hashmap - which means nearly all json parsers will just lose the order of the fields in the json (for that you need linked hash map), which can be dealbreaker for some use cases. And you will see these issues only when you program in go for long enough.
Prime just gotta make the web layer tools for C then compile w/ Zig. Great 2025 plan that keeps all niche parties happy, + it has real world contributions
The web is far too of an adversarial environment to be using C. I like C, but it should not be used for such a task, I’m a believer that Rusts safety claims come with giant burdens that are usually not worth it. But the web is crawling with adversaries and using C would be unwise.
I think one consideration with Jai is that your viewers can't really access it. But I'm really into the idea of you testing and comparing different languages and their features, because that's what I'm here for.
This feels like asking ChatGPT to choose between A and B and it picks B, but then you're like "yeah, but don't you think A this and that..." and ChatGPT regurgitates what you said adding more weight to A, and cause it to re-evaluates itself to picks A, and now you feel better, but still walk away undecided lol
Yeah if you use the word "but" you've already turned it into a yes-man. Best is to make your very first prompt: "compare A and B", perhaps ask it for the result in a table form with a numerical score for each one.
It is vomit for those of us that understand functional programming, Lisp, etc. Why do you think C++ and many other languages keep stealing ideas from Lisp and FP and then present them as something amazingly new in your Algol type language?
yeah but it's hard to find a job in c++ without any proven job experience even for those with c.s./s.e. degrees, most of those jobs are drivers/kernel developers with 5+ years of exp
@@mareksicinski3726 C is faster and (duh) has capabilities. That doesn't mean as much now with multicore processors, etc. Clojure runs on Java and has built-in multicore processing functions and many more easily usable capabilities than nuts & bolts C++.
Listening to Prime's requirements I really feel that Elixir or a modern take on it such as Gleam is the language that meets his requirements the closest. It's highly performant for building asynchronous web applications thanks to Erlang's underlying BEAM VM, it's certainly built with metaprogramming in mind with the defmacro syntax to manipulate your own code to build custom operators and functions, the language is not super new where there's a risk of not knowing the future adoption and development of the language (WhatsApp, Discord, and many other high performant backends are written in it), although Gleam is less mature but more syntactically Prime's vibe. That and the language has enough depth that there's something interesting to grab onto and start exploring. The only conundrum is being a content creator and the impact on viewership you have by picking a more advanced language. That's ultimately a problem he's gonna have with any choice outside of JavaScript or Python, so he should not worry about that aspect too much as a more advanced programming language with more advanced paradigms will attract a more advanced audience to his content.
@@ThePrimeTimeagenI'd recommend elixir as well. Not only do you get all the stuff that the commenter mentioned above, you can also use other languages with it pretty easily. And while I know you dislike rust, it pairs very well with elixir. One of the ways that you hook in these languages is via a mechanism called native interface functions and the biggest downside of doing this is that you lose the fault tolerance for the rest of your app. In other words if the native part of your app crashes, you can't just ignore it because it ends up stopping the world as far as the beam is concerned. However, with rust you have the result and option monads which makes it easier to bypass undefined behavior. In this way you can send your errors back up through the elixir layer and then let the beam handle them rather than the native code.
You should really take another look at Swift. It has amazing concurrency features as well as compile-time macros. Swift doesn't get nearly the amount of hype it deserves because it's still seen as an Apple-only language, but it's great for back-end development as well.
When I heard about metaprogramming capabilities, the Nim instantly came to mind. Its macro system is much more versatile than the Zig's one, of course, if we are talking about macro uses.
D language: super powerful metaprogramming, traditional (C style) syntax, abity to work without GC if you want to (don't even link it in) but also very convenient with GC (pretty much like C# but natively compiled by LLVM). For instance, there is a parsing library called Pegged where you describe the grammar of the thing you want to parse in PEG format, pass this string to the library, it *at compile time* parses your language definition and generates code for the parser and you can immediately use the new parser, even at compile time if you want to. And when working with generics/templates you have full compile time introspection, so your generic code can ask all kinds of questions about the type it is passed as argument, like what are the fields, what are their types, access the fields by name, generate new types based on the contents of the type you're given etc. For example, you can write a function that takes an arbitrary array of structs and turns them into struct of arrays. Without any runtime reflection, only using compile time reflection.
Bonus points for D (in my books), it's one of the few languages also natively supported by gcc, so I don't have to install Clang and switch to something other than just passing a single extra flag if I want a static code analyzer. That and the GNU C extensions. I love those things, it's like finding a $20 in my couch cushions every time I discover one of them.
Seems like JAI is a strong candidate, I'd totally go for it if I were in your position. Adventurous, some really new and well-developed ideas, but still really close to the hardware. Just keep doing your web stuff in Go, do your game stuff in JAI. Different languages, different goals.
It’s Haskell time! But seriously, really committing to a functional language for a time helped me better understand a whole class of problems. Maybe Gleam for 2025.
I was thinking of Aramaic but I think Latin has more application in 2025. Or maybe just more JS with a side eye on Go Prime do Zig! You’re so excited and it’ll be fun with watch
Just related to 28:00 - the Functional programming syntax being weird is why I picked up F# as opposed to OCaml - still has hindley-milner type system while being slightly more Pythonic/.NET-y which made it way more approachable for me with writing it (also .NET 9.0 just added a bunch of really nice features that the language needed)
I think PrimeTime finally should give a chance to Kotlin, and try to write such things that not written in this language that much, for example kotlin has good ability for frontend but no one uses it for it, or lot of cases. I would love to get proper review of PrimeTime about kotlin
No one uses Kotlin for front end? Isn't Kotlin used for Android development? And would that not be considered front end? Or is mobile considered to be different from front end?
@gregorymoore2877 that's also good point, android indeed considered Front in some project term. But no we talk about web front not android one, android its native it doesn't translate it to other language or smth. But kotlin for front involves more complex approach
One thing I really liked about Kotlin is reading a codebase for a bukkit plugin and understanding the logic without knowing anything about the language and the libraries. I see that as a really positive aspect of any language I'm trying to learn. Still, in 2025 I will be using TS, Python and Golang as they cover my needs in my workplace and for personal projects!
I would check out F# or Scala. You have the ability to write functional code but also imperative and OO. F# is based on Ocaml and has HM type system. You also get to take advantage of each language’s respective ecosystem, .Net and the Jvm.
Hey Prime, a couple of comments; (1) you said in the past that one of the things that turns you off from Rust is how it always requires you to write prod-ready code, that iteration and investigation are made harder-Zig with its requirement that you use var/const correctly, not declare variables that aren't used, not import modules that aren't used, etc. would likely feel much of the same; (2) I will echo what Casey said, Jai seems very inline with your personal values of what a language ought to be (a better C with an excellent meta-programming story), _and_ you get to investigate doing web programming in a language quite different from the current web zeitgeist, but I strongly suspect that there are techniques of low-level/game programming (e.g., arena allocators) that would lend themselves quite well to web development if only there was someone to show their impact, contrast them with the "usual ways"-being a content creator certainly gives you a unique opportunity to do that. I'd recommend checking out tsoding's Jai content; he absolutely loves that language.
I think 2025 is the year of multilingual interop. It's becoming clearer in the ecosystem that our languages aren't all that different at the end of the day, and if they learn to talk to each other efficiently, they can combine into powerful megazords.
IMHO languages differ in syntax (significant white-space vs. insignificant white-space), type systems (static vs. dynamic), memory safety, etc. Some languages can be easily compiled to efficient machine code and for others this is an afterthought. Some languages are owned by companies and others are not.
Wait, so Casey has a list for what he thinks would be a good language, but doesn't want to share it? What? I mean, god forbid someone would make that language, exactly tailored to your desires. That would be horrible
He literally said he does not want people to "game the system". Like imagine a genie that grants your wish but always with a trick or downside to it that makes the result terrible, even though you got exactly what you asked. That is what he is trying to avoid. He wants a language that is good in it's own right _and_ meets his criteria.
The list is just a way to quickly evaluate whether the language shares his programming philosophy. It is unlikely that a language implements the 5 things he considers important but not the other 95 things he wants, unless he reveals what those 5 things are.
He means a list of "litmus tests", quick criteria to get a hunch whether the language might be good, but a good language should fulfil these criteria organically, not be intentionally written for this single purpose. For example, seeing how easily a language can produce a quine might be an indicator of its expressiveness, but joke languages like HQ9+ game this criterion.
I like this video because I am constantly having this discussion with myself internally and it’s nice to hear others do the same thing even if there’s no solid conclusion. That’s often how my internal discussions end anyway!
@metaltyphoon really depends on your use case. As well... it has a foreign functions implementation so if there's some mission critical performance requirement you can drop into a separate execution context.
I like C++ cause I don’t really have an alternative to make a AAA game. All these language and C++ videos usually ignore the game industry cause it’s just too entrenched.
@ThePrimeTime, in these cases my usual advice is "don't choose, fall into the choice instead". Pick 3 condendors and schedule yourself equal time between them. Soon you'll fail to keep three and you'll be down to two.. after a little while one will _really_ take traction. P.S.: I love Rust and keep on writing it (first hacked on it in its pre-1.0 days), and I think I now finally almost completely ditched C++. The fact you (and others) don't is fantastic: If the language is beginning to get some hate it means that the language is gaining maturity.
I'll throw my hat in for Clojure, if only for understanding the state management semantics with immutable datastructures + reference types. Bonus points for lisp and lisp metaprogramming.
The point of a language for me is to achieve a goal and develop a solution. I personally don't care about the nitty gritty. The people who seem obsessed with that tend to develop 80% of whatever they are doing, then jump to the next thing because they lost the excitement for it. If you can develop a project to completion, grind it out to perfection and leave a well structured project with good documentation in a widely used framework, that to me is great. I haven't looked at the code myself but VLC has changes from 17 years ago and 3 months ago, all written in C and C++ basically, that to me is pretty awesome.
I don't know how you can say that. If you've ever done serious things in a language, you know that sometimes the language just lacks the functionality you need, and you have to do backwards somersaults just to get a basic thing working. This is especially noticeable if you've implemented an interface between 2 languages, where you are hitting the same target, and you just see how easy it is to do in one, and what a pain it is to do in another.
@@peezieforestem5078 If you're solving a problem you will do it in the language best suited. You won't see someone develop a streaming media server in JavaScript or whatever. What I'm talking about is the people who are developing a god damn internal document management system for at most 1000 users, and think they are developing facebook.
Elixir feels right for your requirements: sweet metaprogramming and easy scalable, phoenix can create your CRUD apps in minutes and bumblebee (Nx) will get all your AI needs. Plus the new type system is coming out.
He wont pick elixir because, he’s afraid to say it to his audience, he doesnt like functional programming. He always dances around it but it seems pretty clear he just doesnt like functional.
C++ has its place. When you have a system or a game that you want to have the abstraction of classes (I know, people hate OO, but it really help on larger system to isolate, and in some sense they are easier to understand than modules). But I get the hate. It will stay forever on my heart as I used to maintain the kernel of a large telecommunication system.
Why are you choosing very similar languages and expecting to have vastly different outcomes? Try something completely different ie. Clojure, Common Lisp, Haskell etc.
C# in newer versions (12+) gives you source generators, which is just C# code to produce more code compile time (which sounds like one aspect that you like about Zig). Also there is a great momentum on improving dotnet since it properly divorced from windows a few years back (on the backend, frontend frameworks are still hit and miss). Though i share your sentiments about Go, being so feature starved really make you just focus on building the actual functionality - and other peoples Go code usually arent hard to digest
I think you underestimate Elixir and Phoenix for web apps-they truly shine in this domain. Elixir is a beautiful and easy-to-use language. It is not as academic as Haskell, even though both are pure functional programming (FP) languages. Pure FP code is simpler and less error-prone.
Everybody please help build an ecosystem for Odin! I love it so much! I wrote a chroma doc loader in 10 minutes that runs quite a few times faster than the same process in Python, and I was able to toss it in as a sidecar in a Tauri app! Tauri is also awesome because you get Rust under the hood with whatever JS nasty you want in the UI layer. So good.
You already know what you need to do: choose C++. It is a major language that will not disappear in 2025 and can provide a lot of high-quality content for the channel. No other language can provide the same engagement as C++ for the type of content you create. A lot of great educational and/or humorous content can be made. Besides that, C++ can expand the type of content you produce because it has so much history. Btw, I don't even program in C++ nowadays.
Most of the aspects of C++ that people consider "bad" are basically inherited from C: "legit" UBs in the standard, context-dependent grammar, unchecked casts, mutable by default, etc. It's really funny to hear Casey promoting C and complaining about C++.
Stop avoiding the inevitable. Listen to the voice in the back of your head that you purposefully keep suppressing for fear of being judged. SeeSharp, SeeSharp, SeeSharp, C#! Just do it son.
Its an awesome language but once composition takes u over, c# gets a bit lame. I want to be able to use a class in the middle for other projects, i want to make changes to the first class without modifier/overriding other methods and the constructor. But OOP isnt worthless and of all the languages c# does it best. i just cant return to its abstract/static/public/protected boilercode XD
.NET needs to complete its journey towards performance and allow stack-allocated reference types along with union types. That would make it so much more enjoyable and faster (LINQ could greatly benefit too). It also probably needs read-only variables/parameters, to revamp its async-await by getting rid of the requirement for .ConfigureAwait(false) for better library performance and to drop the convention of the Async suffix for awaitable methods. And finally, it needs to double down on NativeAOT with first class WebAssembly compilation support and very good binding generation for other languages. I would like to have the option of not relying on garbage collection, but I think that would require an entirely different language and platform.
I have to go with Fortran. For context, a big part of my work is in computational physics and chemistry. When it comes to classical models, you can get away with using C++, and even Python. But when you get to quantum mechanics, there is no better game in town than Fortran, even today. It's fast, it's computationally efficient, and you can make incredibly detailed models that are somewhat physically accurate. I'm filled with absolute dread, but I don't really have much of a choice. I'm screwed :')
F# is truly amazing. Love C# but F# just brings it to another level. It's soo easy to go from idea to implementation in that language. Unfortunately it's nearly impossible to find a F# job in my area.
@@EternalConglomerate you do realize there are lots of people, articles, out there with opinions that disagree with that, right? That can point out the bad parts of F# readily. I'm not one of them, but I do know if I want FP I'm going to use a Lisp like Clojure, not some microshaft trash ripoff language.
It really isn't. If your aim is to get hired at a game studio and want to use their existing tooling, it will likely be C++, or if you choose to use an existing engine like Unreal, then sure, but otherwise this isn't the 00's anymore, we have alternatives. And no, I am not talking about C# or Unity, I mean there are multiple systems level languages without a GC that on-par with C++ performance in every metric.
@@ForeverZer0 u go first and show what we can achieve in game development using those system level languages. and yeah, don't give me examples of 50 engines made in rust with less than 5 games made in it
@@ForeverZer0 In game dev it's pretty much always C++ even with Unity if you work on shaders it will be in C++, All large custom engines used by AAA studios are C++. Unreal is growing like mad, and it is C++. There is really no reason to move away from it. There really aren't any alternatives, you have useless small esoteric languages and then there is Rust which is a nightmare to work with and if you use it the safe way (to utilise its only advantage) then you cannot really build a major project in it. I hear UA-camrs crapping on C++ for 10-15 years now. It's meaningless.
Talking to a security researcher at work he said that Rust removes 50% of what they do on a daily base, which is reading C/C++ PR to catch memory issue and leaks. But I really don’t like it.
Honestly the main reason I like Rust is not really memory safety. It is mostly the macro system. "Here is my struct, make it serializable in JSON, usable as a config format, check that is match the table format of my database and make it printable in tne stdout".
I’m really curious about Zig, but learning Zig now seems like it’s going to waste a lot of time because they need to change a LOT of stuff. I’m waiting until they stabilize to dig deep.
True, i once dabbled in Zig, but between lack of documentation and confusion with building (seriously, the build script is in Zig too) made me gave up. Also more fundamental disagrement with imperative metaprogramming (types should be functional, not imperative).
@ part of that is just working in something that is new, and I’m fine with that, I work in embedded devices, getting something to printf has always been it’s own adventure. The problem for me is that we know current Zig has big soundness issues, some of it’s features interact in nasty ways, and there’s some work to be done in rethinking some core principles. It’s very likely that Zig written today will require almost full rewrites to compile in 5 years, so I might just as well wait 5 years to start.
Zig has a lot of potential. They need to try to match the Rust approach to tooling and documentation. If they can't onboard enough enthusiastic developers, it's going to fizzle out.
If what you want is to share something with us. To try some new way of thinking or doing things. I don’t think it’s that bad we can’t just download JAI. I would please to just see you show something new. What’s matter from you wasn’t really about what you used. Yeah’s you were the performance rust guy we today I more see you like a normal human being just sharing his feelings. I really appreciate your desire to stop rust. Your reflection are great and you make me think a little more than my humble golang garden. I think it’s that kind of video I like where you talk about you since it’s really there we learn who you are ! Anyway you’re decision, I hope you will have a great 2025 ❤
I think you might be better off talking about this with the Context Free guy. Casey doesn't strike me as someone who likes to try many different languages.
26:00 "Vector programming is when you have a very good language for describing things scalar that are automatically vector." I do know what "vector" and "scalar" mean in math and physics and this just sound like complete BS to me. But, maybe "vector" and "scalar" mean something completely different in his world.
Yes it is different. In computing, a vector instruction is one that performs the same operation on multiple elements at a time. But what he says is BS nonetheless, because vector programming is just for crunching data, it is not general purpose, it is not for program flow, logic, data structuring and whatnot. Also, automatic vectorization is such a huge hit or miss, I'd rather do SIMD intrinsic explicitly. He may as well be wishing for a magic wand that does it all, no effort required.
If I have a table of numbers and I want to perform the same operation on all of them, vector programming will generally be faster than doing a foreach loop over it.
I didn't get that, either. The way he was talking made me think of vector processors with vector registers, where you have all the elements of a vector in one register. But then he went on to talking about multicores, which is different from a vector processor with multiple functional units.
@@katrinabryce Just use Clojure and operate on a vector or map with functional programming, sequence operations (e.g map, reduce, filter). It is the default behavior.
At the end of the day, it's not about which language you pick, it's about understanding the basics of programing and adapting. I see programing languages like relatives, they share the same blood but they are different in some ways.
...with the crucial difference that one is an actual language with tons of useful, production-level software written in it, and the other is vaporware.
I tried a year ago Swift to make a few PoCs. My background is primarily backend java / python. I liked swift a lot from language design perspective. I didn’t have chance to validate how much “general” purpose it is. I wouldn’t mind to try create server side in it 😊
Erlang sounds like a good option, distributed computation, split/ merge workloads and async being core to the Erlang "platform?" and elixir seems like a good language to try out
I love to give new languages and frameworks a go, but when it's time to implement something seriously I always resort to C#. And scripting and browser side interactive stuff with TS.
Just make your own language at this stage, because whatever language you use or choose, you'll never be fully satisfied. (as the French people always say : On n'est jamais mieux servi que par soi-même)
The curious things about C programmers is that they like it because they know what their code is doing, but this is true for all languages. Write your own list in C++ and hey you now you have your own list and you know what it does but that's just unacceptable for some reason
There's no good language, but if I had to write one, C++ is the only way to do it well - by which I mean it ends up fast and doesn't take forever to write.
Casey is not the person for this. Look up Ian Joyner. He has a whole book on why C++ sucks (I think it was his master's thesis) comparing it to Java and Eiffel. He also has many online posts about it.
@@hanifarroisimukhlis5989 More like, how many ways to do any "structural" thing? It's like C#'s "feature creep", but at a lower more fundamental level, where it makes your life harder before you even start. @dgo4490 Even Bjarne Stroustrup, the man who birth'ed C++ said back a few years that there was only a few people in the world that REALLY knew C++, because it had expanded so much in every direction, and many times for "reasons".
I just started a (personal) project with Julia. I'm a probability theory major and I just like solving optimization problems and partial differential equations on the computer, and so far I absolutely love working with the Julia REPL in VSCode.
Hearing Casey speak about Jai being good for metaprogramming, I find it weird that he's not comparing it to Zig's metaprogramming facilities. Has he looked into Zig enough to make the claim that Jai has better metaprogramming?
@@isaacyonemoto This fight, was it an interesting discussion? If so, do you have a link? I tried googling but nothing came up. Also, are you the Zigler guy? Love that project!
@@adamkoxxl Nim definitely has a cool metaprogramming system, but if Prime is looking for a language without GC, I personally have found Nim very difficult to use without GC. Also, the BDFL is.. hmm. Let's just say that dom quitting the community does not reflect well on the future of Nim.
@@jonthoroddsen6467Nims "GC" is really good though, it is not a traditional garbage collector, I understand it more of automatic injection of memory frees + cycle collector. But I don't know how it would perform against Go for example. And yeah I agree about the community thing and Araqs priorities...
i dont think this guy is conflicted at all, he just wants to learn zig but he feels bad
He's having issues motivating it, but that's what it means to be human, we are motivated by emotions not facts
Zig is just a C++ pretending it is C.
@@sciencedaemonexplain
I don't see why he wouldn't just continue using Go for the use case he outlined initially. There's nothing about these low-level languages he's talking about that make them desireable for such types of tasks. Quite the opposite, going through the additional trouble isn't going to actually matter to anyone as certainly for such programs squeezing that last 10% of performance out of a computer is irrelevant compared to network latency and other issues.
@@PixelThornYou are very close. It's not for a lack of motivation. It's that I want to make sure 2025 that I take time to showcase a great language that could be useful for a lot of people.
The problem is jai is closed. That means if I showcase it, even if it is a superior language and a fantastic developer experience, I Iam showing something that is not available.
My heart wants JAI, my head wants zig
Ancient Babylonian is the only true language you must speak in 2025 BCE. Compile time from mind to stone tablet is insanely fast.
We need to benchmark this
The compilation process is kinda unreliable though...hmm we need a patch.
Yeah but there's a security flaw in Ancient Babylonian that causes severe degradation in the quality of copper
@@102728 The solution is of course fire the tablet (and house)
C is faster
Spoiler alert - no language is picked. Not much info on picking one neither...
He already knows hes going to pick Zig. Not sure what else he’s trying to accomplish right now lol
I've seen lots of interviews with Casey. He specifically mentioned he is not like Prime and doesn't want to try out new languages for the sake of it. He only uses C++ for two features that C doesn't have.
He also likes to go extremely in depth with understanding how the code will run on the hardware, which a lot of languages try to hide from you.
So, yeah, I definitely don't expect him to do a detailed comparison between 15 languages.
@@MasterF3 what are those 2 reasons please?
@@adamkoxxl Function and operator overloading.
How about nix
Prime being stuck in Tutorial Hell in 2025 was not on my bingo card.
😂 It's pretty funny to see him unsure of which code to pick. Unfortunately, it's difficult to know which code you would like without using it.
I honestly think he should just pick a language based on the project he's doing. There are only so many new languages.
@@Zodiacman16 Yes, every lang is going to have their rough edges and pains.
All of the commenters pretending that retreating to C of all langs would be a sane decision are off their rocker. They got keywords for true and false as well as a nullptr_t type in C23, so that's cool, I guess?
I feel like this was not about picking a programming language.
Fluffy yappery content. "C++ sucks, is 99% broken, but I will continue using it because everything else is somehow even worse".
This was about them flexing that they have access to JAI.
It was. And the result was: There isn't really a good one to pick for now because everything new is still in its infancy and everything that's already there is not worth it.
@@daven9536 exactly. Hence why I'm getting job security by hard leaning into making Julia more mature. Seems worthwhile for the future xD
@@jeffreychandler8418for maybe 4 more years… you will be replaced by AI.
Real answer: Create your own programming language.
Basically LISP
This is what I did with Seed7. 🙂
That would be cool
I've actually been contemplating writing a programming language whose code can be authored by voice. I've even read a book on Arm 64 bit programming to get started.
For example:
declare myInteger as private constant unsigned 8 bit integer = 64.
This is the way
i think learning English will be very beneficial since its most popular and most used language
🤣
In 2066 you definitely need to speak a little bit of mandarin 😅
Бро, твои слова делают мне больно 🤭
English is also an overrated language.
I don’t know, I think Math is more popular.
You're a content creator in the programming space. Your entire "job" is to experiment with different languages and get a feel for them. If you're not happy with zig, there must be a reason why, so just create content around that. Us normie programmers are stuck with maintaining legacy systems, while sticking to the same language, which is why having you explore options and provide positive and negative feedback on each is so nice. We'll just never have time otherwise
Preach !
Absolutely
this is a great take, i agree
Love those collaba with Casey, it's always a blessing
I also love listening to Casey. Its by far my favorite collab.
I think Prime is overthinking this. There is no ideal language for his needs. Having a language agnostic attitude and just enjoying any language would help more.
He's doing for the youthful audience. You're right though -- if you're going to be a career programmer, you better learn all of them. The post 3 years after I graduated university, I literally learned a new programming language and IDE every week. You get really good at mining what you need to know from documents and what queries to ask google. A pro or senior programmer can pick up a language in a like 4 hours (if they have the internet (and know the correct question and use the correct auto-completion IDE)).
c# is always the answer
@@complexity5545Damn. Didnt knew it was that fast.
I think he doing a little content milking, tbh 🙃
@@tbunreallspot on! Get very good at a mainstream language (C# is the best option there as it's fantastic and is improving very quickly, C, Rust and Java are the others) but also become proficient at Python, Javascript/Typescript, Golang, Java, Zig but only once you've mastered one language. It's the same for spoken language, if you learn your own language well it's much easier to get good in a second language.
Listening to the beginning of this... Prime needs a hug and someone to tell him it's ok to do Zig.
Follow your dreams, Prime! Follow the Zig.
I think we can be certain that Ginger Bill, Andrew Kelley and Johnathan Blow will *NOT* abandon their languages.
All a bus factor of 1.
@@metaltyphoon Zig has a healthy community and I think several of the core contributors could step into his shoes.
Jonathan Blow first needs to release his language before you can talk of abandonment lol. It’s been so long already. He might lose all momentum and market share that way
The Odin compiler code is really easy to read, partially thanks to the language being simple. I'm certain people could pick it up if they needed to.
More worried about Jai in that sense
After watching this episode, I'm even more convinced that C++ is the right choice for me. Thank you guys !
Great. I've been using C++ for 30 years. It will be my language of choice for 2025
If you said C, I'd understand.
Modern C++ is and will always be a solid option, plus it's compatible with C.
@@sdstorm The beauty is I can. Both.
@@christianm4906 Yes. We always have a C option that we can do seamlessly in C++ code. And when in certain types of special situations it is necessary to optimize absolutely all the micro/nanoseconds out, then with a pure C compiler and we are the fastest solution on the market.
I got the impression he might not like c++ 😢
He's done enough C++ (he worked on The Witness with Jon Blow, a rather tame C++ codebase) to talk confidently about it.
he said in another video that he loves cpp, he just wants to learn something new, chasing that high of learning cpp.
@@Pete292323 He said he is chasing the high of learning C, not cpp. He has said he hates cpp over and over and over (including in this video right here)
@@Pete292323
Prime might have loved learning it, but he sure never sounded like he remotely liked using it.
And in this video, Casey just seems to have an irrational hate toward C++.
John Carmack, who is on of the most famous programmer in the world, uses C++.
Each programming language has its own niche, so does C++.
When it comes to work with embedded systems, game engines, and scientific computing C++ is the de facto choice.
So, don't worry about what he might have said about C++.
This was a lot of words to say "I feel like using Zig." 😅
This is the first time I'm picking programming language by year
I am picking cobol this year.
I’m going to use my own language that over time I will develop into something
I'm picking binary.
@@The-Dirty-Straw Respect! Make sure you know assembly first tho 😭
If binary is the fastest why doesn’t everyone use it? Im using it
Prime you want to program in Zig. Just do it.
he's gonna regret it watch lol
@@Beam_Teamer lol.
"C++ is useless."
My paycheck disagrees.
Of course nothing good ever came of C++ and its not used for anything. Better pack it up everyone.
i will continue with C# and will also dive into F# this year
Noob that doesn't know Lisp.
Enjoy your money.
Best of luck with your musical endeavour
@@Paschendale2 😭
@@Paschendale2 unironically I also make music (but I am bad at it)
If you‘re already considering Zig you should try Nim as your next language 🙏
Its really flexible in terms of meta programming and compile time execution
I feel like Prime really has some Rust-based cognitive dissonance when it comes to Go, yeah it's super productive, readable, fast, compiles rapidly and I can do pretty much anything I want with it quickly and easily, and I enjoy using it, but it's objectively a bad language. Huh? I don't see what the issue is with just saying Go is good or even great.
yeah… that’s insane LOL
It's bad for deep learning/content, he wants a language that he can spend many hours learning in
Most of the things you mentioned are unrelated to the language itself
he has a huge rust fanatic audience, better do a bit of fence-sitting than estranging a chunk of his viewers for virtually zero benefit aside from putting a statement
I love writing go, so far my favourite language for web dev, , but there are for sure things that are painful: lack of proper metaprogramming, annotations, too repeatable error handling, poor iterators, subpart generics, weird behaviors in channels - it's basically a c but for web development.
You simply cannot do many things that you can do easly in other languages, and that doesn't mean that you don't need them - because sometimes you do - and then you have to write sooo much code compared to any other language to fix these weird issue. It's just a language that is all in into the most common use cases.
Not mentiononing Go templating system that is just bad compared to the any other language.
Map is a hashmap and only hashmap - which means nearly all json parsers will just lose the order of the fields in the json (for that you need linked hash map), which can be dealbreaker for some use cases.
And you will see these issues only when you program in go for long enough.
Prime just gotta make the web layer tools for C then compile w/ Zig. Great 2025 plan that keeps all niche parties happy, + it has real world contributions
The web is far too of an adversarial environment to be using C.
I like C, but it should not be used for such a task, I’m a believer that Rusts safety claims come with giant burdens that are usually not worth it. But the web is crawling with adversaries and using C would be unwise.
@24:13 "If you have access to the beta... that makes no sense to me"
that's exactly the point.
If my options are Zig or Jai then my options are Zig.
I think one consideration with Jai is that your viewers can't really access it. But I'm really into the idea of you testing and comparing different languages and their features, because that's what I'm here for.
This feels like asking ChatGPT to choose between A and B and it picks B, but then you're like "yeah, but don't you think A this and that..." and ChatGPT regurgitates what you said adding more weight to A, and cause it to re-evaluates itself to picks A, and now you feel better, but still walk away undecided lol
it sounds like you've gone through that exercise
@ indecisiveness, a programmer worst nightmare lol 😅
Yeah if you use the word "but" you've already turned it into a yes-man. Best is to make your very first prompt: "compare A and B", perhaps ask it for the result in a table form with a numerical score for each one.
He didn't want go and then picked the next most obvious choice zig. What a surprise
C++. You will never be bored again. It's heaven for curious programmers. I love it
ahh C and C++, my first and beloved languages
It is vomit for those of us that understand functional programming, Lisp, etc. Why do you think C++ and many other languages keep stealing ideas from Lisp and FP and then present them as something amazingly new in your Algol type language?
@@sciencedaemonwell it’s faster, has capabilities to do certain things
yeah but it's hard to find a job in c++ without any proven job experience even for those with c.s./s.e. degrees, most of those jobs are drivers/kernel developers with 5+ years of exp
@@mareksicinski3726 C is faster and (duh) has capabilities. That doesn't mean as much now with multicore processors, etc. Clojure runs on Java and has built-in multicore processing functions and many more easily usable capabilities than nuts & bolts C++.
This is too big brain for me right now, add to watch later
Listening to Prime's requirements I really feel that Elixir or a modern take on it such as Gleam is the language that meets his requirements the closest. It's highly performant for building asynchronous web applications thanks to Erlang's underlying BEAM VM, it's certainly built with metaprogramming in mind with the defmacro syntax to manipulate your own code to build custom operators and functions, the language is not super new where there's a risk of not knowing the future adoption and development of the language (WhatsApp, Discord, and many other high performant backends are written in it), although Gleam is less mature but more syntactically Prime's vibe. That and the language has enough depth that there's something interesting to grab onto and start exploring. The only conundrum is being a content creator and the impact on viewership you have by picking a more advanced language. That's ultimately a problem he's gonna have with any choice outside of JavaScript or Python, so he should not worry about that aspect too much as a more advanced programming language with more advanced paradigms will attract a more advanced audience to his content.
@@TC14 I really think Elixir could very well be in my future
@@ThePrimeTimeagenI'd recommend elixir as well. Not only do you get all the stuff that the commenter mentioned above, you can also use other languages with it pretty easily. And while I know you dislike rust, it pairs very well with elixir. One of the ways that you hook in these languages is via a mechanism called native interface functions and the biggest downside of doing this is that you lose the fault tolerance for the rest of your app. In other words if the native part of your app crashes, you can't just ignore it because it ends up stopping the world as far as the beam is concerned. However, with rust you have the result and option monads which makes it easier to bypass undefined behavior. In this way you can send your errors back up through the elixir layer and then let the beam handle them rather than the native code.
@@ThePrimeTimeagen Yes yes, come to Brasil.
Brazil mentioned
@@ThePrimeTimeagen join the alchemist revolution
You should really take another look at Swift. It has amazing concurrency features as well as compile-time macros. Swift doesn't get nearly the amount of hype it deserves because it's still seen as an Apple-only language, but it's great for back-end development as well.
Swift, Zig and Elixir are really good options ❤. Also, what about continuing exploring functional programming in depth? Ocaml, F#?
I picked C++
It's not too late to change your mind
All good
@@rasimbot2026 it's not too late to change your mind.
..
..
..
2036 it's not too late to change your mind.😂
Good choice 👍
Blah
When I heard about metaprogramming capabilities, the Nim instantly came to mind. Its macro system is much more versatile than the Zig's one, of course, if we are talking about macro uses.
D language: super powerful metaprogramming, traditional (C style) syntax, abity to work without GC if you want to (don't even link it in) but also very convenient with GC (pretty much like C# but natively compiled by LLVM).
For instance, there is a parsing library called Pegged where you describe the grammar of the thing you want to parse in PEG format, pass this string to the library, it *at compile time* parses your language definition and generates code for the parser and you can immediately use the new parser, even at compile time if you want to.
And when working with generics/templates you have full compile time introspection, so your generic code can ask all kinds of questions about the type it is passed as argument, like what are the fields, what are their types, access the fields by name, generate new types based on the contents of the type you're given etc. For example, you can write a function that takes an arbitrary array of structs and turns them into struct of arrays. Without any runtime reflection, only using compile time reflection.
Bonus points for D (in my books), it's one of the few languages also natively supported by gcc, so I don't have to install Clang and switch to something other than just passing a single extra flag if I want a static code analyzer. That and the GNU C extensions. I love those things, it's like finding a $20 in my couch cushions every time I discover one of them.
There's so many languages that he could try out in other paradigms, like a lisp or a ml
Seems like JAI is a strong candidate, I'd totally go for it if I were in your position. Adventurous, some really new and well-developed ideas, but still really close to the hardware. Just keep doing your web stuff in Go, do your game stuff in JAI. Different languages, different goals.
Is there a proper environment for it with hot reload, online debugging, memory analysis, multithreading and concurrency debugging tools, etc?
he can't pick something his viewers can't use though
It’s Haskell time! But seriously, really committing to a functional language for a time helped me better understand a whole class of problems. Maybe Gleam for 2025.
I was thinking of Aramaic but I think Latin has more application in 2025. Or maybe just more JS with a side eye on Go
Prime do Zig! You’re so excited and it’ll be fun with watch
Always love Casey, he's my favorite recurring guest
Just related to 28:00 - the Functional programming syntax being weird is why I picked up F# as opposed to OCaml - still has hindley-milner type system while being slightly more Pythonic/.NET-y which made it way more approachable for me with writing it (also .NET 9.0 just added a bunch of really nice features that the language needed)
I think PrimeTime finally should give a chance to Kotlin, and try to write such things that not written in this language that much, for example kotlin has good ability for frontend but no one uses it for it, or lot of cases. I would love to get proper review of PrimeTime about kotlin
No one uses Kotlin for front end? Isn't Kotlin used for Android development? And would that not be considered front end? Or is mobile considered to be different from front end?
@gregorymoore2877 that's also good point, android indeed considered Front in some project term. But no we talk about web front not android one, android its native it doesn't translate it to other language or smth. But kotlin for front involves more complex approach
I think KMP has strong potential for Kotlin, but JS capability is starting to look solid as well. Love using it for backend
Nim is what you are looking for
One thing I really liked about Kotlin is reading a codebase for a bukkit plugin and understanding the logic without knowing anything about the language and the libraries.
I see that as a really positive aspect of any language I'm trying to learn.
Still, in 2025 I will be using TS, Python and Golang as they cover my needs in my workplace and for personal projects!
I would check out F# or Scala. You have the ability to write functional code but also imperative and OO. F# is based on Ocaml and has HM type system. You also get to take advantage of each language’s respective ecosystem, .Net and the Jvm.
For anything that tolerates GC; Clojure is the way. Highly portable and radically simple
Hey Prime, a couple of comments; (1) you said in the past that one of the things that turns you off from Rust is how it always requires you to write prod-ready code, that iteration and investigation are made harder-Zig with its requirement that you use var/const correctly, not declare variables that aren't used, not import modules that aren't used, etc. would likely feel much of the same; (2) I will echo what Casey said, Jai seems very inline with your personal values of what a language ought to be (a better C with an excellent meta-programming story), _and_ you get to investigate doing web programming in a language quite different from the current web zeitgeist, but I strongly suspect that there are techniques of low-level/game programming (e.g., arena allocators) that would lend themselves quite well to web development if only there was someone to show their impact, contrast them with the "usual ways"-being a content creator certainly gives you a unique opportunity to do that. I'd recommend checking out tsoding's Jai content; he absolutely loves that language.
I think 2025 is the year of multilingual interop. It's becoming clearer in the ecosystem that our languages aren't all that different at the end of the day, and if they learn to talk to each other efficiently, they can combine into powerful megazords.
Are we going GraalVM?
IMHO languages differ in syntax (significant white-space vs. insignificant white-space), type systems (static vs. dynamic), memory safety, etc. Some languages can be easily compiled to efficient machine code and for others this is an afterthought. Some languages are owned by companies and others are not.
Wait, so Casey has a list for what he thinks would be a good language, but doesn't want to share it?
What? I mean, god forbid someone would make that language, exactly tailored to your desires. That would be horrible
Lol meanwhile we’ll chill here helplessly as another js web framework releases. 😂
He literally said he does not want people to "game the system". Like imagine a genie that grants your wish but always with a trick or downside to it that makes the result terrible, even though you got exactly what you asked. That is what he is trying to avoid. He wants a language that is good in it's own right _and_ meets his criteria.
The list is just a way to quickly evaluate whether the language shares his programming philosophy. It is unlikely that a language implements the 5 things he considers important but not the other 95 things he wants, unless he reveals what those 5 things are.
He means a list of "litmus tests", quick criteria to get a hunch whether the language might be good, but a good language should fulfil these criteria organically, not be intentionally written for this single purpose. For example, seeing how easily a language can produce a quine might be an indicator of its expressiveness, but joke languages like HQ9+ game this criterion.
Literally listen to what he says right after that. Goldfish attention span
I like this video because I am constantly having this discussion with myself internally and it’s nice to hear others do the same thing even if there’s no solid conclusion. That’s often how my internal discussions end anyway!
Gotta say: elixir solves a LOT of problems. Simple syntax. Progressively typed. Clustered runtime without kubernetes
And slow AF. Cool
@metaltyphoon really depends on your use case. As well... it has a foreign functions implementation so if there's some mission critical performance requirement you can drop into a separate execution context.
@@emjones8092 Prime is looking for a general purpose, systems programming language. Functional languages are neither.
@@emjones8092 Erlang is together with PHP and Python among the slowest popular languages.
I like C++ cause I don’t really have an alternative to make a AAA game. All these language and C++ videos usually ignore the game industry cause it’s just too entrenched.
Glad to see Jai get that much love in this video. I do hope Prime tries it out. I'd love to see his take.
Me too
Jai is not a serious choice.
@ThePrimeTime, in these cases my usual advice is "don't choose, fall into the choice instead". Pick 3 condendors and schedule yourself equal time between them. Soon you'll fail to keep three and you'll be down to two.. after a little while one will _really_ take traction.
P.S.: I love Rust and keep on writing it (first hacked on it in its pre-1.0 days), and I think I now finally almost completely ditched C++.
The fact you (and others) don't is fantastic: If the language is beginning to get some hate it means that the language is gaining maturity.
Love Casey, wanna see prime try Jai.
Same. It is the way.
C++ anyday. Dude with specs hating on C++ for no reason.
Dude, it gets your shit done whatever you wanna build name it.
spdlog::info("{1} {0}", "world", "hello");
error LNK2019: unresolved external symbol "public: __cdecl spdlog::details::log_msg::log_msg(struct spdlog::source_loc,class fmt::v11::basic_string_view,enum spdlog::level::level_enum,class fmt::v11::basic_string_view)" referenced in function "protected: void __cdecl spdlog::logger::log_(struct spdlog::source_loc,enum spdlog::level::level_enum,class fmt::v11::basic_string_view,char const (&)[6],char const (&)[7])"
the unfortunate truth is C# should be next
This is the way
I'll throw my hat in for Clojure, if only for understanding the state management semantics with immutable datastructures + reference types. Bonus points for lisp and lisp metaprogramming.
The point of a language for me is to achieve a goal and develop a solution. I personally don't care about the nitty gritty. The people who seem obsessed with that tend to develop 80% of whatever they are doing, then jump to the next thing because they lost the excitement for it.
If you can develop a project to completion, grind it out to perfection and leave a well structured project with good documentation in a widely used framework, that to me is great.
I haven't looked at the code myself but VLC has changes from 17 years ago and 3 months ago, all written in C and C++ basically, that to me is pretty awesome.
I don't know how you can say that. If you've ever done serious things in a language, you know that sometimes the language just lacks the functionality you need, and you have to do backwards somersaults just to get a basic thing working. This is especially noticeable if you've implemented an interface between 2 languages, where you are hitting the same target, and you just see how easy it is to do in one, and what a pain it is to do in another.
@@peezieforestem5078 If you're solving a problem you will do it in the language best suited. You won't see someone develop a streaming media server in JavaScript or whatever.
What I'm talking about is the people who are developing a god damn internal document management system for at most 1000 users, and think they are developing facebook.
I loved this convo. So much gold and inspiration
you can see the disappointment on prime's face every time zig is criticized.
it deserves it. Zig is a C++ saying it is a C.
Zig doesn’t come close to C++ in terms of features, safety, comfort, tooling support and ecosystem. Jobs too.
Just because you guys don't understand C++ doesn't make it a bad language.
C++ numbawan! 💪
You two together are God-tier.
Elixir feels right for your requirements: sweet metaprogramming and easy scalable, phoenix can create your CRUD apps in minutes and bumblebee (Nx) will get all your AI needs. Plus the new type system is coming out.
He wont pick elixir because, he’s afraid to say it to his audience, he doesnt like functional programming. He always dances around it but it seems pretty clear he just doesnt like functional.
Functional. Actor based. And metaprogramming. It's actually a pretty difficult language to learn deeply. It's nearly 3 languages in 1.
C++ has its place. When you have a system or a game that you want to have the abstraction of classes (I know, people hate OO, but it really help on larger system to isolate, and in some sense they are easier to understand than modules). But I get the hate. It will stay forever on my heart as I used to maintain the kernel of a large telecommunication system.
Why not try Zinc Oxide? It uses memory composting as a garbage collection mechanism.
Can you explain memory composting simply?
I'm a simple man. I see Casey and Prime, I like the video.
You guys definetly should make programming podcast
Why are you choosing very similar languages and expecting to have vastly different outcomes? Try something completely different ie. Clojure, Common Lisp, Haskell etc.
C# in newer versions (12+) gives you source generators, which is just C# code to produce more code compile time (which sounds like one aspect that you like about Zig). Also there is a great momentum on improving dotnet since it properly divorced from windows a few years back (on the backend, frontend frameworks are still hit and miss).
Though i share your sentiments about Go, being so feature starved really make you just focus on building the actual functionality - and other peoples Go code usually arent hard to digest
Dotnet is nice. They even have fsharp for functional bros.
The one where they both agree on c#?
I think you underestimate Elixir and Phoenix for web apps-they truly shine in this domain. Elixir is a beautiful and easy-to-use language. It is not as academic as Haskell, even though both are pure functional programming (FP) languages. Pure FP code is simpler and less error-prone.
Everybody please help build an ecosystem for Odin! I love it so much! I wrote a chroma doc loader in 10 minutes that runs quite a few times faster than the same process in Python, and I was able to toss it in as a sidecar in a Tauri app! Tauri is also awesome because you get Rust under the hood with whatever JS nasty you want in the UI layer. So good.
I love Odin. So clean and neat. Tried Zig and I really wanted to like it but I didn't. Found the syntax to be cumbersome.
Not going back with a language without Hindley-Milner type-checking.
You already know what you need to do: choose C++. It is a major language that will not disappear in 2025 and can provide a lot of high-quality content for the channel. No other language can provide the same engagement as C++ for the type of content you create. A lot of great educational and/or humorous content can be made. Besides that, C++ can expand the type of content you produce because it has so much history. Btw, I don't even program in C++ nowadays.
C++?
Most of the aspects of C++ that people consider "bad" are basically inherited from C: "legit" UBs in the standard, context-dependent grammar, unchecked casts, mutable by default, etc. It's really funny to hear Casey promoting C and complaining about C++.
Stop avoiding the inevitable. Listen to the voice in the back of your head that you purposefully keep suppressing for fear of being judged. SeeSharp, SeeSharp, SeeSharp, C#! Just do it son.
Its an awesome language but once composition takes u over, c# gets a bit lame. I want to be able to use a class in the middle for other projects, i want to make changes to the first class without modifier/overriding other methods and the constructor. But OOP isnt worthless and of all the languages c# does it best. i just cant return to its abstract/static/public/protected boilercode XD
@@lorenzohoekman9323 it's just syntactic sugar that is easily generated by any ide
.NET needs to complete its journey towards performance and allow stack-allocated reference types along with union types. That would make it so much more enjoyable and faster (LINQ could greatly benefit too). It also probably needs read-only variables/parameters, to revamp its async-await by getting rid of the requirement for .ConfigureAwait(false) for better library performance and to drop the convention of the Async suffix for awaitable methods. And finally, it needs to double down on NativeAOT with first class WebAssembly compilation support and very good binding generation for other languages.
I would like to have the option of not relying on garbage collection, but I think that would require an entirely different language and platform.
I have to go with Fortran. For context, a big part of my work is in computational physics and chemistry. When it comes to classical models, you can get away with using C++, and even Python. But when you get to quantum mechanics, there is no better game in town than Fortran, even today. It's fast, it's computationally efficient, and you can make incredibly detailed models that are somewhat physically accurate. I'm filled with absolute dread, but I don't really have much of a choice. I'm screwed :')
yup, it sure was a zinger for me when I got to work on computational chem in uni and it was all fortran
@@vyyr Fortran is key also for engineering computation. But C++ works very well with scientific computing too.
2025 is the year of .NET! 🎉
I can afford waiting for the moment, I just switched to C# at work and it won’t be bad building some advanced knowledge in it. It’s very versatile.
csharp and fsharp have a lot of stuff for meta programming
Pfft. Get an original language for this, a Lisp. They all steal from Lisp.
@@sciencedaemonwhat metaprogramming does your lisp have
@ivanhai read up on Lisp. it varies between implementations. For instance, Common Lisp Object system (CLOS) has the Meta Object protocol (MOP).
F# is truly amazing. Love C# but F# just brings it to another level. It's soo easy to go from idea to implementation in that language. Unfortunately it's nearly impossible to find a F# job in my area.
@@EternalConglomerate you do realize there are lots of people, articles, out there with opinions that disagree with that, right? That can point out the bad parts of F# readily. I'm not one of them, but I do know if I want FP I'm going to use a Lisp like Clojure, not some microshaft trash ripoff language.
I'm not a dev, but still enjoyed the discussion. =) Considering turning from pentesting to dev in 2025.
C++ is a must in gamedev
It really isn't. If your aim is to get hired at a game studio and want to use their existing tooling, it will likely be C++, or if you choose to use an existing engine like Unreal, then sure, but otherwise this isn't the 00's anymore, we have alternatives. And no, I am not talking about C# or Unity, I mean there are multiple systems level languages without a GC that on-par with C++ performance in every metric.
@@ForeverZer0 u go first and show what we can achieve in game development using those system level languages. and yeah, don't give me examples of 50 engines made in rust with less than 5 games made in it
@@ForeverZer0well I don’t feel this comment totally contradicts qbige
Why was it as posted to c? Faster?
@@ForeverZer0 In game dev it's pretty much always C++ even with Unity if you work on shaders it will be in C++, All large custom engines used by AAA studios are C++. Unreal is growing like mad, and it is C++. There is really no reason to move away from it.
There really aren't any alternatives, you have useless small esoteric languages and then there is Rust which is a nightmare to work with and if you use it the safe way (to utilise its only advantage) then you cannot really build a major project in it.
I hear UA-camrs crapping on C++ for 10-15 years now. It's meaningless.
Talking to a security researcher at work he said that Rust removes 50% of what they do on a daily base, which is reading C/C++ PR to catch memory issue and leaks. But I really don’t like it.
Rust is a low level language with proper DX and companies are slowly waking up it.
Honestly the main reason I like Rust is not really memory safety. It is mostly the macro system.
"Here is my struct, make it serializable in JSON, usable as a config format, check that is match the table format of my database and make it printable in tne stdout".
I’m really curious about Zig, but learning Zig now seems like it’s going to waste a lot of time because they need to change a LOT of stuff.
I’m waiting until they stabilize to dig deep.
True, i once dabbled in Zig, but between lack of documentation and confusion with building (seriously, the build script is in Zig too) made me gave up. Also more fundamental disagrement with imperative metaprogramming (types should be functional, not imperative).
@ part of that is just working in something that is new, and I’m fine with that, I work in embedded devices, getting something to printf has always been it’s own adventure.
The problem for me is that we know current Zig has big soundness issues, some of it’s features interact in nasty ways, and there’s some work to be done in rethinking some core principles. It’s very likely that Zig written today will require almost full rewrites to compile in 5 years, so I might just as well wait 5 years to start.
Don't waste your time with any language pre 1.0, particularly if you want to build anything that isn't a toy
you mean to "zig" deep right?
Zig has a lot of potential. They need to try to match the Rust approach to tooling and documentation.
If they can't onboard enough enthusiastic developers, it's going to fizzle out.
If what you want is to share something with us. To try some new way of thinking or doing things. I don’t think it’s that bad we can’t just download JAI. I would please to just see you show something new. What’s matter from you wasn’t really about what you used. Yeah’s you were the performance rust guy we today I more see you like a normal human being just sharing his feelings. I really appreciate your desire to stop rust. Your reflection are great and you make me think a little more than my humble golang garden.
I think it’s that kind of video I like where you talk about you since it’s really there we learn who you are !
Anyway you’re decision, I hope you will have a great 2025 ❤
The right answer is obviously BASIC
I think you might be better off talking about this with the Context Free guy. Casey doesn't strike me as someone who likes to try many different languages.
26:00 "Vector programming is when you have a very good language for describing things scalar that are automatically vector." I do know what "vector" and "scalar" mean in math and physics and this just sound like complete BS to me. But, maybe "vector" and "scalar" mean something completely different in his world.
Yes it is different. In computing, a vector instruction is one that performs the same operation on multiple elements at a time. But what he says is BS nonetheless, because vector programming is just for crunching data, it is not general purpose, it is not for program flow, logic, data structuring and whatnot. Also, automatic vectorization is such a huge hit or miss, I'd rather do SIMD intrinsic explicitly. He may as well be wishing for a magic wand that does it all, no effort required.
They are not the same, although some representation from physics can go into some in CS.
If I have a table of numbers and I want to perform the same operation on all of them, vector programming will generally be faster than doing a foreach loop over it.
I didn't get that, either. The way he was talking made me think of vector processors with vector registers, where you have all the elements of a vector in one register. But then he went on to talking about multicores, which is different from a vector processor with multiple functional units.
@@katrinabryce Just use Clojure and operate on a vector or map with functional programming, sequence operations (e.g map, reduce, filter). It is the default behavior.
At the end of the day, it's not about which language you pick, it's about understanding the basics of programing and adapting.
I see programing languages like relatives, they share the same blood but they are different in some ways.
Abandoning Rust and moving to Jai is giving up on one cult and joining another.
...with the crucial difference that one is an actual language with tons of useful, production-level software written in it, and the other is vaporware.
@@jasondoe2596 Certainly. As much as I don't like Rust for my own programming, it's proven to be a really good choice for a narrow range of use cases.
I tried a year ago Swift to make a few PoCs. My background is primarily backend java / python. I liked swift a lot from language design perspective. I didn’t have chance to validate how much “general” purpose it is. I wouldn’t mind to try create server side in it 😊
Erlang sounds like a good option,
distributed computation, split/ merge workloads and async being core to the Erlang "platform?" and elixir seems like a good language to try out
Yeah, I think so too.
I love to give new languages and frameworks a go, but when it's time to implement something seriously I always resort to C#. And scripting and browser side interactive stuff with TS.
Just make your own language at this stage, because whatever language you use or choose, you'll never be fully satisfied.
(as the French people always say : On n'est jamais mieux servi que par soi-même)
This discussion is important! Don't knock it!
The curious things about C programmers is that they like it because they know what their code is doing, but this is true for all languages. Write your own list in C++ and hey you now you have your own list and you know what it does but that's just unacceptable for some reason
There's no good language, but if I had to write one, C++ is the only way to do it well - by which I mean it ends up fast and doesn't take forever to write.
Maybe a video with Casey why C++ is broken? :D I'm curious about your point of view
Casey is not the person for this.
Look up Ian Joyner.
He has a whole book on why C++ sucks (I think it was his master's thesis) comparing it to Java and Eiffel.
He also has many online posts about it.
C++ hard, can't get it to work, and it couldn't be me, therefore c++ broken. Tadaaaa!
I'll give you an easy rhetorical question: how many way to construct an object?
As much as you define 😅
@@hanifarroisimukhlis5989 More like, how many ways to do any "structural" thing? It's like C#'s "feature creep", but at a lower more fundamental level, where it makes your life harder before you even start.
@dgo4490 Even Bjarne Stroustrup, the man who birth'ed C++ said back a few years that there was only a few people in the world that REALLY knew C++, because it had expanded so much in every direction, and many times for "reasons".
I just started a (personal) project with Julia. I'm a probability theory major and I just like solving optimization problems and partial differential equations on the computer, and so far I absolutely love working with the Julia REPL in VSCode.
Hearing Casey speak about Jai being good for metaprogramming, I find it weird that he's not comparing it to Zig's metaprogramming facilities. Has he looked into Zig enough to make the claim that Jai has better metaprogramming?
Or Nim :v
casey got into a fight with andrew kelley and wrongfully claimed andrew knew nothing about allocators, so theres beef in that direction.
@@isaacyonemoto This fight, was it an interesting discussion? If so, do you have a link? I tried googling but nothing came up. Also, are you the Zigler guy? Love that project!
@@adamkoxxl Nim definitely has a cool metaprogramming system, but if Prime is looking for a language without GC, I personally have found Nim very difficult to use without GC. Also, the BDFL is.. hmm. Let's just say that dom quitting the community does not reflect well on the future of Nim.
@@jonthoroddsen6467Nims "GC" is really good though, it is not a traditional garbage collector, I understand it more of automatic injection of memory frees + cycle collector. But I don't know how it would perform against Go for example. And yeah I agree about the community thing and Araqs priorities...
Through this I now understand way better why you do the things you are doing and say the things you say.