Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming

Rust Programming Language Reaches 1.0 Alpha 161

c0d3g33k writes: Rust, a new a systems programming language with a focus on safety, performance and concurrency, has released the 1.0 alpha version of the language. This means that the language and core libraries are feature-complete for the 1.0 release. In practical terms, this means that the rate of change experienced by early adopters will slow down dramatically and major breaking changes should be very rare (during the alpha cycle some major changes may still occur if considered necessary). The language will stabilize further when the beta stage is reached (planned for six weeks from now).
This discussion has been archived. No new comments can be posted.

Rust Programming Language Reaches 1.0 Alpha

Comments Filter:
  • Obligatory (Score:2, Funny)

    by NeoGeo64 ( 672698 )
    I'm a bit Rusty on the subject. Pardon?
  • I always heard that Rust was like a 3D printed gun. Nifty, if they can ever get it to work.

  • by Anonymous Coward

    Rust's raison d'etre is fast but safe programming [rust-lang.org]. It seeks to achieve this by expanding the type system with the different pointer types owned, borrowed, and garbage collected [rustbyexample.org], as well as explicitly unsafe sections of code.

    Rust does not however attempt to address array length issues via such type level mechanisms. Instead, they use compile time lengths for arrays and offer for slices [rustbyexample.com] for arrays with run-time lengths. That's okay, but it ignores swaths of optimizations.

    Ideally, you want a fully dependent

    • But with python and javascript being so dominant we are headed in a totally different direction for the bulk of our applications.

      • But with python and javascript being so dominant we are headed in a totally different direction for the bulk of our applications.

        I wouldn't bet on that horse staying in the lead forever (well, horses plural). Those of us with long enough memories remember when this wasn't true. Here's a thought experiment: How did they get dominant in the first place, since at one time they were new and different? Things change and improve over time, and that's a good thing. Besides, Python and JS developers aren't necessarily the target audience, though there may be some overlap between them and potential Rust developers. For some reason "The

        • How did they get dominant in the first place

          Less work to do up front makes it easy to get started. Not your problem if a 100000 line code base is unmaintainable down the track

    • for this because dependent types let you tell the compiler to prove at compile time that two arrays must have the same size.

      I can think of very few optimisations where knowing this helps. Knowing exactly what the sizes of the two arrays are helps with various forms of vectorisation (especially if you also know their alignment). Knowing that two arrays don't alias is very useful for several kinds of optimisation. Knowing that they're the same length? Not so much.

  • I'll just wait until next week, when the much more stable version 27.0 comes out.
  • Great! (Score:5, Funny)

    by Anonymous Coward on Sunday January 11, 2015 @01:30AM (#48785405)

    Just the other day I was remarking how few programming languages there are.

  • Ok, if this is a systems programming language, where is the first RTOS kernel with all the necessary lowlevel bits and pieces to getting it running on a modest modren 32-bit MCU ? Say, any Cortex-M3 ? Device drivers for basics, register access ?
    Because, it would be awesome to have all these theoretical safety guarantees and stuff, while programming hardware.
    Is there even a cross-compiler ?

    • Firefox OS (Boot to Gecko) has Raspberry Pi (armv6) as a porting goal.

      So I imagine if the project ever evolved into BootToServo, rust on low spec ARM would be a prerequisite.

    • Re: (Score:3, Informative)

      by Narishma ( 822073 )

      http://zinc.rs/ [zinc.rs]

    • by rmstar ( 114746 )

      [...] Cortex-M3 ? Device drivers for basics, register access? Because, it would be awesome to have all these theoretical safety guarantees and stuff, while programming hardware.

      Ada has that (google for "arm-none-eabi ada") and much, much more. Plus, it is a mature language with a fat piece of industry behind it.

      This Rust language is yet another flashy thing that will not get anywhere.

      • Re:Device drivers ? (Score:5, Interesting)

        by c0d3g33k ( 102699 ) on Sunday January 11, 2015 @10:45AM (#48787019)

        This Rust language is yet another flashy thing that will not get anywhere.

        That remains to be seen. I've heard the same thing said about email, the internet, Linux, Java, the iPhone, tablets and many other things over the years. The truth is that in a viable and vibrant marketplace of ideas, many things fail but some survive, and predicting which is hard. Give it a chance to fail or succeed on its own rather than condemning it in the womb, and be glad you live in a time where people have the enthusiasm and energy to try new things. Your attitude leads to stagnation.

  • It's about time we finally have a language that meets all of our needs [xkcd.com], now we don't need so many different languages.

    • Rust is specifically not designed to be a "meets all your needs" language. It's a language that knows its niche well, and sticks to it.

      Basically, this is programming language for systems and other low-level stuff done right. It competes primary against C++, and to a lesser extent, C, and does it really well. It's not yet another scripting language for the web or desktop GUI or some such, and it doesn't pretend to be one.

      • Rust is specifically not designed to be a "meets all your needs" language. It's a language that knows its niche well, and sticks to it.

        Basically, this is programming language for systems and other low-level stuff done right. It competes primary against C++, and to a lesser extent, C, and does it really well. It's not yet another scripting language for the web or desktop GUI or some such, and it doesn't pretend to be one.

        I agree with you in principle, except for the "it competes ... really well" part. That's an unfounded assertion since it hasn't actually competed in the real world yet. Because, you know, not being finished yet. The true challenges are still in the future. It seems to have successfully passed the early "get people interested" stage, which is nice, but there are a bunch more hurdles to be surmounted before I would call it even a marginal success. Let's wait and see.

  • I have been using rust during development and eagerly awaited this release. Please be warned, however, that rust has a steeper learning curve than most languages, and be especially warned that the language has been changing faster than the documentation can keep up during the push towards alpha. Last I checked, even things as core as the names of the integer types differ between the documentation and the implementation. I want people to get excited about the language, but I don't want anyone to get an un
    • I want people to get excited about the language, but I don't want anyone to get an unnecessarily bad initial impression!

      They're not going to do that if the devs can't even bother to keep the documentation up-to-date. It's absolutely critical to the health of a project that the documentation both exist and be correct. Until that happens, people are going to take the "effort" for what it is, an unprofessional joke. At least C++ is professional comedy.

      • That's a rather uninformed statement to make, given that you're referring to a rather short time period when the rate of change caused the docs to lag behind. That will be corrected soon, I'm sure. Besides, the API docs, which are generated from the code, *are* correct and have been kept up to date all along despite the rapid rate of change. So documentation exists and is correct. The GP was likely referring to the higher level docs, such as guides and tutorials, which aren't produced by "the devs".

        But

        • The "guide" and the "guides", recently merged into "the book", actually are professionally maintained by a Mozilla employee, who is doing a great job but is of course outnumbered by the rest of the devs making language changes. Among other things, "alpha" is a chance for him, not to mention writers of external libraries, to get fully caught up with the development branch before beta and eventually 1.0.
          • Thanks. I was going to mention that there was a dedicated person (Steve Klabnik is his name, BTW - http://www.steveklabnik.com/ [steveklabnik.com]) who was doing a great job and has just been momentarily overwhelmed. I decided it sounded too much like an excuse that "drinkypoo" wouldn't find convincing, given that "drinkypoo" (*snicker*) clearly has high standards of professionalism. So I decided to mention the API docs instead, which have been most helpful when sorting out code breakage due a change in the nightly version

  • by complete loony ( 663508 ) <Jeremy.Lakeman@nOSpaM.gmail.com> on Sunday January 11, 2015 @05:18AM (#48786039)

    I'm not completely sold on the syntax, but I find the design and runtime interesting. I'd like to find an excuse to build something with it, to see if it can live up to its potential.

    I started thinking about how I would design a language recently, then I came across rust, and I saw quite a lot of the same conclusions I came to myself. Abstract classes, multiple inheritance, Interfaces with versioning, combining 3rd party libraries... With rust, you define the layout of memory without inheritance, and the implementation of interfaces for types without defining the layout of memory. Neatly side-stepping some of the issues faced by other languages.

    All resources and object lifetimes are managed, avoiding .NET's IDisposable. You can combine structures together, which can exist exclusively on the stack, avoiding the "everything is an object on the heap" problem that Java seems to fall into.

    Since there's no NULL, there's no NullPointerException. There's no unchecked exceptions, or any exceptions at all for that matter. Though, I might prefer to have them. Sure, there's the try! macro. But that's just syntactic sugar for checking the return code of every function.

Keep up the good work! But please don't ask me to help.

Working...