Here's some space for your most controversial programming/tech opinion:
@fribbledom having a specific plaintext syntax or even a Pharo/Morphic style interface is a 1970s mindset at best on how to manipulate program constructs. the core language of a programming environment should be an abstract syntax tree directly tied to operational semantics, and any user should be free to compose their own quasi-syntactic view from there on up, whether that looks like something conventional or something else entirely
@chj0 @fribbledom i mean people still mostly manipulate the s-expressions directly. the running application and all of its state should all be unified in the same operational structure that was manipulated to create it in the first place. if you can't take the running program and save it as valid terms to non-volatile storage in a completely isomorphic fashion and modify that running state as the application itself at runtime, then you're just missing opportunities for creative expression
@fribbledom to be clear this is something i am working on
that core language (or at least my vision of how it should work) is here: https://github.com/noocene/welkin-core
with a hardware-accelerated levy-optimal evaluator (like, you can run arbitrary programs on the GPU with fancy parallel fusion without extra work), dependent types, no complicated primitive patterns or ADTs, guaranteed totality (it's consistent too) and more
also a few serious bugs that i'm too burnt out from undergrad to fix rn :)
@fribbledom Hungarian notation has useful properties, and when used properly can be a valuable tool for clarity of thought and communication
I used it extensively at Intentional Software, where we were largely writing C#, and in many ways it was much richer than any strongly-typed language I've seen - "an index into the list 'foo' that is one past the end" is not the sort of thing you would bother representing in a type system, but with Hungarian you'd consistently use "ifooLim" throughout your codebase
@SpindleyQ @fribbledom I used it as an undergrad extensively when writing large code bases in MATLAB m-script. It also is used in the Spelunky (original GameMaker) source code and it was just... so nice and readable and understandable.
I like the idea of using it to basically extend types like you mention!
@SpindleyQ You can see it in Derek's Game Maker for Beginners tutorial, it uses the exact same style as Spelunky. oFoo for an object named Foo, sFoo for a sprite named Foo. There are a few others. It's simple but it works and imo it's absolutely necessary for gmscript
@darius oh yeah, I can absolutely see why having some kind of simple short disambiguation convention is just obviously needed
sPipe n'est pas une oPipe
@fribbledom any programming language that helps you get programming done is a good language
Conversely, all languages have sucky parts and deserve criticism. Doesn't mean people who use them suck, just that language dev is hard
@fribbledom I have three, dunno which is the most controversial, but let's go with this one:
Writing a program for an imaginary model user is stupid and produces inferior UX. If you don't have a real user at hand, write a program that you yourself would like to use.
Server run by the main developers of the project It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!