언어랑 API로 때려야 한다.


가장 기본적인 위젯 생성자에 null을 막을 수 없어서 인자로 null을 넣을 수 있는지 없는지 설명이 반을 차지하는 문서.

dart 언어는 어쩔 수 없는 선택이었지만 이건 치명적이었음. 해결은 했지만 언어를 고쳐서 패키지 전체에 광역기를 날림.


https://github.com/flutter/flutter/blob/ce40de69b7b4f89c66d19c8dbd3bd86ae30f1bc6/packages/flutter/lib/src/widgets/basic.dart#L4463-L4473

viewimage.php?id=2ab4c42ef0d0&no=24b0d769e1d32ca73cec80fa11d028312e15c0eaac8534358234c642d27b6488d715b6cf63eba7cc1c202f30ae1b6c9372d57acf84849350228c605dfc9a97d42a86


가장 큰 NNBD 이슈를 해결했어도 애초에 근본있는 언어는 아니었음. 내가 다트를 처음 본 건 Dartium이어서 자스를 대체하려나 싶었는데 당연히 묻힘.

원래 목적이 달라서였는지 타입 시스템 활용이 적어서 정적 분석이 많이 아쉬움. 뭐 당장 analyzer에서 nullability도 잘 판단이 안 되는 형국.

나도 Sum type이 꾸준히 아쉬웠는데 지금은 NNBD 후폭풍 처리하는 것으로 한 세월일 듯.

https://github.com/dart-lang/language/issues/349



너무 복잡해서 못 쓰겠다는 Navigator 2.0 API 이슈. 이걸 그나마 쉽게 해준다는 패키지들이 나오곤 있지만 근본이 복잡해서인지 빌빌거림.

https://github.com/flutter/flutter/issues/69315


테마를 써보면 테마를 써야하는지 따로 위젯을 만들어야 하는지 매번 고민할 정도로 자유도를 알기 힘들거나 일관성이 없음. 가령 colorScheme을 주로 쓰자고 합의해놓곤 안 쓰는 코드가 태반인 기술부채가 있다거나.


Intl 패키지도 플랫폼에 종속된 코드가 아닐 텐데도 업데이트가 없다시피 함. 버그가 없는게 아니라 많음.



솔직히 NNBD 하기 전엔 정말 별론데 하는 생각밖에 안 들었음. NNBD라도 하니까 개선 가능성이 있구나 생각이 들었지. 내가 언어만 너무 보는 경향이 있어서 그럴 수도 있지만.