passerby 2022-11-12 | parent | favorite | on: 왜 스타트업은 Java를 피합니까?(news.ycombinator.com)

스타트업이 자바를 피한다기 보다 다른 언어/프레임워크의 장점이 더 크기 때문이라고 생각하긴 하지만 자바/스프링 생태계가 생각보다 별로라는것에는 동의합니다. 솔직히 스프링 개발자지만 스프링을 딱히 좋아하지 않네요. 웹 어플리케이션 개발을 자바(사실상 스프링과 동의어) 말고 다른 환경에서 진행해본 개발자들이 별로 없기에 더 심한느낌..

Spring

  • 성숙한 프로젝트인데도 문서화가 제대로 안되어있고 파편화가 심함. 구글링 해보면 Baeldung 이 공식 문서급..
  • XML 은 제일 끔찍하지만 Annotaion 베이스로 구현된 기능들도 끔찍하다. 모양은 같지만 python decorator 같은 것과는 근본적으로 다르기에.
  • 국내한정 별다른 고민없이 스프링의 확장 에코시스템을 관성적으로 채용하는 개발 문화. 프로젝트가 불필요하게 비대해지고 버전 의존성이 심하다. Hibernate (data-jpa) 에 대한 믿음은 종교 수준

Java

  • 자바 자체가 오래되면서 초기부터 설계가 잘못된 기능들을 하위호환성을 유지하면서 안고가려다보니 새로운 기능을 도입하기가 어렵다.
  • 도입하더라도 우회적이거나 제한적 방식을 통해 제공되는 경우가 많음. 대표적인 것이 모듈 시스템이나 비동기 프로그래밍 (C# 에 비교하면.. 처참한수준)

JVM 생태계의 잇점은 분명 있으니 새 프로젝트에서 코틀린은 거의 필수고 스프링을 가져가야할 명확한 이유가 없다면 ktor 같은 경량 프레임워크로 시작하는게 바람직하다 봅니다. 지적한 단점에 대해서는 설계가 잘못되고 스프링 철학을 제대로 이해를 못하고 개발했느니 하는 사람들이 많지만 OOP 는 다른 언어로도 할수 있는것..

댓글창이 굉장히 지저분하고 공격적인 와중에 공감이 가는 댓글이네요

새로운 언어와 프레임워크를 좀 더 적극적으로 도입해야 한다는 점에 공감합니다만, 솔직히 지금 신규 프로젝트를 막 새로 시작하는데도 무슨 합리적인 이유 없이 최신 LTS 버전인 Java 17 대신 관성적으로 Java 8을 선택하는 사람이 넘쳐나는 것이 국내의 현실이지요. 티스토리 블로그 같은 곳을 보면 “Java 1.8 다운로드 방법” 이런 글들이 2022년 올해 날짜로 올라오는 경우를 정말 쉽게 찾을 수 있습니다. 그런 걸 보면 괜히 여기 계신 다른 많은 분들이 Java를 극혐하는 태도를 보이시는 게 아닌 것 같다 싶습니다.

그렇지만 이러한 문제점이 Java라는 언어 자체에서 기인한 문제점만은 아닌 것 같습니다. 그보다는 특히 국내에서 심한 것으로 보이는 변화에 적대적인 문화와 발전 없는 복사-붙여넣기 코드의 범람이 더 큰 문제가 아닐까 생각합니다. 실제로 저는 C#으로 개발된 비슷한 프로그램 여러 종류를 유지보수하는 작업을 하고 있는데, 언어 자체는 Java보다 낫다고 생각하지만 아무리 언어가 좋아도 전임자가 대충 예전 프로젝트 코드를 복사-붙여넣기로 때우기만 한 코드의 끔찍함을 막을 도리는 없더라고요. 심지어 지금은 외부 환경의 변화로 인해 그렇게 반복되는 코드의 상당수를 연말까지 무조건 교체해야 하는 상황이 닥치니 더욱 끔찍합니다.