JavaScript Structs

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB high-performance time series database
Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.
influxdata.com
featured
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
  1. proposal-record-tuple

    ECMAScript proposal for the Record and Tuple value types. | Stage 2: it will change!

    Implementations will typically use different underlying memory allocations for these strings[1], but at a language level they are considered to be the same value. If it was possible to modify one of the strings using `a[0] = "x";` it would mean `a` and `b` are not equivalent so should not be considered equal.

    As explained here[2], deep immutability is not necessary for this behaviour.

    In my opinion guaranteed "deep immutability" is not generally useful/meaningful (if you have a particular use case, feel free to share it). In theory it's not possible to enforce "deep immutability" because someone can always refer to something mutable, whether that's an object reference or a number indexing a mutable array.

    If you really do want something that guarantees "deep immutability", this concept seems somewhat orthogonal to records/tuples, since there are existing values (eg, strings and numbers) that should be considered deeply immutable, so you'd expect to have a separate predicate[3][4] for detecting this, which would be able to effectively search a given value for object references.

    In case you're interested I tried to summarise the logic behind the rejection of this behaviour[5], but it's very much a TLDR so further reading of linked issues would be required to understand the points made. Interestingly, this post is on an issue raised by the odd person that actually tried to use the feature and naturally ran into this restriction.

    Sorry for this massive wall of text, but I think it's hard to capture the various trains of thought concisely.

    [0] https://github.com/tc39/proposal-record-tuple/issues/387#iss...

  2. InfluxDB

    InfluxDB high-performance time series database. Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.

    InfluxDB logo
  3. proposal-structs

    JavaScript Structs: Fixed Layout Objects

  4. emsdk

    Emscripten SDK

  5. c3c

    Compiler for the C3 language

    And branches [1] of C are still spawning and gaining traction, because C++ is perceived as overkill.

    [1]: https://github.com/c3lang/c3c

  6. TypeScript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  7. SharpLab

    .NET language playground

    > I do likely have a biased perspective though, as I use newer C# features every day

    I think that is kind of the point, though. Many of those newer features help with simplifying code and making it less boilerplate-y. To old programmers it is a simple code fix in the IDE to move from 30 lines of variable assignments in a switch to a 5 lines switch expression and they can learn that way. People new to the language typically won't even consider going the complicated route because they learned an easier way first.

    I do concede that having people with less C# experience on a team where modern C# is used, there will be constructs that are not immediately obvious. SharpLab has an “Explain” mode which would be helpful in such cases, but I haven't seen anything like that in IDEs: https://sharplab.io/#v2:C4LgpgHgDgNghgSwHYBoAmIDUAfAAgBgAJcB...

    However, as a personal anecdote, we've had a number of developers who have written mostly Java 1.4 (technical reasons) before switching to C# about a year ago. They took up the newer features and syntax almost without problems. Most questions I got from them were along the lines of “Can we also use this feature?” and not “What does this do?”.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • TypeScript 5.2's New Keyword: 'using'

    18 projects | news.ycombinator.com | 19 Jun 2023
  • Where is Ruby Headed in 2021?

    14 projects | news.ycombinator.com | 18 Nov 2021
  • How to Write TypeScript Interfaces in JSDoc Comments

    2 projects | /r/javascript | 8 Aug 2021
  • Post to Reddit using its API

    4 projects | dev.to | 19 Jul 2021
  • Show HN: Zero-codegen TypeScript type inference from Protobuf messages

    5 projects | news.ycombinator.com | 14 Apr 2025

Did you know that HTML is
the 9th most popular programming language
based on number of references?