정적으로 유형이 지정된 웹 스크립팅 언어가 있습니까? [닫은]


12

웹 서버 백엔드를 설정하는 두 가지 주요 방법이 있습니다. PHP 나 Python (또는 P로 시작하지 않는 Ruby 또는 JavaScript)과 같은 서버 측 코드와 함께 LAMP 스택을 사용할 수 있습니다. 이러한 스크립팅 언어는 다음과 같은 단점이 있습니다. 동적으로 입력 된 언어가 가져 오는 성능, 정확성 및 유지 관리 능력은 모든 페이지 생성 논리가 외부 스크립트에 저장되므로 서버를 쉽게 업데이트 할 수 있습니다.

널리 사용되는 다른 주요 아키텍처 스타일은 페이지 생성 로직이 컴파일 된 코드로 작성된 ASP.NET입니다. 이것은 정적으로 유형이 지정된 언어를 사용하는 경향이 있으므로 컴파일러의 이점이있는 코드를 얻을 수 있지만 모든 페이지 생성 논리가 서버로 컴파일되므로 변경해야 할 경우 서버를 중단하고 서버를 종료해야합니다. 새로운 빌드로 교체하십시오.

그래서 궁금합니다. 정적 타이핑을 사용하는 서버 측 스크립팅 언어가 있습니까?


2
Go 사용에 대해 생각해 보셨습니까 ?
pswg


4
"동적으로 유형화 된 언어가 가져 오는 성능, 정확성 및 유지 관리 능력의 모든 단점" 이러한 주장은 가장 논란의 여지가 있지만 최악의 경우 잘못되었습니다 (현재 가장 빠른 JIT는 동적으로 입력되는 언어에 대한 것입니다).
Javier

2
"페이지 생성 로직이 서버로 컴파일됩니다. 즉, 무언가를 변경해야 할 경우 서버를 중단하고 새로운 빌드로 교체해야합니다." 서비스 중단없이 새 바이너리로 핸드 오버 할 수있는 몇 가지 서버 환경이 있습니다. 즉. uWSGI 우아한 재 장전
Javier

1
JVM에는 재 컴파일 및 핫 스왑을 즉시 수행 할 수있는 몇 가지 프레임 워크가 있습니다.
back2dos

답변:


8

업데이트 : 최신 솔루션에는 AtScript가 포함됩니다.

Google Dart를 사용해보십시오 .

선택적인 타이핑이 있습니다. 즉, 런타임시 개발자 모드에서 '확인 됨'으로 확인할 유형 주석을 추가 할 수 있지만 필수는 아니며 언어는 파이썬과 같은 다른 동적 언어의 많은 이점을 제공합니다. 그러나 편집기는 오류를 미리 찾기 위해 형식 유추를 수행합니다. 다트 VM은 빠르며 스냅 샷을 생성하여 시작 시간을 최대 10 배까지 단축 할 수 있습니다. 또한 자바 스크립트로 컴파일되며 빠릅니다 .

여기서 주요 단점은 다소 새로운 기술이므로 라이브러리가 많지 않으며 솔직히 자바 스크립트와의 상호 운용성이 그렇게 간단하지 않다는 것입니다. 또한 언어는 아직 개발 중이므로 수시로 변경 사항이 적용됩니다.


오히려 TypeScript를 권장합니다. 다트와 비슷하지만 JavaScript와 호환됩니다.
Knerd

4

귀하의 질문은 몇 가지 잘못된 가정에 근거합니다.

Python, Ruby는 모두 실행 전에 바이트 코드로 컴파일됩니다. 프로세스는 자동이지만 응용 프로그램을 변경하려면 전체를 다시 시작해야합니다. Node.JS는 동일한 방식으로 작동하지만 머신 코드로 컴파일됩니다.

ASP.NET 코드는 미리 컴파일되어 서버에 복사되거나 요청시 서버의 소스 코드에서 동적으로 컴파일 될 수 있습니다. IIS는 다운 타임없이 두 가지 업데이트 형식을 모두 처리합니다 (업데이트 후 첫 요청이 느려질 수 있습니다).

이를 바탕으로 .NET 언어에 만족할 것이라고 생각합니다.


3
스크립팅 언어는 파일에 비트를 작성하여 실행할 수있는 경우입니다. 정적으로 입력하지 않아야 할 이유가 없습니다.
Florian Margaine

@FlorianMargaine C 는 스크립팅 언어입니까?

@delnan C ++ 도.
mikerobi

@mikerobi 실제로 "mine"은 C ++이기도합니다 (그리고 CINT의 후계자 인 AFAIK). 나는 그 비트를 망쳤습니다.

2
@mikerobi picoc을 살펴보면 처음에 작성된 요점은 스크립팅 언어라는 것을 알 수 있습니다. 그것은 단지 c에 대한 인터프리터 일뿐만 아니라 더 큰 응용 프로그램과 장치에 내장 될 수있을 정도로 작은 인터프리터이며, 사용자에게 c에 작은 스크립트를 작성할 수있는 기능을 제공합니다. 일부 언어는 다른 언어보다 스크립팅이 더 나을 수 있지만, 언어가 아직 사용되지 않아서 스크립팅에 나쁘지는 않습니다. 하루가 끝나면 언어는 구문과 의미에 불과하며 구현 방식이 크게 다를 수 있습니다.
yannis

0

컴파일 된 언어를 강력하게 입력하거나 업데이트하기 어려운 이유는 없습니다.

Cowboy, Webmachine 및 질소와 같은 일부 erlang 웹 설정을 살펴볼 수 있습니다. erlyzer를 사용하면 정확성을 검사 할 수있는 아주 좋은 유형 검사를 할 수 있으며, erlang은 기존 사용자를 방해하지 않고 소프트웨어를 업그레이드 할 수 있도록 런타임에 모듈을 즉시 다시로드 할 수 있습니다.

또한 webmachine (내가 가장 많이 사용한 것)은 매우 빠릅니다. 웹 머신이 아마존 EC2 소형 노드에서 10ms 미만의 API 엔드 포인트에 대한 평균 응답을 보았습니다!

정적 입력을 원하면 Haskell 언어를위한 Yesod 프레임 워크를 사용해보십시오 . Haskell은 매우 풍부한 형식의 시스템으로 강력하게 형식화되었습니다.

나는 그것을 개인적으로 사용하지 않았지만 그것을 사용하는 사람들은 그것을 좋아합니다.


3
강력하고 정적 인 타이핑을 혼동하지 마십시오. Haskell에는 강력한 정적 유형이 있고 Python에는 강력한 동적 유형이 있습니다.
mikerobi

0

정적으로 유형이 가장 좋은 웹 스크립팅 언어 인 IMHO는 D 입니다.

해석 된 스크립팅 언어와 마찬가지로 스크립트를 빠른 속도로 빠르게 컴파일 할 수 있습니다.

언어 자체는 강력한 형식의 초강력 JavaScript로 느껴지며 Go 예를 들어 훨씬 강력합니다.

PHP와 같이 모든 동시성 기능은 숨겨져 있으며 템플릿은 기본 코드로 컴파일됩니다.

그보다 더 잘 찾기 어렵다 ...

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