Angular.js 대 Elm의 장점과 단점은 무엇입니까?
브라우저에서 리액티브한 프로그래밍을 실행하여 angular.diag(http://angularjs.org/)와 Elm(http://elm-lang.org/))을 비교하려고 합니다.
각각의 상대적 이점/문제는 무엇입니까?
IMO는 가능한 한 선언적인 것이 목표이며, 「그들이 해야 할 일을 하자」는 자세를 공유하고 있지만, 다른 짐승이라고 생각합니다.
이제 Angular와 함께JS는 여전히 "익숙한" 영역에 있습니다.즉, 여기에 마크업을 쓰고, 저쪽에 JS를 쓰고, 그 다음에 서브를 하는 것입니다.통상적인 워크플로우와 동일합니다.제가 알기로는 AngularJS의 "혁신"은 HTML을 추가 요소 유형으로 확장하여 마크업에서 앱의 많은 측면과 동작을 선언하고 JS lib에는 템플릿 작성, 라우팅, 데이터 바인딩, 폼 검증, 현지화 등을 제공하는 데 필요한 기계가 포함되어 있습니다.혹시 Angular가 아닐까?JS는 약간의 비대함)으로 인해 매우 완전한 웹 앱 개발 프레임워크를 만듭니다.그리고 선언적인 스타일로 코드를 작성하도록 강요합니다.
Elm을 사용하면 새로운 영역을 개척할 수 있습니다('표준적인' HTML/JS 프런트 엔드 개발 배경의 경우).이것은 GUI를 개발하는(그리고 생각할 수 있는) 다른 방법입니다.기능 대응형 프로그래밍 방식으로 GUI를 작성하기 위해 특별히 만들어진 완전히 새로운 언어로 작성됩니다.기존의 DOM API에는 (적어도 직접적이지 않은) 대응하지 않는 것이 이상적입니다.Elm에는 그래픽스/텍스트 등을 작성 및 조작할 수 있는 툴을 제공하는 일종의 "표준 라이브러리"가 포함되어 있습니다.
Elm 언어 코드는 시간이 지남에 따라 이벤트(사용자 입력 등)가 발생했을 때 GUI가 어떤 모습과 동작을 원하는지 완전히 선언적인 방식으로 기술합니다.그런 다음 브라우저에서 실행되도록 HTML/JS/CSS로 컴파일합니다.
느릅나무도 매우 어리다.그것이 단점인지 아닌지는 당신과 당신의 필요에 따라 결정됩니다.
저는 Angular를 고르는 것 같아요.JS는 JS 세계에서 익숙한 "JS lib/framework"와 같은 오래된 프로세스입니다.lib 파일을 가져와 프로젝트에 추가한 후 API 사용을 시작합니다.반면 Elm에서는 워크플로우와 문제에 대한 솔루션에 대한 접근 방식을 달리해야 합니다.
Angular JS는 많은 구조를 제공합니다.예를 들어 Backbone.js와는 다릅니다만, 최종적으로 Angular를 사용하여 고도의 GUI와 그래픽 동작을 하고 싶은 경우JS는 Elm을 사용한다면 쓰지 않아도 될 배관 보일러 플레이트 관련 많은 것들을 다시 작성하게 되었습니다.
한편, 지금 당장 웹에서 사용하고 있는 일반적인 GUI 위젯을 사용하여 대형 웹 앱을 개발 및 출시해야 한다면, 저는 Angular를 위해 go라고 말하고 싶습니다.JS가 더 안정적이니까.
그렇긴 하지만, 엘름은 현재 프런트엔드 개발 세계에서 가장 흥미롭고 유망한 일이라고 생각합니다.또, 오늘 그래픽스 처리량이 많은 것을 개발해 발매할 필요가 있는 경우는, 매우 복잡한 GUI 처리를 코드 라인으로 실시할 수 있기 때문에, Elm을 추천합니다.하지만 먼저 이 제품의 사고방식을 살펴봐야 합니다. 그리고 이 제품은 매우 어리고 기존 JS 프런트엔드 코드베이스와 통합하는 것이 쉽지 않을 수도 있고 심지어 불가능할 수도 있습니다.
편집:
2015년 3월 현재 Elm은 훨씬 더 강력하며 이를 위한 훌륭한 툴이 있습니다(시간 여행 디버거가 떠오릅니다).
각도가 더 똑같아졌으니깐요Angular의 어프로치는 a-ton-of-things-when-a-model-changes 어프로치('2way data binding')로 브라우저 기반의 게임이나 뛰어난 성능을 필요로 하는 고도의 GUI 등에는 전혀 적합하지 않습니다.또한 Elm은 HTML로 말해야 할 때를 위해 고속 HTML 라이브러리(가상 돔 디피싱 어프로치 사용)를 갖추고 있습니다.
내가 Elm에게 불평해야 할 점은 Elm의 유형 시스템이 예를 들어 Ethernet처럼 표현력이 없다는 것이다.해스켈의.어떤 사람들은 이것이 사치를 위한 것이라고 생각할 수도 있지만, 반대로, 그것은 기본적인 기능을 표현할 수 있는 능력을 잃는 것이다.특히 숙련된 JS 프로그래머인 우리 JS 프로그래머들은 표현력이 충분하지 않은 정적 유형 시스템에 시달리고 있는데, 이는 JS에서 쉽게 표현하기 위해 사용되는 다형성 코드가 예를 들어 랭크-2 유형이 부족하기 때문에 Elm에서 유형 오류가 된다는 것을 의미하기 때문이다.
다행히 Elm에서 누락된 모든 "위시리스트" 기능은 그들과 그 대안에 대한 논의가 진행 중이기 때문에 존재하지 않습니다.따라서 그들(또는 최선의 대안)이 결국 그 언어를 사용할 수 있게 될 것이라고 장담할 수 있다.
복잡한 정적 그래픽 레이아웃과 인터랙티브 모두 HTML/CSS/JavaScript 프레임워크보다 Elm에서 훨씬 단순합니다.Elm의 경우 우연한 복잡성은 그 유형에 있지만, 그 복잡성에 대해 배울 가치가 있습니다.소프트웨어의 이해, 디버깅, 수정에 도움이 됩니다.또, 기능적인 프로그래밍의 배경이라면, 이러한 복잡함은 이미 알고 있을 것입니다.Elm을 HTML/J에 포함시킬 수도 있으므로 이론적으로는 단계적으로 이행할 수 있습니다.
Elm은 Angular보다 훨씬 더 독단적이고, 특히 국가 경영에 관해 그렇습니다.기존의 Angular 앱에서 상태가 문제가 된다면, Ngrx가 빠르게 떠오르는 Redux 스타일의 접근방식을 사용하여 중앙 집중식(모놀리식)을 고려하고 싶을 것입니다.
느릅나무는 중심 불변 상태의 개념을 전형적으로 나타내며, Redux에게 영감을 주었습니다.Elm은 순수 업데이트(리듀서) 기능을 사용하여 단일 불변 상태를 적용합니다.반응성이 높은 웹 앱의 핸들링 상태를 만드는 것은 Angular의 OO와 같은 패턴으로 인해 발생할 수 있는 혼란보다 훨씬 단순하다고 생각합니다.
Elm은 대부분의 앱에 적합하지만 외부 JS 라이브러리(예: 구글 맵)를 사용하고 싶을 때는 외부 기능 인터페이스(포트)가 매우 딱딱하기 때문에 조금 더 복잡해질 수 있습니다.재료 설계에 필요한 애니메이션의 종류도 Elm Architecture에 있어서 어려운 것으로 판명되었습니다.즉, 애니메이션이 존재하지 않는 것은 아니지만, 필요한 것보다 더 많은 배선이 필요합니다.
언급URL : https://stackoverflow.com/questions/15490053/what-are-the-advantages-and-disadvantages-of-angular-js-vs-elm
'programing' 카테고리의 다른 글
병렬 요구와 체인 요구를 $http와 조합한 각도입니다.() 및 $q.all()을 지정합니다. (0) | 2023.03.12 |
---|---|
Jquery 버튼 클릭 이벤트가 발생하지 않음 (0) | 2023.03.12 |
Angularjs 지연 로그 실행 타이머 작업 (0) | 2023.03.12 |
스웨거를 사용하여 wp rest api에서 Retrofit 클라이언트 라이브러리를 생성하는 방법 (0) | 2023.03.12 |
어떤 컬럼이 워드프레스에 슬래그를 저장합니까? (0) | 2023.03.12 |