smasma
2k
2015-04-06 13:17:42
21
8311

최근의 스칼라,자바 논쟁에 대한 나의 생각.


요새 커뮤니티에서 스칼라와 자바의 논쟁이 핫한거 같아서 나름 저의 생각을 정리해 보았습니다.

저는 스칼라 모릅니다. 자바개발자이고 스칼라 아직 접하지 않았으니까요. 그래서 솔직히 논쟁글 100프로 다 이해 못하겠습니다.

이성적인 개발자로써 이런 논쟁은 이 커뮤니티에서 무의미 하다고 생각합니다. 모든 개발자들이

다 이해도 못할 뿐더러 그런 생소한 개념으로 논쟁하는 것은 나..이렇게 많이 안다고 자랑하는 것

그 이상 이하도 아닙니다.

그런 말보다는 보다 다수의 사람이 이해할수 있는 표현으로 주장들 하셨으면 좋겠습니다.

아카니 뭐니..그런거 접해보지도 못한 사람들에게 그런걸 예로 들어가면서 주장하는건 개발자들이 젤 쉽게 하는 실수입니다. 그런 용어는 빼고 주장하고자 하는 요지를 이해하기 쉽게 인간이 알아듣는 말로 하셨으면 좋겠습니다. 예를 들자면 스칼라는 멀티패러다임언어이고 이것의 의미는 이러이러 한 것이고 이것을 사용하면 어떤 경우에 자바로 코딩하는것 보다 어떤 면에서 더 효율적이다..그리고 부연적으로 추가되는 부정할수 없는 수준의 소스코드 예제 등..

 진짜 능력있는 개발자라면 이런걸 잘해야 한다고 생각합니다. 

더불이 자바 커뮤니티에서 스칼라 논쟁 하지 마세요..그럴꺼면 스칼라 커뮤니티를 하나 만드시라고 충고해 드리고 싶습니다. 

