AI가 러닝 커브를 바꾸고 있는지, 아니면 단순히 경험을 더 편하게 하는지 궁금함 10년간 Ruby만 하다가 1년 만에 다중 언어 개발자가 된 것이 혁신적이라고 느꼈다는 사람의 경험에, 그건 오히려 “10년 동안 안 해본 것”이라 생각함
프로그래밍 첫 언어를 배울 때와 이미 몇 년간 경험이 쌓인 상태에서 새로운 언어를 배울 때는 전혀 다른 경험임
나도 똑같은 생각을 함
10년 동안 한 언어만 했던 개발자에 대해 공감하기 어려움
초창기엔 선택한 언어에 대한 정체성이 강했지만 정말 경험 많은 개발자들에게서 “언어는 도구일 뿐”이라는 걸 배움
여러 언어를 접하면 시각이 엄청 넓어지고, 말로 설명하기 어려운 깨달음이 있음
그런 경험을 했던 것이 정말 행복임
“AI 없어도 1년이면 충분히 여러 언어 배우는 게 가능했을 것”이라는 의견은 어느 정도 사실이라 생각함
내 경험상 o4로 Python 미니 프로젝트를 할 때, 재밌는 특이 케이스들을 만났는데, AI 없었다면 그로 인해 많은 작업이 중단됐을 것
예를 들면, unraid에서 xml vm을 처리하는 방식이나 dockers에서 발생하는 문제 같은 것이 그렇고, 그걸 자체적으로 파고들면 하루도 걸림
이런 부분도 이제는 AI가 가이드해주니 훨씬 매끄럽게 넘어감
그래서 무섭기도 한데, 정말 잘 동작함
참고로 내 첫 프로그래밍 언어는 예전의 BASIC이었음
AI는 주류 언어를 더 인기 있게 만듦
AI가 가장 적게 실수하는 언어들이 보통 큰 커뮤니티와 방대한 데이터셋을 가진 Python, JS, Ruby 같은 언어들임
그래서 비주류 언어는 접근성 향상 효과가 크지 않음
프로그래머 대부분이 사소한 버그를 잡아낼 만큼 비주류 언어에 능숙하지 않기 때문임
머신러닝의 교훈처럼, 결국 트레이닝 데이터가 많은 쪽이 유리함
AI는 패턴 매칭에 강함
문제를 기존 패턴에 맞추면 좋은 코드 샘플을 바로 제시해줌
하지만 문제가 복잡하거나 특이할수록 AI는 덜 유용함
인간은 더 추상적이고 동적인 개념을 유연하게 다룰 수 있음
비주류 언어를 쓰는 사람들은 보통 인기보다 다른 가치(예: 효율, 돈, 학습 등)를 더 중시함
만약 언어 인기가 필요하다면, 전문가가 아이디엄에 맞는 좋은 샘플 코드를 많이 만들어두고 AI가 다양한 변형을 생성하게 하면 진입 장벽이 급격히 낮아질 수 있음
소규모 코딩이 쉬워지면 사람들이 언어 자체에 더 관심을 가지게 됨
LLM은 비주류 언어에서 더 자주 헛소리를 하는 경향이 있음
나는 Scala 개발자인데, 대부분의 AI 유용성 논의는 사용하는 언어의 종류에 따라 달라진다고 봄 JS 같은 언어라면 더 유용할지도 모르겠음
AI가 새로운 언어나 프레임워크가 등장했을 때 정확한 지원이 부족하면 사람들이 변화를 꺼릴까봐 걱정임
이익보다 불편함이 더 크다고 느낄 수 있음
새로운 릴리스가 나올 때마다 AI 친화적인 MCP 문서나 추가 자료가 꼭 필요해짐
나 같은 경우는 claude와 Elm을 써보며 매우 긍정적인 경험을 함
정적 타입 시스템 덕분에 정확도가 높아 도움이 많았음
물론 가끔 이상한 답도 나오지만, 다들 그런 경험이 있지 않을까 생각함
메이저 언어 사이에 사실상 장벽이 거의 없는 시대라고 생각함
지금 애플리케이션 개발에 널리 쓰이는 10개 언어만 봐도, 대부분이 C나 ALGOL 계열로 유사한 문법, call-by-reference, 자동 메모리 관리라는 공통점을 가짐
프로 개발자라면 이들 언어 사이에서 크게 애 쓰지 않고 스위칭할 수 있음
메모리 관리를 처음 배우는 건 약간 힘들 수도 있지만, 익숙한 패턴과 경고, 린터만 잘 써도 견딜 만함
실제로 러닝 커브가 심한 언어는 Rust, Ada SPARK, Lisp, Forth, ML 등이고 이들은 메이저가 아님
AI를 보조 프로그래밍 파트너로 활용 중임
AI의 “넓고 얕은 지식”을 이용해서 우선 탐색한 뒤, 특정 영역 깊이 파고들 때 요청함
새로운 프로그래밍 언어보다는 새로운 개념이나 기술(예: webauthn 백엔드, passkey 통합 구현) 학습에 적극 사용함
초보자 입장에서도 AI가 큰 도움이 됨
단, AI가 잘못된 예시(예: 폐기된 의존성)를 줄 때도 있었는데, 결과적으로 더 깊이 이해하게 되어 오히려 좋았던 경험임
AI에게 완전히 자동으로 앱을 개발하게 맡기고 싶진 않음
자잘한 실수가 종종 있으니 반드시 검토 필요함
최근 새롭게 접한 Swift 코드베이스를 공부하는 데 AI가 큰 도움이 됨
궁금한 점을 빠르게 해결하고 학습 속도를 높여줌
다만, 복잡한 프로젝트에 실질적으로 공헌하려면 여전히 스킬과 경험이 필수임
내가 아는 언어에서도 잘못된 부분이 많은데 모르는 언어라면 검토도 힘듦
어떻게 모르는 언어에서 AI 결과물에 자신감을 가질 수 있는지 이해하기 어려움
새로운 언어 파고들 때마다 리뷰하려면 익숙해질 때까지 시간이 많이 걸림
언어 장벽이 줄었다고 하는데, 실제로는 WhatsApp이 데스크톱 앱 대신 웹앱으로 옮기는 사례도 있고, 장벽은 완전히 사라지지 않음
Microsoft가 예전에 .Net 플랫폼 내세워 J#, Fortran.Net, Cobol# 등 다양한 언어로 한 팀에서 협업하고자 했던 시도가 떠오름
이 방식이면 뛰어난 #Intercal 인재들도 생산성 네 배향상 가능할 거라 홍보했었음
예전엔 진짜 그런 걸 믿었던 시절로 돌아가고 싶음
AI로 인해 프로그래밍 언어가 강력한 Hindley Milner 타입 시스템을 탑재한 쪽으로 진화할 것으로 예상함
Haskell은 배우기 어렵지만, 데이터셋만 충분하다면 코딩 에이전트에 완벽한 타겟임
고수준이면서 형식 검증 가능하고, 언어 서버와 AI를 간편하게 연동할 수 있음
현실은 반대로 Haskell이 오히려 AI 지원에서 소외될 분위기임
함수형 언어 좋아한다면, 왜 자연어 프로그래밍이 매력적인지 고민해봐야 함
자연어는 결과를 모호하게 표현할 수 있는데, 기계가 그 부분을 자동 보완해줌
진짜 혁신이 되려면 강한 논리체계+모호성을 도입한 프로그래밍 방식, 예를 들어 MTL 같은 논리 기반 도입이 필요함
아쉽게도 이 분야 연구는 거의 중단되고, 신경망이 대세임
Haskell은 LLM 입장에서 깊이 있는 언어 특성이 많아 덜 친화적임
LLM은 주로 텍스트 패턴을 다루기 때문임 단순한 특징과 친절한 컴파일 오류를 제공하는 언어(예: Go)는 AI가 잘 다룸
개인적으로는 타입 추론이 잘 되는 언어가 좋지만, AI 관점에서는 다름
LSP MCP 툴+LLM을 써봤는데, 약간 실망스러움
LSP는 원래 인간 사용자를 위한 설계라 AI와 궁합이 완벽하진 않음
LLM은 패턴 매칭에는 강하고, 타입 구조가 단순하면 타입 에러 거의 발생 없음
복잡한 구조에서는 LLM이 해결 못 하거나 사용자가 이해 못 할 수도 있음
“Haskell로 대규모 형식 검증 사례가 있냐”는 질문도 있는데, seL4, CompCert 등은 대부분 C나 Coq+OCaml 기반임
Agda 같은 의존 타입 언어 사용이 늘어날 수도 있음
다만, 데이터셋이 너무 적으면 AI 지식 이전이 어려워질 수도 있음
AI를 페어 프로그래밍 파트너로 대하면 좋음
사용자가 배울수록 AI의 역할이, 처음엔 기초 설명과 작은 코드 생성, 이후엔 고급 토론+큰 단위 코드 생성, 코드 리뷰로 전환됨
시간이 갈수록 스스로 더 많은 버그를 발견하게 됨
AI를 단순한 코드 생성기가 아닌, 보완 기술 가진 파트너로 보면 진짜로 도움이 됨
모르는 언어라면 AI가 제시하는 솔루션을 꼼꼼히 질문해야 함
“왜 이렇게 하는지”, “다른 시나리오에서는?” 등 구체적으로 물어보면 정말 배우는 데 도움이 큼
질문을 하면 AI가 내 생각을 검증해주지만, 몇 번 반복하다 보면 완전히 신뢰하긴 어렵게 됨
“AI에게 명확하게 질문하도록 시키는 습관”도 가지면 좋음
그렇게 하면 이해가 틀렸거나 논리가 부족한 부분을 미리 발견할 수 있음
Gemini의 코드 생성력을 테스트해보고자 bash 스크립트를 요청했는데 오류가 있었음
다행히 bash를 알기에 바로 잡을 수 있었지만, 만약 모르는 언어라면 이런 문제가 언어 장벽을 제거한다고 하긴 어렵다고 생각함
이건 bash 특유의 문제라고 생각함
예를 들어 Go로 비슷한 자동화 작업을 LLM에 맡겼을 때는 한번에 잘 동작함
bash보다는 Gemini의 문제라고 보긴 어렵고, AI 모델에 대한 정확한 정보 없이 브랜드명만으로 비판하는 건 동의할 수 없음
실제로 “Gemini 2.5 Pro (Jan 2025), 온도 0.15” 등으로 세팅하니 훌륭한 idiomatic bash script를 바로 생성함
(예시 코드 생략)
단, WSL2에서 Windows Notepad로 편집한 파일의 엔터처리 문제도 겪었는데, Gemini가 친절하게 해결 방법도 알려줌
재밌는 점은, bash에서는 마지막 줄에 엔터가 없으면 제대로 처리 안 되는 문제는 bash 자체의 한계임
PowerShell은 거의 원라이너로 동일 작업 가능하고, 끝에 엔터 없어도 문제 없음
Gemini 도와줌으로써 PowerShell도 짧은 코드로 최적화할 수 있었음
Hacker News 의견
AI가 러닝 커브를 바꾸고 있는지, 아니면 단순히 경험을 더 편하게 하는지 궁금함
10년간 Ruby만 하다가 1년 만에 다중 언어 개발자가 된 것이 혁신적이라고 느꼈다는 사람의 경험에, 그건 오히려 “10년 동안 안 해본 것”이라 생각함
프로그래밍 첫 언어를 배울 때와 이미 몇 년간 경험이 쌓인 상태에서 새로운 언어를 배울 때는 전혀 다른 경험임
나도 똑같은 생각을 함
10년 동안 한 언어만 했던 개발자에 대해 공감하기 어려움
초창기엔 선택한 언어에 대한 정체성이 강했지만 정말 경험 많은 개발자들에게서 “언어는 도구일 뿐”이라는 걸 배움
여러 언어를 접하면 시각이 엄청 넓어지고, 말로 설명하기 어려운 깨달음이 있음
그런 경험을 했던 것이 정말 행복임
“AI 없어도 1년이면 충분히 여러 언어 배우는 게 가능했을 것”이라는 의견은 어느 정도 사실이라 생각함
내 경험상 o4로 Python 미니 프로젝트를 할 때, 재밌는 특이 케이스들을 만났는데, AI 없었다면 그로 인해 많은 작업이 중단됐을 것
예를 들면, unraid에서 xml vm을 처리하는 방식이나 dockers에서 발생하는 문제 같은 것이 그렇고, 그걸 자체적으로 파고들면 하루도 걸림
이런 부분도 이제는 AI가 가이드해주니 훨씬 매끄럽게 넘어감
그래서 무섭기도 한데, 정말 잘 동작함
참고로 내 첫 프로그래밍 언어는 예전의 BASIC이었음
AI는 주류 언어를 더 인기 있게 만듦
AI가 가장 적게 실수하는 언어들이 보통 큰 커뮤니티와 방대한 데이터셋을 가진 Python, JS, Ruby 같은 언어들임
그래서 비주류 언어는 접근성 향상 효과가 크지 않음
프로그래머 대부분이 사소한 버그를 잡아낼 만큼 비주류 언어에 능숙하지 않기 때문임
머신러닝의 교훈처럼, 결국 트레이닝 데이터가 많은 쪽이 유리함
AI는 패턴 매칭에 강함
문제를 기존 패턴에 맞추면 좋은 코드 샘플을 바로 제시해줌
하지만 문제가 복잡하거나 특이할수록 AI는 덜 유용함
인간은 더 추상적이고 동적인 개념을 유연하게 다룰 수 있음
비주류 언어를 쓰는 사람들은 보통 인기보다 다른 가치(예: 효율, 돈, 학습 등)를 더 중시함
만약 언어 인기가 필요하다면, 전문가가 아이디엄에 맞는 좋은 샘플 코드를 많이 만들어두고 AI가 다양한 변형을 생성하게 하면 진입 장벽이 급격히 낮아질 수 있음
소규모 코딩이 쉬워지면 사람들이 언어 자체에 더 관심을 가지게 됨
LLM은 비주류 언어에서 더 자주 헛소리를 하는 경향이 있음
나는 Scala 개발자인데, 대부분의 AI 유용성 논의는 사용하는 언어의 종류에 따라 달라진다고 봄
JS 같은 언어라면 더 유용할지도 모르겠음
AI가 새로운 언어나 프레임워크가 등장했을 때 정확한 지원이 부족하면 사람들이 변화를 꺼릴까봐 걱정임
이익보다 불편함이 더 크다고 느낄 수 있음
새로운 릴리스가 나올 때마다 AI 친화적인 MCP 문서나 추가 자료가 꼭 필요해짐
나 같은 경우는 claude와 Elm을 써보며 매우 긍정적인 경험을 함
정적 타입 시스템 덕분에 정확도가 높아 도움이 많았음
물론 가끔 이상한 답도 나오지만, 다들 그런 경험이 있지 않을까 생각함
메이저 언어 사이에 사실상 장벽이 거의 없는 시대라고 생각함
지금 애플리케이션 개발에 널리 쓰이는 10개 언어만 봐도, 대부분이 C나 ALGOL 계열로 유사한 문법, call-by-reference, 자동 메모리 관리라는 공통점을 가짐
프로 개발자라면 이들 언어 사이에서 크게 애 쓰지 않고 스위칭할 수 있음
메모리 관리를 처음 배우는 건 약간 힘들 수도 있지만, 익숙한 패턴과 경고, 린터만 잘 써도 견딜 만함
실제로 러닝 커브가 심한 언어는 Rust, Ada SPARK, Lisp, Forth, ML 등이고 이들은 메이저가 아님
AI를 보조 프로그래밍 파트너로 활용 중임
AI의 “넓고 얕은 지식”을 이용해서 우선 탐색한 뒤, 특정 영역 깊이 파고들 때 요청함
새로운 프로그래밍 언어보다는 새로운 개념이나 기술(예: webauthn 백엔드, passkey 통합 구현) 학습에 적극 사용함
초보자 입장에서도 AI가 큰 도움이 됨
단, AI가 잘못된 예시(예: 폐기된 의존성)를 줄 때도 있었는데, 결과적으로 더 깊이 이해하게 되어 오히려 좋았던 경험임
AI에게 완전히 자동으로 앱을 개발하게 맡기고 싶진 않음
자잘한 실수가 종종 있으니 반드시 검토 필요함
최근 새롭게 접한 Swift 코드베이스를 공부하는 데 AI가 큰 도움이 됨
궁금한 점을 빠르게 해결하고 학습 속도를 높여줌
다만, 복잡한 프로젝트에 실질적으로 공헌하려면 여전히 스킬과 경험이 필수임
내가 아는 언어에서도 잘못된 부분이 많은데 모르는 언어라면 검토도 힘듦
새로운 언어 파고들 때마다 리뷰하려면 익숙해질 때까지 시간이 많이 걸림
언어 장벽이 줄었다고 하는데, 실제로는 WhatsApp이 데스크톱 앱 대신 웹앱으로 옮기는 사례도 있고, 장벽은 완전히 사라지지 않음
Microsoft가 예전에 .Net 플랫폼 내세워 J#, Fortran.Net, Cobol# 등 다양한 언어로 한 팀에서 협업하고자 했던 시도가 떠오름
이 방식이면 뛰어난 #Intercal 인재들도 생산성 네 배향상 가능할 거라 홍보했었음
AI로 인해 프로그래밍 언어가 강력한 Hindley Milner 타입 시스템을 탑재한 쪽으로 진화할 것으로 예상함
Haskell은 배우기 어렵지만, 데이터셋만 충분하다면 코딩 에이전트에 완벽한 타겟임
고수준이면서 형식 검증 가능하고, 언어 서버와 AI를 간편하게 연동할 수 있음
현실은 반대로 Haskell이 오히려 AI 지원에서 소외될 분위기임
함수형 언어 좋아한다면, 왜 자연어 프로그래밍이 매력적인지 고민해봐야 함
자연어는 결과를 모호하게 표현할 수 있는데, 기계가 그 부분을 자동 보완해줌
진짜 혁신이 되려면 강한 논리체계+모호성을 도입한 프로그래밍 방식, 예를 들어 MTL 같은 논리 기반 도입이 필요함
아쉽게도 이 분야 연구는 거의 중단되고, 신경망이 대세임
Haskell은 LLM 입장에서 깊이 있는 언어 특성이 많아 덜 친화적임
LLM은 주로 텍스트 패턴을 다루기 때문임
단순한 특징과 친절한 컴파일 오류를 제공하는 언어(예: Go)는 AI가 잘 다룸
개인적으로는 타입 추론이 잘 되는 언어가 좋지만, AI 관점에서는 다름
LSP MCP 툴+LLM을 써봤는데, 약간 실망스러움
LSP는 원래 인간 사용자를 위한 설계라 AI와 궁합이 완벽하진 않음
LLM은 패턴 매칭에는 강하고, 타입 구조가 단순하면 타입 에러 거의 발생 없음
복잡한 구조에서는 LLM이 해결 못 하거나 사용자가 이해 못 할 수도 있음
“Haskell로 대규모 형식 검증 사례가 있냐”는 질문도 있는데, seL4, CompCert 등은 대부분 C나 Coq+OCaml 기반임
Agda 같은 의존 타입 언어 사용이 늘어날 수도 있음
다만, 데이터셋이 너무 적으면 AI 지식 이전이 어려워질 수도 있음
AI를 페어 프로그래밍 파트너로 대하면 좋음
사용자가 배울수록 AI의 역할이, 처음엔 기초 설명과 작은 코드 생성, 이후엔 고급 토론+큰 단위 코드 생성, 코드 리뷰로 전환됨
시간이 갈수록 스스로 더 많은 버그를 발견하게 됨
AI를 단순한 코드 생성기가 아닌, 보완 기술 가진 파트너로 보면 진짜로 도움이 됨
모르는 언어라면 AI가 제시하는 솔루션을 꼼꼼히 질문해야 함
“왜 이렇게 하는지”, “다른 시나리오에서는?” 등 구체적으로 물어보면 정말 배우는 데 도움이 큼
질문을 하면 AI가 내 생각을 검증해주지만, 몇 번 반복하다 보면 완전히 신뢰하긴 어렵게 됨
“AI에게 명확하게 질문하도록 시키는 습관”도 가지면 좋음
그렇게 하면 이해가 틀렸거나 논리가 부족한 부분을 미리 발견할 수 있음
Gemini의 코드 생성력을 테스트해보고자 bash 스크립트를 요청했는데 오류가 있었음
다행히 bash를 알기에 바로 잡을 수 있었지만, 만약 모르는 언어라면 이런 문제가 언어 장벽을 제거한다고 하긴 어렵다고 생각함
이건 bash 특유의 문제라고 생각함
예를 들어 Go로 비슷한 자동화 작업을 LLM에 맡겼을 때는 한번에 잘 동작함
bash보다는 Gemini의 문제라고 보긴 어렵고, AI 모델에 대한 정확한 정보 없이 브랜드명만으로 비판하는 건 동의할 수 없음
실제로 “Gemini 2.5 Pro (Jan 2025), 온도 0.15” 등으로 세팅하니 훌륭한 idiomatic bash script를 바로 생성함
(예시 코드 생략)
단, WSL2에서 Windows Notepad로 편집한 파일의 엔터처리 문제도 겪었는데, Gemini가 친절하게 해결 방법도 알려줌
재밌는 점은, bash에서는 마지막 줄에 엔터가 없으면 제대로 처리 안 되는 문제는 bash 자체의 한계임
PowerShell은 거의 원라이너로 동일 작업 가능하고, 끝에 엔터 없어도 문제 없음
Gemini 도와줌으로써 PowerShell도 짧은 코드로 최적화할 수 있었음