상위 10명: JS 컴파일 가능 파일

18733 단어 languagesjavascript
이 글은 my blog 에서 발췌한 것이므로 최신 내용을 더 많이 얻기 위해 반드시 보십시오😉
JavaScript는 많은 용례에 매우 좋습니다.이것은 설계가 매우 좋은 언어다.하지만 사실은 특성이 부족하다.JS에는 보안과 사용자 정의 연산자 유형이 없습니다. 적어도 본문을 작성할 때는 이렇습니다.그러나 이런 것들과 다른 문법 설탕은 어떤 번역 절차로도 쉽게 실현할 수 있다.자바스크립트를 별로 좋아하지 않을 수도 있지만, 웹 응용 프로그램을 작성하고 싶습니다.물론 Emscripten 같은 도구를 사용하여 브라우저에서 사용할 수 있도록 가장 좋아하는 언어 (이 예에서는 C/C++) 를 JavaScript로 컴파일할 수도 있습니다.하지만 다른 선택은 있다.많은 프로그래밍 언어가 JS 컴파일 목표에 일류/유일한 지원을 제공한다.그것들의 문법과 다른 기능 (예를 들어 편집기 지원) 은 당신을 끌어당길 수 있습니다.믿든 안 믿든 네가 결정해라.이 글에서 저는 여러분께 제가 열거한 JS를 번역 목표로 하는 10대 프로그래밍 언어를 소개하겠습니다.기억해 주십시오. 저는 아직 이 모든 것을 전면적으로 시도한 적이 없습니다...그러나이것은 주로 나의 첫인상에 기초한 것이다. 그래서...나는 이것이 너를 흥미롭게 할 수 있기를 바란다.😉

10.Scala。회사 명


스칼라.js에서는 Scala 프로그래밍 언어를 JavaScript로 컴파일할 수 있습니다.강력한 유형의 시스템으로 포스트 ES6와 유사한 현대적인 코드를 작성할 수 있습니다.이것은 클래스, 모듈, 유형, 매크로와 같은 강력한 IDE 지원과 기능을 의미하며, 언어의 상자를 열면 바로 사용할 수 있습니다!스칼라.js는facades types 시스템을 통해 원생에 가까운 js 성능과 표준 js 라이브러리에 대한 지원을 가지고 있다고 주장합니다.Scala 프로그래밍을 사용한 경우 도움이 될 수 있습니다.이 밖에 프로젝트 페이지는 ES6 배경에서 온 사람들에게 좋은 안내서를 제공합니다.우리들은 몇 가지 기본적인 차이를 총결합시다.
// Comment
/*
Multiline comment
*/
var mutable: String = "variable"
val immutable = "constant"

def exampleMultiplyFunction(x: Double, y: Double): Double = x * y

abstract class Logger() {
  def log(msg: String): Unit = {
    println(msg)
  }
}
class ConsoleLogger() extends Logger() {
    override def log(msg: String = ""): Unit = {
        if (msg != "") println(msg) else println("console.log equivalent")
    }
}
new ConsoleLogger().log()
이것은 Scala의 가능성을 충분히 보여주는 것이 아닐 수도 있고, 심지어는 효과적인 "안녕하세요, 세상!"도 아닐 수도 있다.그러나 나는 이것이 대부분의 프로그래머들이 Scala의 문법에 대해 기본적인 이해를 하게 할 수 있다고 생각한다.물론 전체 Scala 표준 라이브러리를 사용할 수도 있습니다. 이 라이브러리에는 대량의 내장 유형과 구조가 포함되어 있습니다.더 많은 Scala의 장점을 이해하려면 Scala 언어 사이트나 Scala 중 하나를 방문할 수 있습니다.js.물론 Scala를 작성할 때 JVM과 LLVM 목표를 통해 크로스플랫폼 코드를 구현할 수 있다고 생각합니다.

9.Haxe


Haxe는 동적 및 상호작용 응용 프로그램 개발에 사용되는 진정한 크로스플랫폼 솔루션입니다.JS를 포함한 많은 다른 언어로 컴파일할 수 있습니다.따라서 Haxe는 게임, 서버 백엔드, 사이트, 전문 소프트웨어와 계수 등 많은 용례가 있다.이 사이트는 대량의 상세한 문서를 제공했다.언어 자체에 대해 말하자면, 그것은 좋은 대상과 유형 안전 문법 (강력한 IDE 지원) 을 가지고 있으며, 메타데이터와 컴파일러 매크로 등 각종 기타 기능을 가지고 있다.이번에는 적당한 "안녕하세요, 세상!"사용할 수 있습니다.😁
class Main {
  static public function main():Void {
    trace("Hello World");
  }
}
빨리 한 번 보면 Haxe의 문법이 JS보다 훨씬 낫다고 할 수 있다. 이것은 주로 유형 시스템, 매크로와 모든 컴파일러의 장점 때문이다.Haxe는 크로스플랫폼 응용 프로그램과 게임에 좋은 선택인 것 같습니다.

