2009-08-11 1 views
11

오늘 내 마음이 바뀌 었습니다. 나는 IE 디버그 모드에서 약간의 시간을 보냈고 평소와 같이 웹을 탐색했다. 오하이오는 많은 오류를 보았다 :) 대부분의 오류는 예상보다 다른 유형이다 (적어도 오류를 해석 할 때까지). 메시지).자바 스크립트 및 이와 유사한 스크립팅 언어는 강력한 형식의 이점이 있습니까?

JavaScript 및 유사한 스크립팅 언어가 강력하게 입력되지 않은 이유는 무엇입니까? 언어를 이해하기 쉽고 접근하기 쉽도록 만들거나, "컴파일 시간"이 부족한가?

+0

당신은 아마 답변으로 의견을 게시한다 - 사람 (DIS)가 – karim79

+0

해명에 동의하는 강도 측정하기 : 보라 자바 스크립트 나 다른 동적 언어를 구문 분석에서 당신을 중지 아무것도 없다. 당신이 말하는 것은 의미 론적으로 파싱 된 텍스트를 평가하는 것입니다. – JaredPar

+0

답변으로 내 자신의 의견을 추가했습니다. 그리고 Jared, 브라우저 환경을 가정하면, 내가 아는 어느 누구도 그렇게하지 않습니다 (적어도 내 지식이 아님). 강력한 형식의 스크립팅 언어를 사용했다면 강요 당하게 될 것입니다. :) – cwap

답변

15

확실히 강력한 타이핑이 있어야합니다. . Actionscript 3은 강력하게 형식화되었지만 동적 객체가 필요한 경우 프로토 타입 상속과 와일드 카드 유형을 가지고 있습니다.

해당 기능을 사용할 수있는 단점이 없으며 중간 크기에서 큰 크기의 프로젝트에 대해 강력한 타이핑으로 인해 많은 문제가 발생하지 않습니다. 이 기능을 최대한 활용하려면 오류를보고하고 자동 완성 옵션을 제공 할 수 있도록 IDE 지원이 필요하지만 실제 클래스와 강력한 입력이 있으면 Javascript는 완전히 새로운 세상에 있습니다.

+0

+1 "추가시 해를 끼쳤다"; 그것을 원하지 않는 사람들은 그것을 사용할 필요가 없습니다. –

+0

6 년이 지난 지금, Javascript가 실제 수업을하는 것과 매우 가깝습니다. 그러나, 나는 강한 타이핑에 대해 너무 확신하지 못합니다. –

1

내 자신의 의견 : 스크립트를 실행하기 전에 구문 분석 할 수 있습니다. 이것은 대부분의 타입 에러를 잡을 것이고, 사용자가 부분적으로 실행 된 스크립트 종료 결과를 볼 필요가 없다는 것을 의미합니다. 심지어 파서가 있으면 디버그하는 것이 훨씬 더 쉽습니다.

2

입력하지 않아도 유연성을 얻을 수 있습니다. 나는 개인적으로 약하게 입력 된 언어를 즐긴다.

그래서 대답은 장점과 단점이있을 것입니다.

브라우저에서 강력한 형식의 언어를 원하면 GWT 및 스크립트 #을 사용할 수 있습니다.

+0

나는 그들이 자동으로 예방할 수있는 오류의 전체 클래스를 소개하면서 유연함을 말하는 것이 아니라 추가 기능을 추가하지는 않습니다. 해당 함수를 전달한 객체가 필요한 메서드를 지원한다는 보장을 할 수 있지만 해당 코드 행이 실행되지 않으면 알 수 없습니다. – weberc2

0

저는 ActionScript 2에서 eLearning을위한 빠른 프로토 타입 프레임 워크를 빌드합니다. 가장 큰 불만은 AS2가 강력하게 입력되지 않았기 때문에 디버깅 할 때 많은 어려움을 겪습니다. 강하게 타이핑하는 것은 코드를 읽기 쉽게 만든다고 생각합니다. 필자는 약한 형식의 언어가 더 많은 유연성을 제공한다고 생각합니다.

내가 다시 돌아와서 6 개월 전에 쓴 코드에서 도대체 무슨 일이 일어나는지 알아야 할 때 가독성에 더 의지했다.

+1

AS2는 강력하게 형식화됩니다. 변수 뒤에 형식을 지정하면됩니다. 예 : var vector1 : Vector – Marius

1

저는 대부분의 스크립팅 언어의 약한 유형을 좋아합니다. 성능을 위해서뿐만 아니라 강력하게 형식화되기를 원하는 유일한 이유는 도구가 약한 언어보다 강력한 형식의 언어를 리팩토링하는 것이 더 쉽다는 것입니다.

+0

또한 강력한 형식 지정은 전체 클래스의 오류를 제거하는 것으로 보이며 개체가 지원하는 메서드를 쉽게 기억할 수있게합니다. Javascript를 사용하면 같은 유형의 두 객체가 완전히 다른 메소드를 가질 수 있습니다. 야! – weberc2

2

자바 스크립트 및 이와 유사한 스크립팅 언어는 강력한 입력의 이점을 줍니까?

형 시스템 자바 스크립트 2.0의 모든 수있는 값의 하위 집합으로 간주 할 수있는 유형, 의 개념을 지원합니다

예, 그들은 것, JavaScript 2.0type system가 소개합니다. Object, Number 및 String과 같은 일부 기본 제공 유형이 있습니다. 각 사용자 정의 클래스 (섹션 6) 도 유형입니다.

또한 참조 : http://timkadlec.com/2008/04/an-objective-look-at-javascript-2-0-strong-typing/

을 일반적으로 강한 입력에 대한 지원은 컴파일에 대한 많은 흥미로운 기회를 제공하고, 최적화를 전달합니다.

0

Microsoft는 타이프 스크립트를 사용하는 동안 문제를 강력하게 해결하는 데 많은 시간을 할애했습니다.

http://www.typescriptlang.org/