나는 Perl을 가장 잘 알고 있으므로 그것을 고를 것이다.
펄은 많은 아이디어를 시도했다. 일부는 좋았습니다. 일부는 나빴다. 일부는 독창적이며 합당한 이유로 널리 복사되지 않았습니다.
하나는 컨텍스트 라는 개념입니다. 모든 함수 호출은 목록 또는 스칼라 컨텍스트에서 발생하며 각 컨텍스트에서 완전히 다른 작업을 수행 할 수 있습니다. http://use.perl.org/~btilly/journal/36756 에서 지적했듯이 이것은 모든 API를 복잡하게 만들고 종종 Perl 코드에서 미묘한 디자인 문제를 유발합니다.
다음은 구문과 데이터 유형을 완전히 묶는 아이디어입니다. 이는 객체가 다른 데이터 유형으로 가장 할 수 있도록하는 넥타이의 발명으로 이어집니다. (과부하를 사용해도 동일한 효과를 얻을 수 있지만 Perl에서는 타이가 더 일반적입니다.)
여러 언어로 인한 또 다른 일반적인 실수는 어휘보다는 동적 범위 지정을 제공하는 것입니다. 이 설계 결정을 나중에 되 돌리는 것은 어렵고 오래 지속되는 사마귀로 이어집니다. Perl에서 이러한 사마귀에 대한 일반적인 설명은 http://perl.plover.com/FAQs/Namespaces.html 입니다. 이것은 Perl이 our
변수와 static
변수를 추가하기 전에 작성되었습니다 .
사람들은 정적 입력과 동적 입력에 대해 합의에 동의하지 않습니다. 나는 개인적으로 다이나믹 한 타이핑을 좋아합니다. 그러나 오타를 잡을 수 있도록 충분한 구조를 갖추는 것이 중요합니다. Perl 5는이 작업을 엄격히 수행합니다. 그러나 Perl 1-4는 이것을 잘못 알고 있습니다. 다른 여러 언어에는 엄격한 것과 동일한 기능을하는 린트 체커가 있습니다. 보푸라기 검사를 시행하는 것이 좋다면 가능합니다.
더 나쁜 아이디어 (많은 아이디어)를 찾고 있다면 PHP를 배우고 그 역사를 연구하십시오. 내가 가장 좋아하는 과거의 실수 (많은 보안 허점으로 인해 수정되었습니다)는 기본적으로 양식 매개 변수를 전달하여 변수를 설정할 수 있도록 기본 설정되어있었습니다. 그러나 그것은 유일한 실수와는 거리가 멀다.