- 6
- 15 324
NYC++ Meetup
Приєднався 28 лис 2022
Chains: Exploration of an alternative to Sender/Receiver | Sean Parent | NYC++
If you're in the NYC area, join the NYC++ Meetup group!
www.meetup.com/new-york-c-c-meetup-group/
Description
Starting from separating function execution context from a function result, this talk looks at the ensuing problem space and pursues an alternative path to sender/receivers, emphasizing simplicity and low latency in a dynamic environment.
Speaker Bio
Sean Parent is a senior principal scientist and software architect managing Adobe's Software Technology Lab. Sean first joined Adobe in 1993 working on Photoshop and is one of the creators of Photoshop Mobile, Lightroom Mobile, and Lightroom Web. In 2009 Sean spent a year at Google working on Chrome OS before returning to Adobe. From 1988 through 1993 Sean worked at Apple, where he was part of the system software team that developed the technologies allowing Apple’s successful transition to PowerPC.
www.meetup.com/new-york-c-c-meetup-group/
Description
Starting from separating function execution context from a function result, this talk looks at the ensuing problem space and pursues an alternative path to sender/receivers, emphasizing simplicity and low latency in a dynamic environment.
Speaker Bio
Sean Parent is a senior principal scientist and software architect managing Adobe's Software Technology Lab. Sean first joined Adobe in 1993 working on Photoshop and is one of the creators of Photoshop Mobile, Lightroom Mobile, and Lightroom Web. In 2009 Sean spent a year at Google working on Chrome OS before returning to Adobe. From 1988 through 1993 Sean worked at Apple, where he was part of the system software team that developed the technologies allowing Apple’s successful transition to PowerPC.
Переглядів: 3 674
Відео
How to be Better at Debugging Linux C++ Code | Greg Law | NYC++
Переглядів 36911 місяців тому
At NYC in November 2023, Greg Law discusses the pros and cons of various C debugging tools available for Linux, and walks through a series of live demonstrations. Learn more about NYC : nycpp.dev/ Support NYC on Open Collective: opencollective.com/nycpp
Requirements for C++ Successor Languages | Bret Brown | NYC++
Переглядів 183Рік тому
Requirements for C Successor Languages At NYC in April 2023, Bret Brown discusses problems that new programming languages will need to overcome before they can be seen as viable "successor languages" to C . Learn more about NYC : nycpp.dev/ Support NYC on Open Collective: opencollective.com/nycpp
Let's Talk About C++ Abstraction Layers | Inbal Levi | NYC++
Переглядів 3,9 тис.Рік тому
Let's Talk About C Abstraction Layers At NYC in May 2023, Inbal Levi explores existing "abstraction layers" in C , and proposes suggestions for avoiding bugs that occur at the interfaces between layers. Learn more about NYC : nycpp.dev/ Support NYC on Open Collective: opencollective.com/nycpp
Circle Evolves C++ | Sean Baxter | NYC++
Переглядів 7 тис.Рік тому
Circle Evolves C : One simple trick to unshackle creativity in C language evolution At NYC in March 2023, Sean Baxter introduces the latest release of Circle, which he claims offers a path to safely eliminate C 's technical debt and modernize the language. Learn more about NYC : nycpp.dev/ Support NYC on Open Collective: opencollective.com/nycpp Try Circle on godbolt.org: godbolt.org/z/zK7j8WrM...
The semicolon is a lie | David Sankel | NYC++
Переглядів 462Рік тому
In the first gathering of the NYC meetup group, David Sankel from Adobe presents "The semicolon is a lie," on the history and possible future of compiler optimizations. MC: Nick DeMarco Introductions: Dan Katz
This idea is as old as the language itself: every compiler has its language extensions. But they can't agree with each other even on something as trivial and useful as #pragma once. So it's no wonder that people are demoralized about extending C++ and start their own language ecosystems. That said, if GCC or Clang had proper extensibility mechanisms perhaps we'd see enough people who are mad enough to try but not mad enough to have their liver daily eaten by an eagle.
I'm only barenly 8 minutes in and I'm always impressed of how much practical your talks are, and yet so much about advanced C++! One of the best for sure!
Before I realized that the canceling cost of futures was too high, I had written a similar cancelable future implementation in C++ for a trading system. Solution after was to directly write hierarchical state machines.
hi @statebased, this hierarchical state machine sounds interesting, do u have some video/docs/blog on this ? i would like to check, thank you.
@@cjr6381 ~12:38 in ua-cam.com/video/dP4c7pAgaUA/v-deo.htmlsi=mI8RF-wl3gxZgnQ0 There are two insights: streams are a handy way to model states. You can include a notion of hierarchy (yet is a pain to implement).
@@statebased thanks, the socket buffers (as events), the kernel interrupts (as events), etc, as in-coming streams, then single thread to process this stream is the simple and elegrant way :-), i still cannot understand how this hierarchy work , sounds complex. thanks again.
C++20 coroutines give easier tools for building complex control flow with state machines.
I wish C++ had a better tooling / packaging ecosystem that could alleviate the need to put even senders and receivers into the library. If we figure out that chains are better, we don't have to carry legacy baggage around.
The idea that this is going to be a core part of the language rather than a library is just ludicrous tbh.
What is the discord being mentionned several times here? A conference one? A private one?
Thanks… Was waiting for it from a long time
So .. Eric Neibler has a quietly grumpy, super smart, code uncle .. and that guy is Sean Parent. 🙂
Epic presentation, only shame is the audio quality. I'd jump on this compiler in a heartbeat
Simply trying to sculpt Rust on top of C++ :-)
A bold new idea: Haskell language extensions that have been around for forever?
- 10:31 I appreciate the incremental approach, rather than the "rewrite it in a completely different language and different common runtime and different toolchain" mindset 🤦♂. - 15:46 Yeah, `3 != mask & value` was an operator precedence mistake. - 21:02 Does there need to exist a new declaration syntax if instead one just fixes the mistake of permitting parentheses in initialization in the first place? That way if you see `a b(c)`, you know it's a function call, and if you see `a b = {c}` you know it's initialization. The most vexing parse would be moot, no? - 21:03 "fn" barf, an unpronounceable devoweled word fragment. At least be consistent with the rest of C++ keywords (struct, enum, static_cast, char...) which take whole fragments. So, `func` or `fun`. - 22:27 It's an interesting illustration that newer languages can be mostly a subset of Circle. - 27:02 More often than `[no_implicit_enum_to_underlying]`, I actually wish I had the *opposite* for `enum class` bitflags, that you *could* implicitly to cast to the underlying type. - 33:19 `match` is a matching keyword actually makes sense, not `inspect`.
On your 21:03 complaint - I'm not the hugest fan either, but given C++ has std, I'm not sure there's any existing "consistent" rule.
👍 A Windows Circle Version would be optimal😺
Edit: This is addressed at 55:26 -Some of these are great ideas (ignoring that we're still using C++ and not doing this on a simpler, objectively easier to write/maintain/debug/read/use language like C), but it will lead to fragmentation. Is that a bad thing? Neutral? Maybe it's just like it is now with companies enforcing their bike shed style policies like variable name styling, forcing namespaces, line length, etc. But it seems like a totally different `switch` semantic between companies could take getting used to? I guess companies could rename and brand their personal "version" of Circle. "Here at Twitter, er, X!, we use Dunning-Kruger Circle. Make sure you know we're not writing in C++ anymore, but DKC!"-
38:18 - This is really encouraging, because it means I can do something similar in C, with 1/4 the effort!, by skipping the horrible OOP mistake of the 1980s that we still haven't outgrown for some reason...
25:37 - Wait, isn't cppfront an evolver language? It allows for old C++, and lets anyone opt in to new features. What is the distinction here?
Yeah I feel like this speaker doesn't quite get the goal of cppfront. "Doesn't have a compiler" what does that even mean?
@@kingduckVII believe it's because a compiler's job is to turn your code into assembly or byte code which then will be executed, but cppfront code turns into C++ code and that C++ code will get compiled by a C++ compiler.
I'm sure Sean gets the goal and understands it's all relative. Cppfront as of now first down compiles to normal cpp as opposed to a holistic compilation step. If you did cppfront as a holistic compile then I would agree they are the same. By the same logic, carbon is the same as circle. If you look at one one part you can say they are all the same. The differences are in the feature set they want to support. Circle is very "unopinionated" in that users can turn on the features they want. They vote with what they use. While carbon and cpp front seems to be more static.
@@kingduckVI Sean understands matters completely. Maybe watch the next 4hour of youtube hits to understand better how well thought out his entire view of how to take C++ forward
Excellent talk which talks about the elephant in the room whenever people are taking about a language to replace C++. It would really benefit to use those principles whenever we're having a programming language discussion. I'm going to start using the terms "C++ successor" vs "C++ alternative" every time I get a chance going forward. Many new languages which came up in the last decade are at best only alternatives. Very few seem to qualify as successor.
Constructive criticism: Audio is a bit low. Hard to hear. Pump up the volume in future recordings! Thank-you for providing access to such interesting topics!
Thank-you!
Brilliant & Exciting!