Dasync / CloudSharp

Extends C# to bring new Cloud-Native Service-Oriented paradigms
8 stars 1 forks source link

More context please #1

Open dzmitry-lahoda opened 5 years ago

dzmitry-lahoda commented 5 years ago

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

kind-serge commented 5 years ago

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 :vhs::floppy_disk::cd:

dzmitry-lahoda commented 5 years ago

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 commented 5 years ago

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.