Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
samth
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
27 ms
·
331.
▲
by
samth
13y ago
What sets scribble apart are: * That it's a full programming language, unlike systems like Markdown, or Sphinx, or JavaDoc, or other similar systems. But it also doesn't sacrifice being easy to write, the way that text is easy to
332.
▲
by
samth
13y ago
I think we just disagree on taste for documentation pages. For example, I find the Vagrant docs somewhat garish and hard to read. The current look of the Racket documentation was designed by Matthew Butterick. You can see his excellent boo
333.
▲
by
samth
13y ago
What do you mean by "use it programmatically" for pattern matching? Can you give an example of a language that has this feature?
334.
▲
by
samth
13y ago
Ok, that makes sense. There are indeed lots of old bit-rotted libraries on planet, and not as much guidance as would be nice on how to pick good ones. If you do come up with something specific, just holler. I'm glad you're excite
335.
▲
by
samth
13y ago
> Racket actually has more overall libraries than you'd expect considering its popularity, but I've found that many of them are old, no longer updated, scheme libraries (from the days before Racket rebranded from Dr. Scheme)
336.
▲
by
samth
13y ago
It's used in production in a variety of places: Naughty Dog studios, NBCUniversal, Air Force research labs, defense contractors, web developers.
337.
▲
by
samth
13y ago
I think Simon & Simon are making exactly the point I am: lightweight threads are significantly faster than any other threading system, and work in real system, not just microbenchmarks. Rust has made some other design choices that it se
338.
▲
by
samth
13y ago
> In practical usage, we found that the ability to call into C cheaply was much more important than the benefits of small stacks, which mostly help microbenchmarks like this at the expense of real-world code. For Rust's goals, I can
339.
▲
by
samth
13y ago
Since you don't have any contact info in your profile, I'd love to talk to you about your use of Typed Racket, and whether there's anything you can tell us about how to improve it. Feel free to email me at samth@cs.indiana.ed
340.
▲
by
samth
13y ago
No, quickcheck is a testing tool, not a type system. It never rejects your program. What you're saying is that Shedskin and Python have a non-empty intersection. But would the language of numbers with `+` be the "same language&q
341.
▲
by
samth
13y ago
This is a terrible example for your argument, because contracts in Racket are entirely implemented as a library, thanks to the power of -- you guessed it -- macros. In fact, just about everything in Racket: the class system, the generic fun
342.
▲
by
samth
13y ago
First, as the second answer points out, the terms "strong" and "weak" shouldn't be used and are confusing. Second, having a type system makes a language very different! Language subsets are different languages.
343.
▲
by
samth
13y ago
What is a "type space"? As I say pretty explicitly in linked post, Python doesn't have a type system. Also, the term "strong" type system doesn't mean anything. Also^2, "structural" type systems are
344.
▲
by
samth
13y ago
Well, I don't think that's correct -- it would make the term "type system" meaningless. In particular, lots of programs have bugs that type systems can catch. For more on whether all programs have types, I wrote this:
345.
▲
by
samth
13y ago
Using Either in Haskell would require changing the program a little to add injections. But that exact program (modulo syntax) can be written in Typed Racket: #lang typed/racket (: choose : (All (A) (Listof A) -> A)
346.
▲
by
samth
13y ago
I think talking about how ARC is implemented in Rust is cool. I would just pitch it differently. I think what I don't like about your current description is that it makes it seem like unsafety is what allows you to _have_ Arc in the l
347.
▲
by
samth
13y ago
> I wrote it this way because the systems people I talk to are skeptical at times that a compiler knows best. Well, the best way to combat that would be demonstrate that cool things can be done safely in Rust, but that probably requires
348.
▲
by
samth
13y ago
I think the emphasis on "unsafe" isn't helpful. As far as I can tell, the only thing that "unsafe" is enabling is that Arc and RWArc are written in Rust rather than in C in the runtime (the way they'd be in Go,
349.
▲
by
samth
13y ago
It works because a reviewer will say "here are a bunch of comments, the patch is approved once these are fixed". It's a very reasonable thing to say when the comments are minor (such a style issues) and the reviewer and coder
350.
▲
by
samth
13y ago
You should have a look at Typed Racket [1] which is a type system for an existing language (Racket) built entirely with macros [2] that satisfies all of the criteria you want -- works with the IDE, safe interop with untyped code, etc. [1]
351.
▲
On typed, untyped, and “uni-typed” languages
(medium.com)
2 points
by
samth
13y ago
|
0 comments
352.
▲
by
samth
13y ago
There are certainly GCs that don't pause for 50ms at a time -- Go's GC is not very good, and they even admit it. Felix Klock's PhD is an interesting exploration of this: http://www.ccs.neu.edu/home/pnkfel
353.
▲
by
samth
13y ago
But neither of those is a "primitive". The first is a major restriction on contracts (and not a restriction Pyret enforces, AFAICT). The second isn't a language feature at all. How would having a new language help give me e
354.
▲
by
samth
13y ago
If you're unhappy with our documentation, please let us know what would be helpful -- we know it isn't perfect, but specific requests are always helpful. As for whether other people in the racket community like typed racket, the a
355.
▲
by
samth
13y ago
As one of those gradual typing folks, I'm not sure what you mean by "primitives we miss". The things I'd want for space efficiency are things like a contract language with decidable 'and', and for regular effic
356.
▲
by
samth
13y ago
Well, the word "macro" doesn't appear on the Pyret home page ... :)
357.
▲
by
samth
13y ago
DrRacket is an IDE that supports many languages. The curricula that Shriram has used at Brown, and that others have used in many other places uses a sequence of smaller languages designed for teaching.
358.
▲
by
samth
13y ago
First, Go isn't a systems programming language, any more than Java is. Second, C is _far_ from boring. It's boring now because we all live in its shadow, but the idea that we should have high-level languages for writing low-level
359.
▲
by
samth
13y ago
There have been languages in this space for a very long time. Pascal and Algol 68 are both very old examples (see the Go vs Brand X comparison). Then there's Modula or Oberon not quite as long ago. In the last 20 years, everything fr
360.
▲
by
samth
13y ago
The fact that it's by a guy who's an unreconstructed racist and thinks the US is inevitably headed for anarcho-capitalist dystopia (except that he doesn't think it's dystopian) certainly reinforces my initial opinion tha
More ›