Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More context please #1

Open
dzmitry-lahoda opened this issue Aug 2, 2019 · 3 comments
Open

More context please #1

dzmitry-lahoda opened this issue Aug 2, 2019 · 3 comments

Comments

@dzmitry-lahoda
Copy link

Related? Bosque lang? Dark lang? Erlang? C# expressions? C# Fast Expression Compiler?

@kind-serge
Copy link
Member

Unrelated :) It's a 3-year old endeavor finally coming to life.

You've probably seen examples on the front page of the D-ASYNC project - they use plain C# to express service-oriented programming concepts. It is hard for us developers to spot the difference between local execution and network invocations. That's why early RPC-like technologies failed, and that's why today's similar technologies can be tricky to use.

I believe that we are missing a few paradigms at the programming language level. The new paradigms that can express modern development designs and patterns. Once we have them combined with productivity tools, the world of cloud-native programming can change drastically.

Stand by, more is coming, and it might take a while to get to the final vision. And when you have anything specific on your mind, you are welcomed to make the history 📼💾💿

@dzmitry-lahoda
Copy link
Author

dzmitry-lahoda commented Aug 5, 2019

except mentioned earlier, i have read recently books on k8s(from creator), istio, erlang(from creator) and REST(from creator). also i have used COM/DCERPC earlier.

so cloud native can be:

  1. C# 8.0+ with shapes/typesclasses/interfaces with implementations to put structs on steroids with all readonly corner cases closed
  2. stable generic sorting
  3. Kind of System.CommandLine.DragonFruit but with async ValueTask return and configurable host. Also https://www.metaparticle.io/tutorials/dotnet/
  4. Main as process or as thread or as thread pool item.
  5. Assembly load unload with no domain (.NET Core seems has it).
  6. Complex engine to pass assemblies back and forth (may be kind of Vagabond).
  7. May be enforce main to ValueTask<Expression<FooBar>> and the whole body to be expression via analyzer. So it can be compiled via FastExpressionCompiler. Also needs https://github.com/bartdesmet/ExpressionFutures
  8. AOT for sure (small size and fast start). May be AOT into WASM(allow for AST diff).

Skimmed over D-ASYNC - does not look cloud native. May be it is such (have not read articles yet).

MS either tries to do much:

https://github.com/dotnet/orleans
https://github.com/microsoft/ReactiveMachine
https://github.com/microsoft/ambrosia

I say that all things are around and in very active progress.

@kind-serge
Copy link
Member

I see, and I agree that cloud-native can embrace numerous technical details. The one thing I'm trying to bring with this project is to hide them, so developers can focus on the core business logic instead of non-functional requirements just to make it work.

To my mind, the "cloud" may have a quite broad meaning, and the primary area of this endeavor is service-oriented design (aka micro-, mini-, nano-, macro-services, SOA 2.0, etc). Perhaps, the upcoming examples, demos, and hands-on experience will make the intent more clear.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants