login

X2D uses Lua as its main scripting language. Configuration files have their own syntax, but may contain pieces of Lua or Lua-like code.

1. Short comparison of scripting languages

1.1. Lua

  • + Popularny = jest dużo dokumentacji, teoretycznie więcej błędów zostaje zauważonych, jest większa społeczność, jest szansa, że nauka nowej składni na coś się przyda.
  • - Nietypowa składnia.
  • +/- Dynamiczne typy.
  • + Mały rozmiar (~100kB).
  • + Może być użyty do plików konfiguracyjnych.
  • +/- Garbage Collector

1.2. Squirrel

  • - Nie tak popularny jak LUA.
  • + Składnia nieco bardziej zbliżona do C/C++.
  • +/- Dynamiczne typy.
  • - Nieco większy rozmiar (~200kB).
  • +/- Mixed Reference Counting / Garbage Collector

1.3. AngelScript

  • - Trochę zbyt duży rozmiar (~2MB(?))
  • + Przenośny (Win32, Linux, MacOS X, XBox, PS2, PSP, PS3, Dreamcast, Nintendo DS, and Windows Mobile)
  • + Składnia podobna do C/C++.
  • + Statyczne typy.

1.4. TinyScheme

  • + Mały
  • + Scheme (Składnia)
  • - Niestabilny.

1.5. Nesla

  • + Przypomina JavaScrpta = nauka nie pójdzie w las.
  • - Trochę wolny.
  • - Mała społeczność.

1.6. GameMonkey

  • + Składnia podobna do C/C++.
  • + Niewielki rozmiar.
  • - Mała społeczność, mało popularny.
  • + Napisany w C++.
  • - libgm jest około 2x większy niż liblua
  • - Harder to build than Lua.
  • +/- Garbage Collector (Incremental)
  • -/+ Nie tak dobrze przemyślany jak Lua (np. nie ma closures; osobiście zmieniłbym też nieco składnię).

1.7. PAWN

  • +/- Dziwna składnia
  • + Przypomina C
  • +/- Bez typów.
  • + Mały i szybki.
  • + Programowanie zorientowane zdarzeniowo i stanowo.
  • - Utrudnione użycie do plików konfiguracyjnych.

1.8. TINY C Compiler

(Można by kompilowac kod w chwili uruchamiania)

- Zdaje się, że od dawna nikt się nim nie zajmował.

1.9. JavaScript

  • + Znajomość JavaScripta jest przydatna.
  • - Raczej niepopularne w tych zastosowaniach. Niewiele odpowiedniej dokumentacji.
  • - Sloooooow. JavaScript VM's are not designed for demanding realtime applications.

1.10. Python

  • - Było by równie trudno, o ile nie trudniej...
  • - Slow like hell...

1.11. Java - użycie Java bytecode + Java VM (Np. Kaffe)

  • - Nietypowe rozwiązanie.
  • - Kaffe Native Interface nie jest chyba szczególnie dobrze udokumentowany.
  • + Popularny język programowania.
  • - Wymagana jest wcześniejsza kompilacja. Kompilator na ogół jest ogromny.
Copyright © 2009, 2010, 2014 Janusz Kowalski
Powered by KrotCMS 2.0