HackerTrans
TopNewTrendsCommentsPastAskShowJobs

FwarkALark

no profile record

comments

FwarkALark
·hace 2 años·discuss
[flagged]
FwarkALark
·hace 2 años·discuss
Why is this exposed to the user? If it isn't exposed to the user, what on earth are you talking about?
FwarkALark
·hace 2 años·discuss
Again, I don't see how a private industry per se could even possibly be worse given the demand for a profit margin. Your beef is with some other aspect of this process.
FwarkALark
·hace 2 años·discuss
I mean, all industries? The profit margin guarantees this. Anyone who has worked in private industry will verify its utter incompetence in the long term.
FwarkALark
·hace 2 años·discuss
Again, this can't be worse than private industry—that profit margin will guarantee this. I guarantee there is some other disease to blame for the waste—probably politicians of some sort invested in industry.

Of course, this does demand citizens give a shit, which seems hopeless at this point.
FwarkALark
·hace 2 años·discuss
Is this something where a public competitor might help? It surely can't be worse than private industry.
FwarkALark
·hace 2 años·discuss
> At what point should an acquisition be allowed on the sake of something being able to continue to exist and possibly save jobs?

Never? The entire point of private companies is that they take risk on themselves. If we have to bail them out we might as well just nationalize them. See: the entire american airline industry.
FwarkALark
·hace 2 años·discuss
...for the client tooling, or for the service? The service is understandable but the tooling makes no sense whatsoever.
FwarkALark
·hace 2 años·discuss
> If would likely take significant research effort to even figure out a way to incorporate the new discoveries into these engines.

What? Have you ever used a solver before? The actual APIs exposed to the user are very simple interfaces that should allow swapping out the backend regardless of the complexity. The idea a new algorithm—short of something like "updating the solution to adjust to a change in data"—would not require any sort of research to slot in as an implementation for the existing interface.
FwarkALark
·hace 2 años·discuss
> By "variable" I mean a name with a value attached.

I'd just use "symbol" then. Symbols don't have much utility without a referent.

> Forth doesn't let you define these within procedures.

"within" vs "not within" seems like a distraction. Forth certainly allows defining your own symbols.

> Values are communicated implicitly on the stack in Forth, where other languages give them names and then use the names to say where the value goes.

Forth uses names, too. Other languages have unnamed expressions too. I just don't see the distinction you're drawing as meaningful.
FwarkALark
·hace 2 años·discuss
I don't think anyone uses a stackless fortran.
FwarkALark
·hace 2 años·discuss
[flagged]
FwarkALark
·hace 2 años·discuss
> In ‘stack-based languages’ the stack is, most usually, an explicit semantic construct which acts as the only available value for procedures to act on.

To the extent this is true, this is also true of all languages that anyone uses these days—C, JVM, Rust, Chez Scheme, GHC, python, ruby, ocaml, blah blah blah. The only difference is the syntax used to manipulate the stack. Acknowledging that syntax is the main difference from other languages seems key to evangelization. The idea of "implicit/explicit" doesn't really make sense. how do you refer to the stack in forth? You don't. How do you refer to the stack in C? You don't. Both operate with respect to the stack without ever referring to it via syntax. In both languages, the stack is invoked by referring to procedures/words.

Look if you want to keep up this fantasy that forth or factor is somehow more stack-oriented than any other languages, go right ahead. But you're going to fundamentally misunderstand why people use the language. It's the syntax! It was always about syntax. The stack is just a necessary implementation detail to deliver this syntax, same as in every other language that people actually use.
FwarkALark
·hace 2 años·discuss
Ok sure, but FORTRAN still uses a stack in any of its relevant forms.
FwarkALark
·hace 2 años·discuss
> But normal order evaluation with memoization (what human computer would do - write result only once) uses graphs and graph rewriting.

...which are still most simply implemented with a stack.
FwarkALark
·hace 2 años·discuss
> Conceptually, I would say other languages are variable-based.

This seems less meaningful than "syntax-based" . Certainly, a "variable" is not a fundamental I deal with on a daily basis in c-based languages—there are necessary exceptions cause by the limitations of the language, of course, like accumulator symbols in a reduction process or state variables in some specific algorithm. Nor do I understand any utility such a concept bings to the table—in fact, this concept brings mostly pain I'd like to forget and forbid from future projects. I refer to "symbols", not "variables".

Regardless, variables are commonly implemented with a stack and are not trivial concepts to differentiate from the equivalent usage of a stack.

Perhaps I should argue for a "syntax-oriented" language instead.

I understand that procedural languages often have variables, but any method of programming that blesses this code as "good" typically doesn't bless the usage of variables outside of looping-with-an-accumulator, state machines, or some other formal usage. I certainly wouldn't emphasize this as any positive characteristic of the language given that its unique attribute is the ability to cause bugs by interacting with it incorrectly (god forbid you have a "pointer variable"—the most curse-upon-humanity type if such a concept were to ever exist)

I write compilers. I don't know why anyone would willing make the mistake of creating the concept of "variables" again.
FwarkALark
·hace 2 años·discuss
Nothing.
FwarkALark
·hace 2 años·discuss
> In this case, ‘stack-based language’ is used as a term of art.

This is a shitty and broken term. Hence my comment.

> is a language which there’s a stack threaded through successive procedure calls, where access to the values on that stack are accessed by popping them off and computing with them, then returning a result via a push.

You're just describing a procedural language that returns values. I suppose you could also describe a procedural language that doesn't return but what would be the point? You're just describing a form of indirect subroutines that revolve around jumps rather than the natural instruction progression. This has been a wildly unpopular method outside of entering a performance loop for many decades. It knows it will never have to exit/unwind the stack/call any kind of destructor or deallocation callback when entering a non-exiting loop.

Ok so why don't people (you!) just say "concatenative" given that other languages are trivially stack-based as well? How is it surprising at all that it's mostly syntax and a mediocre runtime (as the majority of languages can boast) that differentiates your pet language from other languages? Can we just admit that one of these options has a complex syntax and the other has a trivial syntax?
FwarkALark
·hace 2 años·discuss
> This seems like a great introduction to stack-based languages!

Do you know of a language which is not based on stacks?
FwarkALark
·hace 2 años·discuss
Is there a language which is not stack-based? I imagine "concatenative" would be mildly more precise of a description.

Coroutines (which often carry their own stacks) can sort-of dodge stacks—effectively utilizing a sort of bespoke linear typing to avoid this—but I don't know of a language which doesn't have c-like, stack-based procedures or subroutines, which places arguments on the stack and registers and operates mostly with respect to that stack and foreign API calls.

A stack is certainly the most intuitive data-structure with which to implement a lambda calculus.

Really, what Forth and descendent languages seem to emphasize is a sort of a data-oriented execution rather than a symbol-oriented execution—C very much encourages you to name types, function signatures, etc, and the result if you don't is extremely difficult to parse and interpret manually, even if you can implement forth as a subset of C.

Forth emphasizes reasoning about the stack directly as data, seemingly forgoing any assistance outside of syntax. Arguably it forgoes the utility of syntax, too.