libtask VS csharplang

Compare libtask vs csharplang and see what are their differences.

csharplang

The official repo for the design of the C# programming language (by dotnet)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
libtask csharplang
2 262
10 10,899
- 1.6%
10.0 9.6
about 8 years ago about 22 hours ago
C++ C#
Boost Software License 1.0 -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

libtask

Posts with mentions or reviews of libtask. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-05-11.
  • Ballerina: A Data-Oriented Programming Language
    3 projects | news.ycombinator.com | 11 May 2022
    "Easy" to do if you are willing to put up with macros:

       https://github.com/gpderetta/libtask/blob/master/tests/q_test.cpp#L160
  • Effective Concurrency with Algebraic Effects in Multicore OCaml
    1 project | news.ycombinator.com | 12 Oct 2021
    It is not like a continuation, it is exactly a (typed) continuation, or better, an infinite list of continuations (invoking the continuation.

    In your example of reading an int the EffectHandler and Effect are simply switched (better names are sink and source). And yes, for IO you will need a scheduler, but streams are much more straightforward.

    I have reached my limit of pure functional language knowledge, but I can offer you a working implementation [1] in an imperative language.

    I've actually implemented these typed continuations in c++ years ago, and I'm trying to understand how they differ from effects (aside for the whole imperative thing).

    In the C++ implementation, for convenience the continuation object is replaced with the next continuation when invoked, but internally actually invoking a continuation function returns the yielded value and the next continuation as for my EffectHandeler example.

    https://github.com/gpderetta/libtask/blob/master/tests/conti...

csharplang

Posts with mentions or reviews of csharplang. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-05.
  • Discriminated Unions: Essa feature faz falta no CSharp
    2 projects | dev.to | 5 Feb 2024
  • DevDocs
    19 projects | news.ycombinator.com | 12 Jan 2024
    Certain parts of Microsoft Learn are permissive, for example the .NET BCL documentation is Creative Commons Attribution: https://github.com/dotnet/dotnet-api-docs as is ASP.NET Core: https://github.com/dotnet/AspNetCore.Docs (a good hint if documentation is permissively licensed and on GitHub is if there's an edit button at the top.)

    The C# language specification is unfortunately a bit fuzzier: https://github.com/dotnet/csharplang/discussions/4855

    The updated unified C# language specification is CC, but it's still catching up to modern C#: https://github.com/dotnet/csharpstandard

  • The golden age of Kotlin and its uncertain future
    4 projects | news.ycombinator.com | 11 Jan 2024
    No OP, but for example you still see the C# folks still struggling to add discriminated unions to the language because of complex interactions due to its too many features[1]. Virtual threads are easier to use than async/await is another example.

    [1] https://github.com/dotnet/csharplang/issues/113

  • When static types make your code shorter
    1 project | /r/programming | 5 Dec 2023
    For example, C# had a research fork called Spec# that had compile-time support for contracts, with keywords such as requires (for arguments) and ensures (for return values), all the way back in 2004. While still being discussed, it doesn't seem to be shipping any time soon.
  • .NET 8 – .NET Blog
    12 projects | news.ycombinator.com | 14 Nov 2023
    Hi there. I'm the language designer who created the 'Collection Expression' design/specification: https://github.com/dotnet/csharplang/issues/5354

    You can see the entire history of the proposal there. To answer you specific question, we went with `..` because that's what the language already uses for the complimentary 'pattern matching deconstruction' form for collection patterns.

    In other words, you can already say this today:

        if (x is [var start, .. var middle, .. var end]) { ... }
  • What's new in C# 12: overview
    4 projects | news.ycombinator.com | 20 Oct 2023
    You must specify concrete type.

    There was a plan to have "natural type" so "var list = [1,2,3]" would be of type "List" but it was postponed to C# 13 (https://github.com/dotnet/csharplang/issues/5354#issuecommen...)

  • Robust Design through Value Objects in C#
    2 projects | dev.to | 18 Sep 2023
    While C# currently lacks direct support for this kind of functionality, there's a glimmer of hope with an active proposal under discussion that aims to bring this feature to the language. This potential addition promises a future where C# can natively offer similar robust type narrowing.
  • The combined power of F# and C#
    10 projects | news.ycombinator.com | 7 Aug 2023
    Given few people anticipated ValueTuple and C# adding a more direct tuple syntax, I feel like it is only a matter of time before C# adds discriminated unions.

    (There are multiple proposals tracking the idea. This seems the most comprehensive and "central": https://github.com/dotnet/csharplang/issues/7016)

  • Should i quit Django and move to asp.net
    1 project | /r/dotnet | 14 Jul 2023
    I always liked list abbreviations in python, but I absolutely love Linq. I believe there is a feature proposal for C# 12, which makes collection initialization better imo.
  • Can constructor parameter assignment be made less verbose?
    1 project | /r/dotnet | 27 Jun 2023

What are some alternatives?

When comparing libtask and csharplang you can also consider the following projects:

nballerina - Ballerina compiler that generates native executables.

language-ext - C# functional language extensions - a base class library for functional programming

jOOQ - jOOQ is the best way to write SQL in Java

SharpLab - .NET language playground

SQLDelight - SQLDelight - Generates typesafe Kotlin APIs from SQL

runtimelab - This repo is for experimentation and exploring new ideas that may or may not make it into the main dotnet/runtime repo.

.NET Runtime - .NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.

wuffs - Wrangling Untrusted File Formats Safely

intellij-rust - Rust plugin for the IntelliJ Platform

F# - Please file issues or pull requests here: https://github.com/dotnet/fsharp

dotnet-script - Run C# scripts from the .NET CLI.

DapperQueryBuilder - Dapper Query Builder using String Interpolation and Fluent API