Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login
Ask HN: Faster than C, simpler than Python, safer than Rust. Possible? (b'') similar stories update story
10 points by owenpalmer | karma 806 | avg karma 2.28 2023-03-03 17:01:30 | hide | past | favorite | 30 comments



view as:

Faster to run or compile?

Faster to run

I think it's possible, as long as you don't try to be as general purpose as C, Rust or Python.

If you try to cater to a lot of use cases, you will invariably compromise on either speed, simplicity and perhaps even "safety".


[dead]

[dead]

Pascal is as fast as C. It compiles much quicker. It handles pointers in a far safer manner, without the oddities of rust.

Plus you can stuff a gigabyte into a string without ever having to allocate anything.

Pascal is the language of the future.


"Faster than C", I saw people write C code slower than a Python equivalent. So I have to admit, I don't know what it means for a language to be fast, because it depends on the algorithm being implemented and the developer who writes the code.

---

"simpler than Python", what does "simple" mean?

Simple design? Python's design is very complex (take a look at "Crimes with Python's pattern matching" < https://www.hillelwayne.com/post/python-abc/ > for example), on the other hand, assembly languages, or Lisp, or Forth, have a very simple design.

Simple as in "easy to use"? Rust is easy, write code, fix what the compiler tells you you did wrong. Joke aside, Go is quite easy to use and while I personally don't like this language, I get why it replaced Python in a lot of use cases.

Also, once you get used to the OTP framework, Erlang/Elixir/Gleam/any beam language are quite easy to use and have less footguns than Python.

---

"safer than Rust" is too vague. Is it memory safety? type safety? thread safety? cosmic ray safety? A mix of all of that?

Let's guess you meant "memory safety". All languages with a Garbage Collector are "memory safe".

---

On a semi-unrelated note, I've been working on https://letlang.dev

It's a language inspired by Erlang/Elixir (same concurrency model) that compiles to Rust code (the runtime use tokio). It is immutable, have no Garbage Collector thanks to Rust semantics, and dynamically typed.

I haven't run any benchmark (it's not even finished, I've been working on the specification before continuing the implementation), but I guess it could be slower than a rock.

---

For some recommendations, have you looked at Zig? Nim? Hare?

https://ziglang.org/ https://nim-lang.org/ https://harelang.org/


[Remove the two spaces in the last lines so the links become clicky.]

Done

Complementary video supporting my "fast is irrelevant" argument:

How slow is JavaScript really? Javascript vs C++ [Data Structures & Optimization] https://www.youtube.com/watch?v=WLwTlC1R2sY


Everything happening in a non-JIT-ted Python program is the action of compiled C code, so if a C program is slower, that just indicates that the C program is going out of its way to waste resources.

Letlang looks really nice! Keep up the good work!

I don't need something faster than C. That only matters on the bleeding edge of AAA games, algo-trading, maybe adtech. None of the areas I choose to work. Also Python is too simple with dynamic types for me.

Typescript on nodejs for many reallofe backend use cases i observed turned out to be far superior than real world java/scala code.

Can you elaborate on why?

It’s simple. To write efficient AND maintainable code in java you have to be both very experienced developer in general and proficient in java.

Which most developers are not. So they end up in a pile of piles of crap.

While typescript learning curve is negligible and js single threaded nature helps avoiding overengineering mentality.

So unless you’re shitty js coder, there’s just less reasons and ways to shoot yourself in the foot.


To be fair it’s not applicable to all usecases and situations.

If you need to implement next Kafka - there not much you can do with a beautiful nodejs code.


Pytorch

Fortran

not far off the mark, especially if you stick to '77

I’m pretty optimistic about V, it so far has great language ergonomics, solid performance, and memory safety through its “autofree” memory feature flag. https://vlang.io/

how does the scoping works? From the homepage:

    import os

    text := os.read_file('app.log') or {
        eprintln('failed to read the file: ${err}')
        return
    }

    lines := text.split_into_lines()
    for line in lines {
        if line.starts_with('DEBUG:') {
            println(line)
        }
    }
Is lines empty or program exited after the error at `app.log`

If there's an error at reading app.log, the error is printed, and the function is returned.

Code after that won't run at all.


V is progressing well, but in beta. It has to maintain its momentum and focus, without getting derailed, and deliver a polished useable 1.0 release.

> ...memory safety through its “autofree” memory feature

V has different memory management options, which can be turned off and the libraries don't depend on them. GC (default and optional), autofree, arena allocator (prealloc), or manual. This is mentioned in the documentation (https://github.com/vlang/v/blob/master/doc/docs.md). It has numerous safety features, as part of its design, and coupled with the GC (default) or autofree, would provide significant memory safety.


Ada actually trades blows with C in Debian shootout game. It is the language of choice for automotive and aviation safety certification. You cannot get safer than that. and it doesn't have oddities of Rust.

Julia is about as fast as C (compiled language) and as simple as Python.

My guess is Ada. I have not used it, but that would be my guess.

Looking for https://val-lang.dev ?

> faster than C

> simpler than Python

> safer than rust

Meet Nim: https://nim-lang.org/


Legal | privacy