관리 메뉴

IT & Life

지금 배울 가치가있는 최첨단 프로그래밍 언어 9 가지 본문

IT 관련 정보

지금 배울 가치가있는 최첨단 프로그래밍 언어 9 가지

미운앙마 2017. 11. 4. 16:29

 


인기있는 언어에 대한 이러한 강력한 대안이 급증하고 있으며 다음 프로젝트에 가장 적합 할 수 있습니다.

 

큰 언어는 인기가 있습니다 : 오픈 소스 코드, 라이브러리 및 작업을 쉽게 마무리 할 수있는 프레임 워크의 거대한 토대를 제공합니다. 이것은 새로운 프로젝트를 위해 몇 년 동안 계속해서 선정 된 기세의 결과이며, 뉘앙스의 전문성은 보람 있고 풍부합니다.

 

때로는 인기있는 주류 프로그래밍 언어의 광대 한 자원으로는 사용자의 특정 문제를 해결할 수 없습니다. 때로는 올바른 구조를 통해 올바른 언어를 찾을 수있는 확실한 점을 찾아야하며 끝없는 조정과 최적화없이 코드가 훨씬 빠르게 실행되는 데 도움이되는 추가 기능을 제공하는 경우가 있습니다. 이 언어는 코드가 엉뚱하거나 잘못 작성되는 것을 방지하기 때문에 훨씬 안정적이고 정확한 코드를 생성합니다.

 

세계는 C #, Java 또는 JavaScript가 아닌 수천 가지의 영리한 언어로 가득합니다. 일부는 소중하게 여겨지지만 많은 사람들이 특정 문제를 푸는 언어 시설에 대한 공통의 사랑으로 연결된 번성하는 공동체를 가지고 있습니다. 구문을 알고있는 수천만 명의 프로그래머가있을 수는 없지만 새로운 언어로 실험하면 향후 프로젝트에서 상당한 배당금을 지불 할 수 있기 때문에 상황을 약간 다르게하는 것이 가치있는 경우가 있습니다.

 

다음 9 개 언어가 모든 프로그래머의 레이더에 있어야합니다. 그들은 모든 직업에 가장 적합하지 않을 수도 있습니다. 많은 사람들이 전문적인 업무를 목표로합니다. 그러나 그들은 모두 조사하고 투자할만한 가치가있는 부분을 제공합니다.이 언어 중 하나가 프로젝트 또는 보스가 필요로하는 것과 정확히 일치하는 날이 올 수 있습니다.

 

 

 

 

Kotkin : 자바 재검토

Kotkin: Java reconsidered

 

Java는 가장 인기있는 플랫폼을 지원하는 훌륭한 언어이지만 조금 오래되고 고통 포인트는 너무 잘 알려져 있습니다. Kotlin은 IntelliJ와 같은 멋진 IDE를 우리에게 가져다 준 러시아의 JetBrains 팀의 두뇌 - 아이입니다. Kotlin은 신속하게 컴파일하고 Java와 공존하며 Java 개발자의 시간을 차지하는 최악의 문제를 수정하기위한 것입니다.

 

가장 중요한 부분은 모든 객체 지향 프로그래머의 부담 인 nullable 값에주의를 기울일 수 있습니다. 코드의 절반이 null 값을 확인한다고 생각하면 Kotlin 개발자는 비명 소리를 들었습니다. Kotlin은 개발자가 null이 될 수있는 변수를 명시 적으로 호출하도록함으로써이 문제를 해결하기위한 좋은 발걸음을 내디뎠다. 그런 다음 자동으로 우리가 할 수있는 최악의 실수를 확인합니다.

 

Kotlin은 기존 Java 코드와 함께 작동하도록 설계되었으므로 점진적으로 코드 기반을 향상시키고 자하는 팀에게 좋은 옵션입니다. 그것이 JavaScript 나 네이티브 코드로 컴파일되어 필요한 경우 수행됩니다. Google은 언어의 가치를 인정했으며 이제는 Kotlin을 사용하고 싶은 Android 개발자가 잘 지원됩니다.

 

