2012-02-27 10 views
31

Podobnie jak wiele innych, zawsze mam rację, że "czysty kompilator nigdy nie będzie istniał dla Ruby, ponieważ język jest zbyt dynamiczny, aby mógł działać statyczny kompilator."Ktoś wypróbował Crystal Programming Language (kod maszynowy skompilowany Ruby)?

Ale niedawno natknął nich:

The Crystal programming language at GitHub

Statically compiled Ruby

Oba projekty wydają się być bardzo interesująca. Moglibyśmy dać nam szybkość języka w języku ojczystym (i często wymaganego w handlu, zaciemnionego kodu skompilowanego języka) przy zachowaniu wszystkich (lub większości) elegancji i elastyczności Rubiego. Dodaj dobrą bibliotekę wsparcia (lub, co bardziej prawdopodobne, możliwość dostępu do istniejących bibliotek C++) i łatwo zrozumiesz, dlaczego te rzeczy mogą być interesujące.

Czy ktoś próbował języka Crystal? (Jeszcze nie, z powodu kompilacji problemów z ruby-llvm)

Jakie było jego/jej odczucie na ten temat?

Czy sądzisz, że biorąc pod uwagę te wybory projektowe, możliwe byłoby stworzenie kompilatora kodu natywnego (maszynowego) dla Rubiego (z rozsądnym wysiłkiem i w rozsądnym czasie)? Czy będzie to znaczące?

+0

W jaki sposób kompilator może nie być znaczący, jeśli jest poprawny? – Marcin

+1

Czy byłby to znaczący (to znaczy: _użyteczny_) _do opracowania takiego kompilatora, oczywiście. Jak mogłem być tak idiotą, aby myśleć, że kompilator nie może być znaczący (to znaczy poprawny). – AlexBottoni

+0

Podobno JRuby działa tak szybko, jak każda inna aplikacja Java (waga na wagę). Kiedyś używałem Smalltalk i myślałem, że to było _slow_ ...Jednak rzeczywiście było to IDE, które mieliśmy, było opóźnieniem. Rzeczywiste moduły Smalltalk zostały użyte z czasów uruchamiania C i C++. Mówię tylko, że języki ezoteryczne mogą być szybkie; to wspomniany już 99% potu. – will

Odpowiedz

38

Jestem twórcą kryształu. Obecnie nie wszystko jest zaimplementowane z listy punktów punktowanych. W rzeczywistości dopiero zaczęto wdrażać klasy.

Bardzo podoba mi się pomysł. Ale muszę pomyśleć więcej o tym, jak go wdrożyć. Potrzebuję też więcej czasu, hehe.

Drugi artykuł ma zupełnie inne podejście, ponieważ nie wprowadza nowego języka: po prostu spróbuje skompilować podzbiór Ruby, lub może zostanie skompilowany do kodu natywnego, ale nadal pozwoli na pewną dynamikę wraz z kosztami wydajności (Kilka miesięcy temu rozmawiałem z autorem tego artykułu).

Moje odczucia wobec obu podejść: naprawdę mógłbym się z tym stać. Potrzebujemy szybkiego języka z elegancką, czytelną, radością użycia składni i biblioteki (jak to, co oferuje Ruby).

+3

Byłoby wspaniale, gdyby to działało. Chciałbym nadal ostrzyć i polerować moje klejnoty i dzierżyć je prosto na szybie CPU. –

+5

Jeśli chcesz mieć zegarek na jego rozwój: http://github.com/manastech/crystal – asterite

12

Jestem twórcą Foundry; drugi artykuł jest mój.

Nowszym artykułem na ten sam temat będzie "A language for embedded developers"; lub możesz również śledzić postępy w rozwoju, subskrybując numer foundry-lang.org.

Należy jednak zauważyć, że mój projekt jest komercyjny (przynajmniej początkowo) nie oparty na otwartym kodzie źródłowym i koncentruje się głównie na projektowaniu wbudowanym. Nadal można go używać na komputerach stacjonarnych lub serwerach.

Jestem również jednym z opiekunów ruby-llvm; zgłoś problemy napotkane jako błędy na urządzeniu project page.

Powiązane problemy