• 1 Post
  • 11 Comments
Joined 7 days ago
cake
Cake day: November 8th, 2024

help-circle

  • _pi@lemmy.mltoProgrammer Humor@lemmy.mlFactory factory factory
    link
    fedilink
    English
    arrow-up
    9
    ·
    edit-2
    5 hours ago

    Factory factory…n is literally just creating an OOP closure for when your language doesn’t support first class functions, closures and/or currying.

    Also metaprogramming and abstraction is literally the only way to actually manage and deal with the capriciousness of your stakeholders.

    It’s not simple, because it’s literally not that simple. It’s Conway’s Law. That’s what being a programmer in the industry is. I run a platform team, and I get paid because I can organize and deal with technical risk and contingency better than anyone else at my company. You bet your ass I do metaprogramming.

    Also my product itself is a factory factory factory. Users create processes to author content, author content, and that content is delivered to other users. All in the same system. Managing complexity is extremely important if you want to work on interesting things.

    “And this is the way everyone is doing it now? Everyone is using a general-purpose tool-building factory factory factory now, whenever they need a hammer?”

    I’ve had this exact conversation with a programmer who was retiring. He was complaining that I ask too much because I told him that he needed a more generic way to represent the logic that encodes how our end-users traverse the content that our authoring users create and manage. He literally said something to the effect of the above quote to me, but as complaining contempt.

    The business explicitly doesn’t want to spend money crafting individual code bases and products and unique logic. Our system lives and dies by our ability to service our internal clients and meet their needs in a dynamic manner. We need manage each factory layer carefully because very often different clients want two different things at two different times, and so each decision needs to be encoded in a way that allows us to make future platform changes without having to sell the business on refactors.

    Sure you’ll run into people who overuse things when it could be simpler from the business perspective. But the reality is that most programmers in the industry have never stepped foot into a well run shop. Most programmers in the industry haven’t actually launched a product tip to tail.

    It’s very easy to criticize patterns when you don’t actually have to use them, you’ve never seen them being used properly, and you don’t know how and when to implement them.

    You don’t know how many times I’ve had to explain what two phase migration means and how to do them across multiple dependency links in the chain.


  • This practically means nothing tbh. Social networks when they gain economies of scale due to the network effect will effectively shed all the pretense of open source and open platform etc.

    We’ve seen it with Facebook, Google, etc, during the 2010’s with closing of chat standards and destruction of XMPP. Reddit 3rd Party API access is another example of this. We’ll see it again.



  • You’re talking from a relative position of understanding of these concepts. You’re not talking from a blank slate. Even in professional environments that I’ve been in where everyone went to college and theoretically is fully literate, you would have trouble getting people to retain these concepts even if you used friendlier technical language. You’re overestimating the amount of time it takes to actually achieve understanding, there are people on this site that constantly mix up these words and concepts, have a hard time applying them to the real world and misapply them regularly and are self professed Marxists. You’re also mistaking cultural policing of agreeing/using these concepts for understanding of them. Just think about how many people in America agree with capitalism but can’t adequately explain what capitalism is. They agree with freedom but don’t have a working definition or framework of what freedom means. On a societal level this often becomes bromides. My parents and grandparents read Marx in school but couldn’t give you an accurate basic run down of Marxist concepts.

    Marxism isn’t some magical thing. There were plenty of people in the USSR that also didn’t understand the system they existed under and it’s concepts but reflexively or sheepishly agreed with it.


  • Audiobooks aren’t really a good solution to be honest. Reading / writing literacy are the basis of scholarship. We have centuries of research and examples that we’ve turned our back on that efficient learning happens only when you can unlock good literacy skills. Specifically the aspect of reading/physical writing/sublingualization is a cornerstone of comprehension of complex ideas. With something like Marxism that’s based on understanding both technical and archaic language and social constructs it becomes really hard. There are tons of self professed Marxists that couldn’t tell you what commodity fetishism actually means in simple terms.

    Great example is the Communist Manifesto itself, meant to be a pamphlet for factory workers in the 19th century, but is typically a mildly difficult text to approach for the average person today.

    Audiobooks can replace something like pleasure reading where you’re just reading pulp garbage, but they’re not really a good replacement for learning.


  • The parentposting is the worst with math.

    My favorite flavor is the “THIS 5th GRADE HOMEWORK IS TOO HARD” when the adult clearly has never learned basic concepts like order of operations (PEMDAS) and cardinality of logic (e.g. how you solve sudoku where you order working through the solution always taking the smallest number of unknowns, first solve places where only one numbers missing until there are no first rank order problems, then move on to second rank order problems where two numbers are missing).

    But there are definitely parents answering ‘she was looking for Romeo when she said “wherefore art thou Romeo?”’.

    You can 100% see this degradation with adults in real time if you look at popular reality TV shows that have puzzle/knowledge/trivia components like Survivor and The Challenge and just binge watch the whole back catalog. You’ll see things getting harder until the game hits its stride and identity but then at one point just simpler and simpler and simpler.

    Survivor is actually pretty bad now because the entire show started cheaping out and reusing things over and over again. So people just started 3d printing the puzzles and memorizing them. Literally No Reality TV Contestant Left Behind style pipeline. The other thing is that they completely devalued the actual survival aspects of the show, and it’s a game of attrition where it’s who can think straight on the lowest amount of calories. The only reason to know any actual survival skills on that show anymore is just in case of tie breakers where they have to make fire from flint.





  • I think one thing you guys should keep in the back pocket, is that Mozilla jobs are the outlier. The average Open Source Developer salary is very close to the US Federal poverty line. They’re paid mostly in comped passes to conventions. Most of the “averages” you see are compiled from data from companies like Mozilla. OSS devs are typically make around $30k in pure cash, even for ones working on large projects. The only OSS devs that make between the $95k and $150k (25th and 75th percentiles) you’ll see online are ones that work for Mozilla, or Intel, or whoever.

    What makes this possible is MIT licensing models that corpos shilled in the 2000’s and 2010’s that directly benefit corperate engineering costs, but don’t contribute back nearly the value they extract. If the majority was GPL + copyright assignment, there would be income streams for leveraging OSS projects in closed source applications via licensing deals.

    But the genie is out of the bottle on most of these things. See how Amazon is effectively forking an destroying existing OSS models via AWS provisioning of things like redis and elasticache.


  • After 15 years in the industry, I don’t actually hate cargo cult programming anymore. Cargo cult programing is a useful tool to deal with the industry. Junior devs are going to join a cult, you want them in your cult, and you want your cult to have clear rules. If they want to know why the gods rain cargo, they’ll ask. At one point you don’t have any real control over hiring even as a Lead, EM, etc, because in larger companies saying “no” often doesn’t matter when hiring has been dragging on too long. They need to fill seats for deadlines they decided without you anyway.

    As a tech leader with standards, you either need to be in a wonderful company or you need to have a wonderful cult.