Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

No, no such thing exists. No one has ever tried to do such a thing before. I'm actually quite confused as to your saying "before any such claims are made"—I have made no claim that such a thing does exist, only that this site could be used to achieve the existence of such a thing. Specifically, I don't support the claims the site makes that it already achieves these things.

As far as I know, though, this non-existence is because no one has ever thought of doing such a thing before, not that it's been tried and didn't work out. No one knows if it can or cannot be done, because it has never been attempted. That's sort of why I had to explain the finer points of the idea, rather than just calling it "an algorithm warehouse" or whatever it would be dubbed if there had already been a prototypical example to classify.

Also, I meant "big" as in the phrase "big in Japan"—well-known or, at the very least, actively in development. A big commit log, in other words.

To be frank, I haven't actually looked at the site we're both talking about here (and Silverlight isn't quite executable on my machine, anyway.) From first glance, it looked to be trying to be a sort of encyclopedia of good, tested implementations of well-known algorithms for hashing, scheduling, compression, garbage collection, error detection, sorting, pathfinding, and so on—the sorts of things you think about when you think "algorithm"—but failing, because it wasn't reaching the right content-creating audience.

These implementations could certainly be written in C, but C isn't a very machine-transformable language—Scheme or Forth would probably be a better choice. The point, though, wouldn't be to transform the syntax (because that's the easy part) but to transform the paradigm—to munge typecasts into real types, or switch loops between iterative and recursive form, or, at its simplest, transform between OOP and functional styles. "Hand-writing" the examples would negate the point, which is to let a computer understand how to write in your language, given pseudocode (or a given Well-Known Language.) Basically, it would apply the goals of RDF to code instead of data.

If it was this thing, then my argument would hold, and you would also be agreeing with me. I'm beginning to suspect our disagreement lies in the fact that the site itself doesn't live up to the potential that I've layed out here, although doing so would be no more effort. Perhaps I should make my own site?

(And just so you know, yes, I'm talking about a completely hypothetical future thingy—this is what I think language design will be like in the future, thus my comment of "why can't we have rapid language development?" It would be completely different than what we're doing now, which is reading reference algorithm books (or not-too-well-known-and-quite-recent papers, where this would be much more of a help) and turning the pseudocode into a "pure idea" in your head, and then re-encoding the "pure idea" as code in your language. Instead, you'd teach the computer to do what you're doing, and then just give it the site's URL as training data—in other words, making your compiler an AI. I think this site is a good first step toward that—getting all the world's algorithms in one place, so we can build the training dataset. That's all it is, though, and all I claim it to be.)



"I'm actually quite confused as to your saying "before any such claims are made"—I have made no claim that such a thing does exist, only that this site could be used to achieve the existence of such a thing"

I am challenging the claim that "this site could be used to achieve the existence of such a thing". The claims on the site itself are (imo) not worth challenging.

I am saying that languages are different across multiple dimensions sequential vs concurrent (different types say threads, vs message passing ), paradigms - objects, vs functions vs imperative, many kinds of type systems, memory management strategies and so on) that the "automatic translation to get a standard library" is a doomed effort with today's technology in spite of the advances made to date in operational and denotational semantics.

At best, a lot of research needs to eb doneto make such a thing possible.

Is it possible? I guess, eventually. Is it probable in say the next five years? Imnsho, no.

And with that I have said everything I wanted to and this thread is getting too large, which is always a sign that it is time to stop.

Good luck with any effort you make to write such an automatically translatable collection of algorithms. If you can pull it off, I'll be the first to admit my error.

Over and out.

EDIT: I see you added "I'm talking about a completely hypothetical future thingy"

and

"in other words, making your compiler an AI".

OK then, I withdraw my arguments. Sufficiently advanced technology is, after all, indistinguishable from magic, as Arthur C Clarke said.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: