paint-brush
2023년에 배우기 가장 어려운 프로그래밍 언어 7가지by@itsfurqanaziz
24,528
24,528

2023년에 배우기 가장 어려운 프로그래밍 언어 7가지

Furqan Aziz8m2023/11/30
Read on Terminal Reader
Read this story w/o Javascript

당신이 스릴을 추구하고 도전을 하고 있다면 운이 좋을 것입니다. 제가 여기에서 가장 놀라운 프로그래밍 언어에 대한 개요를 제공하기 때문입니다.

People Mentioned

Mention Thumbnail
featured image - 2023년에 배우기 가장 어려운 프로그래밍 언어 7가지
Furqan Aziz HackerNoon profile picture


진정한 도전을 찾고 있다면 프로그래밍 언어의 세계를 찾아보세요. 물론, Python이나 JavaScript 등을 안전하게 사용할 수는 있지만 그게 무슨 재미가 있겠습니까? 당신이 스릴을 추구하고 도전을 하고 있다면 운이 좋을 것입니다. 제가 여기에서 가장 놀라운 프로그래밍 언어에 대한 개요를 제공하기 때문입니다.


하지만 이러한 언어를 배우는 것은 마음이 약한 사람을 위한 것이 아니라는 점을 기억하십시오. 두뇌 운동을 할 준비가 되어 있어야 합니다!

목차

세상에서 가장 어려운 프로그래밍 언어를 배우는 것은 어떤 면에서는 예술과 비슷합니다. 빈 캔버스와 기본 원자재로 시작합니다. 과학, 예술, 공예를 결합하여 무엇을 할지 결정하세요.


전체적인 형태를 스케치하고 배경을 칠한 후 세부 사항을 채워 넣습니다. 당신은 계속해서 한발 물러나 비판적인 눈으로 자신이 한 일을 살펴봅니다. 하지만 그러면 캔버스를 옆으로 치워두고 다시 시작하게 됩니다.


간단히 말해서, 배우기 가장 어려운 프로그래밍 언어는 당신의 두뇌를 완고한 노드와 복잡한 코드에 남겨 둡니다.


그러나 아무리 기본적이거나 복잡하더라도 프로그래밍 언어를 배우려면 시간과 노력이 필요합니다. 결과적으로, 상당한 연구를 수행하고 원하는 진로에 적합한 프로그래밍 언어를 선택하는 것이 필요합니다.


또한 프로그래밍 언어의 시장 가치와 유용성은 복잡성이나 편의성과는 아무런 관련이 없습니다. 최종 결정은 언어의 유용성에 따라 달라집니다. 쿼리 언어와 직렬 명령문을 사용하여 논리적인 결정을 내리는 능력은 컴퓨터 프로그래밍 언어와 유사하다는 점에서 장점이 있습니다.

가장 어려운 코딩 언어는 무엇입니까?

c, c++, Java, Python 및 기타 프로그래밍 언어에 관해 이야기할 때 대부분의 소프트웨어 엔지니어가 어려울 뿐만 아니라 완전히 이해할 수 없는 언어도 있습니다. 그들은 난해한 프로그래밍 언어(또는 에솔랑)로 명성을 쌓았습니다.


다음은 2023년에 배우기 가장 어려운 프로그래밍 언어의 세부 목록입니다.


가장 어려운 프로그래밍 언어


  • C++

Bjarne Stroustrup은 C 컴퓨팅 언어의 확장으로 범용 프로그래밍 언어인 C++를 개발했습니다. 개발팀은 이를 게임 내 및 온라인 개발은 물론 기계 학습 및 데이터 마이닝 애플리케이션에 자주 활용합니다.


그러나 최근 몇 년간 Python, Java, JavaScript와 같은 고급 언어의 인기와 사용량이 C++를 능가한 것으로 보입니다. 이로 인해 개발자는 다음과 같은 질문을 하게 됩니다. C++는 배우기 어려운가요?


빠른 대답은 '예'입니다!


다중 패러다임 특성과 더 복잡한 구문으로 인해 C++는 익히기가 어렵습니다. 초보자에게 특히 어려운 것으로 잘 알려져 있지만, 저수준 언어에 대한 사전 지식이 없는 프로그래머에게도 똑같이 어려운 일입니다.


  • 말볼게

Malbolge 프로그래밍 언어는 많은 개발자의 정신적 평화를 앗아갔고, 배우기 가장 어려운 프로그래밍 언어 목록에 그 이름이 뿌리내렸습니다. Ben Olmstead는 1998년에 이 언어를 발명했으며, 이 언어의 복잡성을 이해할 수 있도록 첫 번째 프로그램을 구축하는 데 거의 2년이 걸렸습니다.


Malbolge의 복잡성은 주로 (a) 제한된 명령어, (b) 실행 후 명령어 대체 및 (c) 로드 가능한 데이터 제한에서 비롯됩니다.


