I’m also on Mastodon as https://hachyderm.io/@BoydStephenSmithJr .

  • 3 Posts
  • 680 Comments
Joined 3 years ago
cake
Cake day: October 2nd, 2023

help-circle





  • I want a language with an internal/core calculus of GRTT with a specific grading that I believe will provide both optimal evaluation and prompt resource release. You aren’t going to get that by building on top of another language.

    Of course you could do it as a library for another language, but the few values you could lift/lower and the necessary analysis do to bidirectional type inference/checking mean that you are writing a compile phase whether you call it that or not. In theory, you might save on the tokenizer/parser, but those are trivial to write. You might be able to reuse parts of the API/ABI, which could be an advantage if the underlying language has a good, stable one that can reflect your linking/calling/passing restrictions; but that’s not likely.





  • If you read the literature, particularly “Types and Programming Language”, you’ll find that “dynamic typing” isn’t even considered typing. If you can have a type error at runtime you’ve defeated the reason to add a type system: to reduce runtime errors. The hope is that “well-typed programs don’t go wrong” tho there are some limits to what any type system can do (e.g. Rice’s Theorem).

    That said. Static v. Dynamic is much more precise than Strong v. Weak and should be preferred.

    Implicit v. Manifest is less useful just because it’s a broad spectrum, basically inculcating how much type inference is done and “how much” generally depends a lot the input program(s). Haskell does whole-program inference, tho GHC (the only Haskell compiler) has a number of syntactic forms that can’t be inferred. Scala only does local inference. C doesn’t infer types, though is gets close with how it treats functions with no-argument in the prototype and varargs stuff. C++ uses auto for some type inference, which is still somewhat manifest, but also mostly implicit.

    I think weak typing is a good name for when there are invisible coercions, but that doesn’t actually have much to do with proper types.

    Anyway, great comment, If more people would use static/dynamic and explicit/implicit instead of strong/weak, there’d be less miscommunication.










  • I’d say yes, indirectly. It wasn’t through LinkedIn’s job search, but a college classmate of mine saw my LinkedIn post that my current contract was ending and messaged me on LinkedIn to come interview with his team.

    I ended up staying with that company for nearly 10 years. Good people, and while the client and tech stack could be frustrating, there was also room to be creative / innovative. I voluntarily left because I thought I had something better lined up.

    In another job I do think they had me do something on LinkedIn, but my point of contact actually found me on Reddit, answering programming questions and occasionally mentioning that I was unemployed. It was also a good job for a while, but I think the company let me go because I was about to get a benefits bump, though it might have been a minor clash with someone more senior regarding “genAI” outputs being introduced into the repository. They said it wasn’t anything I did, and they offered positive recommendations, but it was still surprising.

    (If anyone is hiring, I am unemployed right now; DM me if you want a resume.)