Google의 Go-Language는 Paul의 Graham의 게시물 'Arc가 특히 물체 지향적이지 않은 이유'의 문제를 해결합니까?

StackOverflow https://stackoverflow.com/questions/1714004

  •  19-09-2019
  •  | 
  •  

문제

Google이 있습니다 골란 Paul의 Graham의 게시물에 다루어진 언어 문제를 해결하십시오. '아크가 특히 물체 지향적이지 않은 이유'?

도움이 되었습니까?

해결책

이것에 대한 나의 초기 느낌

1) 어휘 폐쇄 나 매크로가없는 정적으로 유형 된 언어가있는 경우 객체 지향 프로그래밍은 흥미 롭습니다. 어느 정도는 이러한 제한 사항을 중심으로하는 방법을 제공합니다. (Greenspun의 열 번째 규칙을 참조하십시오.)

GO는 기능 리터럴을지지합니다 (참조 문서)이 글을 올바르게 읽으면 기능을 다른 곳에 정의하든 Ad-Hoc를 생성하든 함수를 매개 변수로 전달할 수 있습니다.

2) 객체 지향 프로그래밍은 소프트웨어 작성 방식에 적합하기 때문에 대기업에서 인기가 있습니다. 대기업에서는 소프트웨어가 평범한 프로그래머로 구성된 대규모 (그리고 자주 변화하는) 팀에 의해 작성되는 경향이 있습니다. 객체 지향 프로그래밍은이 프로그래머에게 징계를 부과하여 중 하나가 너무 많은 손상을 입지 않도록합니다. 가격은 결과 코드가 프로토콜로 부풀어 오르고 복제로 가득 차 있다는 것입니다. 소프트웨어가 어쨌든 부풀어 오르고 복제로 가득 차 있기 때문에 대기업의 가격은 너무 높지 않습니다.

이 시점은 주관적으로 대답하기까지는 멀리 있습니다.

3) 객체 지향 프로그래밍은 작업처럼 보이는 많은 부분을 생성합니다. 팬 폴드 시대에, 페이지에 5 ~ 10 줄의 코드를 넣을 프로그래머 유형이 있었는데, 정교하게 형식적인 주석은 20 줄 앞에있었습니다. 객체 지향 프로그래밍은이 사람들의 균열과 같습니다.이 모든 스캐 폴딩을 소스 코드에 바로 통합 할 수 있습니다. LISP 해커가 목록에 기호를 푸시하여 처리 할 수있는 것은 클래스와 메소드의 전체 파일이됩니다. 따라서 자신이나 다른 사람에게 많은 일을하고 있다고 확신하고 싶다면 좋은 도구입니다.

Go는 진정으로 객체 지향적 인 언어가 아니기 때문에, 당신은 당신이 편안하게 편안한 Fashon에서 문제를 해결할 수 있습니다.

4) 언어 자체가 객체 지향 프로그램 인 경우 사용자가 확장 할 수 있습니다. 글쎄요. 또는 객체 지향 프로그래밍의 하위 개념을 LA Carte로 제공함으로써 더 나은 일을 할 수 있습니다. 예를 들어 과부하는 본질적으로 클래스와 관련이 없습니다. 우리는 볼 것입니다.

GO는 큰 물체 나무를 걱정하거나 개발할 필요가없는 물체에 대한 흥미로운 접근 방식을 가지고있는 것 같습니다. 순수한 객체 지향 환경에 당신을 잠그지 않고 객체 지향적 인 방식으로 데이터를 구조화하기 위해 도구가 언어로 존재하는 것처럼 보입니다.

5) 객체 지향 추상화는 시뮬레이션 및 CAD 시스템과 같은 특정 종류의 프로그램의 도메인에 깔끔하게 매핑됩니다.

...

다른 팁

바울은 몇 가지 흥미로운 점을 가지고 있습니다. 일반적으로 나는 그의 많은 생각을 많이 읽었습니다. 이 문제에서 우리는 동의하지 않습니다. 그는 Lisp 너트이고 엉터리 프로그램 너트입니다. 그는 훌륭한 프로그래머의 작품으로서 프로그램을 이해하기 어려운 것으로 보인다. 그렇습니다. 나는 그것이 그것보다 더 미묘한 것으로 알고 있지만, 그것은 실제로 그 것으로 보입니다. 하루가 끝나면 코드가 쉽게 작업하거나 그렇지 않습니다. 그리고 Paul이 위대하다고 생각하는 프로그래머 인 일부 프로그래머는 다른 것보다 더 많은 쓰레기를 견딜 수 있고 코드의 의도가 무엇인지에 대한 머리 나 꼬리를 만들 수있을 것입니다. 그것은 기술이지만 가장 확실하게 좋은 프로그래머가 필요로하는 유일한 것은 아닙니다.

아크에 관해 말하면, 그것은 짜증나고, LISP 커뮤니티의 사람들조차도 그렇게 생각하지 않는 한, 여기서 내 요점은 똑똑한 사람들조차도 실수를한다는 것입니다.

다시, 바울은 똑똑한 사람이지만,이 특정 작품에서 그의 전체 접근 방식은 그 표를 벗어났습니다.

하지만 기다려야합니다. 정말 객체 지향적입니까? 그것은 그 앞에서 전적으로 불가지론적인 것 같습니다. GO 내에서 OOP 또는 FP 또는 명령형 프로그래밍을 사용할 수 있습니다. 내 말은, 프롤로그 스타일의 "프로그래밍"은 늘어날 것이지만 그렇지 않으면 ...

사실, 나는 이와 관련하여 Scala와 비슷하다고 주장 할 것입니다. 몇 가지 대상 패러다임이 있고 있지만, 람다와 유형이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top