3 ms·
The reasoning on #1 is amusing. "It's finished because the test cases are finished". Can you imagine going to your boss and saying: Coder: "The program is fin
by overgard 7y ago
The reasoning on #1 is amusing. "It's finished because the test cases are finished".
Can you imagine going to your boss and saying:
Coder: "The program is finished"
Boss: "Cool, when can I demo it?"
Coder: "Well you can't actually run it, but all the test cases are finished, someone just needs to fill in an implementation"
(And yes, I get that the implementation is usable. But if the language has been done "forever" and the implementation is still partial... maybe the language is a little too complicated?)
Also the argument that it doesn't need a demographic holds no weight to me. Lets say I read through the Perl docs and go, holy crap, I totally want to use this at work. I still need to convince others.
"We should use Perl 6 for our next project"
"Why?"
Reasons that might actually be convincing: we can hire for it, it's more productive/safe/faster than what we use, the tooling is great, Big Company X is behind it. Reasons I could use for Perl 6: It's uh, slow and the interpreter isn't really finished and the internet generally regards it as a joke, but, I can express ideas that usually require words with symbols instead.
- Spivak 7y agoI mean it's not that absurd that Perl 6 the language the defined independently of any particular implementation of it. Perl 6 seems unique (in a good way) that the language isn't defined by "whatever the reference compiler does" but by "this known fixed suite of tests."
- overgard 7y agoIt's definitely not unique in that regard, C++ is the same way. The difference though is C++ is old and established. Perl 6 is relatively new, and it seems crazy to me to say it's "done" if the first iteration of the language spec hasn't even been fully implemented yet. Also when the C++ committee says something like "C++ 20 is done", that news is generally not super useful to me. It's something I tuck away as something I might use eventually. I'm way more interested in "Clang/VC++ is now C++20 compliant", because then I can actually use it.
- raiph 7y agoIn P6 culture, the word "spec" is considered an ambiguous word that can mean several very different things including: * Specification. The P6 language is specified by a test suite called Roast. There are "release" tags, for example 6.c, 6.c.errata, and 6.d. If a program passes the suite it's "officially" entitled to call itself a P6 compiler for the language versions it passes. * Speculation. Discussion, ideas, RFCs, a large range of design documents written in English that were once called "specification" documents but were never intended to be a substitute for the binary precision and decision of a test suite, multiple compiler prototypes, etc. Thus: > the first iteration of the language spec hasn't even been fully implemented yet. Rakudo fully implemented 6.c, the first iteration of the electronic language spec, 3 years ago. > I'm way more interested in "Clang/VC++ is now C++20 compliant", because then I can actually use it. Exactly. P6 has focused on having a digital specification. If someone wants to know if a compiler is compliant, they can run a test and know within minutes. If you prefer a specification written in natural language, and claims of compliance to be relative to that natural language specification, and consider tests secondary, well, all I can say is that the P6 view is the other way around. If your point is that a couple hundred thousand tests isn't enough, then yes, you have a very good point, one can never have too few tests, but one has to start somewhere. (There's also Toast, which is like Roast, but applied to the entire ecosystem, running compilers against the test suites of all publicly available modules. cf cpantesters.)
- raiph 7y ago> Can you imagine going to your boss and saying: > Coder: "The program is finished" > Boss: "Cool, when can I demo it?" Yes. Absolutely. If I had a design worked out over a decade, multiple substantial prototypes, including one written in Haskell by a hundred lambdacamels, an acceptance test suite designed over a decade with over a hundred thousand tests, a production compiler written by top notch devs, field testing of thousands of modules, toasting of the compiler over the test suites of those modules, and the compiler passing the formal acceptance test, then yes, I can not only imagine it but would look forward to it. > Coder: "Well you can't actually run it, but all the test cases are finished, someone just needs to fill in an implementation" That's bullshit. > (And yes, I get that the implementation is usable. But if the language has been done "forever" and the implementation is still partial... maybe the language is a little too complicated?) What the heck? So the `leave` keyword is not yet implemented. Big whoop. It was designed so it could be left out. So you just leave the key word out and code works correctly anyway. Can you name a single other language feature that's not implemented? I thought not. Why are folk here all assuming the absolute absurd worst case scenario twisted interpretation of the OP's words? Have you noticed that Rust 5 isn't done? Haskell 2030? Swift 10? Or, forgetting the fact that the P6 design was deliberately forward looking, so has `leave` as not yet implemented rather than just having never damn well mentioned it in the first place, what about just current versions of languages? Is C# "done"? Python? Racket? Idris? No bugs? No feature requests? No new versions? In fact, how about you name any language that's done? > Also the argument that it doesn't need a demographic holds no weight to me. Who cares? The OP wasn't saying it matters whether you think the truth holds weight. They were just saying that some folk are getting into P6 despite P6 not targeting a demographic. And what the heck is it with folk just assuming the worst?