Difference between revisions of "Talk:The JavaScript Problem"
From HaskellWiki
419928194516 (talk | contribs) m (→Comparison table: oops rm) |
419928194516 (talk | contribs) (→Comparison table: Transposition is not trivial when you are not a computer.) |
||
Line 32: | Line 32: | ||
|| ✓ || ✓ || ✓ || ✓* || ✓* || good || limited || many || yes || strong || active || no || some || no || none || || || || | || ✓ || ✓ || ✓ || ✓* || ✓* || good || limited || many || yes || strong || active || no || some || no || none || || || || | ||
|} | |} | ||
+ | {| class="wikitable collapsible" style="position:relative;left:-80px;top:30px;" | ||
+ | |- style="font-size:80%;" | ||
+ | ! class="unsortable" |System !! [[#GHCJS|GHCJS]] !! [[#UHC|UHC]] !! [[#Haste|Haste]] !! [[#Roy|Roy]] !! [[#Elm|Elm]] !! [[#Fay|Fay]] | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | Lazy | ||
+ | || ✓ || ✓ || ✓ || ✗ || ? || ✓ | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | FFI | ||
+ | || ✓ || ✓ || ✓ || ✗ || ? || ✓ | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | Pure | ||
+ | || ✓ || ✓ || ✓ || ? || ✓ || ✓ | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | Haskell syntax | ||
+ | || ✓ || ✓ || ✓ || ✗ || ✗ || ✓* | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | Haskell type system | ||
+ | || ✓ || ✓ || ✓ || ✗ || ? || ✓* | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | Performance | ||
+ | || good || poor || good || ? || ? || good | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | TCO | ||
+ | || full || full || full || ? || ? || limited | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | Demos | ||
+ | || some || some || ? || few || many || many | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | Easy setup | ||
+ | || no || moderate || yes || yes || yes || yes | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | Compression | ||
+ | || poor || very poor || decent || ? || good || strong | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | Maintenance | ||
+ | || active || active || active || active || active || active | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | FRP library | ||
+ | || yes || yes || yes || no || yes || no | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | Client-side Libraries | ||
+ | || few || some || few || few || none || some | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | Threads | ||
+ | || yes || no || no || no || no || no | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | Package support | ||
+ | || cabal || none || none || ? || ? || none | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | Stdio | ||
+ | || Hterm || _ || _ || _ || _ || _ | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | File IO | ||
+ | || text only || _ || _ || _ || _ || _ | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | tree shaking | ||
+ | || _ || _ || _ || _ || _ || _ | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | forest shaking | ||
+ | || _ || _ || _ || _ || _ || _ | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | DOM | ||
+ | || native and Js || _ || _ || _ || _ || _ | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | Finalizers | ||
+ | || optional || _ || _ || _ || _ || _ | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | Integer support | ||
+ | || yes || _ || _ || _ || _ || _ | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | Text & ByteString | ||
+ | || yes || _ || _ || _ || _ || _ | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | Exceptions | ||
+ | || yes || _ || _ || _ || _ || _ | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | Async Code Loading | ||
+ | || yes || _ || _ || _ || _ || _ | ||
+ | |- align="center" | ||
+ | ! style="font-size:80%;" | 64bit support | ||
+ | || yes || _ || _ || _ || _ || _ | ||
− | + | |} |
Revision as of 21:31, 22 September 2012
Goals
Individual projects
Comparison table
I have transferred most of the table from this[1] thread here into wiki markup. It needs to be completed and inserted. I think that links to subheads in this article or links to the websites of these projects would be excellent in the first column, so I will do that as soon as we decide where we shall link.
I left out the "approach" column because I think it is best we just link to a more thorough explanation, otherwise the table will become rather messy.
System | Lazy | FFI | Pure | Haskell syntax | Haskell type system | Performance | TCO | Demos | Easy Setup | Compression | Maintenance | FRP library | Client-side Libraries | Threads | Package support | Stdio | File IO | Tree Shaking | DOM |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GHCJS | ✓ | ✓ | ✓ | ✓ | ✓ | good | full | some | no | poor | active | yes | few | yes | cabal | Hterm | text only | Native & JS | |
UHC | ✓ | ✓ | ✓ | ✓ | ✓ | poor | full | some | moderate | very poor | active | yes | some | no | none | ||||
Haste | ✓ | ✓ | ✓ | ✓ | ✓ | good | full | ? | yes | decent | active | yes | few | no | none | ||||
Roy | ✗ | ✗ | ? | ✗ | ✗ | ? | ? | few | yes | ? | active | no | few | no | ? | ||||
Elm | ? | ? | ✓ | ✗ | ? | ? | ? | many | yes | good | active | yes | none | no | ? | ||||
Fay | ✓ | ✓ | ✓ | ✓* | ✓* | good | limited | many | yes | strong | active | no | some | no | none |
System | GHCJS | UHC | Haste | Roy | Elm | Fay |
---|---|---|---|---|---|---|
Lazy | ✓ | ✓ | ✓ | ✗ | ? | ✓ |
FFI | ✓ | ✓ | ✓ | ✗ | ? | ✓ |
Pure | ✓ | ✓ | ✓ | ? | ✓ | ✓ |
Haskell syntax | ✓ | ✓ | ✓ | ✗ | ✗ | ✓* |
Haskell type system | ✓ | ✓ | ✓ | ✗ | ? | ✓* |
Performance | good | poor | good | ? | ? | good |
TCO | full | full | full | ? | ? | limited |
Demos | some | some | ? | few | many | many |
Easy setup | no | moderate | yes | yes | yes | yes |
Compression | poor | very poor | decent | ? | good | strong |
Maintenance | active | active | active | active | active | active |
FRP library | yes | yes | yes | no | yes | no |
Client-side Libraries | few | some | few | few | none | some |
Threads | yes | no | no | no | no | no |
Package support | cabal | none | none | ? | ? | none |
Stdio | Hterm | _ | _ | _ | _ | _ |
File IO | text only | _ | _ | _ | _ | _ |
tree shaking | _ | _ | _ | _ | _ | _ |
forest shaking | _ | _ | _ | _ | _ | _ |
DOM | native and Js | _ | _ | _ | _ | _ |
Finalizers | optional | _ | _ | _ | _ | _ |
Integer support | yes | _ | _ | _ | _ | _ |
Text & ByteString | yes | _ | _ | _ | _ | _ |
Exceptions | yes | _ | _ | _ | _ | _ |
Async Code Loading | yes | _ | _ | _ | _ | _ |
64bit support | yes | _ | _ | _ | _ | _ |