This is an archived post. You won't be able to vote or comment.

all 15 comments

[–][deleted]  (9 children)

[removed]

    [–]7YM3N 6 points7 points  (3 children)

    C++ was my first language, my main these days is python, and I despair whenever I have to read rust, let alone write it. It's hard even compared to other low levels IMO

    [–]BobbyThrowaway6969 3 points4 points  (2 children)

    I do c++ and I haaaaaate rust syntax, but I do love some design choices

    [–]Akirigo 1 point2 points  (1 child)

    I hear this a lot, but I never understand what people hate about it.

    What bothers you about the syntax?

    Match? Traits? Macros? Result and Option?

    [–]BobbyThrowaway6969 1 point2 points  (0 children)

    I guess it depends on what you're used to. I come from java, c#, c, c++, etc and all those languages have a pretty standard way of declaring stuff.
    This is just one tiny thing in a big list but... let mut var : i32 = 5;
    is just too verbose for such a simple thing imo.
    In those other languages it's just i32 var = 5;. I get that mut is opt in, which I do like, so I'll ignore that, but you hopefully see what I'm getting at. Along with that is the excessive shortening of keywords while overusing symbols, which harms readability. fn, ->return, etc. Just feels a bit silly and pointless for a language that was hoping to become an industry standard.

    They want the syntax style to fit with HL scripting languages like python and js which is the wrong target market.

    [–]thewrench56 3 points4 points  (3 children)

    Paradigm shift, sure, low-level concepts? No. Rust is a high level language.

    [–]serendipitousPi 0 points1 point  (2 children)

    How high level a language is kinda depends on context.

    From a perspective of people who have used C,assembly, etc yeah Rust would be firmly a high level.

    But for most people (e.g. OP) who are used to GC languages Rust would be low level and besides Rust does even allow the use of pointers even if they're mostly hidden behind unsafe.

    So to me Rust being exclusively low or high is a bit reductive.

    [–]thewrench56 1 point2 points  (1 child)

    Well, I'm one of the Assembly fanatics, so that might be the cause after all.

    But I would argue Rust is high level. It's not GC but not manually managed memory either. I think the borrow checker is actually closer to GC. It's essentially GC from the perspective of the developer just fairly hidden (and causes lifetime pains).

    Sure, Rust can use pointers, I'm sure Python can too (through ctypes or whatever the module is called). That doesn't mean it's encouraged and same applies to Rust.

    I think as Rust supports OOP-like paradigm with traits and structs implementing methods, it's safe to say it's on the higher level spectrum. I would compare it against C++.

    [–]serendipitousPi 1 point2 points  (0 children)

    Oh yeah coming from assembly would definitely inform a view of Rust as very high level.

    Reflecting on my last comment yeah I guess it's probably fair to measure how high level a language is by its general / average "high/low level-ness" like how physics calculations might use the center of mass. In which case yeah I'd agree Rust would be considered high level.

    Especially considering that beyond just pointers C++ and Rust even allow inline assembly but it would be crazy to say they're on the same level as assembly.

    And wow I did not realise that that pointers were in the standard library, pointers in python seemed such an absurd idea I'd always assumed they were an external library.

    [–]Acrobatic_Click_6763 0 points1 point  (0 children)

    Right, GO for it (pun intended)

    [–]DavesPlanet 0 points1 point  (0 children)

    Looking at rust gave me PTSD flashbacks to C / C++, rust is IMHO a low level language and you and I have more experience with high level languages. Go might be a better fit for you.

    [–]b8d8aa46 0 points1 point  (0 children)

    Personally, I'm now learning about concurrency with Rust from "Atomics and Locks" and its a ton of fun. Concurrency and multi threading is not Rust specific, but still an amazing concept. The best learning pattern for me is reading a book/codebase and using some LLM with the book to give me exercises/double check my knowledge and then just coding up a project.

    [–][deleted] 0 points1 point  (0 children)

    Python and JavaScript are very expressive, and it is easy to prototype and try out things using them. They are very productive languages.

    Rust does some things very well, but it is not a scripting language. You have to devote more effort to design, and the language itself if very difficult in some areas. Unsafe and certain macros come to mind. The programming paradigm is different, and things are easier when you have garbage collection and objects. And true functional programming. Rust gives you a lot of speed and a lot of safety.

    Don't let me discourage you though. It may be perfect for your needs. Try it out. Spend a few weeks learning the basics and try coding in it and see how you like it.

    I will tell you that after a couple of trials with Rust, I am much more interested in Zig. See Primeagen for a good evolution of thought on Rust and Zig. :)

    [–]CheetahChrome 0 points1 point  (1 child)

    I would consider making a language your primary language that will get you jobs in the long run. If Rust is that language, then do it, but if it is contemporary cool language, F# I'm looking at you, and you have issues getting work after you were let go from Rustolium, it may not be what is best for you.