“언어 문화 역사”는 플랫폼과 어떤 역할을합니까?


15

나는 최근에 이것을 비틀 거렸다몇 년 전에 기사. 언어의 실제 차이가 아니라 VB와 C #을 둘러싼 문화의 중요한 차이는 일반적으로 VB 코더보다 더 재능있는 C # 코더에 기여한다고 주장합니다. 분명히, 그것은 많은 화염 전쟁을 일으켰으며 C # ers 또는 VBers가 바보인지에 대한 질문은 결코 대답하지 않을 것입니다. 즉, 특정 플랫폼을 둘러싼 문화가 팀의 품질에 기여하는 것은 여전히 ​​타당 할 수 있다고 주장합니다. 예를 들어, 현재 Java를 사용하여 앱을 개발하는 것이 더 효율적이지만 Google Go 개발자 팀은 Java 개발자 팀보다 평균적으로 더 높은 수준 인 것 같습니다. Go를 배우기 위해서는 개발자가 초기 얼리 어답터이자 프론티어 해킹 위스가되었습니다. 간단히 말해서하나의 플랫폼 또는 다른 플랫폼을 둘러싼 문화가 해당 플랫폼의 일반 개발자의 품질에 어떤 영향을 미치나요?


C # 대 VB.NET의 하루입니까?

@ DeveloperArt- 그건 내 의도가 아니다. 사실,이 기사가 오늘 날짜가 매우 많았 기 때문에 제가 흥미로 웠던 질문은 그 개념이 구식이 될 수 있습니다. 이 기사에서는 C # 개발자가 모두 천재 인 것처럼 보입니다. 나는 하나입니다. 그래서 나는 기분이 닿을 때 우리 모두가 조잡 할 수 있음을 알고 있습니다.
Morgan Herlocker

1
@Developer Art : 어제 그 기사를 읽었으며 여기에 답변을 게시 한 링크라고 확신합니다. 어쩌면 그것은 Plum 교수가 그것을 때리는 방식 일 것입니다. 한 C # 대 VB.NET 질문은 다른 것으로 이어집니다. :-)
Carson63000

답변:


8

정말 흥미로운 질문입니다. 내 개인적인 의견은 그것이 너무 자주 요구되고 실제로 물을 전혀 가지고 있지 않다는 것입니다.

스크립트 키디 (및 이들을 고용 한 회사)는 선택한 언어가 "프로그래머"의 시대에 자신의 지위를 지시하게합니다. 훌륭한 엔지니어 는 선택한 언어에 관심을 기울이지 않고 주어진 문제를 가장 최적의 방식으로 해결하는 데 집중합니다 (분명히 최적은 일반적인 진술이며 다양한 요인에 적용될 수 있음). 이것이 C #, VB, C ++, Python 또는 수기 어셈블리인지 여부에 관계없이 해당 기술을 사용하여 문제를 해결하는 것이 분명한 이점은 아닙니다.

간단히 말해서, 어떤 언어를 사용 하는가와는 달리 정기적으로 해결하는 문제의 복잡성을 살펴 보는 것이 더 가치 있다고 생각합니다.

주제에 대한 내 두 센트 :)


2
+1 : 또한 회사의 경계를 뛰어 넘는 VB 문화가 있다는 생각은 터무니 없습니다. 이 문화는 어떻게 저절로 보존됩니까? 직장 밖에서 VB 프로그래머들 사이의 비밀 회의? 이 "문화"를 시행하기 위해 VB 프로그래머의 "연합"또는 "길드"? 100여 곳의 IT 상점에서 30 년 동안 튀어 나온 경험을 통해 내가 본 유일한 문화는 순전히 현지화되었다고 말할 수 있습니다. 언어 선택은 질문에서 언급 된이 "다른"문화를 만들지 않습니다.
S.Lott

1
흥미 롭군 당신이 그것을 +1했다면, 누가 투표를하지
않았

1
@ S.Lott : 나는 그때 수정되었습니다 (가정의 부산물을 좋아해야합니다;). 못하는 것보다 더 많은 시간이, 사실은 때때로 도움이 될 내가 : 이전 몰랐다고있는 정보 나 제공 할 수있는 피드백을받지 않고 이들과 같은 주제에 downvotes을받은
데미안 브레히트

1
@prof : 자동화가 실제로 열등한 가요? 아니면 동일한 출력을 달성하기 위해 어떤 지름길을 더 효율적으로 수행 할 있는지 이해하기 때문에 우수하다고 생각 하십니까? :) 물론 이것은 지나치게 일반화되어 있으며 정확하게 대답하기가 거의 불가능합니다. 나는 Go 코더가 더 열정적이라는 것에 대해 일종의 울타리에 있습니다. 여전히 포트란에 대한 열정을 가진 사람들을 찾을 수 있습니다. 그것은 것입니다 , 그러나, 이동 프로그래머에 대한 추가 열정을 믿고 나를 이끌 새로운 좋은 일 이럴이 :)입니다 기술과 관행,
데미안 브레히트가

1
@Prof Plum : "플랫폼 / 언어 선택은 개발자의 평균 품질과 관련이 없습니다." 옳은. 그렇지 않으면 어떻게 될 수 있습니까? 무엇보다도 조직 의 문화가 중요합니다. Google Go 코더는 그저 사람 일뿐입니다. 조직은 VB 사람들을 제한 또는 이동을 사용하도록 권장합니다. 사람들은 모두 사람들입니다.
S.Lott

4

이러한 각 언어로 개발 된 코드 품질은 이러한 기본 철학을 기반으로하며 개별 개발자는 그렇지 않습니다

각 언어는 의제와 그들의 언어가 더 나은 될 것 이유에 대한 기본 철학을 가진 사람에 의해 이유를 위해 개발 되었기 때문에 각 언어는, 주위에 문화를 가지고 뭔가 생성 된 시점에 존재보다.

종교와 마찬가지로 프로그래밍 언어는 언어 작성자의 핵심 교장과 철학에 대해 동일한 경향이있는 사람들을 끌어들이는 경향이 있습니다.

인식 된 솔루션 품질에 대한 예

하나의 Microsoft 캠프에는 다음이 있습니다.

C # 철학은 더 순수하게 객체 지향적이며 더 현대적인 관용구를 장려하며 올바르게 수행하기 위해 더 많은 지식이 필요 하므로 더 높은 품질의 솔루션을 제공해야한다는 것입니다. 이것이 VB를 통해 사람들을 끌어들이는 것입니다.

다른 Microsoft 캠프에서 :

VB 철학은 누군가가 버튼을 클릭하고 유용하고 사업적인 가치를 지니는 방법을 그렇게 중요하지 않은 방법으로 신속하게 지식이나 노력없이 만들 수 있다는 것입니다. 이것이 C #을 통해 사람들을 끌어들이는 것입니다.

다음은 언어와 철학에 대한 혀와 뺨입니다.

펄 사람들은 파이썬 사람들이 관심을 갖고있는 것과 정반대의 것을 걱정하는 경향이 있습니다.

자바 사람들은 돈 버는 것에 관심이있다.

JVM 언어 (Groovy, Scala)는 Java 언어가 아닌 JMV를 처리합니다.

모든 Microsoft 특정 언어 (VB, C #, F #, 관리되는 C ++)는 Windows에서 돈을 버는 것에 관심이 있습니다.

Erlang 사람들은 다른 사람들이 신경 쓸 필요가없는 것들에 대해 관심을 갖고 있으며 자신이 모르는 것에 감사하지 않습니다.

Lisp 사람들은 다른 사람들이 자신이 생각하는 것에 관심이 없습니다.

이 그룹이 관심을 갖는 것은 언어, 언어 개발 및 커뮤니티를 형성합니다.

철학은 경험과 필요에 따라 변한다

1983 년 에 당신이 가진 모든 것이기 때문에 ASM과 BASIC을 채택했습니다 . 게임과 데모를 작성하고 싶었습니다. 대부분 데모 용 ASM.

3D 렌더링과 공간 및 시간이 중요한 다른 것들을 작성하는 유일한 방법 일 때 C와 C ++을 다시 채택했습니다. ASM이 아니기 때문에 그것을 배웠습니다.

나는 돈을 벌기 위해 VB를 채택했는데, 그것은 Amiga에 익숙한 Scala, Director 및 CanDo 개발 환경에 가장 가까운 것이었다. 빠른 개발 철학에 동의했습니다

더 나은 돈을 벌기 위해 Java를 일찍 채택했습니다. 나는 1999 년까지 VB로 돈을 벌었고 Java 1.2가 안정되고 성숙 해졌고 웹이 완전히 시작되었을 때 그것을 버렸습니다. 사람들이 정말로 진지하게 복용하기 시작했을 때 4 년의 Java 경험이있었습니다. 나는 한 번 쓰기에 동의했다. 코드를 더 많이 실행했을수록 더 쉽게 팔 수 있다는 점에서 어디서나 실행 했다. 철학.

나는 자바가하지 않은 가려움증을 긁기 때문에 2005 년 말에 파이썬을 채택했다. C에서만 사용할 수있는 일부 라이브러리를 사용하려면 코드를 신속하게 작성해야했으며 빠른 웹 서비스 프로토 타이핑을 수행해야했습니다 .Python은 Java에서 동일한 작업을 수행하는 더 빠르고 적은 코드입니다. Java가 파이썬을 유지하면서 무언가가 생산에 나갔습니다. 많은 것들이 결코 야생에 빠지지 않았습니다. 나는 배터리, 단일 관용구 철학 및 기타 배터리에 동의했습니다.

C ++ 및 Java 프로그램에 간단한 스크립팅 엔진을 배치해야 할 때 Lua를 채택했습니다. 이것은 Java에서 JSR233을 지원하기 전에 이루어졌습니다. 사용하기 쉬운 완전한 기능의 스크립팅 언어를 포함시키는 데 동의 한 것은 간단한 Lua 철학입니다.

2006 년 Erlang을 채택하여 고도의 병렬 문제에 대해 대규모 확장 성과 상대적으로 고통스럽지 않은 멀티 코어 실행이 필요하며 플랫폼 간 실행이 가능합니다. ** 공유 상태 없음, 메시지 전달, 불변 상태 철학에 동의합니다. * 8

OSX 및 iOS 응용 프로그램을 구축해야 할 때 Objective-C를 채택했습니다. 나는 더 나은 철학 을 만들기 위해 C에 대한 객체 지향에 대한 권리를 추가 한다는 것에 동의합니다 . 또한 더 나은 돈을 벌기 위해.

저는 CouchDB 철학에 동의하고 JavaScript를 사용하기 때문에 2009 년에 공식적으로 JavaScript를 채택했습니다. DOM을 다루어야 할 때 여전히 JavaScript를 좋아하지 않습니다.

나는 여전히 공식적으로 Lisp를 채택하지 않았지만 결국에는 갈 것입니다! 나는 lisp를 모르는 사람들은 그것을 철학 을 다시 발명하기로 정죄 받았다 .


0

실제로 흥미로운 질문입니다. 잠재 의식 수준에서 답을 이해하지만 그것을 말로 표현하려고 노력하는 사람들 중 하나입니다.

인과 관계 루프로 가장 잘 보입니다.

문화는 플랫폼에 끌리는 개발자의 "민족적"구성을 담당합니다. 그 구성은 "평균"프로그래머의 자질을 정의합니다. 현재 플랫폼을 사용하는 개발자의 품질은 외부의 문화 또는 인식에 영향을 미치므로 결과적으로 플랫폼을 사용하거나 플랫폼을 떠나는 개발자에게 영향을 미칩니다. 결과적으로 "품질"값이 변경됩니다.

특정 규칙을 찾으려고 노력했지만 일반화하기가 어렵습니다. 각 플랫폼을 별도로 조사해야합니다. 내가 한 몇 가지 관찰 :

  • 특정 플랫폼의 개발, 확장 및 개선 속도는 개발자의 품질과 직접적인 상관 관계가 있습니다. 새로운 반짝이는 기능과 도구의 끊임없는 흐름은 열정적 인 개발자 (일반적으로 더 우수한 품질의 작업을 수행 할 수 있음)를 끌어 들이고 끊임없는 학습 노력에 자극을받는 보수적 인 마음을 물리칩니다.

  • 발로 몸을 쏠 위험이 더 높아도 플랫폼이 제공하는 한계가 적어 열성적인 실험적 마음을 사로 잡습니다.

  • 플랫폼을 사용하기 위해 이해하고 숙달해야하는 것이 더 복잡할수록 해결 된 개인을 동일하게 끌어 들이고 게으른 개발자를 겁나게합니다


이 문화는 회사의 경계를 어떻게 넘어 섭니까?
S.Lott

1
@Lott Technology는 거의 항상 문화적 경계를 뛰어 넘습니다. 서로 다른 OS 사용자 간에는 문화적으로 큰 차이가 있습니다. 내가 아는 많은 그래픽 디자이너와 오디오 엔지니어는 Mac 이외의 다른 회사를 사용하는 것이 거래를 방해하는 것이라고 생각할 것입니다. 맥은이 두 그룹을 중심으로 특히 전적으로 유형의 문화를 조성했습니다. 프로그래밍 언어는 Photoshop 및 김프와 같은 도구이므로 주변에 문화가 구축되어 있다는 사실은 놀랍지 않습니다. 그렇지 않다면 화염 전쟁이 없을 것입니다.
Morgan Herlocker

@Prof Plum : 예제는 도구를 기반으로 한 "문화"에 매핑되지 않습니다. 당신의 예는 정반대입니다. 실제 문화 (오디오 엔지니어)는 공통 도구를 선택합니다. Logic Pro가 문화를 창조하기 때문에 Logic Pro의 모든 사용자가 오디오 엔지니어가되어야하는 것은 아닙니다. 귀하의 의견 (동일한 작업-> 비슷한 도구)의 예가 "언어 문화 역사"가 없다는 훌륭한 증거라고 생각합니다. 오히려 일반적인 사용 사례 문화 또는 일반적인 최종 사용자 작업 문화가 있습니다.
S.Lott
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.