News for hackers. Stuff that matters.
Re:Patterns.dev by Kwpolska on Thursday December 11, 2025 @03:42AM (#46229031)
I've read that book, and it felt very childish and condescending.

Design patterns cannot be applied in every language. While some patterns are applicable everywhere, many of them provide replacements for missing language features. For example, the Builder pattern is not very useful in languages with default parameters and named arguments.

Re:Patterns.dev by microtherion on Thursday December 11, 2025 @05:40AM (#46229783)
I'm not sure what Builder would have to do with default parameters and named arguments.

Builder is extremely useful to pair with a parser, e.g. SAX. The parser parses the input, and the builder then decides what to do with it.

Re:Patterns.dev by Kwpolska on Thursday December 11, 2025 @12:11PM (#46234057)
Here is an example of the Builder pattern that illustrates my point: https://www.baeldung.com/java-builder-pattern#bd-classic-bui...

Let’s remove the category argument and you get this:

    Post post = new Post.Builder()
      .title("Java Builder Pattern")
      .text("Explaining how to implement the Builder Pattern in Java")
      .build();
This builder is a more readable alternative to this:

    Post post = new Post("Java Builder Pattern", "Explaining how to implement the Builder Pattern in Java", null);
But if Java supported named arguments and default values (the default would be null), this could just be:

    Post post = new Post(title: "Java Builder Pattern", text: "Explaining how to implement the Builder Pattern in Java");
Re:Patterns.dev by vips7L on Thursday December 11, 2025 @03:42PM (#46236859)
Funny part is that Java does have named parameters, but only for annotations!