OpenD, a fork of D
Corbin @ Corbin @programming.dev Posts 2Comments 91Joined 2 yr. ago
I'll be informal to boost your intuition. You know how a parser can reject invalid inputs? Parsers can be generated from grammars, so we can think of the grammars themselves as rejecting invalid inputs too. When we use a grammar for generation, every generated output will be a valid input when parsed, because the grammar can't build any invalid sentences (by definition!)
For example, suppose we want to generate a JSON object. The grammar for JSON objects starts with an opening curly brace "{". This means that every parser which accepts JSON objects (and rejects everything else) must start by accepting "{". So, our generator must start by emitting a "{" as well. Since our language-modeling generators work over probability distributions, this can be accomplished by setting the probability of every token which doesn't start with "{" to zero.
Don't use OpenAI's outdated tools. Also, don't rely on prompt engineering to force the output to conform. Instead, use a local LLM and something like jsonformer or parserllm which can provably output well-formed/parseable text.
Object-oriented design is about message-passing; messages are more important than objects. Classes are completely irrelevant -- there's an entire branch of object-oriented language design without classes!
The conversation was in English, though. I'm sympathetic to your argument -- if we all spoke Lojban, as we ought to, then pronouns would be computable from display names and nouns would be non-gendered; however, when speaking English, please be aware of the centuries of colonialism baked into the linguistics.
PLDI is political; in general, any sort of language-design process is political. This is because language is expressive and also constraining, so the expressible and easy-to-express concepts in any language are its de facto default policies.
Social conservatives tend to produce languages which are patrician and sadistic in their demands upon their users; C and Go, D, Hoon and Nock, Hare, and V all come to mind. They see these languages as offering "choice" and power to the end-user, and see languages which have redundant structures and safety, like Ada or Pascal, as "bondage & discipline".
You're likely familiar with the frustration of using designed-by-committee languages, too; say, C++ or Python. These systems tend to evolve social conservatism as a way of preventing an explosion of features, as happened to Perl and is happening to Rust.
Hopefully this is good food for thought. Your choice of language is not politically neutral, but occurs within a social context and has policy implications. Work at a PHP shop for a few years and you'll suddenly care quite a bit about which languages you use!
Walter Bright has fairly odious political opinions; like many social conservatives these days, he likes to complain about wokeness and communism, and I would completely understand a community fork simply to remove his control over various parts of the D language.
Also, just for a quick sanity-check: Which languages have you invested/migrated to, only to find that "political stunts" had a "negative impact" on your planned development?
As a society and as individual computer scientists, none of us actually know what a computer is or how to use them. All programming languages are guesses, mere attempts to encode our natural-language reasoning and philosophy in the purely syntactic and formal fashion required by computers. Don't let yourself become biased in favor of specific languages; instead, understand that all languages are bad in different ways.
Most consumer-grade NICs have a default MAC address which is retrievable with device drivers, but delegate (Ethernet) packet assembly to the OS. If the OS asks the NIC to emit a packet, then the NIC often receives the packet as a blob, DMA'd from main memory, and emits the bytes as octets. Other NICs do manage packet assembly, but allow overwriting the default MAC address. By the time I was learning Linux, we had GNU MAC Changer available in userland with the macchanger
command, and many distros have configuration for randomizing or hardcoding MAC addresses upon boot.
I want to say that this is all because olden corporate network management policies could require a technician to replace a NIC without changing the MAC address, but more likely it is because framing and packet assembly was not traditionally handed to a second controller, and was instead bit-banged or MMIO'd by the CPU.
Conway's Law is a category-theoretic statement; it asserts the existence of a homomorphism on graphs, mapping from modules to code authors. Quoting Conway's original paper:
Speaking as a mathematician might, we would say that there is a homomorphism from the linear graph of a system to the linear graph of its design organization.
The author does not really show an understanding or respect for the underlying maths.
Hi! Please don't link anything from this subdomain again. It was considered a plague back on Reddit, and this sort of content-free post shouldn't be encouraged here either.
In this case, we are discussing the leadership of a community project; the leaders are the ones who set policy for the project. In this sense, yeah, it's a political situation.
Given your username, I'm a little surprised that you wouldn't recognize that the leaders of community projects are politically important...