Rust Programming Language Reaches 1.0 Alpha
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).
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.
Rust's raison d'etre is fast but safe programming. It seeks to achieve this by expanding the type system with the different pointer types owned, borrowed, and garbage collected, 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 for arrays with run-time lengths. That's okay, but it ignores swaths of optimizations.
Ideally, you want a fully dependently typed language like Idris for this because dependent types let you tell the compiler to prove at compile time that two arrays must have the same size.
Idris itself is a research language that doesn't currently worry about speed, but one research topic they're exploring is uniqueness types, which hopefully should provide the "right" abstraction for Rust's pointer types.
Anyways, I sincerely hope that Rust eventually kills off the dumb C style languages like Go, but it's not the last word on fast but safe programming.
After a quick look at the language, it's certainly not something I'd use for safety. I'll stay with Ada, thank you.
oops - replied to wrong question
Gimp would be a cool name if the program didn't suck so much.
And I personally think Rust is an awesome name. Rust isn't a necessarily negative thing. In fact, it can be quite beautiful.
Pick 2.
Some drink at the fountain of knowledge. Others just gargle.
Why do you think Gimp sucks? It does the job fine. Just has a bit of a learning curve, but once you figure things out it's quite good. Maybe not as powerful as Photoshop, but powerful enough for a lot of jobs.
> Programmers often choose self-defeating names.
> What are some of the others?
Google
Yahoo
Mozilla
Twitter
World Wide Web
"Self-defeating" is in the eye of the beholder. Ain't nothing wrong with "rust" unless you set out to find something wrong.
I'll just wait until next week, when the much more stable version 27.0 comes out.
I actually worked at a place that wouldn't let me use Bouncy Castle cryptography just because of the name. At the time we needed somthing they did that no one else did, so I just ignored them. But you are correct, people will refuese to use things JUST based on name only.
Or ,"go" the language. Utterly ungooglable, and conflicts with at least three other programming languages.
(It's a name that's good for humans but useless for other reasons.)
The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
Just the other day I was remarking how few programming languages there are.
I think you gave the primary reasons there.....a bit of a learning curve, and not as powerful as Photoshop.
"First they came for the slanderers and i said nothing."
Everyone uses "golang" due to this. It works fine.
Maw! Fire up the karma burner!
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 ?
http://validator.w3.org/check?uri=http%3A%2F%2Fwww.slashdot.org Errors found while checking this document as HTML5!
Or ,"go" the language. Utterly ungooglable, and conflicts with at least three other programming languages.
(It's a name that's good for humans but useless for other reasons.)
If you think that's bad, trying searching for "IOS" for tips on managing your cisco router. You can add the "cisco" keyword, but then you lose some useful results. This is entirely Cisco's fault for licensing the name 'IOS' to Apple.
It's about time we finally have a language that meets all of our needs, now we don't need so many different languages.
Actually, you just gave good examples of non-self defeating names. The reason they are great is they are unique. Easy to google, easy to talk about.
Every time someone talks about rust in the crucial next two years, they are going to have to say "what do you think of rust? the language, not the game".
Every time someone who hasn't searched for it before and thus hasn't acclimatised their search bubble to finding Rust No Not The Oxidation Result I Mean The Programming Language searches for "rust" it'll be on the third page.
Defeatist name, eh? Well, I DO have a little Python under my belt...
A safety systems programming language sounds great but they had to ruin it by putting a garbage collector in it. This makes it useless for systems programming.
No they didn't: http://doc.rust-lang.org/compl...
... just what the world needs.
And you have Postgre nasal drip. "Microsoft" is also a goofy name, I would note, and that didn't seem to slow the company. It's certainly not very manly.
If you want ideas for future OSS tools, here's a free list:
http://c2.com/cgi/wiki?FutureO...
I like "GazundWidth" and "GezundHeight" myself. "OraFiss" is also cool.
Table-ized A.I.
Regular expressions are named after Kleene's description of regular expressions as an "algebra of regular sets". The only way to make the strings in the language accepted by an RE longer is by use of "*", which is as regular as it can be.
Eh? Out of all popular languages pretty much only ones trivially googleable are Perl, PHP and Javascript, all the rest either need "language" added or are only googlable due to popularity.
I mean, seriously. An Indonesian island? A precious stone? A large snake? A speech defect? A plan or a plot? To strike heavily and repeatedly? Italian word for "stairs"? And the worst offender, simply third letter of the latin alphabet (also used as chemical symbol for carbon, roman numeral "100", average grade in education and tons of other things)?
Rust isn't a good name but I guess it could have been worse. At least it's not called Taint.
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 unnecessarily bad initial impression!
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.
09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
Most people try and avoid rust.
I agree, the same happened with Subversion / Subversive etc.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Frist of all it does not rely on GC and secondly: why should that be an issue for system programming?
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Chef, kitchen,knife, recipe, brew, puppet ...
To add to this, "regular" is an adjective deriving from the Latin word for a "rule". The use of "regular" as meaning "normal" is not universal in English dialects anyway.
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
From your link:
How many good OO language exist without constructors? Maybe only javascript. This seems like a terrible decision.
Why do you think Gimp sucks? It does the job fine. Just has a bit of a learning curve, but once you figure things out it's quite good.
So, which nine dialogs do I have to use to accomplish everything that I can do trivially with photoshop layer effects?
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
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.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
It's called "Swift."*
*Not to be confused with The Swift Parallel Scripting Language.
Yahoo News (I think) decided to show me a video story about Kim Jong Un not afraid of showing off himself atop a rusty submarine.
That means rust doesn't have as much a connotation of worthless trash as it used to, and/or those stupid media automated system that are based on what's "trending" are happy to show Kim Jong Un stories because people clicked on the Kim Jong Un pictures. Next time the top story was Kim Jong Un flying a plane.
I even read a story about recent discovery of remains of a secret nazi base and ended up looking at a Hitler slideshow at the bottom of the story, nice high quality pics.
So, I'm lost regarding what people think about things and what is popular. (in the twittery web 2.0/web 3.0 scene)
I agree. I've gone through the guide twice in the past and both times I ran into several example code snippits that failed to actually compile/run.
That combined with the ugly syntax I think the language is a joke. I'll stick with Haskell.
Eh? Out of all popular languages pretty much only ones trivially googleable are Perl, PHP and Javascript, all the rest either need "language" added or are only googlable due to popularity.
I mean, seriously. An Indonesian island? A precious stone? A large snake? A speech defect? A plan or a plot? To strike heavily and repeatedly? Italian word for "stairs"? And the worst offender, simply third letter of the latin alphabet (also used as chemical symbol for carbon, roman numeral "100", average grade in education and tons of other things)?
Don't forget the fourth letter of the latin alphabet (also used as the first letter in three elements on the periodic table though can't rate it's own, the Roman numeral 500, a poor grade in education and tons of other things. And apparently something the girls be wantin'.)
The documentation will be great in short order; the doc writer has been doing a great job. The stuff I am talking about was changed literally only a few days ago.
From your link:
How many good OO language exist without constructors? Maybe only javascript. This seems like a terrible decision.
Or maybe an informed one. Go and Rust -- objects without class
Besides, Rust isn't an "OO" language. It's a multi-paradigm language that supports pure-functional, concurrent-actor, imperative-procedural, and object-oriented styles. After 40+ years, a growing opinion seems to be that pure OOP isn't without its problems, and other approaches may fit development goals better. I'm not sure multi-paradigm languages are the answer (there seems to be a huge potential to be confusing, IMHO), but OOP isn't the evolutionary pinnacle of language design that the last few decades of hype would have us believe. I'm willing to give this approach a chance (and I'm always up for learning something new).
Critcisim of the OOP paradigm
(Aside: Not quite sure why, but the use of the term "paradigm" multiple times makes me feel slightly icky for some reason. Probably due to it's misuse in business jargon.)
Objective-C and Smalltalk also don't have constructors in the language, they merely have them as conventions in the standard libraries, which are adopted by most third-party code. There's no reason for constructors to be special, they're just methods that initialise the object and return a pointer / reference to it, and which (by API contract) may have undefined behaviour if used on an already initialised object.
I am TheRaven on Soylent News
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 hey, at least you got your *zing* in, though you forgot the rimshot at the end.
Some people think that a garbage collector for all code is a good thing. They're morons.
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.
Names don't necessarily hold back any language. For example, having a name that's exactly the same as a below-average schoolwork grade clearly doesn't prevent you from becoming one of the most prevalent programming languages in computer history.
The worst criticism IMO from your link is the "study by Potok et al. has shown no significant difference in productivity between OOP and procedural approaches." That's really depressing.
"First they came for the slanderers and i said nothing."
(Aside: Not quite sure why, but the use of the term "paradigm" multiple times makes me feel slightly icky for some reason. Probably due to it's misuse in business jargon.)
Probably because there's no reason to use such an awkward word in the first place. In this case, notice how you fall into using "style" instead? Also, the vast majority of time, when people use "paradigm", they could replace it with the much more common and simpler word "model" or another simpler term.
Thanks. I was going to mention that there was a dedicated person (Steve Klabnik is his name, BTW - http://www.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 of the compiler. Actually, much of the time, the extremely clear error messages emitted by the compiler have been enough to make the correct changes to fix errors, which is almost better than good documentation. The latter is more useful in understanding why the code was incorrect, even if the compiler message is often enough to correct the problem.
(Aside: Not quite sure why, but the use of the term "paradigm" multiple times makes me feel slightly icky for some reason. Probably due to it's misuse in business jargon.)
Probably because there's no reason to use such an awkward word in the first place. In this case, notice how you fall into using "style" instead? Also, the vast majority of time, when people use "paradigm", they could replace it with the much more common and simpler word "model" or another simpler term.
Actually I looked it up and based on the definition of the word ("a distinct concept or thought pattern"), its use in the given context seemed appropriate, so I kept it in. "Style" seems to imply something more arbitrary, while "model" is a way of describing reality using simplified concepts (or a plastic thing I used to build as a boy, or something I found appealing as a teenager). Paradigm seems right.
And just try Google for any of these guys: William Shakespeare; William Shakespeare; William Shakespeare; William Shakespeare; William Shakespeare. There are many many pages of irrelevant links about some long-dead playwright to plod through before getting to anything relevant to these persons.
And just to stay on topic, there's also the Shakespeare programming language.
And yet you instinctively fell into "style" later on, and nothing was lost by using that word. Instead, you gained in clarity of communication. You could also say "model" and it would have the same meaning. "Paradigm" is a fancy buzzword.
An Indonesian island? A precious stone? A large snake? A speech defect? A plan or a plot? To strike heavily and repeatedly? Italian word for "stairs"?
So, which of these is FORTRAN or COBOL? They're both trivially googled.
Meanwhile "go performance" has zero results for golang, "java performance" has a full page of results. The name "go" is a whole 'nother class of stupid. It's so colossally boneheaded that people have to use "golang" to get some results where somebody thought to include that word so that it would be searchable, while missing out on many other results that are all but completely unsearchable.
Not only did the "golang" creators not learn anything of language design since 1980, they didn't learn anything about naming either. They didn't learn to draw any better either, what with that retarded potato mascot.
You're being pedantic. (And I'm about to follow suit.) Paradigm *isn't* a fancy buzzword - it is a word with a clear definition that has been in use since the 15th century. It's fame as a buzzword comes from imprecise overuse during the last decade or so. The word itself is fine.
Here's another definition, this time from Merriam-Webster: "a theory or a group of ideas about how something should be done, made, or thought about". That seems to fit the discussion pretty well when referring to different ways to approach the decidely non-trivial task of defining at a fundamental and conceptual level how a programming language works.
You mention "style". I don't think it's really equivalent to paradigm, though it could apply to variations of a paradigm. Style involves the details in how you implement a paradigm - it's not a paradigm itself. Merriam-Webster supports this assertion: "a particular form or design of something" and "a particular way in which something is done, created, or performed" (emphasis mine).
But I grow tired of this nitpicky exercise. You may have the last word if you wish (preferably with concrete examples of why you believe you are correct rather than vague generalizations and unfounded assertions regarding awkwardness and clarity). I've said my piece and I'm done with this. Good day.
You're being pedantic.
I'm not. It's a garbage word. There are plenty of garbage words that stick around for no reason other than that people like to use them in place of simpler words.
You mention "style".
You used the word. Why did you use it? Because it's simpler and conversational and came naturally to you. People don't generally go around using the word paradigm.
I also used the word "model". Try this: The object-oriented programming model. Gee, does that not get the point across?
And there's nothing vague about simpler words and more common words versus less common words that have come into vogue. Nobody needs a clarification when you use those simpler words. I'm willing to bet at one point you said, "What the fuck's a paradigm?"
Uh, no? Concatenation of two regular expressions is a regular expression, and this will (unless one of the two is epsilon, the empty string) make the strings accepted by the language longer.
I think you're exaggerating D's success.
It's a multi-paradigm language that supports pure-functional, concurrent-actor, imperative-procedural, and object-oriented styles.
But it doesn't support modern object-oriented style, if it lacks constructors.
After 40+ years, a growing opinion seems to be that pure OOP isn't without its problems
It's not a "growing opinion", it's a bald truth, but RAII is not one of OOP's problems, it's one of OOP's greatest contributions. Language designers can't just ignore it because it makes their compiler simpler. It's not their job to make the compiler simpler, it's their job to make the language useful.
Two things that should never be in a software version together: "1.0" and "alpha". You're either a 1.0 and ready, or not.