Hacker Newsnew | past | comments | ask | show | jobs | submit | FrustratedMonky's commentslogin

And Trump.

Didn't Trump float the Idea of a joint venture with Iran on the Fees?

Amazing, that once you could make money on a toll, Trump was "there is profit in peace? lets get this peace thing going"


Trump and the US effectively control the commerce because they are the only source of insurance. Even with payments and promises from Iran, no ship is sailing without insurance coverage. There is no one insuring the ships other than the US program Trump created.

> "obscene"

And yet, it is the wisdom of the crowds. The crowds being obscene.

Aren't we all constantly hitting re-fresh for updates, and making predictions.

The prediction markets are just consolidating that 'desire'.


Well, it would be if everyone betting wouldn't have an influence on the outcome. That's "wisdom of the crowds". But what if the people putting money on the Strait being closed are the same that close them? Surely, that's no longer the wisdom of the crowds at play. Just perverse incentives.

I agree. Maybe an un-expected outcome.

Who could have foreseen that a government/person would actually blatantly start a war, and manipulate bombing raids in order to manipulate a market, without being charged with a crime himself.

In sports betting, it seems obvious if a player throws a game.

In a war? Surely nobody would do this, right? Who could imagine it.


> In sports betting, it seems obvious if a player throws a game.

On the other hand, since you can bet on individual pitches, you no longer have to throw the game, just the right pitch at the right time. A couple of players were caught, but who knows how widespread this really is...

https://www.espn.com/mlb/story/_/id/46917665/mlb-betting-gua...

https://www.justice.gov/usao-edny/pr/two-current-major-leagu...

The focus on making money above all else, as a cultural dynamic, is degrading the human experience. It increasingly seeps into more aspects of our lives and is part of the broader Trustpocalypse.


> Who could have foreseen

Economists. They even have a term for this, dating back to the late 1800s: "moral hazard".

Polymarket creates moral hazard when participants can profit from outcomes they can influence.


You don't have to imagine some giant conspiracy. Fact is, that everyone can make a bet, and there are a lot of people with knowledge and influence in the political decisions made.

In sports, at least the outcome is only effected by the sportsmen. Here, who knows which and how many people have inside knowledge and influence that they can use that to their financial advantage?


Yeah. I have to agree. My view has changed in last week.

I never imagined that markets could be so corrupted by those in power, without some other consequences somehow balancing out. Like being arrested, or removed from office.

Forget PolyMarket. We literally have bets being made on oil futures, directly before a tweet by the president. Openly profiting on direct minute by minute manipulation. Openly corrupt.


Putting bounties on people's heads and public lynchings are the wisdom of crowds and its obscenity in action.

Humans need entertainment.

Running Man was a prediction, coming true.


Is this the last of the F# features to be migrated into C#?

What a missed opportunity. I think really F# if you combine all of its features, and what it left out, was the way. Pulling them all into C# just makes C# seem like a big bag of stuff, with no direction.

F#'s features, and also what it did not included, gave it a style and 'terseness', that still can't really be done in C#.

I don't really get it. Was a functional approach really so 'difficult'? That it didn't continue to grow and takeover.


You aren’t giving enough credit to the careful evaluation of how this adaption is happening.

So far everything that was added to C# very much reduces the amount of dead boilerplate code other languages struggle with.

Really give it an honest try before you judge it based on the summation of headlines.


> reduces the amount of dead boilerplate code other languages struggle with.

given that most of the thinks added seem more inspired by other languages then "moved over" from F# the "other languages struggle with" part makes not that much sense

like some languages which had been ahead of C# and made union type a "expected general purpose" feature of "some kind":