0
  • 댓글 21

  • 응애~
    264
    2015-04-06 13:23:04

    글쓰신분이 뭔데 여기서 스칼라 논쟁하지 말라고 하나요? 제가 보기엔 충분히 가치있고 의미있는 포스팅들로 보입니다만..

    그리고 게시물을 이해를 못하겠다 하시는데.. 이해가 안되시면 조용히 넘어가거나 알아보려고 하세요. 기본적인 소양을 가지고 있으시면 충분히 이해할만한 내용들인데 글쓰신 분 뉘앙스는 난 잘 못알아 듣겠고 여긴 자바 커뮤니티니 자바로만 글 써라라고 들리는군요.

    마음에 안드시면 조용히 덮어두세요. 괜히 트집잡지 마시구요.

  • yubi848484
    19
    2015-04-06 13:23:06
    좀 더 대중적으로 풀어달라는 요구는 정중하게 하셔야지, 당연하게 요구하시는 것은 옳지 안다고 봅니다. 오히려, 이런 기술 논쟁에 새로이 자극 받는 부류도 있다는 것 생각해 주세요.
  • smasma
    2k
    2015-04-06 13:30:26

    //말미에 좀 과격하게 논쟁하지 말라고 한건 스칼라 이야기를 아예 하지 말자는 것이 아니라 논쟁거리로 삼지 말자는 의미입니다.

    스칼라나 기타 언어를 접한 분들이야 익숙히 아는 개념들이니까 써내려 갈수 있다지만 모르는 사람들은 그저 왜 까이는지도 확실하지 않은체 수긍하거나 이해하려 해야 하기 때문이죠..

    이야기를 하는건 좋습니다..다만 그건 장단점을 소개하는 수준에서  좋게 보이지.. 자바 커뮤니티에 와서 굳이 자바를 까면서 스칼라는 이러이러하니 좋네 하는건 좋아 보이지 않는 다는 말이죠..

    fender님처럼 기승전결 논리있게 스칼라를 이해하는 글은 좋은것이죠.. 그런걸 말하는 겁니다. 

     

  • fender
    24k
    2015-04-06 13:32:18

    자바 개발자가 아카(Akka) 같은 기술 못 들어 봤다고 아무도 뭐라고 하지 않습니다.

    다만 구글은 모든 개발자의 친구란 말이죠... 개발자로서 경쟁력 유지를 위해 검색 몇 번 하고 소개글 좀 읽어보는 게 그렇게 대단한 투자라고 생각하진 않습니다.

    그런데, 본문에 사용하신 '멀티 패러다임'이라는 말은 이 곳에 오는 모든 개발자가 다 쉽게 이해하는 용어일까요?

  • yubi848484
    19
    2015-04-06 13:34:02
    자바커뮤니티에서 자바를 까고 스칼라의 장점을 내세우는게 안좋게 보이나요?
  • de
    2015-04-06 13:35:29

    먼저 (운영진에서 직접 단 댓글에도 있지만) 자바 커뮤니티가 아닌 개발자 커뮤니티아닌가요..

    자바2년 php 3년 가까이 하면서 여러 글과 댓글에 공감하는부분이 많습니다.
    특히 스칼라에 대해서는 작년 이맘때쯤 부터 관심 있어했고 스칼라책만 3권째 읽고 있습니다.
    마틴 오더스키(스칼라 창시자)가 직접 강의하는 코세라 강의도 들었었구요..
    전 전공이 아니라 독학으로 개발을 공부했고 방통대편입하여 4학년 마치고 졸업예정입니다. 논문으로는 스칼라와 자바를 비교하는 주제로 비교적 가볍게 준비하고 있습니다.

    저도이제 5년차의 꼬꼬마 개발자지만 이글에 대해선 단 한부분도 공감이 가지 않습니다.적지 않은 자바 개발자들이 현실위주의 코딩을 하고 있는것으로 알고 있습니다. 학원에서 6개월동안 자바, 스프링, db 거기에 프론트엔드까지 공부시켜서 자바 개발을한다? 말도 안되죠..
    물론 프로그램에 관심있는 사람이라면 학원에서 멈추지않고 디자인패턴이라던지 스스로 공부를 하면서 어떻게 개발하는것이 효율적인지 알아가고 싶어할것입니다.
    만약 글쓰신분이 정말 자바개발자로써 자바의 대한 마음이 깊고 이성적이라면 자바를 개발하면서 몇가지 아쉬운점과 그 아쉬운점들을 프레임웤이나 라이브러리로 풀어나가는 개발을 해보셨을거라 생각됩니다.
    전 그런 여러가지 아쉬운점들을 타 언어에서 배우고 적용시킬 수 있을거라 생각합니다.


    반면에 아카라던지 그런 용어들은 동시성(병렬,분산) 라이브러리라고 해줬으면 좋았을 뻔했군요.

    임백준님의 폴리글랏 프로그래밍 한번쯤 읽어보시길 추천드립니다.

  • 피델리데
    1k
    2015-04-06 13:38:08

    논쟁하지 말라는 글이 또 논쟁을 불러온다 라는건 이런 경우를 두고 하는 말인듯

  • smasma
    2k
    2015-04-06 13:38:49
    //멀티 패러다임이란 용어는 용어적 정의이니 검색으로쉽게 이해할수 있지만 akka(분산환경 실시간 배포 툴킷)은 직접 써보거나 테스트 한번정도 하지 않고는 본인에게 와닿지 않기 때문이죠.. 얼마나 좋은지 문제는 없는지 등등 성능은 어떤지 등등.. 그런걸로 논쟁을 하면 안된다는 거죠..반칙임.
  • 장플
    3k
    2015-04-06 13:40:25

    충분히 가치 있었던 논쟁이었습니다. 자주 생산적 토론이 이루어졌으면 좋겠습니다.

    다만 거의 모든 논쟁이 발생할때마다 그렇지만 글쓰시는 분들간의 감정적 대응 및 인신공격적 발언이 보는사람으로 하여금  눈살을 찌푸리게 만든 점이 매우 안타깝습니다. 


    개인적으로는 댓글에 공감/비공감 을 누를 수 있는 기능이 있었으면 좋겠습니다.

    오늘의 유머 사이트 처럼. 

    대다수의 분들이 굳이 댓글을 달지 않아도 의견을 표명할 수 있는 기능이 도입되면 누군가의

    의견이 객관적인 평가를 받을 것 같습니다.

  • fender
    24k
    2015-04-06 13:42:35

    만일 최근에 벌어진 일련의 논쟁들 중 특정 언어들의 문제에 대한 감정 싸움 같은 것들을 비판하실 요량이었다면 취지엔 공감하지만 논지는 다소 본질을 빗나간 듯 합니다.

    그런 언어나 기술의 장단점에 대한 토론이 소모적인 싸움으로 흐르는 것은, 말씀처럼 토론의 주체가 주제와 무관하게 지식 과시를 하거나 지나치게 공격적, 방어적 태도를 보이는 등이 원인이라고 봅니다.

    반면 자바 커뮤니티에서 스칼라 언어를 토론해선 안된다거나, 아카와 같이 생소한 기술을 언급하면 안된다는 이야기는 그런 주장의 논거가 될 수 없는 무리한 주장이라고 생각합니다.

    사실 오키는 공식적으로도 더 이상 자바 개발자만의 커뮤니티가 아니라고 알고 있습니다. 공동 대표이신 케누님도 자바스크립트 강좌를 하고 계신 마당에 자바와 같은 JVM 언어인 스칼라에 대한 논쟁을 막을 이유는 전혀 없다고 봅니다.

  • fender
    24k
    2015-04-06 13:49:41

    amuzr // "반면에 아카라던지 그런 용어들은 동시성(병렬,분산) 라이브러리라고 해줬으면 좋았을 뻔했군요."

    용어의 적절한 우리말 표현은 저도 항상 고민하는 부분이긴 합니다. 예컨대 'immutable'을 '불변'이라고 이야기한 것도 올바른 번역이었는지 확신이 들지 않습니다.

    다만 '동시성'은 'concurrency'에 대한 나쁘지 않은 번역이라고 생각합니다. 제시하신 '병렬'도 거의 같은 개념인 'parellism'에 대한 유효한 대응어라고 생각합니다만, 영어로도 두 가지 용어가 혼재해 있는 만큼 어느 한쪽으로 통일해야하는 지는 모르겠습니다.

    반면에, '분산(distributed)'은 위의 두 가지 용어와 분명히 구분되는 개념이기 때문에, 예컨대 '아카는 분산 프레임워크다'라고 이야기했을 때는 오히려 아카의 본질에 대한 오해를 불러일으킬 가능성이 있다고 생각합니다.

  • 나다
    3k
    2015-04-06 14:00:30
    개발자가 직업인 이상 가장효율적인 언어는 돈되는 언어 일겁니다. 암만 좋은 언어라도 돈이 안되면 자기개발/취미  인거죠 .  그렇다면 이런 좋은 언어도 있으니 배워보면 좋다란 선에서 토론이 일어났음 좋았을껀데.  너무 공격적으로 나와 심상하신분들 이 많은거죠 .  스칼라??  우리나라 si/sm이 자바가 아닌 스칼라 위주로 한다면 다들 공부 하겠죠 .  자바로 먹고 사는분들 한테 자바 거지 같으니 스칼라 써라 하니 .  좋은소리가 안나오죠  .  네거티브식 홍보는 더 반감을  일으키죠
  • smasma
    2k
    2015-04-06 14:05:37

    "더불어 자바 커뮤니티에서 더이상 스칼라 논쟁 하지 마세요" 이 문장 때문에 오해하신거 같습니다. 사실 스칼라 관련 글들 이전에도 계속 올라왔지만 제가 이런 글을 올리지는 않았지요..

    논쟁을 "도발" 로 정정합니다. 

  • fender
    24k
    2015-04-06 14:14:18

    쓸데없는 이야기가 길어지는 게 아닌가 걱정스럽지만, 한 번만 더 첨언을 하자면 '아카'를 언급한 것은 그보다 마땅한 대안이 떠오르지 않았기 때문입니다.

    본문에 적은대로, 스칼라와 같은 언어가 각광을 받는 이유 중 중요한 요소가 동시성의 문제에 대한 요즘 추세를 보다 잘 반영한다는 것인데, 이를 온전히 이해하려면 과연 그 '동시성'의 문제가 무엇인지를 먼저 알아야 합니다.

    하지만, 솔직히 말해서 데이터베이스 연동해서 CRUD 중심의 화면을 뽑아내는 작업을 주로하는 개발자들이 자바로라도 멀티스레딩의 문제를 진지하게 고민할 기회가 그리 많지 않을 것입니다.

    그리고 동시성의 문제에 대한 이해가 있다해도 이를 해결하기 위한 접근들을 일일이 소개하기엔 너무 글이 길어지고, 아직 많은 분들이 생소한 개념이라는 면에서는 크게 다르지 않을 겁니다.

    '아카'를 언급하면, 그것이 '액터(Actor)'라는 패턴에 대한 구현체라는 이야기가 생략되어있고, 또 여기엔 그것이 요즘 유행하는 '메시징 기반 아키텍쳐'의 일종이라는 이야기가 전제됩니다.

    그리고 메시징 기반 아키텍쳐를 이해하려면, 기존의 다계층(n-tier) 설계와의 차이를 이해해야 하고, 그런 아키텍쳐가 갖는 장점을 이해하려면 앞서 말한 '불변성', '함수형 패러다임', '동시성' 등의 개념을 알아야 합니다. 그 것도 최소한의 핵심 개념만 추려도 그렇습니다.

    전, 이 모든 것을 이제 막 자바 학원을 수강하고 아직 객체 지향이나 디자인 패턴에 대한 이해도 부족한 개발자들을 포함한 모든 회원들에게 이해시킬 만큼 쉽게 풀어서 이야기할 능력을 갖추고 있지 못합니다.

    가뜩이나 꽤나 긴 글이었는데 이런 개념을 일일이 설명하면서 썼다면 아마도 그보다 분량이 열 배쯤은 불어났을 것 같습니다.

    하지만 그렇다고 그런 개념을 포함한 글을 쓰는 게 의미없다고 생각하진 않는 것은, 분명 그런 내용을 이해하고 토론할 고수 분들은 이 커뮤니티에도 적지 않을테고, 그렇지 못한 분들에게는 적어도 앞으로 추세를 따라가고 기술 능력을 키우려면 어떤 내용을 공부해야하는가에 대한 '주제어'는 제시할 수 있다고 보기 때문입니다.

    앞서 말한 대로 구글은 모든 개발자의 친구입니다. 어떤 내용을 어떻게 찾아야하는 지, 그리고 어떻게 공부해야하는 지만 알고 있는 개발자라면 주제어를 제시하는 것만으로도 꽤나 많은 내용을 전달할 수 있다고 생각합니다.

    중요한 것은 그런 생소한 주제어를 접했을 때 호기심을 갖고 찾아볼 것인지, 아니면 "아 몰라, 지금 배운 걸로 먹고 살기도 바빠!"라고 무시할 것인가의 문제가 아닐까 합니다.

  • de
    2015-04-06 14:40:43

    fender // 저도 아직 스칼라 걸음마 단계라.. 표현이 서툴렀네요. 
    며칠 전에 스칼라 구글 그룹스에 올리신글도 보고 깃헙도 구경하고 했는데 그분이 맞으시죠? 
    스칼라를 직접 업무로 하시니 부러울 따름입니다...

  • fender
    24k
    2015-04-06 14:43:38
    amuzr // 넵, 맞습니다. 지난 회사에서 너무 오랫동안 리거시 코드 유지 보수하다 쌓인 불만을 요즘 그렇게 풀고 있습니다 :)
  • 나는야고인물
    751
    2015-04-06 15:13:59

    나름대로 일리 있다고 생각됩니다.

    어떤 교육업체에 보니깐 개발자 말하기 과정이라는 수업이 있더라고요,,  오죽했으면 그런 과정도 생겼을까... 휴..

  • 아야나미
    2k
    2015-04-06 15:16:04
    OKKY는 이제 자바 커뮤니티는 아닐텐데요..
  • 지아빠
    1k
    2015-04-06 15:25:25

    OKJSP => OKKY

    로 이름을 바꾼 취지는 자바 커뮤니티에서 벗어나서 

    개발자 커뮤니티가 되기 위함입니다.


  • muttinaong1
    2015-04-06 15:39:41

    제가 오키오는 이유중에 하나가 

    사람들 이야기 하는 것 보다보면 모르는게 나오고 

    그렇게 나온 것들을 내가 앞으로 공부해야할 목록에 리스트업하는 재미로 오는건데

    그런거 하나하나 설명하면서 글을 쓰면 글이 지루해질 뿐이죠. 

    말 할때부터 모든 청자의 수준을 고려해서 말할필요는 없습니다. 

    모르는 부분은 찾아보면 그만이고 정 못찾겠으면 물어보면 그만이죠.

    그게 커뮤니케이션이잖아요. 


    예를들어 님이 뭘알고 뭘모르는지 모르니까.

    누군가가 아주 쉬운개념부터 죽 설명을 해준다고 생각해보세요. 

    아래 대화의 예를 봐주세요.

    A : 우리는 이제부터 자바라는 객체지향언어로 XX라는 소프트웨어를 개발할건데 객체지향이 뭐냐하면 기존의 함수를 지향하던 방식에서 벗어나 좀더 인간의 관념으로 받아들이기 쉬운객체의 단위를 기반으로 하는 방식이야. 이걸 코딩관점에서 보면 함수와 데이터가 분리되어있던 종전 방식에서 유사성이나 강한 연관성을 가진 함수와 데이터의 집합을 하나의 객체로 묶어 사람이 인식하기 쉽게 만드는 거지. 물론 그 객체안에 포함된 하나의 데이터나 함수를 사용하기위해 그 객체에 포함된 데이터와 함수들을 모조리 메모리에 올리고 또 통채로 관리하는 것은 많은 자원을 소모하지, 하지만 컴퓨터 성능이 그런 비효율성이 커버될만큼 발전되고 여러사람이 협업하거나 오랜기간에 걸쳐 만들어지는 대규모 시스템들의 개발등에 있어서 사람이 이해하기 쉬운 프로그래밍의 선호도가 성능효율적인 프로그래밍의 우선순위보다 높아지고...

    B : zzZ

    여기 있는 대부분개발자 분들은 객체지향 모르지는 않겠죠. 하지만 잘 모르는 사람들도 있습니다.그렇다고 해서 이런식으로 하면 책 쓰나요? 회의하면 이거 뭐 오늘 회의 끝나겠습니까?

    A : 우리는 객체지향언어인 자바로 개발을 할 것이야.

    B : 객체지향이 뭔데?

    A: 객체지향은 어쩌구 저쩌구 블라블라야.

    B : 그걸 왜 쓰는데?

    A : 기존 방식은 이렇고 저렇고 우리 프로젝트는 이러저러해서 객체지향방식이 더 맞아.

    이게 더 올바른 커뮤니케이션 방식같지 않나요? 직접 얼굴맞대고 아는사람하고 하는 커뮤니케이션도 

    이럴진데. 공개된 커뮤니티에서 블특정 다수가 읽을 글을 쓰는데 그렇게는 못쓰죠.




      


  • smasma
    2k
    2015-04-06 23:40:18
    어..이제 자바 커뮤니티 아닌가여? 몰랐 었네요.. ^^..그럼 이야기가 좀 달라지겠죠..ㅎㅎ
  • 로그인을 하시면 댓글을 등록할 수 있습니다.