wes
20
2017-06-23 08:47:43
4
1155

함수형 언어?


함수형 언어 써보신분

혹시 자바같은 객체지향형 언어보다 어떤 점이 좋고 나쁜가요?

함수형 언어가 수요가 많이 질지... 궁금하네요

0
0
  • 답변 4

  • 노옴
    83
    2017-06-23 09:22:49

    스칼라를 학습 중인 사람으로 약간의 답변을 드릴 수 있을 것 같습니다.


    자바를 주로 사용하는 개발자 입장에서 보면

    스칼라는 학습 곡선이 높고 함수형 프로그래밍의 패러다임, 본질을 이해야하나 이 과정이 만만치 않습니다.

    OOP가 함수형 언어(FP)에 의해 사라지지 않겠지만 그 수요가 계속 일어나고 있으며 

    전반적인 프로그래밍 언어에서 FP를 지원하고 있습니다. 

    즉 FP는 선택적이라기 보다는 의무적인 것이 될 것 같습니다.

    해외 같은 경우 FP가 많이 자리 잡고 있습니다. 스칼라 같은 경우는 링크드 인, 월스트리트 등등,  국내는  카카오에서 사용한다고 합니다. 해외 구직 사이트에서도 스칼라 수요가 늘고 있고요.


    국내 경우 학습 곡선이 높고 아직 현업에 적용이 어렵다는 (사실 어렵다기 보다는 구조적으로 스칼라를 도입할 수 없는 이유이기도 한 것 같고) 점에서 도입 케이스가 많을 것이고 보지는 않습니다.


    장단점을 정리하면 아래와 같습니다.

    장점 

    1. 행사코드가 적다 :  같은 자바 코드에 비해서 코드량이 작습니다.

    2. 에러 지양 코드를 만들 수 있다 

    3. 동시성 프로그래밍에 최적 : FP가 주목받는 이유기도 합니다. 

    4. 코드 재사용성이 상당히 높음 : OOP에서 이루지 못한 것을 FP에서 이룰 수 있을 듯 합니다. 

    5. 신세계를 경험한다. : 아름답습니다. 동시에 허들이 높아서 마스터 한다면 현업에서 큰 장점이 될 것 같습니다.

    6. 스칼라 경우는 자바의 한계를 대체하기 위해서 나왔습니다. 자바는 이제 레거시 계열에 합류해가는 것 같습니다. 저도 메인 언어가 자바라 아쉽지만 갈아탈 준비를 하고 있습니다. 물론 자바가 당장 사라지지는 않겠지만 스칼라에게 그 자리를 서서히 물려줄 것 같습니다.


    단점

    1. 어렵다. 어렵고 또 어렵다.

    2. 학습 곡선이 높다.

    3. 스칼라 경우 개념을 모르고 사용하면 자바만 못하게 될 수도 있다.

    4. 아직 현업에서는 많이 사용 안하고 있다. (제 판단이고 스타트업은 예외일 수도 있습니다.  주위에는 아직 스칼라나 FP에 대해서 지식이 있으신  분이 별로 없습니다.)


    이상 짧은 식견으로 답글 드립니다.





    0
  • nusicaa
    2k
    2017-06-23 09:40:19

    함수형언어에서 천재와 범재의 차이가 극명히 들어난다.

    OOP에서 천재와 범재의 차이는 프레임워크 사용시 잘 들어나지 않는다.(SI에서는 장점이 됩니다) 

    0
  • fender
    14k
    2017-06-23 09:59:15

    확실히 집합이나 스트림 형태의 데이터를 다루는 등의 작업엔 함수형적인 접근이 쉽고 코드도 간결합니다.

    다만 전 완전한 함수형 언어에 대해선, 과연 모든 개념을 함수와 데이터의 묶음으로 추상화하는 것이 바람직한가에 대해 아직 수긍이 가지 않기 때문에 다소 유보적입니다.

    어쩌면 나중에 그런 언어를 다룰 일이 있다면 생각이 바뀔 수 있겠지만, 지금으로서는 그런 이유로 인해 스칼라 같은 다중 패러다임 언어가 마음에 들더군요.

    스칼라의 경우 강력한 타입 기능을 이용해서 큰 틀은 객체지향적으로 설계를 하고, 구현 차원에서 함수형의 강력함을 활용할 수 있는 식의 절충된 접근이 가능하다는 것이 큰 장점이라고 생각합니다.


    0
  • wes
    20
    2017-06-23 15:23:47

    오! 감사합니다

    이렇게 정성스래 답변 해주실줄이야...ㅎㅎ

    감사합니다

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.