- Java: sealed interfaces (on high level the same this C# features, details differ)

- Rust: it's enum type (but better at reducing boilerplate due to not needing to define a separate type per variant, but being able to do so if you need to)

- TypeScript: untagged sum types + literal types => tagged sum types

- C++: std::variant (let's ignore raw union usage, that is more a landmine then a feature)

either way, grate to have it, it's really convenient to represent a `TYPE is either of TYPES` relationship. Which are conceptually very common and working around them without proper type system support is annoying (but very viable).

I also would say that while it is often associated with functional programing it has become generally expected even if you language isn't functional. Comparable to e.g. having some limited closure support.


In isolation, yes, I agree with you. But in the context of the cornucopia of other "carefully evaluated" features mixed into the melting pot, C# is a nightmare of language identities - a jack of all trades, master of none, choose your dialect language. No thanks.

> C# is a nightmare of language identities - a jack of all trades, master of none, choose your dialect language.

I honestly have no idea where you would get this idea from. C# is a pretty opinionated language and it's worst faults all come from version 1.0 where it was mostly a clone of Java. They've been very carefully undoing that for years now.

It's a far more comfortable and strict language now than before.


I can see where he's coming from. For example, `dynamic` was initially introduced to support COM interop when Office add-in functionality was introduced. Should I use it in my web API? I can, but I probably shouldn't.

`.ConfigureAwait(bool)` is another where it is relevant, but only in some contexts.

This is precisely because the language itself operates in many runtime scenarios.


I guess that's a good point. I admit haven't used or seen `dynamic` in so long that I completely forgot about it.

But I'm not sure that's really a problem. Does the OP expect everyone to use an entirely different languages every single context? I have web applications and desktop applications that interact with Office that share common code.

Even `dynamic` is pretty nice as far as weird dynamic language features are concerned.

Interestingly enough `.ConfigureAwait(bool)` is entirely the opposite of `dynamic` -- it's not a language feature at all but instead a library call. I could argue that might instead be better as a keyword.


It is a library call, but one that is tied to the behavior of a language feature (async/await).

The reason I bring it up is that it is another one of those things where it matters in some cases depending on what you're doing.

Look at the depths that Toub had to go through to explain when to use it: https://devblogs.microsoft.com/dotnet/configureawait-faq/

David Fowl concludes in the comments:

    > That’s correct, most of ASP.NET Core doesn’t use ConfigureAwait(false) and that was an explicit decision because it was deemed unnecessary. There are places where it is used though, like calls to bootstrap ASP.NET Core (using the host) so that scenarios you mention work. If you were to host ASP.NET Core in a WinForms or WPF application, you would end up calling StartAsync from the UI thread and that would do the right thing and use ConfigureAwait(false) internally. Request processing on the other hand is dispatching to the thread pool so unless some other component explicitly set a SynchronizationContext, requests are running on thread pool threads.
    > 
    > Blazor on the other hand does have a SynchronizationContext when running inside of a Blazor component.
So I bring this up as a case of how supporting multiple platforms and runtime scenarios does indeed add some layer of complexity.

> It is a library call, but one that is tied to the behavior of a language feature (async/await).

This is a good example of C# light-touch on language design. Async/await creates a state machine out of your methods but that's all it does. The language itself delegates entirely to platform/framework for the implementation. You can swap in your own implementation (just as it possible with this union feature)

> So I bring this up as a case of how supporting multiple platforms and runtime scenarios does indeed add some layer of complexity.

I agree that's true. A language that doesn't support multiple platforms and runtime scenarios can, indeed, be simpler. However that doesn't make the task simpler -- now you just have to use different languages entirely with potentially different semantics. If your task is just one platform and one runtime scenario, the mental cost here is still low. You don't actually need to know those other details.


If it’s not for you I guess that is ok. But from your comment I would also deduct that you never professionally used it. After so many different languages it’s the only one I always comeback to.

The only things that I wish for are: rusts borrow-checker and memory management. And the AOT story would be more natural.

Besides that, for me, it is the general purpose language.


General purpose != multiple dialects, that is the trouble with languages like this - C# is a tower of babel.

>a jack of all trades

Yes, C# is a jack of all trades and can be used at many things. Web, desktop mobile, microservices, CLI, embedded software, games. Probably is not fitted for writing operating systems kernels due to the GC but most areas can be tackled with C#.


> Probably is not fitted for writing operating systems kernels

Midori would like to have a word with you:

https://en.wikipedia.org/wiki/Midori_(operating_system)

https://joeduffyblog.com/2015/11/03/blogging-about-midori/


Absolutely agree. Modern C# language design feels very much lacking in vision or direction. It's mostly a bunch of shiny-looking language features being bolted on, all in ways that make the language massively more complex.

Just look at this feature: https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/cs...

Was this needed? Was this necessary? It's reusing an existing keyword, fine. It's not hard to understand. But it adds a new syntax to a language that's already filled to the brim, just to save a few keystrokes?

Try teaching someone C# nowadays. Completely impossible. Really, I wish they would've given F# just a tenth of the love that C# got over the years. It has issues but it could've been so much more.


You are looking at it from what you know about C#, the goal is how can you reduce (delete) all this to make the language more accessible.

For you it may be fine to write:

List<string> strs = new List<string>();

And sure if you have been using C# for years you know all the things going on here.

But it shouldn’t be an argument that:

List<string> strs = [];

Is substentionally easier to grasp.

And that has been the theme of all changes.

The example you point out is the advanced case, someone only needs in a very specific case. It does not have a lot todo with learning the language.

The language design team is really making sure that the features work well throughout and I think that does deserve some credit.


I'm 100% on board with the [] syntax. I'm not on board with adding the syntax for passing arguments to the constructor within that syntax.

I agree that = [] is perfectly fine syntax. But I would definitely argue that:

[with(capacity: values.Length * 2), ..

is non-intuitive and unnecessary. What other language is there that has this syntax? Alternatively, is this a natural way of writing this? I wouldn't say so.

My main language in my free time is Rust, a few years ago it was F#. So, I'm absolutely open to other syntax ideas. But I feel that there has to be a direction, things have to work together to make a language feel coherent.

Another example would be Clojure, which I started learning a few months ago (before we all got swept up in AI FOMO :D). Clojure as a language feels very coherent, very logical. I'm still a beginner, but every time I learn something about it, it just makes sense. It feels as if I could have guessed that it works this way. I don't get that feeling at all in many of the new features of C#.

> The example you point out is the advanced case, someone only needs in a very specific case. It does not have a lot todo with learning the language.

I disagree. When learning the language, you're going to have to read other people's code and understand it. It's the same basic principle, but, I'd argue, much worse in C++. Yes, in theory, you don't have to understand SFINAE and template metaprogramming and (now) concepts and all those things. You could just work in a subset of C++ that doesn't use those things. But in practice, you're always going to have issues if you don't.


Hi there. Designer of this feature :D

> is non-intuitive and unnecessary.

intuitive is definitely in the eye of the beholder. When people saw:

`HashSet<string> people = [with(StringComparer.CaseInsensitiveComparer), .. group1, group2]`

they found it understandable. And this was also much nicer than what they'd have to write today (which would bring them out of the nice declarative collection-expression space).

Does that make it 'necessary'? Ultimately that's up to the individual. We felt like it was. Not being able to do simple things like this felt like a 'bitter pill'. Customization of collection construction is common (looking in codebases, it shows up about 7% of the time). So having to 'fall out' from the uniform collection-expr system into the much more verbose and clunky forms just for this common enough case felt 'necessary' to us.

>But I feel that there has to be a direction, things have to work together to make a language feel coherent.

I feel like this is conflicting feedback. Collection expressions made the language more coherent. Instead of 7 different ways of doing things (some of which were genuinely not efficient), we gave one uniform way of doing it. That makes things more coherent. Making it so you don't have to drop out of that for something as simple as configuring the collection makes things more coherent.


As someone who has been coding C# since the pre-generics days, this is the first syntax change which I strongly disagree with. I pretty much love every little bit of syntactic sugar you guys have added to the language. But this? This seems objectively illogical and just straight up ugly. It blows my mind that this is making it into the language, and it makes me worry about the future of C#.

How do you define "objectively illogical" here?

Practically speaking, I've found that Claude never uses collection expressions, so the feature has disappeared from my code. Before AI, the feature was looked at with skepticism by my coworkers. We like writing "var" for all variable declarations. You have to write the type on the left side if you want to declare a variable with a collection expression, and we would never do that otherwise. Can't do `foreach (var x in [1, 2, 3])`. Too often, you have to make specific accommodations in your code to allow the collection expression to be valid.

Collection expressions today are more the sort of thing that a code poet or golfer can do to prettify their code than something a newbie can count on using. It's tough to explain "you can only use this when the collection type is implied in that spot" to a newbie. The value of the base feature is still unproven for me. I'm not sure I agree, without some convincing, that collection expressions made the language more coherent rather than doing https://xkcd.com/927.


Isn't this just another form of Python's list comprehensions?

https://docs.python.org/3/tutorial/datastructures.html#list-...

I'm also not sure that something not being intuitive or natural is necessarily a bad thing in of itself. You state it as if it's so, but you haven't demonstrated that this way of defining a list is worse. You also haven't made any attempt to understand any possible benefit, nor have you attempted any sort of analysis comparing the good and the bad aspects.


No, this is just a constructor call, it's purely syntax sugar for the new() way of doing it.

> I'm also not sure that something not being intuitive or natural is necessarily a bad thing in of itself. You state it as if it's so, but you haven't demonstrated that this way of defining a list is worse.

I would argue that a language having more features, without the feature being helpful, is a bad thing in itself. If the syntax isn't necessary or very convenient in many cases, it shouldn't exist. The syntax being natural (which, absolutely, is a very subjective thing) just makes it less of an issue, I'd say.

Every new syntax added to the language adds cognitive overhead to readers of code. But also, it adds possible interactions with other language features that may be added in the future. Now, the example I brought up doesn't really concern the second point, I'll concede that. But unions? That is a big concept to add to a language that already has decades of existing conventions and tons of other features. How will they interact with generics? Nullable reference types? And, just as importantly: How will they interact with any other features that might be added at some point that we don't even know about?

I'm not against adding syntax sugar. For example, I quite like primary constructors, which is another relatively new C# feature. I think it's a bit annoying that they were kind of added in a roundabout way, by first adding records and then adding primary constructors to classes, but this time they don't define properties but fields...but in the end, it's a nice convenience feature when using constructor injection. Which, whatever one may feel about this, is pretty common in C# code.

But the thing is: If every single feature that's nice for a few use cases gets added to a language, the language will explode. The best example for this is C++. C# is definitely not that bad, far from it, but my point is that I want it to stay that way :)


That's a basic example with a single level of generics too, you'd sometimes have to do things like:

    Dictionary<string, List<Tuple<string, string>>> foo = new Dictionary<string, List<Tuple<string, string>>> 
Or things like:

    Dictionary<string, List<Tuple<string, string>>> foo = DoSomeWork();
And you'd have to get the type right, even though the compiler knew the type, because it'd tell you off for getting it wrong. Sometimes it was easiest to just grab the type from the compiler error. ( This example is of course a bit OTT, and it's a bit of a code-smell to be exposing that detail of typing to consumers. )

No-one wants to go back to that, and anyone who says C# is over-complicated I think is forgetting how rough it was in the earliest versions.

While introduction of auto-typing through "var" helped a lot with that, you'd still regularly have to fight if you wanted to properly initialise arrays with values, because the syntax was just not always obvious.

Collection literals are amazing, and now the ability to pass things into the constructor means they can be used when you need constructor parameters too, that's just a good thing as you say.


> The example you point out is the advanced case, someone only needs in a very specific case

This is exactly how C++ landed where it is now. Every time it's "you only need to know that syntax if..." well it ends up everyone has to know that syntax because someone will use it and if you're a responsible programmer you'll end up reading a lot code written from other people.


An unbeatable argument, really.

But still there is a difference between learning and mastering.

I recently helped my partner learn for her CS class, and I feel very comfortable arguing that my previous statement holds up.

Mastering? No, in that case I agree with you.


One issue I have with all these syntax changes is that they are all just more overhead for one to remember. All for what though? Just to just save a few more keystrokes?

I work on multiple applications with different versions of C# and/or Dotnet. I find it quite annoying to have to remember what syntax sugar is allowed in which versions.

If C# did not want verbose syntax, then Java was a poor choice to imitate.


Hi there! One of the C# language designers here, working on unions. And the author of that feature :D

So I'm happy to discuss the thinking here. It's not about saving keystrokes. It's about our decision that users shouldn't have 7 (yes 7) different ways of creating collections. They should just be able to target at least 99% of all cases where a collection is needed, with one simple and uniform syntax across all those cases.

When we created and introduced collection expressions, it was able to get close to that goal. But there were still cases left out, leaving people in the unenviable position of having to keep their code inconsistent.

This feature was tiny, and is really intended for those few percent of cases where you were stuck having to do things the much more complex way (see things like immutable builders as an example), just to do something simple, like adding an `IEqualityComparer<>`. This was also something that would become even more relevant as we add `k:v` support to our collections to be able to make dictionaries.


> Try teaching someone C# nowadays

Do you actually have a datapoint of someone failing to understand C# or are you just hyperbolically saying its a big language? The tooling, the ecosystem, the linting, the frameworks. Its a very easy language to get into...


Exactly, we have had many interns with zero C# experience become fluent in a couple of months and those with prior TypeScript or Java experience get there even faster. A good IDE (like Rider) helps also.

> Try teaching someone C# nowadays. Completely impossible. Really, I wish they would've given F# just a tenth of the love that C# got over the years

If they actually put effort in F#, it would have reached "unteachable" state already :)


Haha, yeah, maybe :)

I would've loved an F# that found a way to improve on the performance issues, especially when using computation expressions. That and, either, a deeper integration of .NETs native OOP subtyping, or some form of OCaml-like module system, would have been enough to make it an almost perfect language for my tastes.

Obviously, these are big, and maybe impossible, issues. But Microsoft as a whole never really dedicated enough resources to find out. I feel for the people still working on it, their work is definitely appreciated :)


My knowledge on functional languages is limited, but as I understand it, it’s possible to formulate expressions that are basically NP problems? And hence impossible to speed up?

So is it a F# issue or inherent to functional programming?


AFAIK it was a much more down-to-earth thing. The implementation of computation expressions in F# compiled down to lots of function objects that were not very GC-friendly. Or something like that. To be honest, I never looked that deeply at it :)

Looking at it, the MS docs contain something about this exact topic, so maybe it's better nowadays: https://learn.microsoft.com/en-us/dotnet/fsharp/language-ref...

Sadly, I haven't used F# for years at this point so I can't speak to the current state.


F# has since gotten Functional State machines which make many computation expressions more efficient (https://github.com/fsharp/fslang-design/blob/main/FSharp-6.0...). Been there a while.

I actually think F# has received some "love" over the recent years contrary to some on this forum; that feature being an example. My view, maybe unpopular but in the age of AI maybe less so, is there is a diminishing returns to language features anyway w.r.t complexity and the use cases that new feature will actually apply for. F# in my mind and many other languages now for that matter is pretty much there or are almost there; the languages are converging. When I used F# I liked how it unified features and tried to keep things simple. Features didn't feel "tacked on" mostly with some later exceptions.

Last time I used F# a few libraries started adopting this for their CE's (e.g. IcedTasks library, etc).


> Try teaching someone C# nowadays. Completely impossible.

That isn't a reasonable take. Failing to teach a language by enumerating all its features is an indictment of the instructor and not the language.


I guess I overdramatized the situation a bit :) It's a passionate topic for me; as somebody who has been using C# at work for 10 years now, I'm just not happy with the direction the language has been taking.

You're right, it's not impossible and in general it's not among the hardest languages to teach. But I would argue, it is heading that way.

There are already so many ways to do things in C#. For example, try explaining the difference between fields and properties; sounds easy, but making it really stick is quite a challenge. And that's one of the simplest cases (and a feature I'm 100% in favor of).

And you will have to explain it at some point, because real codebases contain these features so at some point, it'll need to be taught. Learning a language doesn't stop when you can write a simple application, it continues up until at least you're comfortable with most of its features and their practical use. The quicker one can get people to that point, the easier the language is to teach, I'd argue.

One might also argue that learning never really stops, but that's beside the point :)

In general, my issue isn't any specific feature. C# has many features that are non-trivial to learn but still great: value types, generics, expression trees. Source generators are relatively new and I like them! I like most of the things they're doing in the standard library or the runtime. Spans everywhere is a nice improvement, most new APIs are sensible and nice to use and the runtime just keeps getting faster every release. Great. It's more the pure C# language side I have an issue with.

But every language has a budget of innovation and cognitive load that you can expect people to deal with, and C# is not using its budget very wisely in my opinion.


> I guess I overdramatized the situation a bit :) It's a passionate topic for me; as somebody who has been using C# at work for 10 years now, I'm just not happy with the direction the language has been taking.

