2,193 karma · joined July 7, 2008
I notice you didn't really talk much about types. When I think of proofs in code my mind goes straight to types because they literally are proofs. Richer typed languages move even more in that direction.
One caveat I would add is it is not always desirable to be forced to think through every little scenario and detail. Sometimes it's better to ship faster than write 100% sound code.
And as an industry, as much as I hate it, the preference is for languages and code that is extremely imperative and brittle. Very few companies want to be writing code in Idris or Haskell on a daily basis.
As a Las Vegas photographer that works primarily with models, I often have random profiles blasting out my work. These profiles mostly find sexy content and blast it out in hopes of growing their own profiles. This mostly resulted in my followers being 95% men from outside the US. This does absolutely nothing for increasing my engagement with my actual target audience (female models or would be models in the Las Vegas metro area wanting to book photoshoots).
Unfortunately Instagram penalizes you and has actually removed the search functionality from my follower list because I was using it to delete bots and junk followers. They won't say this officially but their support ignores my requests for why this functionality no longer works.
The problem is that it is not an audience that would normally be interested in or engage in your content naturally. There are often artificial incentives to follow or engage in someone's content. Often there is some kind of prize giveaway from a "celebrity", that you have to follow everyone on a list to qualify. That celebrity then gets paid to blast out the promotion.
Then after the promotion all of a sudden your massive number of new followers aren't engaging with your content anymore. What are the algorithms going to assume now? Naturally that your content is no longer any good.
It's common for influencers to share screenshots of their analytics or publish them on their websites for people looking for influencers. While the numbers might look impressive, unfortunately, due to how the algorithms work -- mainly things like vector embeddings and placing influencers in a some high dimensional space, the algorithms no longer target and recommend your content to an audience that would be interested.
It used to be that brands would look at your follower count and see how many likes / comments you were getting, but even this is faked now. As your engagement (likes / comments as a percentage of your followers) goes down, they are sometimes artificially propped up by purchasing likes and comments. This worsens your engagement and leads to an endless downward cycle.
While someone might survive for a short while as an influencer using these black hat strategies, brands will be unlikely to use you again if they have not seen tangible results.
Also, if you intend to sell a product or have a certain ideal customer avatar you are trying to market to, it makes sense to do as much as you can to get engagement from that (and only that) demographic.
Follower counts might look impressive on the surface but what ultimately matters is whether you see conversions for your business / brand.
I've worked at Silicon Valley startups that were that way. I remember thinking this is really odd how high the concentration was (probably about 70% Indian). Didn't really bother me because it was a great team and honestly one of the best companies I worked at.
It didn't really seem like they discriminated in hiring and I never felt discriminated against at work. It was just that coworkers referred people they already knew.
https://github.com/brennancheung/wasmtalk
Some key takeaways from the above link:
- The programmer's tool should be a tool for manipulating an annotated AST (not text)
- There should be many different types of UX's for different scenarios, each maps to and from an AST in a UX that is optimal for the developer for that scenario
- We must be conscious of human brain limitations and cognitive psychology and work within those constraints
- "Reading" and "Writing" code should have different UX's because they are radically different use cases
- Use RPN. It models the real world. Humans are designed to manipulate their environment in an incremental manner seeing the result each step of the way. When we have to plan out and write code for an extended period of time, trying to play compiler in our head, we overload our brain unnecessarily and highly likely to make simple mistakes.
- Testing should be a first class citizen in the developer experience and indeed baked into how we develop at a fundamental level that it seems strange that they are even decoupled to begin with.
"I don't trust them at all and nor do the other girls. So diversifying is our best bet"
But now models will diversify across multiple platforms because the writing is on the wall. They may lose their income at any point so they are going to have backups.
The other platforms are capitalizing on the news and finding ways to make migration to their platform as easy as possible.
Their credibility is gone.
I suspect they are currently not classified as adult and the banks are saying, look, you are almost entirely adult so you have to pay us more.
To reach the masses you probably have to go with "know your customer" (KYC) requirements that are going to scare lots of people away when they have to upload photos of their passport and stuff like that to a website.
And governments and banks are going to impose the same restrictions somehow.
Unless they use a coin that is private, all transactions are going to be recorded in the blockchain and publicly viewable to everyone. Nobody wants their porn purchases to be public knowledge.
It will probably eventually get there but probably at least 5 years out.
There are plenty of porn sites out there operating legally, wonder why the banks are giving them issue.
My guess is that they presented themselves to banks as just ordinary non-adult transactions and now the banks are seeing that they are almost entirely adult so they want to put them into the higher and more expensive "high-risk" category and OF won't be able to get away with only taking 20% from the models.
I guess I'm getting back into the adult website game. I work with tons of adult models as a photographer and got out of making websites due to OnlyFans.
I like the language at a conceptual level and find what it does very useful. The syntax I find less than desirable (especially nested generics).
For smaller projects I tend to use just JS because it's faster if I just want to prototype an idea and I'm not planning on keeping the code around for long.
Where Typescript shines is when working with a team on longer term projects.
The generic syntax gets derives from C++ which I don't think is a very good syntax. When dealing with more complex generic type declarations with nested generics / types your eye is scanning back and forth trying to match angle brackets and it is really hard to parse visually. Other languages like Haskell allow you to just read the "generics" left to right. Aliasing the type helps to some degree.
The other thing I don't like is when you are experimenting and fleshing out an idea you want to take a try it and see approach but with Typescript you have to really commit even though you just want to experiment. When you want to change something there is so much more code that you have to change.
The pros are when dealing with code you wrote in the past and forgot about what the types / parameters are or when dealing with code written by other people. Having the IDE suggest what you need to pass it is amazing.
The contrast to that is having to jump to a function to see what POJO style object it will return, what the exact spelling of the property / key are, and things like that. Having static typing saves so much time when dealing with other code.
If your project involves you working with others' code or code you wrote in the past and don't remember well then this is Typescript's sweet spot and it is a huge win.
One of the things I find most lacking in Typescript is pattern matching. If you have strong static typing like Typescript does then pattern matching pairs really well with that. It makes your code much more declarative and easier to read / write.
Is this like the curse of teaching monads? Once you know them you lose the ability to teach someone else about them?
> If we sincerely ask "why learn Haskell?", then we wind up learning Haskell!
No. We wind up doing a search for "Why learn Haskell" and unfortunately this article might pop up. And if we don't see a benefit or pain point being removed we aren't going to learn it.
They don't even make an argument for why. They just jump into a philosophy lesson on logic. That's not an argument for learning Haskell and is completely tangential.
The basic rules of copywriting requires that you understand your target audience and make a case for how their life will better.
> The gold standard is a logical reason.
LOL. No, it's not. The gold standard is an emotional reason. Perhaps this is why Haskell has not taken off. What pain point does it solve or what benefit does it give you?
For me personally, it has expanded my thinking and allowed me to write clearer and more concise code in other languages. It has allowed me to think in terms of new concepts that increase the reach of what I am able to do. Its type system provides for safety as well as making the intent of programs clear. Pattern matching allows you to specify your intent much easier and conveniently than the typical imperative approach. The compiler is your friend and reminds you if you fail to take into account all possible scenarios (total function). The syntax may seem strange at first, but I have come to love it and wish other languages had adopted such a clean syntax devoid of visual clutter.
The gold standard reason for me is that I am able to tackle, think, and solve higher levels of complexity than are possible in other languages. I am able to express myself much more fluidly and I am able to reuse code to a much higher degree.
> US universities are not free environments of vigorous intellectual debate anymore
This seems like one of the most pressing dangers we are facing right now. How can this be changed? Where can people go to have honest intellectual debates?
Lots of fields are adopting CT. And being taught CT earlier on in the process would provide a useful framework for building upon future knowledge.
Mathematics seems to have 10 different names for the same concept depending on which field you are in. CT provides a common vocabulary.
The problem with CT education IMO is that it cannot be taught at the abstraction level only -- there are too many floating abstractions that people can't anchor to any existing knowledge.
This means CT can only REALLY be understood once you apply it to a domain. The problem is that not many people outside of mathematicians understand the domains that CT is traditionally taught with.
CT for Engineers, CT for Programmers, CT for XYZ, is probably the only viable way CT is going to see wider adoption.