8. 성도


떨림 프레임으로 인해 Dart는 최근에 상당히 보급되었다.Flitter는 Android 및 iOS 응용 프로그램을 쉽게 개발할 수 있습니다.얘는 사실 Dart로 썼어!그럼 다트로 가자.이것은 구글이 만든 가상 기기 기반 언어이기 때문에 서버 백엔드로 가상 기기에서 실행할 수 있으며, JS를 컴파일할 때 웹에서 실행할 수도 있고, 다른 x86과 ARM 플랫폼에서 실행할 수도 있다. (특히flatter가 있는 모바일 기기에서)그것의 문법은 C, C#, Java의 계발을 받아 대량의 표준 라이브러리를 가지고 있다.다음 예제는DartPad(Dart 온라인 운동장) 피보나치의 예에서 발췌한 것이다.
void main() {
  var i = 20;
  print('fibonacci($i) = ${fibonacci(i)}');
}

int fibonacci(int n) {
  return n < 2 ? n : (fibonacci(n - 1) + fibonacci(n - 2));
}
이 코드는 Dart 유형과 대상을 향한 본질을 명확하게 보여 준다.또 다른 흥미로운 것은 Dart가 선물과 흐름 등 구조의 비동기 프로그래밍에 전념하는 것이다.이외에도 IDE는 Dart가 보유한 모든 유형의 언어 특성에 대해 매우 잘 지원됩니다.이 모든 것이 Dart를 까다로운 네트워크 및 모바일 어플리케이션을 위한 완벽한 선택으로 만들었습니다.

느릅나무


이 목록의 이전 위치와 달리 Elm은 JS와 다른 웹 언어(HTML)로만 컴파일할 수 있습니다.그 주요 목표는 맞춤형 고성능 가상 DOM을 통해 웹 응용 프로그램을 개발하는 것이다.Elm은 HTML과 JS를 아름답고 읽을 수 있는 형식으로 결합시키는 목적을 실현했다.
import Html exposing (text)

who = "World" -- comment

main =
  text ("Hello " ++ who ++ "!")
이외에도 Elm 구문은 익숙해지려면 시간이 좀 걸릴 수 있습니다.이 유형의 시스템과 IDE 지원이 도움이 됩니다.

6.Imba


Imba는 웹 응용 프로그램 개발에 전념하는 또 다른 언어다.나는 이것이 젊은 느릅나무 경쟁 상대라고 생각한다.Imba는 현재 모든 가상 DOM보다 메모리 DOM이 빠르다고 주장합니다.
# Comment
console.log "Hello World"

tag HelloWorld
    def render
        <self> "Hello World"

Imba.mount(<HelloWorld>)
Imba에서 DOM 노드는 "1급 시민권자"이기 때문에 다른 변수를 처리하는 것처럼 처리할 수 있습니다.안타깝게도 Imba는 강력한 유형 시스템이 없기 때문에 IDE 지원이 더 나쁘다는 것을 의미한다.이 밖에 React 경쟁 업체로서 비교하고 제공했기 때문에 좀 익살스럽다.알다시피 React는 라이브러리이기 때문에 Imba는 하나의 언어로 홍보된다.😂

5.Nim


더 표준적인 프로그래밍 언어로 돌아가서 우리는 Nim을 맞이했다.Nim은 정적 유형의 쓰레기 수집 언어로 C, C++, JS로 컴파일할 수 있습니다.이것은 Python에서 계발한 축소 기반 문법을 가지고 있으며, 메타프로그래밍과 매크로를 매우 지원한다.일반적으로 이 모든 것은 뛰어난 성능, 재미있는 문법, 편집기 지원으로 귀결된다.
import strformat
type
  Person = object
    name*: string # Field is exported using `*`.
    age: Natural  # Natural type ensures the age is positive.

var people = [
  Person(name: "John", age: 45),
  Person(name: "Kate", age: 30)
]

for person in people:
  # Type-safe string interpolation.
  echo(fmt"{person.name} is {person.age} years old")
