여기서 다른 언어는 자주쓰는 C++, Java, Python (2, 3) 제외한거


1. Rust


(장점)
+ 속도가 빠르다
+ 실수를 방지해주는 장치가 있음 (오버플로우 체크, 암묵적 형변환 X, ...)
+ 함수형 뽕을 약간이지만 느낄 수 있음


(단점)
+ 처음 배우기가 어렵다
+ 컴파일러와 24시간 싸운다
+ 입력 하나 받는데 3줄씩 쓰다보면 체력적으로 힘들다
+ 온라인 저지의 컴파일러 업데이트가 잘 안 된다. 정작 필요한 기능은 최근 컴파일러에 있음
+ IDE가 있긴한데 뭔가 좀 부족함


2. Go


(장점)
+ 러닝커브 정말 낮음
+ 속도가 파이썬보다는 빠르다
+ 파이썬만큼 작성하기 편하다
+ 기본 라이브러리가 풍부하다. BigInt도 있음
+ IDE 등의 생태계가 아주 잘 되어 있음


(단점)
+ 표기법이 적응이 안 됨
+ 제네릭이 없기 때문에 binary heap 하나 쓰는데 고생길임. 차라리 직접 구현하는게 더 짜기 쉬울듯
+ Java처럼 Boxing, Unboxing 문제가 있는데 이거 때문에 Sort가 속도가 느림
+ GC를 사용하기 때문에 메모리 제한에 쉽게 걸릴 수 있고 원하지 않는 heap allocation을 하게되서 느림


3. C# (Mono / .Net Core는 안 써봄)


(장점)
+ 윈도우에서 개발하면 VS 2017이라는 축복을 누릴 수 있음. 꼭 VS 2017 안써도 VS Code도 지원 잘 됨
+ 언어가 생각할게 적고 실수 방지 기능 있음 (e.g. local 변수 초기화 안되면 컴파일 오류)
+ 문법이 C++과 의도적으로 비슷하게 만들어서 하루 이틀 배우면 쓸 수 있음
+ 기본 라이브러리 정말 빵빵함. Java급


(단점)
+ Mono 버전 확인 필요. 기능이 지원되는지 확인하고 써야함
+ Mono가 OpenJDK보다 느림
+ GC
+ Rust만큼은 아니지만 표준 입력 읽는거 힘듬