이를 위해 이 언어로 코딩하는 것은 쓰레기이거나 오작동하는 것처럼 보입니다. 사실 많은 사람들은 Ben Olmstead가 이 언어로 단일 프로그램을 개발한 적이 없다고 믿습니다. 그러나 Hisashi Lizawa는 Malbolge에서 프로그래밍 가이드를 제공하여 소프트웨어 보호의 난독화를 제안했습니다.


예를 들어, 읽을 수 없는 프로그램은 변경에 대한 저항력이 있습니다. Alice가 애플리케이션을 실행할 Bob에게 프로그램(또는 이진 코드)을 전송하려고 한다고 가정합니다. 암호화된 코드라 하더라도 Bob이 코드를 실행하려면 암호를 해독할 수 있는 권한이 필요합니다. 결과적으로 Bob은 이를 변경할 기회를 갖게 됩니다.


그러나 배우기 가장 어려운 프로그래밍 언어로 작성된 읽을 수 없는 프로그램은 코드를 계층화하고 암호화된 데이터로 기능합니다. 이제 이는 상당한 이점이 됩니다.


마찬가지로 중요한 점은 이 언어가 단테의 지옥불에 나오는 여덟 번째 지옥, 즉 사기죄를 저지른 사람들을 위해 예약된 곳에서 그 이름을 얻었다는 것입니다. 다르게 말하면 Malbolge는 "지옥에서 온 프로그래밍 언어"입니다.


  • 하스켈

이 가장 어려운 프로그래밍 언어를 최종적으로 이해하기 전에 적어도 3~4번은 배우지 못할 것입니다. 하지만 말할 필요도 없이 다른 프로그래밍 언어를 망칠 것입니다!


Haskell은 완전한 기능을 갖춘 프로그래밍 언어입니다. 명령형 언어에서는 컴퓨터에 작업을 할당하고 컴퓨터가 이를 수행하여 작업을 수행합니다. 수행하는 동안 상태가 변경될 수 있습니다.


그러나 그것은 게으르다. 명시적으로 다르게 지시하지 않는 한, 하스켈은 결과를 제공해야 할 때까지 함수를 수행하거나 아무것도 계산하지 않습니다. 이는 프로그램을 일련의 데이터 변환으로 생각할 수 있으므로 참조 투명성과 일치합니다.


  • 인터칼

Jim Lyon과 Don Woods는 여러 컴퓨터 언어를 풍자하기 위해 1972년에 가장 배우기 어려운 코딩 언어 중 하나인 INTERCAL을 만들었습니다. '발음할 수 없는 약어가 없는 컴파일러 언어.' 그것에 주어진 최초의 별명이었습니다.


INTERCAL에는 프로그래머를 좌절시키기 위한 다양한 기능이 포함되어 있습니다. 예를 들어 "PLEASE"와 같은 수식어를 사용합니다. 코드에서 "PLEASE"라는 단어가 자주 사용되지 않으면 컴파일러에서 이를 거부할 수 있습니다. 해당 프로그램은 조직에 의해 '부족하게 정중한' 것으로 간주됩니다.


반면 'PLEASE' 수식어를 너무 많이 사용하면 컴파일러는 해당 코드를 '지나치게 정중하다'고 거부합니다.


  • BrainF**k

Urban Müller라는 스위스 물리학과 학생은 1993년에 가능한 가장 작은 컴파일러로 언어를 설계하려는 시도로 Brainfuck을 개발했습니다.


Müller는 현재 Google에서 일하고 있는 네덜란드 소프트웨어 개발자인 Wouter van Oortmerssen이 가장 작은 실행 가능한 컴파일러로 혼란스러운 Turing-complete 언어를 생성할 목적으로 그해 초 만든 "비뚤어진" 프로그래밍 언어인 FALSE에서 Brainfuck에 대한 아이디어를 얻었습니다.


C++와 같은 최신 프로그래밍 언어에는 2.6Mb 컴파일러가 필요할 수 있지만 FALSE의 컴파일러는 1,024바이트에 불과하거나 거의 2,600배나 적습니다.


언어의 탁월한 단순성으로 인해 Brainfuck의 컴파일러는 결국 FALSE보다 훨씬 작은 240바이트 크기가 되었습니다. Brainfuck은, >, +, -, [,] 및,의 8개 명령으로만 구성됩니다.

단순함에도 불구하고 Brainfuck 어휘는 기본 프로그램을 실행하는 데 필요한 많은 양의 코드로 인해 사용할 수 있는 가장 복잡하고 어려운 프로그래밍 언어 중 하나입니다.


예를 들어, 프로그래머가 새로운 언어를 배우고 싶을 때 일반적으로 해당 언어로 만들기 위해 스스로 가르치는 첫 번째 프로그램 중 하나는 "Hello, World!"라는 단어를 인쇄하는 것입니다. 컴퓨터 화면에서. Python과 같은 표준 프로그래밍 언어로 작성된 이 애플리케이션의 코드는 다음과 같습니다.


그러나 Brainfuck에 구현된 동일한 프로그램은 다음과 같을 수 있습니다.

++++++++++[>++++++++>++++++++++>+++>+<<<<-]

++.>+.++++++++..++++.>++.<<+++++++++++++++.>.+++.--- ---.---------.>+.>.


  • 암소

그 이름은 수천은 아니더라도 수백 가지의 잘못된 인상을 줍니다. 우리는 소와 대화하는 데 도움이 되는 기술을 나타내는 것이 아닙니다. 또한 'MOO'의 숨겨진 의미를 밝히기 위해 Google 번역 인터페이스를 제작할 계획도 없습니다.


우리는 2023년에 배우기 가장 어려운 세계 6대 코딩 언어 중 하나인 COW에 대해 이야기하고 있습니다. 2013년 초에 등장했지만 개발 커뮤니티에서는 거의 관심을 받지 못했습니다. 나중에는 세계에서 가장 복잡한 프로그래밍 언어로 명성을 쌓았습니다.

Brainfuck은 COW에 나쁜 영향을 미치지만 개발자들은 Bovine을 염두에 두고 장난스럽게 만들었습니다.


Cow에는 Brainfuck보다 4개가 더 많은 12개의 지침이 포함되어 있으며 Turing Complete입니다. 12개의 명령은 모두 "MOO"라는 단어의 변형일 뿐입니다.


가장 어려운 프로그래밍 언어 - COW 언어

출처: 소 명령


  • 공백

Chris Morris와 Edwin Brady는 University of Durham에서 Whitespace를 만들었습니다. 이 언어는 2003년 4월 1일 프로그래밍을 배우기 가장 어려운 언어 중 하나로 데뷔했습니다.


"공백"이라는 용어는 공백, 탭, 줄 바꿈이라는 세 가지 흰색 문자만 사용한다는 사실에서 유래되었습니다. 결과적으로 공백으로 작성된 프로그램의 소스 코드는 보이지 않게 됩니다.


코드를 표시하려면 공백(Space)을 나타내는 S, 표(Tab)를 나타내는 T, 새 줄(줄 바꿈)을 나타내는 L 등 세 문자가 일반적으로 사용됩니다. 공백이 아닌 문자는 공백 해석기에서 무시되며 코드 주석으로 처리됩니다.


예를 들어 일련의 공백은 단일 명령을 나타낼 수 있고 탭 뒤에 공백이 있으면 다른 명령을 나타낼 수 있습니다. 공백 문자는 기존 프로그래밍 언어처럼 키워드나 식별자를 구분하는 데 사용되지 않기 때문에 공백으로 작성된 소스 코드는 구별 가능한 프로그래밍 언어 구문이 없는 일반 텍스트처럼 보입니다.

다음은 'Hello, World!'를 표시하는 코드입니다. 공백에서.


세상에서 가장 복잡한 프로그래밍 언어

실제 프로그래밍을 배우고 싶으십니까?

주류 프로그래밍에서는 사용자가 특정한 방식으로 생각해야 합니다. 그러나 esolang은 사용자가 쓸모없고 시간이 많이 소요되지만 그럼에도 불구하고 복잡한 소프트웨어를 개발할 수 있을 만큼 논리적인 방식으로 생각하도록 장려합니다.


따라서 2023년에는 가장 배우기 어려운 프로그래밍 언어를 아침 식사로 건너뛰는 것이 좋습니다.


그러나 실제 프로그래밍을 활용하여 이 스마트 시대에 고객을 유지하려면 InvoZone의 전담 개발자를 고용하여 회사의 인재 풀의 격차를 해소하십시오!

자주 묻는 질문

C++가 가장 어려운 프로그래밍 언어인가요?

C++가 가장 어려운 프로그래밍 언어인지 말하기는 어렵습니다. 언어를 배우는 사람과 프로그래밍에 대한 이전 경험에 따라 난이도가 달라질 수 있기 때문입니다.


그러나 C++는 일반적으로 복잡한 구문과 가파른 학습 곡선으로 인해 Python이나 JavaScript와 같은 다른 인기 프로그래밍 언어보다 배우기 더 어려운 언어로 간주됩니다.

C와 C++ 중 어느 것이 더 어렵나요?

C와 C++는 상대적으로 낮은 수준, 시스템 수준 프로그래밍 언어로 간주되며 둘 다 배우기 어렵다는 평판을 받고 있습니다. C는 상대적으로 단순하고 미니멀한 언어로 간주됩니다. 프로그래밍과 컴퓨터 과학의 입문 언어로 자주 사용되며 작업을 완료하는 데 필요한 것을 제공합니다.


반면 C++는 C보다 학습 곡선이 더 가파르고 객체 지향 프로그래밍(OOP) 지원, 템플릿, 표준 템플릿 라이브러리(STL)와 같은 몇 가지 추가 기능을 추가하는 더 복잡하고 기능이 풍부한 언어입니다. .