good question! Much of it boils down to ML/AI/data science vs. data engineering being similarish but separate disciplines:
Data eng
• Workflows are DAGs of data processing steps, often expressed in SQL - relatively homogenous structurally
• Compute happens in the data lake / warehouse
• Development is much about ensuring that SQL produces the correct results which you can do in a notebook etc
• Software environment is homogeneous: mainly connect to the data warehouse
• Software dependencies are more limited: Maybe you need DBT, Great expectations etc.
• Often correctness is more important than fast iteration
ML/AI/data science
• Workflows are DAGs of arbitrary Python code - the DAG is an end-to-end program by itself, so managing state and data flow within the DAG makes a big difference
• Compute needs are demanding: Horizontal scalability, vertical scalability, distributed computing, GPUs eetc
• Development is like any software engineering: You need to be able to iterate locally, work with CI/CD etc
• Software environment is heterogeneous: you need all kinds of packages written in Python, C, Rust, CUDA drivers etc
• Software dependencies are all over the place: There are a zillion libraries (of varying quality) addressing different types of ML/data science/AI use cases
• Fast iteration speed is a must - often correctness can be only established by running A/B tests in production