Difference between revisions of "Talk:The JavaScript Problem"

From HaskellWiki
Jump to navigation Jump to search
(Created talk page and first discussion topic)
 
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
  +
= Goals =
= Comparison table =
 
  +
== Individual projects ==
  +
== Comparison table ==
  +
  +
   
 
I have transferred most of the table from this[http://www.reddit.com/r/haskell/comments/109hsb/writing_javascript_games_in_haskell_breakout/] 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 have transferred most of the table from this[http://www.reddit.com/r/haskell/comments/109hsb/writing_javascript_games_in_haskell_breakout/] 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.
Line 5: Line 9:
 
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"
 
  +
{| class="wikitable sortable collapsible" style="position:relative;left:-80px;top:30px;"
|-
 
  +
|- style="font-size:80%;"
! System !! Lazy !! FFI !! Pure !! Haskell syntax !! Haskell type system !! Performance !! TCO !! Demos !! Easy Setup !! Compression !! Maintenance !! FRP library !! Client-side Libraries !! Threads !! 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"
| GHCJS || ✓ || ✓ || ✓ || ✓ || ✓ || good || full || some || no || poor || active || yes || few || yes || cabal
 
  +
! scope="row" | [[#GHCJS|GHCJS]]
|-
 
| UHC || ✓ || ✓ || ✓ || ✓ || ✓ || poor || full || some || moderate || very poor || active || yes || some || no || none
+
|| ✓ || ✓ || ✓ || ✓ || ✓ || good || full || some || no || poor || active || yes || few || yes || cabal || Hterm || text only || || Native & JS
  +
|- align="center"
|-
 
  +
! scope="row" | [[#UHC|UHC]]
| Haste || ✓ || ✓ || ✓ || ✓ || ✓ ||| good || full || ? || yes || decent || active || yes || few || no || none
 
  +
|| ✓ || ✓ || ✓ || ✓ || ✓ || poor || full || some || moderate || very poor || active || yes || some || no || none || || || ||
|-
 
  +
|- align="center"
| Roy || ✗ || ✗ || ? || ✗ || ✗ || ? || ? || few || yes || ? || active || no || few || no || ?
 
  +
! scope="row" | [[#Haste|Haste]]
|-
 
| Elm || ? || ? || ✓ || || ? || ? || ? || many || yes || good || active || yes || none || no || ?
+
|| || || || ✓ || ||| good || full || ? || yes || decent || active || yes || few || no || none || || || ||
  +
|- align="center"
|-
 
  +
! scope="row" | [[#Roy|Roy]]
| Fay || ✓ || ✓ || ✓ || ✓* || ✓* || good || limited || many || yes || strong || active || no || some || no || none
 
  +
|| ✗ || ✗ || ? || ✗ || ✗ || ? || ? || few || yes || ? || active || no || few || no || ? || || || ||
  +
|- align="center"
  +
! scope="row" | [[#Elm|Elm]]
  +
|| ✗ || ? || ✓ || ✗ || ✗ || ? || ? || many || yes || good || active || yes || none || no || ? || || || ||
  +
|- align="center"
  +
! scope="row" | [[#PureScript|PureScript]]
  +
|| ✗ || ✓ || ✓ || ✗ || ✗ || ? || ? || some || yes || ? || active || few || none || no || ? || || || ||
  +
|- align="center"
  +
! scope="row" | [[#Fay|Fay]]
  +
|| ✓ || ✓ || ✓ || ✓* || ✓* || 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)