You should come engage with us on this then :)

We do all our design in the open on github. And a lot of us are available to chat and discuss all this stuff in Discord and the like :)

> C# is not using its budget very wisely in my opinion.

I can promise you. Every feature you think are great had similar detractors over the years. Every Single One :)


This is why I have always been leery of C# and continued using Java instead. C#s development has always seemed very haphazard and kitchen sink mentality to me.

I personally like the direction C# is taking. A multi-paradigm language with GC and flexibility to allow you to write highly expressive or high performance code.

Better than a new language for each task, like you have with Go (microservices) and Dart (GUI).

I'm using F# on a personal project and while it is a great language I think the syntax can be less readable than that of C#. C# code can contain a bit too much boilerplate keywords, but it has a clear structure. Lack of parenthesis in F# make it harder to grasp the structure of the code at a glance.


> big bag of stuff, with no direction.

also called general purpose, general style langue

> that still can't really be done in C#

I would think about it more as them including features other more general purpose languages with a "general" style have adopted then "migrating F# features into C#, as you have mentioned there are major differences between how C# and F# do discriminated sum types.

I.e. it look more like it got inspired by it's competition like e.g. Java (via. sealed interface), Rust (via. enum), TypeScript (via structural typing & literal types) etc.

> Was a functional approach really so 'difficult'?

