238 karma · joined February 7, 2017
I have great respect for Rich Hickey and I recently saw a cool talk about a financial startup using Clojure in production [1]. I have kept track of the language for some time but have never had the chance to use it in any serious capacity.
Some of my favorites are:
- Simple Made Easy (Hickey): https://www.youtube.com/watch?v=oytL881p-nQ
- The Mess We're In (Armstrong): https://www.youtube.com/watch?v=lKXe3HUG2l4
- The Unreasonable Effectiveness of Multiple Dispatch (Karpinski): https://www.youtube.com/watch?v=kc9HwsxE1OY
Existing in a filter bubble has a strong effect on your perception. Perception has a direct influence on your actions. Couple this with interfaces which are purposefully addicting ("high user engagement" is a euphemism), and you can very directly influence behavior.
The pervasiveness of smartphones means that these apps are only a few clicks away for virtually the entire world population. And worse, once these apps are installed on your phone, they relentlessly pull you back in with and endless stream of notifications.
It is not only Facebook. Applications like Reddit, YouTube, Instagram, Twitter, and TikTok all follow the same basic patterns.
It is not an overly dramatic description. If anything the public has been frightfully unaware of the influence that these companies can exert on the world. I am glad that this film has brought these issues into the spotlight.
The community exhausted the entire design space (along with some full-blown prototypes). Eventually, the core Julia team chose to use more forgiving scoping in the REPL (virtually always the first point of contact for beginners), while actual projects enforced stricter scoping rules.
My key take-away is to consider how the language interacts with its ecosystem, not just how it should ideally operate in isolation. I have found the Julia team to be consistent in this pursuit. If the first point of contact is intractable for beginners, the project is dead on arrival. A technical tool should be tailored for experts, but you don't want to kill adoption along the way. Engineering is tradeoffs.
This article goes more in depth along the same lines: https://pchiusano.github.io/2016-02-25/tech-adoption.html
[1] https://discourse.julialang.org/t/another-possible-solution-...
A language is not just the basic control flow operations, but includes package management, performance gotchas, correctness gotchas, standard library, library ecosystem, data representation, etc. Then there are details and edge cases that you just don't hit without months or years of hard work with a language.
My experience tells me to take choose a reasonably robust language, then stick to that language until you have an overwhelmingly compelling reason to switch.
Not requiring a central point of control is an additional benefit. The reduction of traffic would be an "emergent" behavior.
> it has also helped me think about my feelings
The book focuses on communication with others, but effectively fosters constructive inner dialogue as well. I know of at least one other person who claimed it helped them avoid destructive habits.
> it has helped me put more structure around tough conversations
I deescalated a nasty dispute between two people close to me after reading only the first few chapters. I was impressed because I wasn't the type of person to emotionally connect with people so effectively.
I believe the world would be a better place if more people read this book.
Wow, they are playing the game at a higher order than I have even considered.
What is meant by this?
Code design is what keeps complex projects from collapsing under their own weight. There are always trade-offs when constructing software, but I feel that design is often neglected needlessly.
I agree that tooling has a significant influence on the productivity of a language. One does not only adopt a language, but the ecosystem and community around it. I think we both agree on this. I am simply trying to point out that there is an unavoidable delay between the maturity of the language and the maturity of the ecosystem. I think its fair to take this delay into account.
For a streamlined workflow, I recommend Emacs + Revise.jl. I just edit my code in an Emacs buffer, and the Revise automatically updates the REPL to reflect the source. This makes the code feel tangible, more than any other language I have experienced.
It seems Google will take a shot at it: https://en.wikipedia.org/wiki/Google_Fuchsia
How do alcohol and cigarettes not fit this definition!? Meanwhile, edible cannabis is relatively safe and Ecstacy has shown promise as a component of PTSD treatment. Just a few examples...
That being said, it cracks me up when people get downvoted so heavily for jokes!
I'm no security expert, but the feeling I get from other discussions is that big players have acted dishonestly with regards to proper compensation of bug bounties. It seems that sad state of affairs is being protested.