# Where do you use (elaborated) structs?

**URL:** <https://discourse.julialang.org/t/where-do-you-use-elaborated-structs/72303>\
**Category:** General Usage\
**Tags:** struct\
**Created:** [November 30, 2021, 3:04pm UTC](https://discourse.julialang.org/t/where-do-you-use-elaborated-structs/72303 "2021-11-30T15:04:41Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Bardo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bardo/32/21601_2.png) [@Bardo](https://discourse.julialang.org/u/Bardo)\
**Post date:** [November 30, 2021, 3:04pm UTC](https://discourse.julialang.org/t/where-do-you-use-elaborated-structs/72303/1 "2021-11-30T15:04:41Z")

</div>

In his book [Data-Oriented Programming - Unlearning Objects](https://www.manning.com/books/data-oriented-programming), the author Sharvit gives some guidelines for programming, which at first glance seem to be already baked in the Julia language like the separation of functions and data.

[Later it dawns you that each programming language has its own mantra, often tied to a specialty in its implementation, like Clojure’s immutable data structures relying heavily on dedicated [hashmaps](https://news.ycombinator.com/item?id=6445862).]

The book also recommends “generic data structures” to keep access simple and interfaces adaptable. In Julia this could be simple flat structs.  
In numerical textbooks using Julia structs barely play a role, here on Discourse they show up often in abstract MWExamples.

So I would like to hear your experiences on:

- Where did you need more complex (types, nesting, etc) structs?
- Was there a trade-off, did you find a balance or remedy?
