HackerTrans
TopNewTrendsCommentsPastAskShowJobs

uDontKnowMe

no profile record

comments

uDontKnowMe
·il y a 2 ans·discuss
I'm not so sure. I wish it were as you say but there are currently 5600 job postings mentioning Scala on LinkedIn in the USA, vs 82 that mention Clojure. 82! In the entire USA. So even in its state of relative decline, Scala might be about 70 times as used in industry as Clojure is.

Even as I flip through the 7 postings mentioning Clojure in all of Canada, only 4 of them seem to indicate the job itself makes use of the language (rather than mentioning it just as an example language as in "* Fluency in one or more languages like Ruby, Clojure, Scala, ReactJS, JavaScript, TypeScript, Java, Python - Deep understanding of internet protocols and standards.")
uDontKnowMe
·il y a 5 ans·discuss
What about Avro then?
uDontKnowMe
·il y a 5 ans·discuss
It's interesting you call relationships on Reddit para-social, I don't know if that quite fits the word because Reddit is more of a two-way reciprocal relationship between commenters. Perhaps Twitter fits that description better since you get a lot of power users like Trump and other celebrities which broadcast out to their followers but don't typically respond to normies.
uDontKnowMe
·il y a 5 ans·discuss
Consistently interesting content coming out of Pragmatic Bookshelf publishers these days. Recently, I have particularly enjoyed the Ray Tracer Challenge (https://pragprog.com/titles/jbtracer/the-ray-tracer-challeng...) and Web Development in Clojure (https://pragprog.com/titles/dswdcloj3/web-development-with-c...)
uDontKnowMe
·il y a 5 ans·discuss
Thank you so much for this, it's great work!
uDontKnowMe
·il y a 5 ans·discuss
Unfortunately even if you only cared about plants, you would still be better off on a vegan diet because animal agriculture requires order(s) of magnitude more plants to be cultivated than a vegan diet would, on account of it taking many calories of plant feed to produce a calorie of meat.
uDontKnowMe
·il y a 5 ans·discuss
The food chain is an abstraction that describes the natural world, not a moral agent any more than the water cycle is. Wild animals predate in the wild, yes, but they aren't moral agents. Humans are able to reason about our own actions and more importantly we can live and indeed thrive on a plant-based diet. So since there are ways to get our food other than killing other thinking, feeling, suffering individuals, we aren't forced to do so. We just choose to inflict incomprehensible amounts of suffering on animals not out of necessity but because we like the taste of cow milk slightly more than we like the taste of oat milk, or we love the way their flesh tastes, and would rather eat it than cook a plant-based meal.

We inflict billions of lifetimes of misery and torture on creatures with their own desires and will to live, who feel suffering and pain just as much as we do, in service of an utterly unnecessary and trivial benefit, that while we could live incredibly well, even healthier and with less impact on the environment on a plant-based diet, we like the taste of their flesh and excretions too much to choose oat milk and tofu at the grocery store.

Yes it is wrong! Future generations will look back at our time as with disbelief that we behave like this.
uDontKnowMe
·il y a 5 ans·discuss
I have to point out the obvious, that this chart doesn't pass the smell test and must have done something really wrong to conclude that in 2021, JS and Python power less websites than Scala.
uDontKnowMe
·il y a 5 ans·discuss
Really dislike the "written in Rust" suffix all the time...
uDontKnowMe
·il y a 5 ans·discuss
Why wouldn't companies raise their prices to match demand in the long term?
uDontKnowMe
·il y a 5 ans·discuss
Would there not be a risk that you may get something working nicely in openjdk and then you go to do a native compilation, and it turns out that it doesn't work due to some new method call which uses reflection or something?
uDontKnowMe
·il y a 5 ans·discuss
I explored this briefly but it ended up taking about 25 seconds to compile hello-world in Clojure. That struck me as causing a lot of pain to develop for.

That, combined with how you'd lose access to a lot of the java library ecosystem, makes it less appealing to me to develop on.
uDontKnowMe
·il y a 5 ans·discuss
What do you mean by democratic? Are you thinking of some kind of election system to replace mods, and if so have you seen such a mechanism work anywhere else on forums?
uDontKnowMe
·il y a 5 ans·discuss
Sorry, to be more precise, I'm seeing in total roughly: - 6.8% old reddit - 5.8% mobile web - 72% new reddit - 15.6% reddit apps
uDontKnowMe
·il y a 5 ans·discuss
I think it's a common misconception that old.reddit.com is still extremely popular. As a mod of a medium-large sub which should skew highly towards old.reddit.com (developer-focussed content, created at around the beginning of reddit itself), the percent of pageviews on old.reddit.com is right now around 8%.
uDontKnowMe
·il y a 5 ans·discuss
Have you considered rabbitmq or nats?
uDontKnowMe
·il y a 5 ans·discuss
>Exactly, and all you need is Any

If you're using Any, then your program is (at least in part) dynamically typed. I don't think it's fair to say "look! Static typing is better than dynamic typing in any and all situations! (so long as it can use dynamic typing)"
uDontKnowMe
·il y a 5 ans·discuss
An other Ray Tracing book I've really been enjoying recently is the Ray Tracer Challenge by Jamis Buck https://pragprog.com/titles/jbtracer/the-ray-tracer-challeng...
uDontKnowMe
·il y a 5 ans·discuss
That's true! But now we'll get into what is possible vs what is idiomatic, common, and supported by the language/stdlib/tooling/libraries/community. If I remember correctly, Rich Hickey did actually do some development for the US census, programming sort of in a Clojure way but in C#, before creating Clojure. But it just looked so alien and was so high-friction that he ended up just creating Clojure. As the article I linked to points out, "at some point, you're just re-implementing Clojure". That being said, it's definitely possible, I just have almost never seen anyone program like that in Java/Scala.
uDontKnowMe
·il y a 5 ans·discuss
I've seen this article and I applaud it for addressing the issue thoroughly but I still am not convinced that static typing as we know it is as flexible and generic as dynamic typing. Let's go at this from an other angle, with a thought experiment. I hope you won't find it sarcastic or patronizing, just trying to draw an analogy here.

So, in statically typed languages, it is not idiomatic to pass around heterogeneous dynamic maps, at least in application code, like it is in Ruby/Clojure/etc. But one analogy we can draw which could drive some intuition for static typing enthusiasts is to forget about objects and consider lists. It is perfectly familiar to Scala/Java/C# programmers to pass around Lists, even though they're highly dynamic. So now think about what programming would be like if we didn't have dynamic lists, and instead whenever you wanted to build a collection, you had to go through the same rigamarole that you have to when defining a new User/Record/Tags object.

So instead of being able to use fully general `List` objects, when you want to create a list, that will be its own custom type. So instead of

  val list = List(1,2,3,4)
you'll have to do:

    case class List4(_0: Int, _1: Int, _2: Int, _3: Int)
    val list = List4(1,2,3,4)
This represents what we're trying to do much more accurately and type-safely than with dynamic Lists, but what is the cost? We can't append to the list, we can't `.map(...)` the list, we can't take the sum of the list. Well, actually we can!

    case class List5(_0: Int, _1: Int, _2: Int, _3: Int, _4)
    def append(list4: List4, elem: Int): List5 = List5(list4._0, list4._1, list4._2, list4._3, elem)
    def map(list4: List4, f: Int => Int): List4 = List4(f(list4._0), f(list4._1), f(list4._2), f(list4._3))
    def sum(list4: List4): Int = list4._0 + list4._1 + list4._2 + list4._3
So what's the problem? I've shown that the statically defined list is can handle the cases that I initially thought were missing. In fact, for any such operation you are missing from the dynamic list implementation, I can come up with a static version which will be much more type safe and more explicit on what it expects and what it returns.

I think it's obvious what is missing, it's that all this code is way too specific, you can't reuse any code from List4 in List5, and just a whole host of other problems. Well, this is pretty much exactly the same kinds of problems that you run into with static typing when you're applying it to domain objects like User/Record/Car. It's just that we're very used to these limitations, so it never really occurs to us what kind of cost we're paying for the guarantees we're getting.

That's not to say dynamic typing is right and static typing is wrong, but I do think that there really are significant costs to static typing and people don't think about it.