.. index:: languages
At the time of writing (summer 2018), the :doc:`C++ <cpp>`, :doc:`Go <go>`, :doc:`Java <java>`, and :doc:`OCaml <ocaml>` ports are being actively developed and fleshed out.
Language | Usage |
---|---|
:doc:`C++ <cpp>` | #include "drylib.hpp" |
:doc:`Go <go>` | import "github.com/dryproject/drylib.go" |
:doc:`Java <java>` | import dry.*; |
:doc:`OCaml <ocaml>` | open DRY |
Language | Usage |
---|---|
:doc:`C <c>` | #include "drylib.h" |
:doc:`Common Lisp <lisp>` | (require :drylib) |
:doc:`D <d>` | import dry = drylib; |
:doc:`Dart <dart>` | TODO |
:doc:`Elixir <elixir>` | TODO |
:doc:`JS <js>` | import * as dry from 'drylib'; |
:doc:`Julia <julia>` | using DRYlib |
:doc:`Kotlin <kotlin>` | import dry.* |
:doc:`Lua <lua>` | dry = require 'drylib' |
:doc:`PHP <php>` | require_once 'drylib.php'; |
:doc:`Python <python>` | import drylib |
:doc:`Ruby <ruby>` | require 'drylib' |
:doc:`Rust <rust>` | extern crate drylib as dry; |
Language | Type Checking | Type Safety | Memory Mgmt | Strings | Bignums? | Exceptions? | Closures? | Macros? |
---|---|---|---|---|---|---|---|---|
:doc:`C <c>` | Static | Weak | Manual | ✗ bytes | ✗ | ✗ | ✗ | ✗ |
:doc:`C++ <cpp>` | Static | Weak | RAII/RC | ✗ bytes | ✗ | ✓ | ✓ | ✗ |
:doc:`Common Lisp <lisp>` | Dynamic | Strong | GC | ✗ UTF-{16,32} [5] | ✓ | ✓ | ✓ | ✓ |
:doc:`D <d>` | Static | Weak? | GC/Manual | ✓ UTF-{8,16,32} | ✓ | ✓ | ✓ | ✗ |
:doc:`Dart <dart>` | Static | Strong | GC | ✗ UTF-16 [1] | ✗ | ✓ | ✓ | ✗ |
:doc:`Elixir <elixir>` | Dynamic | Strong | GC | ✓ UTF-8 | ✓ | ✓ | ✓ | ✓ |
:doc:`Go <go>` | Static | Strong | GC | ✓ UTF-8 | ✓ | ✗ [2] | ✓ | ✗ |
:doc:`Java <java>` | Static | Strong | GC | ✗ UTF-16 | ✓ | ✓ | ✓ [3] | ✗ |
:doc:`JS <js>` | Dynamic | Weak | GC | ✗ UTF-16 | ✗ [4] | ✓ | ✓ | ✗ |
:doc:`Julia <julia>` | Dynamic | Strong | GC | ✓ UTF-8 | ✓ | ✓ | ✓ | ✓ |
:doc:`Kotlin <kotlin>` | Static | Strong | GC | ✗ UTF-16 | ✓ | ✓ | ✓ | ✗ |
:doc:`Lua <lua>` | Dynamic | Strong | GC | ✗ bytes | ✗ | ✗ [6] | ✓ | ✗ |
:doc:`OCaml <ocaml>` | Static | Strong | GC | ✗ bytes | ✗ [7] | ✓ | ✓ | ✗ |
:doc:`PHP <php>` | Dynamic | Weak | GC | ✗ bytes | ✓ | ✓ | ✓ | ✗ |
:doc:`Python <python>` | Dynamic | Strong | GC | ✗ UTF-{16,32}? | ✓ | ✓ | ✓ | ✗ |
:doc:`Ruby <ruby>` | Dynamic | Strong | GC | ✓ UTF-8 | ✓ | ✓ | ✓ | ✗ |
:doc:`Rust <rust>` | Static | Strong | RAII/RC | ✓ UTF-8 | ✗ [8] | ✗ | ✓ | ✓ |
Footnotes
[1] | dart-lang/sdk#28404 |
[2] | https://github.com/golang/go/wiki/PanicAndRecover |
[3] | https://dzone.com/articles/java-8-lambas-limitations-closures |
[4] | https://github.com/tc39/proposal-bigint |
[5] | https://www.cliki.net/Unicode%20support |
[6] | http://lua-users.org/wiki/ErrorHandling |
[7] | https://github.com/ocaml/num |
[8] | https://github.com/rust-num/num-bigint |
.. toctree::
:hidden:
c
cpp
lisp
d
dart
elixir
go
java
js
julia
kotlin
lua
ocaml
php
python
ruby
rust