Readit News logoReadit News
owlstuffing commented on What Dynamic Typing Is For   unplannedobsolescence.com... · Posted by u/hit8run
weavejester · 2 months ago
I was being glib, so let me expand on what I said a little.

By 'constraint' I mean something the language disallows or at least discourages. Constraints in software development are generally intended to eliminate certain classes of errors. Static typing, immutability, variable scoping, automatic memory management and encapsulation are all examples of constraints, and represent control that the language takes away from the developer (or at least hides behind 'unsafe' APIs).

By 'expressiveness' I mean a rough measurement of how concisely a language can implement functionality. I'm not talking code golf here; I mean more the size of the AST than the actual number of bytes in the source files.

Adding constraints to a language does not necessarily reduce its overall expressiveness, but static typing is one of those constraints that typically does have a negative effect on language expressiveness. Some will argue that static typing is worth it regardless, or that this isn't an inherent problem with static typing, but one that stems from inadequate compilers.

owlstuffing · 2 months ago
That is a pretty fair assessment, and I'll avoid the nominal v. structural subject, but in my experience the difference between static and dynamic typing comes down to metaprogramming. For instance, much of Python's success stems from its dynamic metaprogramming capabilities. By contrast Java's limitations wrt metaprogramming prevent it from competing in areas such as ML and data science / analytics.

One of the most untapped and misunderstood areas in language design is static metaprogramming. Perhaps this is what you meant by "inadequate compilers", but there is no reason why Java can't provide compile-time metaprogramming. With a comprehensive implementation it can compete directly with dynamic metaprogramming, with the benefits of static analysis etc., which is a game changer.

owlstuffing commented on MS-DOS development resources   github.com/SuperIlu/DOSDe... · Posted by u/mariuz
owlstuffing · 4 months ago
16-bit Borland C++ is also available: https://winworldpc.com/product/borland-c/20
owlstuffing commented on OCaml as my primary language   xvw.lol/en/articles/why-o... · Posted by u/nukifw
whimsicalism · 4 months ago
Scala was always going to be hamstrung by the fact that it's a JVM language and yes, the crazy stuff people did with the language didn't help.
owlstuffing · 4 months ago
I agree w that, but I think Scala has deeper problems.

It tries to be a better Java and a better OCaml at the same time. This split personality led to Scala’s many dialects, which made it notorious for being difficult to read and reason about, particularly as a mainstream language contender.

Above all, Scala is considered a functional language with imperative OOP qualities. And it more or less fits that description. But like it or not primarily functional languages don’t have a strong reputation for building large maintainable enterprise software.

That’s the quiet part no one says out loud.

It’s like how in academic circles Lisp is considered the most pure and most powerful of programming languages, which may be true. At the same time most real-world decision makers see it as unsuitable as a mainstream language. If it were otherwise, we’d have seen a Lisp contend with imperative langs such as Java, C#, TypeScript, etc.

I’ve always attributed this disconnect to the fact that people naturally model the world around them as objects with state — people don’t think functionally.

owlstuffing commented on Inside OS/2 (1987)   gitpi.us/article-archive/... · Posted by u/rbanffy
pjmlp · 4 months ago
Because at the time it was obvious, Smalltalk was the C++ companion on OS/2, a bit like VB and .NET came to be on Windows years later.

Aggregation is not inheritance, rather a workaround, using delegation. And it has been always a bit of the pain to set up, if one wants to avoid writing all the boilerplate by hand.

As for WinRT, I used to have it in high regard, until Microsoft management managed to kill everything good that UWP was all about, and now only folks that cannot avoid it, or Microsoft employees on Windows team, care about its existence.

owlstuffing · 4 months ago
> Aggregation is not inheritance, rather a workaround, using delegation

Although the designers of COM had the right idea, they implemented delegation in just about the worst way possible. Instead of implementing true delegation with multiple interface inheritance, similar to traits, they went pure braindead compositional. The result: unintuitive APIs that led to incomprehensible chains of QueryInferface calls.

owlstuffing commented on Try the Mosquito Bucket of Death   energyvanguard.com/blog/t... · Posted by u/almuhalil
VWWHFSfQ · 5 months ago
> One thing that an HOA might actually be good for

I've gotten nothing but benefits from living in neighborhoods with HOAs. Basic stuff like funding for landscapers to keep up the shared grassy areas along the streets, to plowing the access roads in winter time. But the main benefit has always been that it provides a legal mechanism to force everyone to maintain their yards and property. No need to drop passive-aggressive notes in a mailbox about people parking their cars on their lawns.

10/10 highly recommend

edit: apparently you guys don't like HOAs haha. Well I love them. Keeps the neighborhood from looking like a dump.

owlstuffing · 5 months ago
Oh, how I’ve never wanted downvote power more.
owlstuffing commented on SQLx – Rust SQL Toolkit   github.com/launchbadge/sq... · Posted by u/stmw
owlstuffing · 5 months ago
Quite similar to manifold-sql[1], which is arguably better integrated into Java than SQLx is into Rust. Inline native SQL in Java is *inherently type-safe*, no mapping -- query types, query results, query parameters all projected types at compile-time.

    int year = 2019;
    . . .
    for(Film film: "[.sql/] select * from film where release_year > :rel_year".fetch(year)) {
        out.println(film.title);
    }
1. https://github.com/manifold-systems/manifold/blob/master/man...

owlstuffing commented on The Tabs vs. Spaces war is over, and spaces have emerged victorious   xn--gckvb8fzb.com/tabs-vs... · Posted by u/ChiptuneIsCool
owlstuffing · 5 months ago
This is yet another reason why source code sb stored in parsed AST form.
owlstuffing commented on AI overviews cause massive drop in search clicks   arstechnica.com/ai/2025/0... · Posted by u/jonbaer
washadjeffmad · 5 months ago
The overviews are also wrong and difficult to get fixed.

Google AI has been listing incorrect internal extensions causing departments to field calls for people trying to reach unrelated divisions and services, listing times and dates of events that don't exist at our addresses that people are showing up to, and generally misdirecting and misguiding people who really need correct information from a truth source like our websites.

We have to track each and every one of these problems down, investigate and evaluate whether we can reproduce them, give them a "thumbs down" to then be able to submit "feedback", with no assurance it will be fixed in a timely manner and no obvious way to opt ourselves out of it entirely. For something beyond our consent and control.

It's worse than when Google and Yelp would create unofficial business profiles on your behalf and then held them hostage until you registered with their services to change them.

owlstuffing · 5 months ago
> The overviews are also wrong and difficult to get fixed.

No different from Google search results.

Deleted Comment

owlstuffing commented on TODOs aren't for doing   sophiebits.com/2025/07/21... · Posted by u/todsacerdoti
owlstuffing · 5 months ago
Replace the not-TODOs with NOTEs.

For example, this TODO:

   //todo: factor this out in case X
…is a NOTE, albeit a gratuitous one.

Because if X ever happens, the note won’t matter anyway, since you will have had to grok all the related code to refactor. You will see this note while you’re refactoring the surrounding code and smirk, “yep, that’s right”, or “no, it doesn’t really fall out that way.” Either way, most TODOs/NOTEs like this just get in the way.

u/owlstuffing

KarmaCake day286August 12, 2023View Original