it was never difficult to use

but it was very different in most aspects

which makes it difficult to push, sell, adapt etc.

that the maybe most wide used functional language (Haskel) has a very bad reputation about being unnecessary complicated and obscure to use with a lot of CS-terminology/pseudo-elitism gate keeping doesn't exactly help. (Also to be clear I'm not saying it has this properties, but it has the reputation, or at least had that reputation for a long time)


"reputation about being unnecessary complicated and obscure to use with a lot of CS-terminology/pseudo-elitism gate keeping doesn't exactly help"

Probably more this than any technical reason. More about culture and installed view points.

I don't want to get into the objects/function wars, but do think pretty much every technical problem can be solved better with functions. BUT, it would take an entire industries to re-tool. So think it was more about inertia.

Inertia won.


    > I don't really get it
To me it makes sense because C# is a very general purpose language that has many audiences. Desktop GUI apps, web APIs, a scripting engine for gaming SDKs, console apps.

It does each reasonably well (with web APIs being where I think they truly shine).

    > Was a functional approach really so 'difficult'
It is surprisingly difficult for folks to grasp functional techniques and even writing code that uses `Func`, `Action`, and delegates. Devs have no problem consuming such code, but writing such code is a different matter altogether; there is just very little training for devs to think functionally. Even after explaining why devs might want to write such code (e.g. makes testing much easier), it happens very, very rarely in our codebase.

