What a fascinating way to look at cpp successors and thinking branches, thank you so much
@MikeShah Жыл бұрын
Cheers!
@GaryChike2 жыл бұрын
Such an interesting topic Mike! This is the first time I've heard about Circle and Cppfront. I could chat about this topic for hours. It's my understanding that Carbon is geared for large existing C++ code bases. If someone/company is starting from scratch, the creators of Carbon actually recommend Rust which interestingly enough like most of the new system programming languages appear to 'de-emphasize' OOP constructs (e.g. Hare, Odin, Zig, Nim ..) with other paradigms like Functional programming, data-oriented programming (ie. ECS- entity component system) trending. I like the ellipses '...' used by Circle (for ranges) which also happens to be in the Lua syntax. I can see more terse constructs being incorporated from higher-level (scripting or dynamic) languages more and more. Speaking of terseness, I actually really like Val's syntax. For me personally, Val is very easy to come to grips with vs other system-programming languages which can be quite verbose at times. Walter Bright, the creator of D, was one of the only individuals to have written a C++ compiler (Zortech) all by himself from scratch. But it appears that Sean Baxter(Circle) may be able to make claim to that as well? So, much to discuss .. 🚀🚀
@MikeShah2 жыл бұрын
What's going on in the systems world is the largest evolution that I can remember, and perhaps the largest since C++ came from C! Very exciting times! There's also another language 'jakt' that I more recently learned of in this space as well (also available on compiler explorer). And agreed, neat to see how much Rust has influenced and become one of the leading languages for new projects. The guarantees on memory safety in Rust and D are very powerful. Might have been Walter Bright around 2014/2015 who said 'memory safety will kill C' at one of the DConf's.
@rohrbold2 жыл бұрын
Thank you very much for this interesting overview. Exciting times in the C++ world. Let‘s see where we are all going in the next five to ten years.
@MikeShah2 жыл бұрын
Agreed, it's a brave effort by folks, and in the least some new ideas are being tossed around which is exciting!
@mustafaaltay49202 жыл бұрын
Good recap Mike, thanks
@MikeShah2 жыл бұрын
Cheers, thank you for the kind words!
@TheSulross Жыл бұрын
Zig, Odin, and Vale are very interesting relatively new languages as well
@MikeShah Жыл бұрын
Trying to figure out how to keep track of all of these :)
@jrohit1110 Жыл бұрын
Mike, do you plan to cover performance oriented programming like SIMD or cuda specific code, perhaps in a separate playlist for C++?(Similar to the Modern C++ (cpp) Concurrency playlist)
@MikeShah Жыл бұрын
Yes, at some point I will cover these topics. Not sure where they'll get posted at this time :)
@bsdooby2 жыл бұрын
Would be cool if you could turn this alternative languages overview into a series, e.g., provide an overview of their evolution every two months or so.
@MikeShah2 жыл бұрын
Will be following closely when there are releases of each of the compilers, and will likely add some content. Dlang is of course its own series and very mature and production ready. The rest listed I think will continue to quickly evolve. 😁
@zamf Жыл бұрын
I'm actually in the process of designing a programming language inspired by some of the ideas in Val. The core idea is still value semantics, explicit copies, explicit value mutation, less-verbose generic programming, but I've added some of my own concepts and removed some of Val's more confusing ones. For example, in Val values are sinked/moved by default, while the concept I'm going with is that values are passed by borrow by default (think of it as pass-by-reference but with exclusive access) and moves are only enforced in places where that's the only possibility, which reduces the need for unnecessary moves and copies. The front-end parser/AST builder is almost finished and I'm considering using C++ as an IR and later maybe LLVM. We'll see.
@MikeShah Жыл бұрын
Very cool -- pass by borrow seems like a nice concept to explore, and language defaults matter a lot to the end user
@vladimirkraus14382 жыл бұрын
I am looking forward to the future times when some of these languages mature enough to smoothly interop with Qt/C++ framework. Hopefully it will come soon :)
@Southpaw101 Жыл бұрын
Mike do you think Rust will kill c++? Seems like lot of people are predicting that , would love to know your thoughts on this ?
@MikeShah Жыл бұрын
Don't think any one language will over take the other 100%, but I do see a culture now where bigger companies may be more comfortable not defaulting to C++ or Java. Thus there's room for Rust, D, nim, zig, golang, etc. 🙂
@roykin09292 жыл бұрын
only if all those guys/teams would collaborate to actually move cpp forward together either with a successor or with new versions of the language. I like the idea of cppfront the most, carbon just seems like cpp with sugary syntax (wjich i like) while herb actually introduced better defaults and features. cppfront with carbon syntax would is something i would like to see, with circle's features (they'll probably come to cpp in future anyways). Val is something i still have to check out.
@MikeShah2 жыл бұрын
I think the best features will converge into C++ from these languages over time 🙂
@roykin09292 жыл бұрын
@@MikeShahmaybe some of them but not all, for example the defaults will (probably) never change, a big revolution in cpp world would be quite good for the future of langauge
@MikeShah2 жыл бұрын
@@roykin0929 I think the defaults in fact will be difficult. Might need a compiler switch or something to otherwise change behaviors. There's a small number of usecases I can think of where performance is critical that we'd want to avoid any default for example (e.g. not initializing blocks of memory or values that will immediately read data elsewhere). Anyway, the good news is lots of folks working on tooling and language evolution.
@IamusTheFox2 жыл бұрын
I love who started Carbon, but of the ones listed it's the one that I'm the most concerned about. I feel like they went more verbose for no real reason. cppfront is really just a clearer more correct c++20. Circle is C++ but with tons of crazy features. D addressed every problem that C++ had when D was created. I have just now heard of Val. That and google drops things like hot potatoes left and right. I wouldn't trust a google product for any long term need.
@MikeShah2 жыл бұрын
Will be exciting to see what happens or which of these language projects influence C++26 for example. I am quite biased on this channel, but I think Dlang is incredibly overlooked -- really surprised more folks aren't giving D more attention -- perhaps that will come soon!
@IamusTheFox2 жыл бұрын
@@MikeShah Hey the D language is really nice. I got kinda put off by a few people in the community, but I wholeheartedly believe that it will never get the love it deserves
@IamusTheFox2 жыл бұрын
@@MikeShah I am also super excited for c++26. I was so sad pattern matching didn't make it in. But I know Circle is an implementation playground for it. And I think that they're working on putting it in cppfront too