Google의 Go-Language는 Paul의 Graham의 게시물 'Arc가 특히 물체 지향적이지 않은 이유'의 문제를 해결합니까?
문제
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와 비슷하다고 주장 할 것입니다. 몇 가지 대상 패러다임이 있고 있지만, 람다와 유형이 있습니다.