Today, software engineering practices focus on finding the single “right” data representation for a program. The “right” data representation, however, might not exist: changing the representation of an object during program execution can be better in terms of performance. To this end we introduce Just-in-Time Data Structures, which enable representation changes at runtime, based on declarative input from a performance expert programmer. Just-in-Time Data Structures are an attempt to shift the focus from finding the “right” data structure to finding the “right” sequence of data representations. We present JitDS, a programming language to develop such Just-in-Time Data Structures. Further, we show two example programs that benefit from changing the representation at runtime. Categories and Subject Descriptors D.3.3 [Programming Languages]: Language Constructs and Features Keywords data structures, algorithms, dynamic reclassification, performance