IMHONim은 재미있는 프로젝트처럼 보이며 적극적으로 개발한 것으로 볼 만하다.👍

4.ClojureScript


ClojureScript는 Clojure 에서 JavaScript까지의 컴파일러입니다.Clojurescript는 함수식 프로그래밍을 완벽하게 지원합니다.따라서 대량의 내장된 불변 데이터 구조를 가지고 있다.이것은 대상을 대상으로 하는 프로그래머에게 새로운 사고방식을 제공했다.문법은 거의 모든 것이 함수이기 때문에 좀 서투르게 보일 수도 있지만, 시간이 있으면 익숙해질 수 있다.🙃
(ns hello-world.core)

(println "Hello world!")
만약 네가 함수식 프로그래밍 기술을 시험해 보려고 한다면, 이것은 아마도 볼 만한 가치가 있을 것이다.

3.ReasonML


가장 좋은 세 가지를 열어라. 우리는 이유가 있다.Reason은 페이스북이 개발한 언어로 유형의 안전과 상호작용성에 전념한다.JS와 OCaml 생태계를 기반으로 합니다.React 뒤에 있는 사람들 때문에 모든 면에서 좋은 지지를 받았습니다.유형 시스템이 좋고 일반적인 개발 경험이 좋다.✌그 밖에 Reason은 JS 개발자를 익히고 OCaml의 최상의 기능을 보존하기 위해 정성스럽게 설계되었다. 유형 시스템을 포함한다.
let rec fibonacci = n =>
  switch (n) {
  | 0 | 1 => 1
  | n => fibonacci(n - 1) + fibonacci(n - 2) 
  }

for (x in 1 to 10) {
  Js.log(fibonacci(x));
}

2.Kotlin


Kotlin은 JVM 기반 프로그래밍 언어로 Android 개발, JS, 로컬 LLVM 바이너리 파일을 지원하며 물론 JVM도 지원합니다.그것은 훌륭한 유형의 시스템, 좋은 상호작용성, 뛰어난 편집기 지원 (JetBrains 프로젝트) 을 가지고 있다.이 공사는 최근에 매우 환영을 받는다.이유가 없는 게 아니야.너는 알다시피 크로스플랫폼, 좋은 문법과 대량의 기능, 게다가 좋은 성능까지 모두 커다란 성공을 가져올 것이다.
class Greeter(val name: String) {
    fun greet() {
        println("Hello, $name")
    }
}

fun main(args: Array<String>) {
    Greeter(args[0]).greet()
}

1.TypeScript


나는 약간의 편견이 있을 수 있다.TypeScript는 JS를 컴파일할 수 있을 때 가장 좋아하는 언어입니다.그것은 크로스플랫폼이 아닐 수도 있고, 특별한 기능도 없을 수도 있지만, JS에 유형 시스템을 제공하는 일만 하고 싶을 뿐만 아니라, 아주 잘한다.또한 브라우저에서 지원되지 않았던 새로운 ES Next 표준의 일부 기능을 사용할 수 있습니다.유형 이외의 문법은 순수 JS입니다. 이것이 바로 제가 좋아하는 것입니다.유형 자체에 대해 그들은 TS와 JS 프로젝트에 절대적으로 놀라운 IDE 지원을 제공하는 것을 책임진다.또 무슨 할 말이 있습니까?🎉
export class Fibonacci {
    index : number;
    fibonacciNumber : number;

    public calculateFibonacciNumber() {
        this.fibonacciNumber = this.calculate(this.index);
    }
    private calculate(i : number) : number{
        return (i <= 2) ? 1 : this.calculate(i -1 ) + this.calculate(i -2);
    }
}

더 많아...


이것은 단지 나의 개인적인 최상의 JS'컴파일 가능'에 대한 견해일 뿐이다.나는 내가 적어도 너로 하여금 그중의 일부분에 대해 흥미를 느끼게 할 수 있기를 바란다. 심지어는 너를 설득해서 해 보기를 바란다.나를 믿어라, 더 좋은 프로그래밍 언어가 많다.JS보다 훨씬 많은 기능을 제공합니다.아마도 그 중 하나가 당신의 첫 번째 언어가 될 것입니까?어쨌든 이것은 나의 명세서다.다음 평론에서 다른 선택을 고려하다.또 이 글을 공유하면 다른 사람들이 더 쉽게 발견할 수 있다.자세한 내용은 나를 따르거나 on my Facebook page🦄

좋은 웹페이지 즐겨찾기