Union is almost a net positive to C# in my opinion.

But I do agree. C# is heading to a weird place. At first glance C# looks like a very explicit language, but then you have all the hidden magical tricks: you can't even tell if a (x) => x will be a Func or Expression[0], or if a $"{x}"[1] will actually be evaluated, without looking at the callee's signature.

[0]: https://learn.microsoft.com/en-us/dotnet/csharp/advanced-top...

[1]: https://learn.microsoft.com/en-us/dotnet/csharp/advanced-top...


From the PoV of someone who uses C# every day those are very strange things to be upset about.

> you can't even tell if...

In the places where that is a thing, I've never needed to care. (Which is kind of the point)


Purity is overrated. C# is a kitchen sink language but you need give credit to the language designers. Compared to C++, for example, C# feels feature rich and consistent even though it abandons purity.

I think purity matters where you can have the compiler catch problems.

C# has fantastic tooling, though. Its a hidden feature but to the credit of the language designers, I don't think they often abandon compiler features for dev features.

For example, C# chose not to go down the route of type erasure for the sake of generics and because of that you don't get the same sort of runtime type issues that Java might have.


Microsoft's management has always behaved as if it was a mistake to have added F# into Visual Studio 2010, and being stuck finding a purpose for it.

Note that most of its development is still by the open source community and its tooling is an outsider for Visual Studio, where everything else is shared between Visual Basic and C#.

With the official deprecation of VB, and C++/CLI, even though the community keeps going with F#, CLR has changed meaning to C# Language Runtime, for all practical purposes.

Also UWP never officially supported F#, although you could get it running with some hacks.

Similarly with ongoing Native AOT, there are some F# features that break under AOT and might never be rewritten.

A lost opportunity indeed.


>Is this the last of the F# features to be migrated into C#? >What a missed opportunity.

Not adding functional features to F# doesn't mean F# would have gained more usage. And if someone wants to use F#, no one is stopping him or her.


I meant, 'missed', in that the entire industry would have been better off if F# or functional programming had won out over object oriented/C# styles.

But, that would takes, schools changing, companies changing, everything. So it was really the installed base that won, not what was better.

We'd have to go back in time, and have some ML Language win over C++ .


> Pulling them all into C# just makes C# seem like a big bag of stuff, with no direction.

Agreed. Java is on the same trail.


Care to elaborate? I think Java is showing remarkable vision and cohesion in their roadmap. Their released features are forward compatible and integrate nicely into existing syntax.

I work much with C# these days and wish C# had as cohesive a syntax story. It often feels like "island of special syntax that makes you fall of a cliff".


It's honestly hilarious since the person you're replying to has heavily advocated Manifold which is a compiler extension to Java that adds every little feature to the language.