이 신중한 전략은 팀이 언어를 천천히 채택 할 수 있기 때문에 인기가있는 것으로 입증되었습니다. Kotlin 그룹은 주요 은행, 컨설팅 그룹 및 앱 회사의 대규모 개발 팀에서 많은 팬을 확보했습니다.   

 

 

 

Erlang : 실시간 시스템을위한 함수 프로그래밍

Erlang: Functional programming for real-time systems

 

Erlang은 스웨덴 전화 회사 인 Ericsson에서 전화 스위치의 무시 무시한 영역 안으로 깊이 들어 섰습니다. Ericsson 프로그래머가 Erlang으로 99.9999999 %의 데이터를 전달하여 "nine nine"성능에 대해 자랑스러워하자 Ericsson 외부 개발자는주의를 기울기 시작했습니다.

 

Erlang의 비밀은 기능적인 패러다임입니다. 대부분의 코드는 부작용을 통해 시스템의 나머지 부분을 손상시킬 수없는 작은 세계에서 작동해야합니다. 함수는 내부적으로 모든 작업을 수행하며 샌드 박스처럼 작동하고 메일 메시지를 통해서만 서로 이야기하는 작은 "프로세스"로 실행됩니다. 단순히 포인터를 잡고 스택의 어느 위치로든 신속하게 변경할 수는 없습니다. 호출 계층 구조 안에 있어야합니다. 조금 더 생각할 필요가 있지만 실수가 전파 될 가능성은 적습니다.

 

모델은 또한 런타임 코드가 동시에 실행할 수있는 것을 판별하는 것을보다 단순하게 만듭니다. 동시성을 탐지하기 쉽기 때문에 런타임 스케줄러는 프로세스 설정 및 리핑에 소요되는 매우 적은 오버 헤드를 활용할 수 있습니다. Erlang 팬들은 웹 서버에서 동시에 2 천만 개의 "프로세스"를 실행하는 것에 대해 자랑스러워합니다.

 

휴대 전화 스위치 용 요금 청구 시스템과 같이 데이터를 드롭 할 여지가없는 실시간 시스템을 구축하고 있다면 얼랭 (Erlang)을 확인하십시오.

 

 

 

고: 간단하고 동적 인

Go: Simple and dynamic

 

Google은 언어 컬렉션을 조사한 최초의 조직이 아니 었습니다. 언어가 혼란스럽고 복잡하고 느린 경우가 많았습니다. 2009 년에 회사는 C와 비슷한 정적 형식 언어를 발표했지만 형식을 지정하지 않고 malloc 호출을 저글링하지 못하도록하는 백그라운드 인텔리전스 기능을 포함합니다. Go를 사용하면 프로그래머는 동적 스크립트 언어 사용의 용이성과 함께 컴파일 된 C의 간결함과 구조를 가질 수 있습니다.

썬과 애플이 자바와 스위프트 를 만들 때 비슷한 경로를 따라 가면서  구글은 구글과 크게 다른 결정을 내렸다. 구글의 제작자들은 "한 프로그래머의 머리를 잡을 정도로 간단하다."고 말했다. 롭 파이크 (Rob Pike) , Ars Technica에게 "때로는 일을 멀리함으로써 더 많은 것을 얻을 수있는 경우가 있습니다"라고 말했습니다. 따라서 제네릭, 유형 상속 또는 어설 션과 같은 지루한 추가 기능은 없으며 if-then-else 코드의 단순하고 단순한 블록 문자열, 배열 및 해시 테이블 조작

 

이 언어는 구글의 광대 한 제국에 잘 정착되어 있으며 파이썬과 루비의 동적 언어를 좋아하는 사람들이 컴파일 된 언어에서 나온 엄격함을 받아들이도록 다른 곳에서 받아 들여지고있다.

 

Google의 시선을 사로 잡는 신생 기업이고 서버 측 비즈니스 로직을 구축해야하는 경우  Go는 시작하기 좋은 곳 입니다.

 

 

 

OCaml : 복잡한 데이터 계층 요술 쟁이

OCaml: Complex data hierarchy juggler

 

일부 프로그래머는 변수의 유형을 지정하고 싶지 않으며 동적 언어를 작성했습니다. 다른 변수는 변수가 정수, 문자열 또는 객체를 보유하는지 여부를 확실하게 알 수 있습니다. 그들에게 컴파일 된 많은 언어가 원하는 모든 지원을 제공합니다.

 

그런 다음 정교한 유형 계층 구조를 꿈꾸고 유형의 "대수 (algebras)"를 작성하는 것을 말하는 사람들도 있습니다. 그들은 복잡하고 다단계 데이터 특별판을 표현하기 위해 함께 모인 이기종 유형의 목록과 표를 상상합니다. 다형성, 패턴 일치 프리미티브 및 데이터 캡슐화에 대해 설명합니다. 이것은 원하는 유형, 메타 타입 및 메타 모델 유형의 복잡하고 고도로 구조화 된 세계의 시작일뿐입니다.

 

그들에게는 OCaml이있다. OCaml은 앞서 언급 한 많은 아이디어를 대중화하기 위해 프로그래밍 언어 커뮤니티가 진지하게 노력한 것이다. 객체 지원, 자동 메모리 관리 및 장치 이식성이 있습니다. 심지어  애플 앱 스토어에서 OCaml 앱을 이용할 수있다 .

 

OCaml을위한 이상적인 프로젝트는 대수를 가르치는 상징적 인 수학 웹 사이트를 구축하는 것입니다.

 

 

 

TypeScript : 원하는 자바 스크립트

TypeScript: JavaScript you’ll like

 

누구나 JavaScript를 사용할 수 있지만 아무도 프로그래밍을 좋아하지 않는 것 같습니다. 오늘날 모든 사람들이 선호하는 프리 프로세서 또는 수퍼 프로세서를 사용하여 언어를 확장하고 향상시키기 때문에 그렇게 보일 것입니다. TypeScript는 모든 변수에 유형을 추가하기 때문에 현재 선호되고 있습니다. Java 프로그래머를 좀더 안전하게 느끼게합니다.

 

더 많은 개발자가 TypeScript에 관심을 갖고있는 가장 큰 이유는 TypeScript 로 작성된 웹 응용 프로그램을 빌드하기위한 훌륭한 프레임 워크 인 Angular 입니다. 흥미로운 주름은 TypeScript를 사용하여 Angular를 사용할 필요가 없다는 것입니다. 코드의 품질을 즐기고 레거시 JavaScript와 병합 할 수 있습니다. 선택할 필요가 없습니다.

 

그 이유는 TypeScript가 JavaScript의 상위 집합이기 때문입니다. 개발자는 구식 자바 스크립트를 잘 사용하는 방식으로 타이핑을 추가했습니다. 사무실에 유형의 아이디어가 마음에 들지 않거나 유형이 자신의 스타일을 왜곡시키는 방식에 대한 독단적 인 견해를 가진 사람들이있는 경우 매우 유용합니다. 유형은 효과적으로 선택 사항이며 유형을 지정하는 시간을 정한 사람들은 보상을 얻을 수 있습니다.

강력한 타이핑은 버그를 일찍 잡아 내고 도구의 전반적인 품질을 향상시키는 것과 같은 많은 장점을 가지고 있습니다. 유형을 추가하면 스마트 에디터가 멋진 작품을 만들 때 똑똑한 제안을 할 수 있습니다. 코드 완성 루틴이 함수와 인수에 대해 알고있을 때 코드 완성은 훨씬 빠르고 정확합니다. 이는 키보드에서 손가락의 움직임이 적다는 것을 의미합니다. TypeScript를 좋아하는 사람들은 이러한 장점으로 강하게 결정된 언어의 힘에 대해 울타리에있는 사람을 끌어 들이게 될 것이라고 확신합니다.

 

 

 

러스트 : 안전하고 사용 가능한 시스템 언어

Rust: Safe and usable systems language

 

프론트 엔드 프로그래머 만이 재미있는 것은 아닙니다. 녹은 후드 아래에 다양한 다형성 타이핑이 혼합 된 C의 리퍼 비시 버전과 같습니다. 지난 2 년 동안 Stack Overflow 유권자로부터 " 가장 사랑받는 프로그래밍 언어 "를 수상했습니다. Stack Overflow의 인기 언어 지수에도 반영되었습니다. 불과 몇 년 전 Rust가 50 위에 올랐으며 올해는 18 점으로 뛰어 올랐습니다.

왜? 아마 Rust가 너무 많은 handholding을하지 않거나 개발자가 가상 ​​직선자를 사용하지 않고 C로 많은 끈적 끈적한 문제를 정리하기 때문입니다. 시스템 프로그래머는 쓰레기 수거에 의지하지 않고, 가장 부적절한 시간에 찰 때까지 훌륭한 서비스를 좋아합니다. 녹이 당신이 메모리에있는 숫자에 어떤 일이 일어나고 있는지를 담당하고, 일부 서비스가 당신을 위해 일하기를 기다리지 않는 것처럼 느끼게합니다.

타이핑 시스템은 일반적이고 유연하며 하스켈에서 영감을 얻은 일종의 다형성을 제공합니다. 하지만 컴파일러가 구현 될 때마다 컴파일러는 각 유형별 구조를 사용자 정의합니다. 개발자가 "단일 형태"라고 부르는 것을 선호합니다.이 언어는 개발자가 레일을 벗어나지 못하도록하는 몇 가지 다른 제한을 추가합니다. 예를 들어, 각 값은 "소유"되어 있습니다. 이는 실제로 한 번만 사용할 수 있으므로 값의 완전한 제어권을 가진 것처럼 행동하는 프로그램의 다른 부분에서 참조가 얽힌 웹을 방지합니다.  

이 모든 기능과 경쟁 조건이없는 스레딩과 같은 몇 가지 기능은 새로운 프로그래머가 오랫동안 C 프로그래머를 괴롭 히던 최악의 안티 패턴에 빠지지 않고 시스템 코드를 작성할 수 있음을 의미합니다. 코드가 실행되기 전에 많은 최악의 실수를 범할 컴파일러로 C를 작성하는 하드 코어의 고성능 재미를 모두 얻을 수 있습니다.

 

 

 

스칼라 : JVM에서 기능적 프로그래밍

Scala: Functional programming on the JVM

 

프로젝트에 객체 지향 계층의 코드 단순성이 필요하지만 기능 패러다임을 좋아한다면 몇 가지 선택이 있습니다. Java가 귀하의 영역이라면 Scala가 선택입니다.

 

스칼라는 JVM에서 실행되므로 Java 클래스 스펙 및 다른 JAR 파일과 연결되는 코드를 제공함으로써 기능 프로그래밍에 대한 모든 명확한 설계 기능을 Java 세계에 제공합니다. 그 외의 JAR 파일에 부작용과 다른 불가사의 한 두통이 있다면, 그렇게하십시오. 코드가 깨끗합니다.

 

형식 메커니즘은 매우 정적이며 컴파일러는 형식을 추론하는 모든 작업을 수행합니다. Scala는 모든 ur-object call Any에서부터 모든 것이 필요하기 때문에 기본 유형과 객체 유형을 구별하지 않습니다. 구문은 Java보다 훨씬 간단하고 깨끗합니다. 스칼라 사람들은 이것을 "낮은 의식"이라고 부릅니다. 단락 - 긴 CamelCase 변수 이름  을 Java Land에 그대로 둘 수 있습니다  . 

 

Scala는 지연 평가 (reazy evaluation), 꼬리 재귀 (tail recursion) 및 불변 변수와 같은 기능 언어에서 기대되는 많은 기능을 제공하지만 JVM에서 작동하도록 수정되었습니다. 링크 된 목록이나 해시 테이블과 같은 기본 메타 스타일 또는 컬렉션 변수는 변경 가능하거나 변경 불가능할 수 있습니다. 테일 재귀는 간단한 예제로 작동하지만 정교하고 상호 재귀적인 예제에서는 작동하지 않습니다. 비록 구현이 JVM에 의해 제한 될지라도 아이디어는 모두 존재합니다. 또한 자바 플랫폼의 모든 편재성과 오픈 소스 공동체가 작성한 기존 자바 코드의 깊은 컬렉션을 제공한다. 실용적인 많은 문제들에 대해서는 그다지 좋지 않은 트레이드 오프가 아닙니다.

 

수천 개의 프로세서 클러스터에서 데이터를 다루어야하고 레거시 Java 코드가 많은 경우 스칼라는 훌륭한 솔루션입니다.

 

 

 

Haskell : 순수하고 간단한 함수 프로그래밍

Haskell: Functional programming, pure and simple

 

지난 20 년 동안 기능 프로그래밍 분야의 학자들은 부작용의 악재에 대한 아이디어를 캡슐화하기 위해 고안된 언어 인 Haskell을 적극적으로 개발 해왔다. I / O 채널 및 기타 피할 수없는 부작용을 처리하기위한 신중한 메커니즘을 통해 함수 프로그래밍의 이상적인 표현 중 하나입니다. 하지만 나머지 코드는 완벽하게 작동해야합니다.

 

지역 사회는 매우 활발한 활동을하고 있으며 하스켈의 여러 변종이 탐험을 기다리고 있습니다. 일부는 독립 실행 형이며 다른 일부는 Java (Jaskell, Frege) 또는 Python (Scotch)과 같은 주류 노력과 통합됩니다. 대부분의 이름은 스코틀랜드, 하스켈 연구의 온상, 또는 하스켈에서 표현 된 많은 아이디어에 대한 지적 출처를 형성하는 철학자 / 논리 학자에 대한 참조 인 것으로 보인다. 데이터 구조가 복잡하고 많은 유형으로 가득 찬 것으로 믿는다면, 하스켈은 당신이 그것을 계속 유지하도록 도울 것입니다.

 

 

 

줄리아 : 파이썬 땅에 속도를 불어 넣다.

Julia: Bringing speed to Python land

 

과학 프로그래밍의 세계는 간단한 구문과 포인터와 바이트 같은 험난한 세부 사항을 생각하지 않도록 자유롭게 즐기는 Python 애호가들로 가득합니다. 그러나 모든 강점을 고려할 때 Python은 종종 느리게 실행되는 경우가 많습니다. 과학 컴퓨팅 분야에서 흔히 볼 수있는 대용량 데이터 세트를 처리하는 경우 문제가 될 수 있습니다. 문제의 속도를 높이기 위해 많은 과학자들은 C에서 코어에서 가장 중요한 루틴을 작성하는 것으로 전환하는데, 이는 훨씬 빠릅니다. 그러나 두 가지 언어로 작성된 소프트웨어로 안장되어 수정, 수정 또는 확장하기가 훨씬 더 어렵습니다.

 

Julia는 이러한 복잡성에 대한  해결책 입니다. 제작자는 파이썬 프로그래머가 좋아하는 깔끔한 구문을 취해 코드를 백그라운드에서 컴파일 할 수 있도록 조정했습니다. 그렇게하면 파이썬과 같이 노트 나 대화 형 세션을 설정할 수 있지만 작성한 코드는 즉시 컴파일됩니다.

 

줄리아의 용기는 매력적입니다. 이들은 더 빠른 코드를 보장 할 수있는 강력한 유추 추론 엔진을 제공합니다. 메타 프로그래밍을 즐기는 경우, 언어는 충분히 확장되어 확장 될 수 있습니다. 그러나 가장 가치있는 추가 사항은 클러스터 전체에 병렬 알고리즘을 배포하는 Julia의 간단한 메커니즘 일 수 있습니다. 많은 심각한 라이브러리가 이미 데이터 분석을위한 가장 일반적인 수치 알고리즘의 많은 부분을 다루고 있습니다.

 

가장 좋은 소식은 고속일지도 모릅니다. 많은 기본 벤치 마크는 파이썬보다 30 배 더 빠르게 실행되며 종종 C 코드보다 약간 더 빠르게 실행됩니다. 너무 많은 데이터를 가지고 있지만 파이썬의 구문을 즐기는 경우, 줄리아는 배우기위한 다음 언어입니다.     

Comments