Repository: mapstruct/mapstruct (language: java)

Issue:
Add section to README.md comparing mapstruct with  Java Records
### Use case

Java Beans was designed with the first versions of Java around 1996. It looks to me that Java newcomers that have randomly read about Java development and Java Beans will randomly ignore the existence of the "alternative" Java Records. Also, beans are so "pervasive" in Java literature that there is a traction to continue using them by pure "inertia". A brief comparative in README.md can help clarify concepts. Both of them generate static safe code. Records are simpler to use and promote safe immutable data (data "dominates" over behavior), while Beans help in more complex scenarios for which the internal data structures and states will evolve over time (behavior "dominates" over data).
 As of 2024-10 I guess the best approach is to use records for "simple data code". Fall back to MapStruct when Records just fall short.
  Said otherwise, try to avoid people using Beans when Records "just work".

### Generated Code

N/A

### Possible workarounds

N/A. 

### MapStruct Version

_No response_


Discussion / hints:
That's a good point @earizon. I'll try to work a bit on the wording.

MapStruct in the end is for data mapping. Whether your data is done with beans, DTOs, builders, records does not make difference to MapStruct.


>Records are simpler to use and promote safe immutable data (data "dominates" over behavior),

Here I am also a bit vary as the data is immutable if the passed objects are immutable. 

e.g.

```java
record Customer(String name, List<Address> addresses)
```

The example above is not immutable as `List` on its own is mutable.


Fix patch:
diff --git a/readme.md b/readme.md
index 7903ddeb84..6932f4d748 100644
--- a/readme.md
+++ b/readme.md
@@ -19,7 +19,10 @@
 
 ## What is MapStruct?
 
-MapStruct is a Java [annotation processor](https://docs.oracle.com/javase/6/docs/technotes/guides/apt/index.html) for the generation of type-safe and performant mappers for Java bean classes. It saves you from writing mapping code by hand, which is a tedious and error-prone task. The generator comes with sensible defaults and many built-in type conversions, but it steps out of your way when it comes to configuring or implementing special behavior.
+MapStruct is a Java [annotation processor](https://docs.oracle.com/en/java/javase/21/docs/specs/man/javac.html#annotation-processing) designed to generate type-safe and high-performance mappers for Java bean classes, including support for Java 16+ records.
+By automating the creation of mappings, MapStruct eliminates the need for tedious and error-prone manual coding. 
+The generator provides sensible defaults and built-in type conversions, allowing it to handle standard mappings effortlessly, while also offering flexibility for custom configurations or specialized mapping behaviors.
+With seamless integration into modern Java projects, MapStruct can map between conventional beans, records, and even complex hierarchies, making it an adaptable tool for diverse Java applications.
 
 Compared to mapping frameworks working at runtime, MapStruct offers the following advantages:
 


Test patch: