fender
19k
2020-11-23 09:09:35 작성 2020-11-23 09:10:33 수정됨
9
984

러스트를 배워봐야겠습니다


요즘 들어 파이썬을 주로 쓸 일이 늘어났는데 쓰면 쓸수록 정말 저와는 상성이 극악으로 안 맞는 언어라는 생각이 들더군요.

당분간은 파이썬을 점점 더 많이 써야 할 것 같아서 암담했는데 오늘 보니 러스트를 파이썬으로 트랜스파일할 수 있더군요.

혹시 나중에 네이티브 쪽을 해야할 일이 생길지도 모르니 대비도 할 겸 겸사겸사 러스트를 배워 보기로 결심했습니다.

우선 바쁜 일만 끝나면 기존 파이썬 프로젝트들부터 러스트로 변환해보고 생각해보아야겠네요.


덧글: 별 내용은 없는 글이지만 제가 워낙 게을러서 이런 식으로 게시판에라도 이야기해놔야 결심해서 하게 되더군요.

0
  • 댓글 9

  • 하두
    12k
    2020-11-23 10:00:33 작성 2020-11-23 10:01:25 수정됨
    머리속에 언어들끼리 충돌나요 ㅋ
    비우세요.
  • 하마
    6k
    2020-11-23 10:01:06 작성 2020-11-23 10:10:54 수정됨
    참 애매한 포지션이죠. 러스트는..
    블록체인쪽에서 그나마 많이 사용되서 살펴보았는데 (러스트로 짯다는것 만으로 마케팅요소로 효과 발휘,이더리움의 구현언어)

    ㅡ C++과 동일성능
    ㅡ C++과 달리 리소스 수동관리를 강제 하여 동료가 짠 코드를 신뢰하게 한다.(최대강점)
    ㅡ C++ 보다 현대적인 라이브러리,크로스플랫폼 관리 

    라는 장점과
    ㅡ 라이프타임등의 어려운 러닝커브가 있어서 웹쪽에선 보편화 불가능이라고 판단. 러스트급 성능인데 더 자동관리해주는 차세대언어의 필요

    라는 단점이 있다고 생각합니다.

    개인적으로 자바에 집중하려고 Hyperleder Indy같은 오픈소스 볼 때만 어쩔 수 없이 보는데, 쉬운 Go도 충분히 성능이 좋은 상황이고, 러스트로 수동관리 강제로 할 바엔 그냥 모던 C++를 쓰자 라는 심리가 발동하고..

    필요한 C++대체 포지션이긴 한데 들어가는 비용에 비해 아리까리한 느낌이에요.
  • fender
    19k
    2020-11-23 10:04:35 작성 2020-11-23 10:05:18 수정됨

    하마 // 저는 그냥 파이썬만 안 할 수 있으면 뭘해도 좋다는 생각입니다 ㅎㅎ;;

    당분간 취미로 주력으로 다루게 될 환경이 둘 다 파이썬 바인딩이 메인이라, 그 전제로 호환은 되면서 파이썬이 아닌 무엇을 찾다보니 선택의 폭이 넓지 않네요.

  • frente
    86
    2020-11-23 10:25:45

    fender 

    큰 불만없이 (편해서) 파이썬을 쓰고 있는 사람입니다. 

    어떤 점에서 파이썬이 상극이라 느끼시는지 궁금한데요, 혹시 간략히라도 말씀해주실 수 있을까요?

    언어를 이해하는데 시야가 좀 넓어지지 않을까 해서요. 

  • fender
    19k
    2020-11-23 10:51:55 작성 2020-11-23 11:42:55 수정됨

    frente // 기본적으로 이는 취향의 문제라는 전제로, 제가 파이썬을 싫어하게된 이유를 생각나는 대로 적어 보겠습니다:

    • 끔찍하게 장황한 람다와 삼항식 문법.
    • 메서드 체이닝을 기본 지원하지 않는 함수형 API.
    • 오픈소스까지 확장해도 쓸만한 함수형 라이브러리가 없음.
    • 괴랄한 제너릭 지원 방식.
    • 제대로 동작하지 않는 타입 유추. (뻑하면 타입이 지워지고, mypy를 써도 결국 mypy와 싸우게 되는...)
    • switch, pattern matching, method overloading 등 있을 법한 기능이 없음 (오버로딩은 제한적으로 흉내는 낼 수 있음).
    • import 순서나 클래스 선언 순서에 따라 실행에 영향을 받음.
    • 클래스를 모듈로 분리하려면 순환 참조 지옥이 열리기 쉬움.
    • 타입이 있어도 타입 정보는 장식일 뿐, 잘못 써도 돌아가는 경우가 많음.
    • 접근 제어자가 없음.
    • 변수를 불변으로 선언할 수 없음. 읽기 전용 속성을 만들려면 장황해짐.
    • 속성의 setter 만 오버라이딩 하려면 꼼수를 동원해야 함.
    • 할당식은 람다로 사용할 수 없음.
    • EAFP 같은 안티 패턴이 권장 표준으로 통용됨.


    지금 바로 생각나는 것만 적어봐도 이렇습니다. 그냥 복잡하지 않은 구조의 프로젝트에서 데이터 주로 다룰 때 쓰면 매우 편리하겠지만, 뭔가 진지한 걸 만들어 보려면 장점보단 단점이 극명하게 드러나는 언어라는 느낌이 들더군요.

  • 심심한사부
    1k
    2020-11-23 13:32:13 작성 2020-11-23 13:33:05 수정됨
    python은 쓰다보면 뭔가 나사 한두개 빠진 언어라고 생각이 들때가 있어요...



  • linuxer
    3k
    2020-11-23 16:53:09

    fender// 펜더님 덕분에 저도 파이썬 삽질할 시간을 줄였네요

    감사합니다.

    항상 믿고 읽는 펜더님글 ^^

    -2
  • linuxer
    3k
    2020-11-23 16:54:52

    하마 // C++이 업그레이드 하면 rust 를 안쓰게 되지 않을까요?

    -2
  • 코딩잘하기
    1k
    2020-11-23 22:45:37

    저도 파이썬 쓸수록 불편하더군요.


    타입 추론 안되는거랑 import 꼬이는건 특히 헬입니다. 

  • 로그인을 하시면 댓글 을 등록할 수 있습니다.