https://github.com/manifold-systems/manifold


So, is Earendil, just Pi?

They also have an AI mailbox service called Lefos.

100B/Year

How are they spinning this, that it is not Reparations?

"10. Iran to use Hormuz fees for reconstruction instead of reparations"

What is the splitting of hairs here?


I think reparations could be spent as they see fit. Reconstruction implies the money is going to exactly that.

But I agree it's a weird nitpick at this stage, as it seems almost impossible to verify once in place


No, the point is that instead of the US paying reparations from their own pocket they will allow Iran to tax Gulf countries.

That sentence is just worded badly, I would rewrite it as:

10. Iran to use Hormuz fees for reconstruction instead of demanding reparations from the US.


I think you're right, it's a bracketing ambiguity.

Rather than "Iran to use Hormuz fees for (reconstruction instead of reparations)" it's more likely to mean "Iran to use (Hormuz fees for reconstruction) instead of reparations"


Yeah, I think they want to do it this way, because Iran wants some compensation for damages, but paying reparations directly would be too humiliating for the US, and Trump would never agree to it.

Flagged? Really?

In a post about labor shortages in Restaurants? We can't mention immigration?

Who do you think worked in the kitchen?


I'm seeing a lot more teenagers in fast food than I did 1-5yr ago...

Is it? or were a few people, lets say, put across the border.

Wouldn’t that tighten up the labor force, if true? Less pidgeons for the same number of boxes

Here it would depend on how much those boxes are paying.

Are people without authorization to work counted in these stats, one way or another?

"The lady doth protest too much, methinks"

a famous line from Shakespeare's Hamlet (Act III, Scene II). It means that someone's overly emphatic or frequent denial of a situation suggests they are hiding the truth, are insincere, or actually guilty of what they deny. It implies their defense is covering up a secret desire or truth.


Not just 'other girls'. That happens, but also, it's a theme that has been around a long time. The 'Maga' movement existed before Trump. This is 1992

Was also in Snow Crash.

"All these beefy Caucasians with guns! Get enough of them together, looking for the America they always believed they'd grow up in, and they glom together like overcooked rice…With their power tools, portable generators, weapons, four-wheel-drive vehicles, and personal computers, they are like beavers hyped up on crystal meth, manic engineers without a blueprint, chewing through the wilderness, building things and abandoning them, altering the flow of mighty rivers and then moving on because the place ain't what it used to be.

The byproduct of the lifestyle is polluted rivers, greenhouse effect, spouse abuse, televangelists, and serial killers.

But as long as you have that fourwheel-drive vehicle and can keep driving north, you can sustain it, keep moving just quickly enough to stay one step ahead of your own waste stream.

"

