Understanding Objective-C by transpiling it to C++

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

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • Newman

    Newman is a command-line collection runner for Postman

  • gocpp

    Quick and dirty experimentations to parse go code and generate equivalent c++ code

  • I have started to do the same thing with go but it's largely unfinished. The next thing I will try to do when I have some time is to implement goroutine with the new c++20 coroutines.

    (https://github.com/Rokhan/gocpp)

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • rellic

    Rellic produces goto-free C output from LLVM bitcode

  • gcc

  • > They’re saying that a lot of the restrictions makes things much harder than other languages. Hence the general problem rust has where a lot of trivial tasks in other languages are extremely challenging.

    Like what? So far the discussion has revolved around rewriting a linked list, which people generally shouldn't ever need to do because it's included in the standard lib for most languages. And it's a decidedly nontrivial task to do as well as the standard lib when you don't sacrifice runtime overhead to be able to handwave object lifecycle management.

    - C++: https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-...

    - Rust: https://doc.rust-lang.org/beta/src/alloc/collections/linked_...

    > No need to get defensive, no one is arguing that rust doesn’t do a lot of things well.

    That's literally what bsaul is arguing in another comment. :)

    > You’re talking up getting a safe implementation in C, but what matters is “can I get the same level of safety with less complexity in any language”, and the answer is yes: Java and c# implementations of a thread safe linked list are trivial.

    Less perceived complexity. In Java and C# you're delegating the responsibility of lifecycle management to garbage collectors. For small to medium scale web apps, the added complexity will be under the hood and you won't have to worry about it. For extreme use cases, the behavior and overhead of the garbage collector does became relevant.

    If you factor in the code for the garbage collector that Java and C# depend on, the code complexity will tilt dramatically in favor of C++ or Rust.

    However, it's going to be non-idiomatic to rewrite a garbage collector in Java or C# like it is to rewrite a linked list in Rust. If we consider the languages as they're actually used, rather than an academic scenario which mostly crops up when people expect the language to behave like C or Java, the comparison is a lot more favorable than you're framing it as.

    > If I wanted I could do it in c++ though the complexity would be more than c# and Java it would be easier than rust.

    You can certainly write a thread-safe linked list in C++, but then the enforcement of any assumptions you made about using it will be a manual burden on the user. This isn't just a design problem you can solve with more code - C++ is incapable of expressing the same restrictions as Rust, because doing so would break compatibility with C++ code and the language constructs needed to do so don't exist.

    So it's somewhat apples and oranges here. Yes, you may have provided your team with a linked list, but it will either

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

  • Getting Started with Backend Development in Kotlin Using Spring Boot 3 & MongoDB

    5 projects | dev.to | 15 Feb 2023
  • A Low-Code/No-Code approach to Strapi Enablement

    2 projects | dev.to | 13 May 2024
  • Flang: Fortran language front-end designed for LLVM

    1 project | news.ycombinator.com | 12 May 2024
  • 10 Ferramentas de Produtividade para Desenvolvedores Experimentarem em 2024

    3 projects | dev.to | 11 May 2024
  • AWS SnapStart - Part 20 Measuring warm starts with Java 17 using different Lambda memory settings

    1 project | dev.to | 8 May 2024