• 0 Posts
  • 217 Comments
Joined 3 years ago
cake
Cake day: June 12th, 2023

help-circle











  • he got hardware that worked with the default setup for the majority of linux DEs at the time… he literally followed your suggestion and has been waiting for support for it in wayland for a decade.

    this has to be the dumbest argument I’ve seen in a few months on here. you’re literally telling someone to sell their car because you want them to switch to a different kind of engine that currently isn’t compatible with their car, even though they haven’t wanted to switch to a new engine for a decade.





  • husky has to be one of the most annoying and outright hostile libraries I’ve seen. Anytime I pull an open source project to get it working on my machine I have to go through and set up an entire development pipeline just to make a code change even if I never intend on upstreaming that change because husky forces formatting on commits. What an idiotic thing to do. The article covers this clearly. It’s just not something that should be done on commit.



  • I’m not saying I don’t understand them. I’m saying the syntax is terrible. Compare it to Ruby (or any other modern language) and it’s abundantly clear.

    python (uses syntax not available in any other top 25 language)

    print([j**2 for j in [2, 3, 4, 5]]) # => [4, 9, 16, 25]
    

    ruby (normal chain syntax with map)

    puts [2, 3, 4, 5].map{|j| j**2}
    

    even kotlin is more readable, even though you have to convert to a double and back kotlin

    val list = listOf(1,2,3,4)
    println(list.map{it.toDouble().pow(2.0).toInt()})
    

    For nested cases it’s even more apparent:

    python

    digits = [1, 2, 3]
    chars = ['a', 'b', 'c']    
    print([str(d)+ch for d in digits for ch in chars if d >= 2 if ch == 'a'])    
    # => ['2a', '3a']
    

    ruby

    digits = [1, 2, 3]
    chars = ['a', 'b', 'c']   
    digits.product(chars).select{ |d, ch| d >= 2 && ch == 'a' }.map(&:join)
    

    kotlin

    val digits = listOf(1, 2, 3)
    val chars = listOf('a', 'b', 'c')
    println(digits.flatMap { d ->
        chars.filter { ch -> d >= 2 && ch == 'a' }.map { ch -> "${d}${ch}" }})
    

    just from a base level, you have to read the middle of the comprehension first, then the end, then the beginning. It’s a completely backwards way to write and read code. unlike other languages that use a ‘functional’ approach, where it’s chained methods or pipes, etc. Even Elixir, which does have list comprehensions, reads and writes in the proper order:

    elixir

    for x <- 0..100, x * x > 3, do: x * 2