산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

2021년 반드시 배워야 할 프로그래밍 언어 9가지

새로운 언어 선택의 기준

새로운 프로세서, 로직 보드의 진화와 더 높은 성능에 대한 요구로 고(Go)와 러스트(Rust) 같은 새로운 프로그래밍 언어가 입지를 다지고 있습니다. 개발자들은 "다음엔 뭘 배워야 할까?" 같은 질문을 자주 받습니다. 산업은 매우 빠르게 변하고 있으며, 항상 배울 새로운 것을 찾게 됩니다. 하지만 문제는 어떻게 다음 언어를 선택하느냐입니다.

여러분의 지식, 관심사, 커리어 목표가 핵심 열쇠입니다. 파이썬(Python)과 자바스크립트(JavaScript)처럼 컴퓨터 산업을 지배하는 유명한 언어들도 있어, 이것들을 배우는 건 실패하기 어렵습니다.

하지만 뭔가 덜 대중적인 걸 시도해보고 싶다면? 이를 돕기 위해 업계 주류가 될 가능성이 있는 새로운 프로그래밍 언어들을 모았습니다. 무기를 신중히 선택하세요.

9. 코틀린(Kotlin)

영향받은 언어: 자바스크립트, 자바, C#, 스칼라(Scala)

코틀린은 현대적인 멀티플랫폼 애플리케이션을 위한 정적 타입 언어입니다. 젯브레인스(JetBrains) 팀이 개발했으며 2011년 처음 등장했습니다. 자바보다 나은 산업 강도의 객체지향 프로그래밍 언어로 설계되었으며, 자바 코드와 완전히 상호운용 가능해 사용자가 자바에서 코틀린으로 점진적으로 마이그레이션할 수 있습니다.

객체지향 접근의 메서드와 클래스 외에도, 코틀린은 함수를 사용한 절차적 프로그래밍을 지원합니다. 또한 리눅스와 펄(Perl) 셸 스크립트 스타일의 문자열 보간(string interpolation)과 타입 인터페이스도 지원합니다.

코틀린은 중위 표기법(infix notation), 널 포인트 안전성(null-point safety), 확장 함수(extension functions)를 특징으로 합니다. 구글 I/O 2017에서 코틀린이 공식 안드로이드 개발 플랫폼으로 발표되었습니다. C++과 자바에 이어 안드로이드에서 완전히 호환되는 세 번째 언어가 되었습니다.

핀터레스트(Pinterest), 스퀘어(Square), 트렐로(Trello), 아마존 웹 서비스(AWS), 우버(Uber), 코르다(Corda)는 코드베이스의 90% 이상을 코틀린으로 사용합니다.

8. 엘름(Elm)

영향받은 언어: 표준 ML, F#, 하스켈(Haskell), 오카멜(OCaml)

엘름은 웹 브라우저 기반 그래픽 사용자 상호작용을 만들기 위해 특별히 설계된 즐거운 언어입니다. 자바스크립트와 달리 런타임 예외를 발생시키지 않습니다. 대신 엘름은 타입 추론(type inference)을 사용해 컴파일 단계에서 문제를 감지하고 사용자 친화적인 힌트를 제공합니다.

이 언어는 성능, 사용성, 견고성 세 가지 요소에 초점을 맞춥니다. 렛 표현식(let-expression), 익명 함수, if 표현식, case 표현식, 리스트 보간(list interpolation)을 포함한 표현력 있는 언어 구문 세트를 포함합니다.

엘름은 자체 가상 시스템을 가지지만, 고차 종류(higher-kinded types)를 지원하지 않습니다. 따라서 맵(map)과 필터(filter) 같은 다양한 일반 연산에 대한 추상화를 제공하지 않습니다.

프로덕션에서 엘름을 사용하는 몇몇 회사: 노레드잉크(NoRedInk), 퓨처라이즈(Futurice), 기즈라(Gizra), 히어큰(Hearken), 피보탈트래커(PivotalTracker) 등. 모바일 시장의 상승으로 엘름은 시장에 진입해 한동안 머물 좋은 기회를 가집니다.

7. 줄리아(Julia)

영향받은 언어: 포트란(Fortran), 리스프(Lisp), 루아(Lua), 파이썬, 펄, 루비(Ruby), 매트랩(MATLAB)

줄리아는 수치 해석과 전산과학을 위한 고수준 프로그래밍 언어입니다. 방대한 수학 함수 라이브러리, 분산 병렬 실행 프로그램, 정교한 컴파일러, 수치 정확도를 갖습니다.

신호 처리, 선형대수, 문자열 처리, 난수 생성을 위한 오픈소스 포트란과 C 라이브러리를 포함합니다. 줄리아로 작성된 프로그램은 다중 디스패치(multiple dispatch)를 중심으로 구성되어, 인수 타입의 다양한 조합에 걸친 함수 동작을 정의할 수 있게 합니다.

줄리아는 사용자에게 특정 병렬성 스타일을 강요하지 않습니다. 분산 계산을 위한 다양한 핵심 빌딩 블록을 제공해 광범위한 병렬성 스타일을 지원할 만큼 유연하며, 사용자가 더 추가할 수 있게 합니다.

줄리아로 웹앱을 만드는 것이 빠르고 쉬울 뿐만 아니라, 결과물도 반응이 빠르고 사용하기 쉽습니다. 페이스북, 맥아피(McAfee), 줄릴리(Zulily), 디즈니, 캐피털 원(Capital One), IBM, 포리오(Forio) 등 많은 유수 기업이 줄리아를 사용하기 시작했습니다.

6. 일릭서(Elixir)

영향받은 언어: LFE, 클로저(Clojure), 얼랭(Erlang), 루비

일릭서는 실시간 분산 애플리케이션 생성을 위해 개발되었습니다. 저지연과 내결함성 시스템으로 유명한 얼랭 VM(BEAM)을 활용하는 동적 함수형 언어입니다. 이 언어의 목적은 서로 다른 CPU에서 실행되는 레일즈(Rails) 앱의 성능을 개선하는 것입니다.

일릭서 코드는 얼랭 가상머신(BEAM)에서 실행되며 얼랭 바이트코드로 컴파일됩니다. 데이터 처리, 네트워크 앱, 뱅킹 소프트웨어 등을 작업 중이라면 고려해 볼 훌륭한 옵션입니다. 하지만 함수형 프로그래밍을 해본 적이 없다면 아마 쉽지 않을 것입니다.

일릭서에서 모든 것은 표현식이며, 함수는 런타임에 영향을 주지 않고 호출할 수 있습니다. 이 언어는 부작용 기반 루프 대신 고차 함수와 재귀에 더 중요성을 둡니다. 또한 패턴 매칭, 경량 동시성, 스트림을 이용한 지연/비동기 컬렉션을 특징으로 합니다.

일릭서는 모즈(Moz), 핀터레스트, 인버스(Inverse), 블리처 리포트(Bleacher Report) 같은 기업에서 성공적으로 사용되고 있습니다. 유럽과 미국에서 연례 행사를 개최하며, 소규모 컨퍼런스와 지역 행사도 조직합니다.

5. 러스트(Rust)

영향받은 언어: C#, 루비, C++, 알레프(Alef), 하스켈, NIL, 사이클론(Cyclone), 림보(Limbo), 얼랭

러스트는 모질라(Mozilla)가 개발한 시스템 프로그래밍 언어입니다. 스택오버플로(Stack Overflow) 2016년과 2017년 개발자 설문조사에서 '가장 사랑받는 언어' 1위를 차지했습니다. 코드 설계는 서보(Servo) 웹 브라우저 레이아웃 엔진과 러스트 컴파일러를 통해 다듬어졌습니다. C++과 매우 유사하고 배우기 쉬운 문법을 가집니다.

러스트는 안전하고, 동시적이며, 실용적인 프로그래밍 언어로 설계되었습니다. 명령형 절차적 방법뿐만 아니라 함수형 방법도 지원합니다. 최종 사용자용 앱 개발이 아니라 하드웨어, 더 구체적으로 성능을 유지하면서 메모리 안전성(세그멘테이션 방지)을 위한 언어입니다.

자바와 고(Go) 같은 자동 가비지 컬렉션 대신, 러스트는 RAII(Resource Acquisition Is Initialization)로 메모리와 기타 리소스를 관리하며 선택적 참조 카운팅을 제공합니다. 또한 최소한의 오버헤드로 자원의 결정론적 관리를 제공하고, 스택 할당을 선호합니다.

기업 사용자 목록이 꽤 인상적입니다: 텔레노어 디지털(Telenor Digital), 스마트씬(SmartThin), 드롭박스(Dropbox), 와이어(Wire), 브레인트리(Braintree), 다즈타(daZta), 아더(Ather), 원시그널(Onesignal), 패러데이(Faraday), 클레버 클라우드(clever cloud) 등.

4. 크리스탈(Crystal)

영향받은 언어: C, 루비, C#, 파이썬

크리스탈은 C 같은 성능을 웹 개발자의 고도로 추상화된 세계로 가져오길 희망하는 객체지향 언어입니다. 문법은 주로 루비에서 영감을 받았으며, 숙련된 루비 개발자에게 낮은 학습 곡선이라는 추가 이점이 있습니다.

크리스탈은 네이티브 코드 생성을 위해 LLVM에 의존하므로, 툴체인에 내장된 모든 최적화를 활용합니다. 게다가 정적 타입 검사를 수행하므로 어떤 타입 오류든 런타임에 실패하는 대신 일찍 잡힙니다.

이 언어는 매크로 시스템을 가지고 있으며 연산자 오버로딩과 자동 가비지 컬렉션을 지원합니다. 네이티브 라이브러리를 쉽게 호출할 수 있는 전용 문법을 가져 저수준 작업을 재구현할 필요가 없습니다. 또한 그린 스레드인 파이버(fibers)를 사용해 동시성을 달성합니다.

참고: 역대 최고의 컴퓨터 프로그래머 20인

크리스탈은 현재 개발 단계에 있습니다. 그래도 몇몇 용감한 이들이 프로덕션 라인에서 사용하기 시작했습니다: 네오폴리 GmbH(Neopoly GmbH), 앱모니트(Appmonit), 불트폰(Bulutfon), 프로텔(Protel).

3. 그루비(Groovy)

영향받은 언어: 파이썬, 자바, 스몰토크(Smalltalk), 오브젝티브-C, 펄

그루비는 2003년 처음 등장한 객체지향 스크립팅 언어지만, 안정 버전은 2007년에 나왔습니다. 자바 바이트코드로 동적 컴파일되므로 어떤 자바 라이브러리와도 매끄럽게 통합됩니다. 그래서 자바나 중괄호 구문을 사용하는 다른 코드로 프로그래밍한 적이 있다면 그루비를 빠르게 배울 수 있습니다.

그루비는 개발자 생산성을 높이고 그레일즈(Grails) 웹 애플리케이션 프레임워크에 접근할 수 있어 인기를 얻고 있습니다. NoSQL 지원, 강력한 뷰 기술, 플러그인 가능성 등 수많은 멋진 기능이 탑재되어 있습니다.

자바와 달리 그루비는 동적·정적 타이핑을 모두 지원하고, 정규식 네이티브 지원, 추가 헬퍼 메서드, 연산자 오버로딩, 널 포인터를 자동으로 체크하는 안전한 내비게이션 연산자를 가집니다. 또한 HTML, XML 같은 많은 마크업 언어를 네이티브로 지원합니다.

이 언어는 오라클 세일즈 클라우드(Oracle Sales Cloud), 엑소 플랫폼(eXo platform), 링크드인(LinkedIn), XWiki Saas, 데이터멜트(DataMelt), 마스터카드(Mastercard), 넷플릭스(Netflix), 에어버스(Airbus), 아파치 오픈비즈(Apache OFBiz) 같은 거대 기업들에서 사용되었습니다.

2. R

영향받은 언어: S, XLispStat, 커먼 리스프(Common Lisp), 스킴(Scheme)

R 프로그래밍 언어는 새롭지 않지만, 빅데이터 혁명 덕분에 최근 몇 년간 더 인기를 얻었습니다. 1993년에 처음 등장했으며, 현재 데이터 마이너와 통계학자들 사이에서 데이터 분석과 통계 소프트웨어 개발에 널리 사용됩니다. 명령줄 인터페이스와 그래픽 프론트엔드 모두 제공합니다.

R 언어는 행렬 계산용 연산자 모음, 효과적인 데이터 처리 기능, 데이터 분석을 위한 중간 도구들로 가득 차 있습니다. 대부분의 통계 계산 언어보다 강력한 객체지향 프로그래밍 기능을 가집니다.

R의 자료구조에는 배열, 행렬, 데이터프레임, 벡터, 리스트가 포함됩니다. 확장 가능한 객체 시스템은 시계열, 지리공간 좌표, 회귀 모델용 객체를 가집니다. 게다가 R은 일반적인 행렬 계산 도구로 작동하며, 매트랩(MATLAB)이나 옥테이브(Octave)와 비교할 만한 성능 벤치마크를 가집니다.

참고: 최고의 인공지능 프로그래밍 언어 8선

정치 예측가 파이브서티에이트(FiveThirtyEight)는 R을 사용해 2008/2012/2016 대선과 2010/2014 중간선거 당선 확률을 모델링했습니다. 공화당 전국위원회와 민주당 전국위원회도 잠재적 유권자 식별과 최대 투표 독려를 위해 R을 사용합니다.

1. 고(Go)

영향받은 언어: C, 파이썬, 스몰토크, 알레프, CSP, 모듈라(Modula), 파스칼(Pascal), 림보, BCPL

고(Go)는 2009년 구글이 출시했으며, 대형 조직이 매일 직면하는 코딩 이슈를 관리하는 것을 목표로 했습니다. 사용 편의성, 단순성, 동시성 기능, 성능이 개발자들이 고에 만족하는 주된 이유입니다. 2016년 TIOBE 올해의 프로그래밍 언어로 선정되었습니다.

고는 클래스 상속을 대체하는 두 가지 기능을 제공합니다: 첫 번째는 '임베딩(Embedding)'으로 자동화된 합성의 한 형태로 볼 수 있고, 두 번째는 '인터페이스(Interfaces)'로 다형성을 제공합니다. CPU 병렬성뿐만 아니라 비동기성에도 내장 기능과 라이브러리 지원을 통해 동시성 코드 작성을 지원합니다.

참고: 컴퓨터 프로그래밍 법칙 50가지

언어에는 디버깅, 테스팅, 코드 검증 도구가 포함됩니다: 테스트와 마이크로벤치마크를 위한 go test, 코드 포맷팅을 위한 go fmt 등. 또한 디버깅과 프로파일링 지원, 레이스 컨디션 테스터, 런타임 계측(가비지 컬렉션 일시정지 등)도 포함합니다.

고에는 많은 대기업 사용자가 있습니다: 유튜브, 드롭박스, 클라우드플레어(Cloudflare), 넷플릭스, BBC, 사운드클라우드(Soundcloud), 제로다(Zerodha), 맥스CDN(MaxCDN), 텀블러(Tumbler), 트위터(Twitter), 얀덱스(Yandex), 야후(Yahoo), 위키아(Wikia), 우버(Uber), 코어OS(CoreOS).

산업기술

  1. 산업 IoT 솔루션을 위한 최적의 프로그래밍 언어 선택 가이드
  2. 모든 개발자가 마스터해야 할 상위 10대 클라우드 프로그래밍 언어
  3. 마이크로프로세서 프로그래밍 기초
  4. 2021년 톱 13 B2B SaaS 기업: 검증된 리더와 혁신가
  5. GLTR: AI 생성 텍스트 탐지하는 통계 도구… '예측 가능성'으로 가짜 글 식별
  6. 보스크(Bosque): 코드 품질 높이는 마이크로소프트의 새로운 루프 없는 언어
  7. 2021년 코딩 실력 향상을 위한 최고의 프로그래밍 책 17권
  8. 2021년 공급망을 형성할 7대 핵심 트렌드
  9. CNC 프로그래밍 완전 정복: G-코드 vs M-코드
  10. 라인 통합의 혁신: 현대적 과제와 솔루션