2010-01-23 3 views
5

저는 항상 프로그래밍 언어를 작성하고 디자인하는 데 관심이있었습니다. 물론, 일자리의 일부로 프로그래밍 언어를 작성할 수있는 고용주를 찾는 것은 꽤 어렵습니다. 그래서 나는 "차선책"을 찾고 있습니다.프로그래밍 언어에 관심이 있습니다. 나에게 어떤 프로그래밍 영역이 좋은가?

어떤 프로그래밍 분야에서 관련 문제를 해결할 수있는 경험이 있습니까? 또는 어떤 종류의 고용주가 내 작은 작은 통역사를 모두 관련 경험으로 볼 가능성이 가장 높습니까?

+6

세상에서 정말 다른 프로그래밍 언어가 필요합니까? –

+4

@Madi - 네, 세계는 더 많은 프로그래밍 언어를 필요로합니다. 물론 당신의 논쟁은 이미 완벽한 프로그래밍 언어가 존재한다는 것입니다 (나는 열렬히 동의하지 않을 것입니다). –

+3

다음 질문은 당신이 완벽한 프로그래밍 언어를 만들 것이라고 확신합니까? :) –

답변

2

나는 지난 10 년간 임베디드 프로그래머로 일해 왔습니다. 그 전에는 20 년 동안 컴파일러 (및 어셈블러, 링커, 디버거 등)를 작성했습니다.

동료들이 모든 문제를 구문 분석 문제로 전환한다고 농담합니다. 그리고 그들이 옳다. 나는 내 경력 과정에서 여러 번 언어 디자인에 적합한 기술을 사용했다.

오늘, 나는 주변에있는 컴파일러 도구들을 가지고 놀았습니다 : http://ellcc.org. 그것은 내 언어 가려움을 긁어내는 데 도움이됩니다.

+0

호기심에서 벗어나서 모든 문제를 파싱 문제로 바꾸는 방법은 무엇입니까? –

+1

매일 프로그래밍에서 반드시 완전한 언어는 아닐 수있는 많은 것들을 구문 분석 할 수 있습니다. 데이터 파일, 명령 행, 기호 표, 디버깅 정보, 통신 프로토콜 등 컴파일러 작성자의 도구는 많은 프로그래밍 문제에 유용 할 수 있습니다. –

4

없음. 이 분야의 많은 전문가들은 생존을위한 언어를 설계하지 않고 기존 컴파일러를 새로운 (일반적으로 임베드 된) 대상으로 재 지정하거나, 레거시 코드 용 source2source 변환 시스템에서 작업하여 프로세스에서 몇 가지 언어 확장을합니다.

매우 운이 좋은 장면 외에이 산업에 참여할 때 취할 행동에 대한 현실적인 전망이기 때문에 자신이 원하는지 직접 물어야합니다.

큰 공용 도구 체인 산업은 현재 그다지 수익성이 좋지 않으며 30 년 동안 프로그래밍 언어를 작성한 후에 좋은 100 개 언어가 대규모 pulbic 사용에 있으며 지속적으로 유지된다는 것을 기억하십시오.

나는 이것이 매우 어둡다는 것을 알고 있지만 낭만적 인 취미 자의 견해를 걷어 내고이 분야의 실제 세계가 어떻게 보이는지 연구하기를 희망합니다.

또한 개인 소유의 작은 취미 프로젝트는 실제로 사전 작업이 아닙니다. 당신은 당신이 스스로 작은 통역사를 만들 수있는 것보다 더 큰 팀의 프로젝트에서 일할 수 있다는 것을 보여줄 필요가 있습니다. 학교에서

  • 숙박 및 CS 학사 (바람직하게는 마스터 또는 PHD)를 얻을 : 당신이 정말이 추구하고자하는 경우에, 나는 권하고 싶습니다.
  • 필드의 중요한 프로젝트에서 작동하는 일부 opensource 팀에 가입하십시오. gcc뿐만 아니라 Java 세계, Tracemonkey (Mozilla), Mono 등이 있습니다. 실제 시나리오에서 검증 가능한 경험은 매우 중요합니다.
+0

나는 반드시 당신과 의견이 다를뿐만 아니라 모든 회사가 대규모 기고를 찾지는 않습니다. 사실, 초기 단계의 신생 기업들은 독립적으로 일할 수있는 사람을 선호합니다. 즉, 나는 다른 사람들과 함께 프로젝트 *에서 일하는 데 더 많은 시간을 할애 할 수 있다는 당신의 요지를 본다. –

+0

물론, 이미 가정 된 특정 레벨 (학사, 석사) 이상, 독특한 플러스가 아닙니다. –

+0

학위가 당신이 다른 사람들과 일할 수 있다고 말하고 있습니까? 나는 동의하지 않는다. 사람들이 아닌 다른 학생들과 함께 일할 수 있습니다. –

