Hacker News new | past | comments | ask | show | jobs | submit | antisemiotic's comments login

I wonder what would happen if Carmack teamed up with Yudkowsky and his cult; Carmack's practicality with the imagination of people who non-facetiously talk about acausal deals with mulitiversal AIs could be a match made in heaven.


There are extensions (at least for Firefox, but I think Chrome has those too) to always redirect to old reddit.


You know what is better than extensions: Old Reddit Please

https://greasyfork.org/en/scripts/40897-old-reddit-please

Works great in Violentmonkey/Greasemonkey.


You can also log in and set your preference to old reddit


That does not work in my experience.


That's just the "Pin" type, which is heavily used in async code behind (and occasionally in front) the scenes, but is by no means restricted to it.


It's impossible to use the guarantees provided by the `Pin` type without `unsafe` code, except in `async fn`.


I used to think that Libra is just an attempt to combine the transaction speed of blockchain with the trustlessness of fiat, I didn't expect the rabbit hole to go so deep.


Good old "anyone ineptly arguing against my core beliefs must be a paid troll": https://rationalwiki.org/wiki/Shill_gambit


It's always "from one language to another", sometimes the destination is machine language. The output is generally not meant to be meant to be human-readable in any case. "Transpile" is an ugly and unnecessary word, please don't push it as "more correct".


> It's always "from one language to another“

Hmmm, sometimes it’s “from one version of a language to another version of the same language”. As is the case with Babel[0] and JavaScript.

[0] https://babeljs.io/


I mean, arguably ES6 and TS are as close or closer to being "the same language" than ES6 and Babel targets.


It's just a more specific word. You can say all words are unnecessary because you can express the same thing using more words.


"Transpilation" and "compilation" describe the exact same concept. From user's perspective, readable code is translated into runnable code. From theoretical perspective, code in a more complex language is translated into a less complex language while preserving semantics. From a compiler writer's perspective, it's a totem pole of compilers, with at least one middle-level language usually. Plenty of people use the term "compiles to JavaScript" to describe languages like TS or Elm. It's just some overly pedantic people insist on the term "transpile" when the target is also, in a completely unrelated way, used to write code directly by a significant number of contemporary programmers.


> "Transpilation" and "compilation" describe the exact same concept.

No I think transpile implies compiling from one level of abstraction to another similar level of abstraction, which is quite different in theory and practice to compiling to a much lower level of abstraction. It's a useful word to have in your communication toolbox.


I agree with your overall definition. In fact, the dictionary definition of compile does also suggest that you are transforming to a 'lower level' so, in strictness, there is a need for a word to fill the void that you suggest transpile provides.

But I do wonder about the actual usefulness of the distinction. If someone says that they compile Typescript to Javascript, I'm not sure that anyone is going to be confused about what is meant, even if violates the letter of the dictionary definition.

Ultimately, english is fluid and is always correct as long as those in communication are able to understand each other. For transpile to be a useful word in the toolbox, there must be a circumstance where compile cannot be used to convey the same idea. When might that be?


'This is a transpiler' gives me a massive amount of additional context compared to 'this is a compiler' - likely structure, implementation techniques, output. Not all transpilers will fit this usual structure, but if they do you can tell me by changing this one little word. Powerful communication tool, I think.


But neither 'this is a transpiler' or 'this is a compiler' provide any meaningful information without specifying the compatible inputs and outputs. Once the inputs and outputs are specified then it is already reasonably known if the operation is transpilation or compilation, making the distinction between transpiler and compiler redundant.


Fine, but by that logic, gcc with -O0 is a transpiler, and becomes a compiler again with -O2. Similarly, TS transpiles to JS, but, say, ClojureScript compiles to JS. And if a compiler is built with something like Nanopass, it's a sequence of transpilers that somehow become a compiler along the way.


No I don’t agree. A compiler pass is not a compiler. An non-optimising C to assembly compiler is not compiling to the same level of abstraction.


>A compiler pass is not a compiler.

What is the difference, if there's one well-defined language before the pass and another after it?

>A non-optimising C to assembly compiler is not compiling to the same level of abstraction.

Neither are "transpilers", otherwise they'd be quite useless. Abstraction isn't a linear hirerarchy, in any case.


Terms are fuzzy. That doesn't mean they're useless. When I talk about 'transpilers' instead of 'compilers' it instantly gives people context.

The term's been in use since the 60s, when most compilers were not optimising.


Transpile is a superset or compile just like typescript is a superset of JavaScript. Transpile implies translating but not into a less complex language but rather onto a similar runtime. So typescript is dynamic just like JavaScript, and they share much of their semantics. So transpile means compile but onto a similar runtime with similar runtime semantic behavior.


In that case surely you'd agree that there are hardly any compilers in wide use these days - more often than not the first step of a modern compiler is translation into a similar but less expressive intermediate language.

Or does it only count as "transpilation" if the intermediate representation is an already existing language, thus making the distincion purely based on the history of a language, not the implementation?


What are the use cases for browsing Facebook through Tor? For me it sounds kind of like asking a prostitute for a hug.


People in countries with oppressive regimes that are not aligned with the US.


The emphasis was on "why Facebook", not "why Tor".


Unless "user that was created with admin rights which were later taken away" counts as admin, then no. I always set up a separate admin account and hardly ever have to log into it to do admin stuff.


DNT is pretty much the reverse of the evil bit (RFC 3514), but supposedly not meant as a joke.


Twelve thumbs down and one middle finger. (I'm not a native speaker of emoji and I'm not sure what the 8 ball means). These are from employees?


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

Search: