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

5272 단어 programmingbeginners
몇 년 전, 내가 처음 파이톤을 배우려고 시도했을 때, 그것을 사용하기 5분 전에, 나는 다음과 같은 오류 메시지 중 하나를 만났다.
SyntaxError: invalid syntax
파이톤이 나에게 나쁜 짓을 했으니 괴로워해야 한다고 말하는 것 같았다.
나는 확실히 괴로웠다. 일부 원인은 내가 문법 오류가 무슨 뜻인지 모르고, '무효 문법' 이라는 단어도 어떤 것도 밝히는 데 도움이 되지 않았기 때문이다.
오늘 나는 프로그래밍 언어와 해석기의 작업 원리에 대해 더 많은 것을 알게 되었다.그러나 잘못된 정보는 여전히 엉망이다.이것은 나쁜 UX이다. 혹은 더 정확히 말하면 나쁜 DX (개발자 체험) 이다.
만약 당신이 프로그래밍을 처음 배운다면 이 오류는 두 가지 측면에서 모두 좋지 않은 경험이다.
  • 우선, 그것은 너에게 방금 무슨 일이 일어났는지 알려주지 않았다.내가 뭘 잘못했나?내 프로그램이 잘못되었습니까?아니면 파이썬이 뭘 잘못했나?
  • 그 다음으로 오류 원인에 대한 지시도 주지 않았고 내가 그것을 복구할 수 있는 지시도 주지 않았다.
  • 현재의 현실은 문법 오류가 항상 발생하기 때문에 개발자들은 대부분의 시간을 오류를 복구하고 각종 인코딩 문제를 해결하는 데 쓴다.
    그러나 초보자로서 너는 이 점을 모른다.
    네가 초보자일 때, 이 잘못은 큰 문제처럼 들리지만, 더 중요한 것은 네가 무엇을 잘못한 것처럼 들린다는 것이다.

    문제는 프로그래밍 언어는 프로그래머가 만든 것이다
    프로그래밍 언어는 프로그래머가 프로그래머를 위해 만든 것이다.
    프로그래밍을 더 쉽게 이해하고 배우고 싶을 때, 이것은 문제이다.이것은 목표 시청자가 일치하지 않는 것이다.
    이 밖에 프로그래밍 언어의 창설 방식에도 한계가 있다.우리는 마침내'무효 문법'이라는 소식을 얻었다. 이것은 누군가가 이런 잘못된 소식을 썼을 뿐만 아니라 언어 문법과 해석기의 작업 방식 때문이다.해석기가 실제적으로 문법 오류를 초래하는 정확한 문법 규칙에 접근할 수 없을 수도 있습니다. 왜냐하면 이것은 이런 방식으로 인코딩되었기 때문입니다.따라서 기술적인 이유로 오류 메시지가 더 많은 도움을 줄 수 없습니다.
    Guido가 파이톤 해상도의 첫 번째 버전을 작성할 때, 이것은 아마도 그의 첫 번째 임무 중의 하나가 아닐 것이다.그는 자신과 다른 프로그래머를 위해 쓴 것이다.
    파이톤이 1990년대 초에 처음 발표되었을 때, 파이톤은 당시의 대다수 다른 언어보다 훨씬 간단하고, 배우기도 쉬웠기 때문이다.(나는 오늘도 그럴 수 있다고 생각한다.)

    두 번째 문제: 배우기 쉬운 프로그래밍 언어로 설계하는 것은 종종 쓸모가 없다.
    많은 프로그래밍 언어의 디자인은 초보자들이 더욱 쉽게 배우고 사용할 수 있도록 하기 위해서이다.그것들 중 성공하거나 환영받는 사람은 드물다. 문제는 그것들과 함께 어떤 엄숙한 일도 할 수 없다는 것이다.
    그들은 사람들이 프로그래밍을 더욱 쉽게 시작할 수 있도록 하는 목표를 실현할 수 있을 것이다.그러나 프로그래밍이 어떤 문제를 해결할 수 있는지, 그리고 더 큰 그림에 어떻게 적응할 수 있는지 설명할 수 없는 경우가 많다.
    그래서 어느 정도 그들은 실제로 목표를 실현하기 전에 자신을 파괴했다.
    프로그래밍이 왜 가치가 있는지 보여주고, 프로그래밍을 어떻게 사용하는지 이해하도록 도와주려면, 현실 세계의 문제를 어떻게 해결하는지 보여줘야 한다.그렇지 않으면, 대다수 때, 그것은 장난감처럼 보인다.

    HyperCard 및 Excel
    HyperCard는 1980년대 말에 등장한 응용 프로그램 중 하나로 많은 컴퓨터 사용자들에게 영향을 미쳤다. 나는 이것이 많은 사람들이 프로그래머가 되도록 자극했다고 확신한다.
    HyperCard 내부에서 사용할 수 있는 프로그래밍 언어인 HyperTalk은 그다지 좋지 않다.그러나 비프로그래머가 목표이며 실제 문제를 해결할 수 있는 능력도 있다.

    Many people who thought they would never be able to program a computer started using HyperCard for many automation and prototyping tasks, a surprise even to its creator. (Wikipedia)


    Excel은 프로그래밍을 비프로그래머에게 가져다 주는 또 다른 거대한 프로그램이다.
    Excel 모델은 공식 및 셀에 기반하고 코드 반 그래픽화됩니다.그것의 통용성은 일련의 문제를 해결하기에 충분하지만, 그것은 여전히 가장 좋은 점을 고수한다. 그것은 전자 표로 표시할 수 있는 문제에 특정되어 있다.이것이 바로 Excel이 이렇게 강한 이유이다. Excel은 모든 것을 시도하지 않는다.이것은 전자 표다.

    엉망으로 설계된 프로그래밍 언어가 될 때까지 도구를 맞춤형으로 만들 수 있도록 하다
    소프트웨어에서, 우리는 항상 특정한 해결 방안을 해결하는 코드를 작성하고, 사용자가 각종 문제를 해결할 수 있도록 충분한 맞춤형 코드를 작성하는 것을 허용해야 한다.
    이것은 공구의 전용성 문제다.
    Excel과 HyperCard는 프로그래밍 언어가 아닌 도구입니다.그러나 이 두 가지 방법 모두 구체화의 방향에서 벗어나 모든 문제를 해결하려 한다.
    소프트웨어의 가장 맞춤형 형식은 무엇입니까?그것 자체가 프로그래밍 언어의 일종이다.따라서, 만약 당신이 이 도구들을 맞춤형 한계에 이르게 한다면, 그것들은 엉망진창인 프로그래밍 언어가 될 것이다.
    왜 하이퍼카드가 오늘 죽었어?나는 이것이 너무 무분별해서 어떤 구체적인 문제에도 적합하지 않다고 생각한다.
    비록 이것은 확실히 비프로그래머로 하여금 많은 권력을 장악하게 했지만, 최종적으로 소프트웨어의 경제성 때문에 특정한 문제를 위해 특정한 도구를 구축하는 것이 통상적으로 더욱 가치가 있다는 것을 증명하였다.

    프로그래머가 스스로 문제를 해결하다
    만약 당신이 프로그래머를 자신들의 설비에 남겨 두면, 그들은 도구를 만들어서 자신들의 일을 더욱 쉽게 할 것이다. 이것은 매우 정상적인 것이다.
    때때로 프로그래머들은 신입사원을 더 쉽게 만들지 않고 어떤 엘리트주의적 실수를 저지르기도 한다.
    일단 최초의 장애를 극복하고 코드를 어떻게 만드는지 배우면 처음의 느낌을 잊기 시작할 것이다.
    첫 번째 프로그래밍 언어의 기본 문법을 배우려 할 때, 당신은 자신이 얼마나 도움이 안 되는지 쉽게 잊어버리고, 모든 것이 당신에게 불리한 것 같다.
    모든 사람은 처음에는 초보자였다.

    그렇다면, 우리가 무엇을 해서 일을 더욱 좋아지게 할 수 있을까?
    으르렁거리는 것을 버리고 다음은 실행 가능한 건의들입니다.
  • 만약 당신이 경험이 풍부한 프로그래머라면 프로그래밍을 처음 접한 이야기를 공유해 보세요. 비결을 익히기 전에 우리는 무지와 두려움에서 시작된다는 것을 보여 주세요.
  • 초보자라면 프로그래밍 언어의 창조자들의 까다롭고 쓸모없는 잘못된 정보를 용서해 보세요.프로그래밍 언어를 만드는 것은 초보자들에게 쉽고 실제 문제를 해결하는 데 유용한 일이다. 이것은 항상 뻔하지 않다.
  • 초보자라면 경험과 피드백을 공유함으로써 프로그래밍 언어 커뮤니티를 도울 수 있다.많은 경우 경험이 풍부한 프로그래머들은 초보자들이 사물을 보는 방식이 그들과 다르기 때문에 그들은 때때로 현실로 돌아가야 한다는 것을 일깨워 주어야 한다.
  • 초보자의 친근한 프로그래밍 언어를 사용할 수 없다면 용서해 주십시오.그것들은 여전히 배울 만한 도구이다. 만약 사람들이 프로그래밍에 관한 지식을 더 많이 배울 수 있다면, 이것이 우리가 기대할 수 있는 가장 좋은 결과이다.
  • 마지막 일로 끝내라고.
    내가 이 언어들을 아무 소용이 없다고 말할 때, 나는 너무 엄격하게 말하지만, 내 말은, 그것은 현실 세계에서 소위 '상업' 문제와 관련이 있다는 것이다.
    만약 당신이 하나의 도구로 멋있거나 창의적인 것을 만들고 그것을 보여줄 수 있다면, 이 도구는 인류에게 100% 유용하고 가치 있는 것이다.많이 해봅시다.

    좋은 웹페이지 즐겨찾기