3

나는 언어 설계, 컴파일러 등에 초점을 맞춘 고급 학위를 수강하는 것이 가장 좋은 방법이라고 생각합니다. 거리에서 걸어가는 것은 매우 어려울 것입니다. 개인 회사에 가입하고 새로운 언어 기능을 별도로 작성하기 시작했습니다.

당신은 조금 더 높고 혼자서도, 작은 팀과 함께, 단지 작은 인터프리터 이상의 것을 만들어 낼 수 있습니다. 잠재적 인 고용주에게 유용한 것을 만들어 낼 수 있음을 보여주십시오.

7

언어 디자인에 관심이 없으면 박사 학위를 받으십시오. 연구 분야로 삼으십시오. 모든 방식의 무익한 활동을 지원하기 위해 학계에 의지 할 수 있습니다.

+2

하지만 저는 이것을 권장하지 않습니다. 학계의인지 적 자유는 다른 많은 자유를 포기해야만 얻을 수 있습니다. (저는 예전에 수학 교수였습니다.) –

+0

예를 들려 줄 수 있습니까? 다른 자유는? –

+1

글쎄, 왜 내가 교수가 아니냐고 물어보십시오. 또는 영국 대학의 쇠퇴와 쇠퇴. 1997 년에 교수직을 그만 둔 교수가 작성한 영국 대학의 학문적 기후와 그 이유 대학은 꾸준히 1989 년 이래로 점점 더 황량 해 졌기 때문에 (1989 년에 그만 뒀습니다 ... 그리고 기뻤습니다!) http://www.lambdassociates.org/blog/decline.htm – martinwguy

2

실제로 시각적 프로그래밍으로 진행되는 작업이 상당히 있습니다. 우리가 알고 있듯이 이것은 정확히 전통적인 프로그래밍 언어가 아니지만 그것을 필요로합니다. 예를 들어, 많은 고급 데이터 분석 도구는 비주얼 프로그래밍 도구 (Pentaho)에 의존합니다. 시각적 프로그래밍의 실용적인 용도를 찾기에는 너무 어려워 보이지 않습니다.

시각적 프로그래밍 언어를 사용하려면 해당 지역의 고문과 함께 고급 학위를 취득해야합니다. 당신은 프로그래밍 언어에 추가로 인간 컴퓨터 상호 작용/인터페이스 작업을해야 할 것입니다.

1

학계에 거주하십시오. 새로운 언어를 개발하고 싶다면 그렇게하기 위해 돈을받을 가능성은 거의 없습니다. 더 새로운 언어는 새로운 문제 영역의 표현 인 경향이 있으며 (a) 새로운 문제가 경치의 일부이고 (b) 아무도 실제로는 생활.

시간을 가져주십시오. 구직 개발자로 말하면, 내가 배울 수있는 또 다른 비난의 언어가 있습니다 :-)

1

정적 분석에는 할 일이 많이 있으며 문제는 자신에게 흥미로운 문제와 관련이 있습니다.

2

복잡한 '도메인'(즉, 복잡한 업계)을 보유한 고용주는 '도메인 전용 언어'를 활용할 수 있습니다.

그들은 이것을 깨닫게됩니까? 있을 것 같지 않게. 그들은 목표로 삼는 언어가 진흙을 unclog 도움이 될 수 있는지 확인하기 위해 너무 깊은 도메인 (및 기존의 시스템을 확보)에 갇혀있을 가능성이 높습니다.

그러나 풍부한 산업 지식을 얻기 위해 복잡한 산업에 몸을 숨기면 자신의 밑거름 DSL로 전환 할 수 있습니다. 슬림 한 기회.

1

현재 널리 사용되는 대부분의 언어는 특정 ITCH를 스크래치하기 위해 geniune NEED에서 나왔습니다. 파이썬은 C 프로그래머가 C 프로그램과 라이브러리의 입력을 커스터마이징해야하기 때문에 생겨났다. 루아는 C 프로그램에 스크립팅 언어를 포함시키기 위해 NEED에서 나왔습니다. Erlang은 99.9999999 % 가동 시간, 핫 코드로드 및 고도의 동시 실행에 대한 필요성을 해결하기 위해 작성되었습니다. Perl은 텍스트 파일을 파싱 한 프로그램을 쉽게 작성하기 위해 NEED에서 나왔습니다.

그래서 고용주가 스스로에게 물어볼 매우 간단한 질문이며 스스로에게 물어야합니다. 그 솔루션을 제공 할 수있는 NEED는 존재하지 않습니다. 취미 작업은 NEED에 솔루션을 제공한다는 것을 거의 보여주지 않습니다. 휠을 다시 발명하기 위해 휠을 다시 발명하고 싶다는 것을 보여주는 대부분의 시간입니다.

관련 문제