Snow Crash Chapter 39 (Hiro's observation as he drives along the Alaska Highway)


> The 'Maga' movement existed before Trump. This is 1992

Anti-intellectualism has a long and storied in the US (and other countries):

* https://en.wikipedia.org/wiki/Anti-intellectualism#In_the_Un...

* https://en.wikipedia.org/wiki/Anti-intellectualism_in_Americ...


Snow Crash came to mind, but so did several other Neal Stephenson books!

yes, I think his book "Reamde" had the concept of "Ameristan" which was the redneck-Idaho equivalent of many racial/religious/socioecon tropes.

Ackshually this is "Fall, or Dodge in Hell"

also

If the "Right/Left" or "Liberal/Conservative" is too hot button for any kind of discussion.

He also wrote "Anathem"

Which is fictional world, with fictional sides, that can be used to explore similar concepts a little less triggering.


There have been studies on Right/Left ability to differentiate fact/fiction. The Right is in a bad place. On the Right they really could not differentiate Fact/Fiction.. The Right has grown up on Religion and Fake news, they are living in a completely different world view that doesn't have any internal coherence.

If you live in a fantasy land, anything can happen.


I'm interested to see any studies you can find on this topic. Here are some studies that I have:

Equalitarianism: A Source of Liberal Bias [1] - in study 6, liberals were shown to be ...pretty racist.

You claimed the Right believes fake news. I wont dispute that. I'll just reply that there's a lot of that going around. Here are some examples that debunk fake news you yourself might fervently believe:

Girls Who Code: A Randomized Field Experiment on Gender-Based Hiring Discrimination [2] - leftists tend to believe that women are discriminated against in STEM.

An Empirical Analysis of Racial Differences in Police Use of Force [3] - debunks the common belief, on the Left, that police are more likely to shoot people of color. Quote: "we find, after controlling for suspect demographics, ocer demographics, encounter characteristics, suspect weapon and year fixed effects, that blacks are 27.4 percent less likely to be shot at by police relative to non-black, non-Hispanics"

[1] https://www.researchgate.net/publication/325033477_Equalitar...

[2] https://economics.yale.edu/sites/default/files/marley_finley...

[3] https://fryer.scholars.harvard.edu/publications/empirical-an...


Sure. Everyone is biased some. Going all the way back to the "1951 Princeton–Dartmouth football game"

The Right, just happens to be in a bit in a slump right now with its anti-science religious activism. "Doing worse"

Garrett & Bond (2021), Conservatives’ susceptibility to political misperceptions, Science Advances. https://www.science.org/doi/10.1126/sciadv.abf1234?utm_sourc...

Sultan et al. (2024), Susceptibility to online misinformation: A systematic meta-analysis, https://www.pnas.org/doi/10.1073/pnas.2409329121?utm_source=...

Rathje et al. (2023), Accuracy and social motivations shape judgements of (mis)information, Nature Human Behaviour. This one emphasizes that misinformation judgments are shaped by both accuracy motives and social/identity motives, which helps explain why partisan gaps are not simply about intelligence or total inability to separate truth from fiction. https://www.nature.com/articles/s41562-023-01540-w?utm_sourc...

Lyons et al. (2021), Overconfidence in news judgments is associated with false news susceptibility, https://www.pnas.org/doi/10.1073/pnas.2019527118?utm_source=...

Pennycook et al. (2022), Accuracy prompts are a replicable and generalizable approach for reducing online misinformation, Nature Communications. This paper discusses baseline sharing discernment and notes worse baseline discernment among conservatives in the samples they studied, while also showing that simple accuracy prompts can help. https://www.nature.com/articles/s41467-022-30073-5?utm_sourc...

summary is: there are studies showing conservatives, on average, perform worse on certain misinformation/truth-discernment tasks, but the strongest scholarly version of the claim is narrower and more conditional than the popular retelling https://www.science.org/doi/10.1126/sciadv.abf1234?utm_sourc...


Great! So, let's start with your first study. Note this quote:

> it is possible that conservatives’ relatively low accuracy about political information is a by-product of the fact that issues used in forming this assessment were selected with an eye toward detecting misperceptions among the political group

That's definitely a way to bias a study against conservatives. It's good that this study claims it avoided that bias. But did it? They don't list the questions that participants were asked. I checked the list of supporting documents, and couldn't find it.

Without that list, I can't accept this source. Sorry.

If I went out and asked a bunch of Liberals, "did Trump say that Neo-Nazis are 'very fine people?'" I suspect that upwards of 90% of Liberals would answer "yes" ...and they would swear they heard him do it! You may (falsely) believe this yourself!

I could ask, "did Trump advise people to drink bleach?" and many Liberals would swear he did.

He didn't do either of those things. But many Liberals emphatically believe he did. I could very easily design a study that included only these sorts of questions - questions that Liberals will get wrong.

The only way to spot this bias would be if I included the questions in the study, so that you could vet them yourself. Without such a list, it is completely reasonable for me to reject your source.

Should I continue to the next one, or are they all like this?


So you don't have an argument, you just reject sources that you either can't understand or don't like. Which is just proving the parents point.

If you don't want to accept sources you disagree with.

Then isn't that part of the problem?

The onus is on you, to tell me what would be acceptable sources for you.

You didn't really debunk any of these sources, just supplied some random sampling of your own creation. Interestingly, I have gone back and watched the full video of both of those quotes. He did say all of those things, but 'in-joking'. That is a common tactic. Everything he says can be re-cast as 'he was only joking'. The trick is, the right can always shift what was a 'joke' or 'not-joke', depending on the argument. Was it serious, or not serious? It really depends on shifting views, and the interpretation can change day to day.

I tend to agree liberals really piled on those examples too much, there were really so many better examples.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: