Difference between revisions of "Talk:The JavaScript Problem"

From HaskellWiki
Jump to navigation Jump to search
(→‎Comparison table: more modifications, my wiki-fu is rusty.)
 
(5 intermediate revisions by 2 users not shown)
Line 8: Line 8:
   
 
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.
 
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.
  +
   
 
{| class="wikitable sortable collapsible" style="position:relative;left:-80px;top:30px;"
 
{| class="wikitable sortable collapsible" style="position:relative;left:-80px;top:30px;"
 
|- style="font-size:80%;"
 
|- style="font-size:80%;"
! class="unsortable" |System !! Lazy !! FFI !! Pure !! Haskell syntax !! Haskell type system !! Performance !! class="unsortable" |TCO !! class="unsortable" |Demos !! Easy Setup !! Compression !! Maintenance !! FRP library !! Client-side Libraries !! Threads !! class="unsortable" | Package support
+
! class="unsortable" |System !! Lazy !! FFI !! Pure !! Haskell syntax !! Haskell type system !! Performance !! class="unsortable" |TCO !! class="unsortable" |Demos !! class="unsortable" |Easy Setup !! Compression !! Maintenance !! FRP library !! Client-side Libraries !! Threads !! class="unsortable" | Package support !! Stdio !! File IO !! Tree Shaking !! DOM
 
|- align="center"
 
|- align="center"
 
! scope="row" | [[#GHCJS|GHCJS]]
 
! scope="row" | [[#GHCJS|GHCJS]]
|| ✓ || ✓ || ✓ || ✓ || ✓ || good || full || some || no || poor || active || yes || few || yes || cabal
+
|| ✓ || ✓ || ✓ || ✓ || ✓ || good || full || some || no || poor || active || yes || few || yes || cabal || Hterm || text only || || Native & JS
 
|- align="center"
 
|- align="center"
 
! scope="row" | [[#UHC|UHC]]
 
! scope="row" | [[#UHC|UHC]]
|| ✓ || ✓ || ✓ || ✓ || ✓ || poor || full || some || moderate || very poor || active || yes || some || no || none
+
|| ✓ || ✓ || ✓ || ✓ || ✓ || poor || full || some || moderate || very poor || active || yes || some || no || none || || || ||
 
|- align="center"
 
|- align="center"
 
! scope="row" | [[#Haste|Haste]]
 
! scope="row" | [[#Haste|Haste]]
|| ✓ || ✓ || ✓ || ✓ || ✓ ||| good || full || ? || yes || decent || active || yes || few || no || none
+
|| ✓ || ✓ || ✓ || ✓ || ✓ ||| good || full || ? || yes || decent || active || yes || few || no || none || || || ||
 
|- align="center"
 
|- align="center"
 
! scope="row" | [[#Roy|Roy]]
 
! scope="row" | [[#Roy|Roy]]
|| ✗ || ✗ || ? || ✗ || ✗ || ? || ? || few || yes || ? || active || no || few || no || ?
+
|| ✗ || ✗ || ? || ✗ || ✗ || ? || ? || few || yes || ? || active || no || few || no || ? || || || ||
 
|- align="center"
 
|- align="center"
 
! scope="row" | [[#Elm|Elm]]
 
! scope="row" | [[#Elm|Elm]]
|| ? || ? || ✓ || ✗ || ? || ? || ? || many || yes || good || active || yes || none || no || ?
+
|| || ? || ✓ || ✗ || || ? || ? || many || yes || good || active || yes || none || no || ? || || || ||
  +
|- align="center"
  +
! scope="row" | [[#PureScript|PureScript]]
  +
|| ✗ || ✓ || ✓ || ✗ || ✗ || ? || ? || some || yes || ? || active || few || none || no || ? || || || ||
 
|- align="center"
 
|- align="center"
 
! scope="row" | [[#Fay|Fay]]
 
! scope="row" | [[#Fay|Fay]]
|| ✓ || ✓ || ✓ || ✓* || ✓* || 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 || _ || _ || _ || _ || _
  +
  +
|}
  +
  +
== GHCJS - incomplete? ==
   
  +
Why is GHCJS marked as "incomplete"? What's not complete? [[User:Srid|Srid]] ([[User talk:Srid|talk]]) 18:02, 26 October 2020 (UTC)
--[[User:419928194516|419928194516]] 22:50, 21 September 2012 (UTC)
 

Latest revision as of 18:02, 26 October 2020

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 ?
PureScript ? ? some yes ? active few 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 _ _ _ _ _

GHCJS - incomplete?

Why is GHCJS marked as "incomplete"? What's not complete? Srid (talk) 18:02, 26 October 2020 (UTC)