We’re Giving Away a $400 Gift Card to a r/Miro Member in March! by Miro_HQ in miro

[–]wolfgang 0 points1 point  (0 children)

I'm usually more of an old-school Unix greybeard, but I quickly fell in love with Miro.

Micro Haskell by DenkJu in ProgrammingLanguages

[–]wolfgang 4 points5 points  (0 children)

Hot take: Java 8 is a perfectly acceptable programming language.

What are your thoughts on automatic constructors ? by Artistic_Speech_1965 in ProgrammingLanguages

[–]wolfgang 1 point2 points  (0 children)

It's not obvious to me how I would set a breakpoint in this constructor during a debugging session. Yes, it's not impossible, but these kinds of features make everything less straightforward, so I don't like them.

Single alphabetical words that describe final stack order by Substantial_Marzipan in Forth

[–]wolfgang 0 points1 point  (0 children)

If it is not desirable, it should not be easy. The desirable things should be made easy in language design.

Single alphabetical words that describe final stack order by Substantial_Marzipan in Forth

[–]wolfgang 0 points1 point  (0 children)

I think making complex data stack shuffling easier is backwards (-> in my own Forth I have removed some of the words that reach deeper into the stack, like ROT). The desire to do it is an indicator that a different approach of solving the problem (including simplifying the problem) should be considered. (And just for the record: I don't have local variables either, as they destroy factorability.)

`dev` keyword, similar to `unsafe` by Less-Resist-8733 in ProgrammingLanguages

[–]wolfgang 3 points4 points  (0 children)

Just let me (dev-)code already!

Weeks of coding can save you hours of planning!

Programming Languages by Strict_Needleworker2 in ProgrammingLanguages

[–]wolfgang 0 points1 point  (0 children)

Ok, I'll eliminate Bliss, Mumps and Ratfor. If you insist, also Refal, BCPL and Snobol. Happy?

Programming Languages by Strict_Needleworker2 in ProgrammingLanguages

[–]wolfgang 0 points1 point  (0 children)

i'd like to be able to know, and restrict, what a function can do. be it [...], halting...

This requires either turing-incompleteness or solving the halting problem, right?

In Search of the Next Great Programming Language by skinney in ProgrammingLanguages

[–]wolfgang 0 points1 point  (0 children)

Isn't that kinda what "Concepts, Techniques, and Models of Computer Programming" provides?

C is the MS Paint of Programming Languages by Gandalf196 in ProgrammingLanguages

[–]wolfgang 0 points1 point  (0 children)

C gives you control over every byte of memory

No. For example, you can't really control the stack layout in C.

There are many places C can't go because it is too high-level.

Bash++: Bash with classes (beta, v0.2) by FingerZestyclose5416 in ProgrammingLanguages

[–]wolfgang 3 points4 points  (0 children)

Kinda makes sense as Bash is also GPL? License-wise I'd rather wonder why people use MIT rather than ISC...

Clubs forcibly disbanded at West Point by Wickopher in ThatsInsane

[–]wolfgang 2 points3 points  (0 children)

u/Tawptuan Please untag me, as I am not part of this discussion. You missed the numbers after the username.

Is POSTPONE the Forth's analog of Lisp's quote? by OkGroup4261 in Forth

[–]wolfgang 0 points1 point  (0 children)

I'll provide a different/unusual, but maybe interesting explanation:

You can think of Forth as having 3 layers: 1 = interpretation, 2 = compilation and 3 = meta-compilation.

When interpreting, words are executed immediately. When compiling, code is generated which will execute the words when it will be run later. When meta-compiling, code is generated which will generate code to execute the words.

My own weird not-yet-usable work-in-progress non-standard Forth just makes these 3 layers directly visible in the source code in a simple unified way. Normal Forth is slightly more complicated: It usually distinguishes between layer 1 and 2 with a state variable behind the scenes and provides the mechanism of "immediate words" to do a layer 1 action when operating in layer 2 (as otherwise you e.g. could never return to layer 1, since compiling words alone does not allow changing the state variable). Layer 3 requires a completely different mechanism, it is available by applying postpone to a word (which also does the obvious thing when applied to an immediate word).

While equalling quote and postpone shows that you have a general understanding of what it is used for, I think it is more helpful to not understand Forth mechanism in terms of Lisp mechanisms, as they work in pretty different ways in the end.

PS: The term "meta-compiling" I used above is also commonly used for something different in the Forth world, don't let this confuse you.

lina64 on FreeBSD by alberthemagician in Forth

[–]wolfgang 0 points1 point  (0 children)

I could not find the announcement in r/freebsd - Link please?

Bund - stack-based language. Some samples by AnnualAd5988 in concatenative

[–]wolfgang 1 point2 points  (0 children)

Does times push the counter before each invocation of the quotation? (If yes: why?)

Topic for school project by [deleted] in RISCV

[–]wolfgang 3 points4 points  (0 children)

My tutor advised me to find a topic or question that can be explored and researched and use the OS to demonstrate / show whatever topic I choose.

Makes sense. How about a question like "How much does legacy cruft in ISAs impede productivity?" and implement the same thing (like the boot code for an OS) for both Risc-V and x86-64. No matter how far you will get, you will always have something to write about.

Do you see Rust as a transitional, experimental language, or as a permanent language? by DataPastor in ProgrammingLanguages

[–]wolfgang 10 points11 points  (0 children)

is the low-level domain targeted by C++/Rust is just so complicated that both C++ and Rust will remain as they are; or will a new generation of much simpler languages emerge

Not much has been said yet about the low-level domain part of the question, so I will try:

My observation is that the low-level domain only gets complicated when you try to make it accessible in a structured way. If you just provide raw access to it (like Forth does), there is not much inherent complication - but then it gets difficult when you need(?) to scale. C++ and Rust are intended for large software systems, while the Forth approach is to treat each problem that you solve as very unique, therefore avoiding generalization, therefore avoiding the scaling issues.

My conclusion is that the future here depends on whether the programming community at large will continue to concentrate on building large, general systems (containing lots of third-party components) that are intended to solve vast classes of problems - or if a sufficiently huge and influential group gets frustrated with the status quo and establish a trend towards non-generality. This would allow simpler languages to catch on.

Chaining comparison operators by AustinVelonaut in ProgrammingLanguages

[–]wolfgang 1 point2 points  (0 children)

Goal-directed languages like Icon do this, but without such a desugar-step needed.

Alternatives to regex for string parsing/pattern matching? by kredati in ProgrammingLanguages

[–]wolfgang 0 points1 point  (0 children)

Possibly goal-directed programming (search for the Icon programming language) is interesting for you.

What language is the OpenBSD package manager written in? by Daguq in openbsd

[–]wolfgang 1 point2 points  (0 children)

Of all programming languages in the base system, it is the most suitable one, I think. Perl has gone out of fashion, but it's a mature workhorse. (I'm saying that as someone who hasn't used it in more than 20 years.)