소규모 또는 틈새 언어에 대한 학습을 ​​귀찮게해야합니까? [닫은]


22

StackExchange 에서 코드 골프 질문 을 찾아 보면 F # , Scala , R , JClojure 와 같은 비표준이지만 실제 언어 (예 : brain-f * ck가 아님)가 많이 나타납니다 . 웹 사이트를 방문하면 일부 언어는 이미 사용중인 언어의 문제를 해결하는 데 흥미로워 보입니다.

그러나 여가 시간에는 코딩이 필요하고 돈은 코딩됩니다. 언어를 사용하는 사람에 대해 진실과 가장 가까운 것은 TIOBE Index로 , 상위 10-15 개 언어에는 위의 언어 중 어느 것도 나열되어 있지 않습니다. 내가 그들을 사용할 것인지 궁금해합니다.

작은 틈새 언어를 배우는 것을 귀찮게해야합니까? 돈을 버는 것 같지 않으며 어쨌든 실패 할 것입니다.


4
당신이 신경 쓰는 것이 돈을 버는 것이라면 왜이 질문을합니까?
ChaosPandion

4
F #은 VS2010의 최고급 언어입니다. 나는 그것이 비표준이라고 말하지 않을 것이며, 그것이 곧 널리 채택 될 것이라고 생각합니다.
Brian R. Bondy

8
당신이 원하는 모든 돈을 버는 것이라면, 프로그래밍에서 벗어나는 것이 좋습니다. 인기있는 여배우가되는 것은 어떻습니까?
P Shved

2
@ TheLQ : 당신은 주류가되고 싶어? 당신은 당신이 그것을하기 전에 얼마나 많은 돈을 가져올 지 모르는 어떤 조치를 취하는 것을 두려워합니까? 그런 다음 주급도 만족하십시오. 이것이 있다면, 당신이 당신의 정신으로 얻을 수있는 전부입니다.
Ingo

1
일부 틈새 언어는 생산성을 높여 주류 언어보다 더 많은 돈을 벌 수 있습니다.
조르지오

답변:


25

Sapir-Whorf 가설 . 당신이 생각할 수있는 것은 설명 할 언어가있는 것에 의해 제한된다고 말합니다. 그 결과 다국어 사용자가 단일 언어 사용자가 할 수없는 방식으로 생각할 수있게되었습니다.

많은 사람들 (자체 포함)은 이것이 프로그래밍에도 해당한다고 생각합니다. 예를 들어 Learning Lisp은 C #, Java 또는 Python에 적용 할 수있는 문제에 대해 완전히 새로운 사고 방식을 알려줍니다. 학습 한 언어 패러다임이 많을수록 실제로 사용하는 언어에 관계없이 더 많은 도구가 정신 도구 상자에 포함됩니다.


1
정확하게. 예를 들어 어떤 상황에서는 순전히 기능적인 언어로는 충분하지 않다는 것을 알았습니다. 그러나 함수 프로그래밍을 지원하는 언어 (예 : javascript, c ++ 0x 등)에서 기능 개념을 계속 사용하고 있습니다.
Cam

4
나는 사람들이 Sapir-Whorf 가설을 (언어학에서는 완전히 신뢰할 수는 없지만) 계속해서 유사하게 사용한다는 것을 즐긴다. 나는 프로그래밍에 관한 정서에 분명히 동의하지만, 사람들이 우리를 진지하게 받아들이기를 원한다면 다른 비유가 더 잘 발견되었다고 생각합니다.
Jonathan Sterling

1
나는 가설을 믿지 않는다. 그렇지 않으면 우리는 결코 그런 식으로 넘어 가지 않았을 것이다. 프로그래밍과 마찬가지로 사람들이 언어에 의해 제한을받는다고 생각하지 마십시오.
John Smith

24

나는 결코 전에 본 적이없는 개념과 패러다임을 소개하는 언어를 배울 것입니다. 그래서 하스켈과 체계를 배웠습니다. 그들은 각각 함수형 프로그래밍과 대부분 함수형 프로그래밍을 소개했습니다. 나는 그것이 사용 가능한 문서와 리소스에 어떻게 영향을 미치는지 제외하고 체계와 하스켈이 널리 사용되었는지 여부를 덜 신경 쓰지 않았을 것입니다.

따라서 기본적으로 작은 틈새 언어가 새로운 개념 과 패러다임 (특히 다른 언어에 적용 할 수있는 개념)을 소개한다면 배우십시오!

'작은 / 틈새'언어를 배우고 싶은 다른 이유 :

  • 이 언어를 사용하면 다른 언어보다 특정 (유형) 문제 '더 나은'(빠른, 더 나은 솔루션, 더 이식 가능한 등) 문제를 해결할 수 있습니다

  • 이 언어를 사용하면 인기있는 언어뿐만 아니라 문제를 해결할 수 있지만 원하는 멋진 기능 (예 : clojure)이 있습니다.

  • 언어 개발을 돕고 싶습니다

7

글쎄, 나는 Clojure (당신이 언급 한 "틈새 언어들"중 하나)를 사용하고 있으며 그것이 매우 가치있는 경험이라는 것을 발견했다.

  • 훨씬 더 생산적이었습니다 (주로 이전에 주로 사용했던 Java 및 C #). 내 사업을 운영함에 따라 생산성은 돈과 같습니다 :-) 그런 의미에서 Clojure는 적어도 내 관점에서 이미 성공했습니다.
  • 나는 더 나은 개발자 (특히 동시성, 함수형 프로그래밍, 추상화, 메타 프로그래밍 등)를 만드는 새로운 기술을 배웠습니다. Java 작성으로 되돌아가도 여전히이 지식을 잘 활용할 수 있습니다.
  • 이전에 해본 것과는 다른 새로운 언어를 배우는 것이 정말 즐거웠습니다. 실제로 자신이하는 일을 즐긴다면 그 자체로 가치가 있습니다.
  • JVM 언어이므로 Java / JVM 에코 시스템의 전체 라이브러리 세트에 계속 액세스 할 수 있으므로 라이브러리 세트가 상대적으로 작은 지 여부는 중요하지 않습니다. 이것은 JVM에서 실행되는 언어의 경우 이점입니다 (Scala에도 동일하게 적용됨)

나는 개인적으로 TIOBE와 같은 것에 관심을 기울이지 않았다. 과거에 인기가 있었던 것 이상을 실제로 말하지는 않는다. 오래된 시스템을 유지 관리하는 직업을 원할 경우 유용 할 수 있으며, 시야를 넓히고 배우고 싶을 때는 덜 유용합니다.


4

틈새 언어를 공부하는 이유는 돈을 위해 또는 다른 방식으로 직접 사용할 것이라는 기대가 거의 없습니다. 일반적으로 프로그래밍의 새로운 측면이나 스타일을 배우는 것입니다. 그렇게하면 "프로덕션"코드를 생성하기 위해 해당 언어를 사용하지 않더라도 더 나은 프로그래머가 될 것입니다.


4

틈새 언어로 전문 개발자라고 말하면 생계를 유지할 수 있습니다. 그러나 단점과 단점이 있습니다.

어려운 것들 :

  • 직업을 찾는 데 시간이 오래 걸립니다
  • 직업은 당신이 이사를 요구할 가능성이 더 높습니다
  • 당신은 주류 프로그래머로부터 거의 존경을받지 못할 것입니다 (따라서 더 많은 저항).

더 쉬운 것 :

  • 작은 프로그래머 풀로 작업 경쟁 이 쉬워집니다.
  • 해당 분야의 모든 중요 프로그래머를 알 수 있습니다
  • 주류보다 평판 개발이 더 쉽다

그냥 있는 것들 :

  • 표준이 거의 없기 때문에 급여는 더 가변적 인 경향이 있습니다
  • 틈새 시장의 강점과 약점에 대해 다른 사람들을 교육하는 데 많은 시간이 소요됩니다

전반적으로, 직업이 당신의 관심사라면, 당신은 절대로 한 트릭 조랑말, 주류 또는 틈새가되어서는 안됩니다.


2

나는 현재 하루 중 대부분의 시간을 C 또는 PHP (때로는 C #)로 프로그래밍하고 내 시야를 넓히고 싶기 때문에 Ruby를 사용하여 Project Euler 문제 를 해결 하고 있습니다. 지금까지 실제로 할 수있는 일에 눈을 뜨게되었습니다. "실제"작업에 절대 사용하지 않더라도 그것에 대해 배우는 데는 시간이 가치가 있다고 생각합니다.


프로젝트 오일러 +1 나는 파이썬을 배우는 동안 똑같이했다

1

언급 된 모든 사항에 동의하십시오. 틈새 언어를 배우는 또 다른 동기는 언젠가는 언어가 매우 인기를 얻게 될 가능성입니다. 이러한 상황에서, 언어에 대한 초기 투자는 영향력있는 프레임 워크와 미래에 수요가 높은 언어 요소에 대한 연구로 이어질 수 있습니다.

언어가 대중화되면 이미 그 언어에 능숙 할 것이므로 수요가 많습니다.

낮은 확률, 잠재적으로 높은 보상.


2
개인적으로 저는 항상 언어보다는 개념을 배우려고 노력할 것입니다. 당신이 의미하는 바를 아는 경우 제한된 뇌 공간.
ChaosPandion

1

다른 사람들이 거의 말했듯이 틈새 언어를 배우는 것은 틈새 언어이기 때문에 의미가 없습니다. 그러나 종종 틈새 언어는 주류 언어가 감당할 수 있거나 원하는 것보다 더 깊이있는 개념을 탐구합니다.

때로는 틈새 언어가 주류 언어 인 스몰 토크, 프롤로그 및 리스프 언어보다 훨씬 길어졌습니다. 그들은 인기가 없지만 사라지지는 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.