diff --git a/src/page/Home.js b/src/page/Home.js index d91df6d..746ba96 100644 --- a/src/page/Home.js +++ b/src/page/Home.js @@ -1,4 +1,4 @@ -import React, {Component} from 'react'; +import React, { Component } from 'react'; import { Card, CardBody, @@ -55,8 +55,8 @@ class Home extends Component {
Flix is a principled functional, imperative, and logic programming language developed at Aarhus University, at the University of Waterloo, and by a community of open source contributors. + href="https://uwaterloo.ca/">University of Waterloo, and by a community of open source contributors.
Flix aims to offer a unique combination of features that no other programming language offers, including: algebraic + className="font-weight-bold">algebraic data types and pattern matching (like Haskell, OCaml), extensible records (like Elm), traits (type classes) (like Haskell, Rust), higher-kinded types (like Haskell), typematch (like Scala), type inference (like Haskell, OCaml), structured channel and process-based concurrency (like + className="font-weight-bold">extensible records (like Elm), traits (type classes) (like Haskell, Rust), higher-kinded types (like Haskell), typematch (like Scala), type inference (like Haskell, OCaml), structured channel and process-based concurrency (like Go), and compilation to JVM bytecode (like Scala). + className="font-weight-bold">compilation to JVM bytecode (like Scala).
Flix also supports several unique features, + className="font-weight-bold text-info">unique features, including: a polymorphic effect system, region-based local mutation, purity reflection, and first-class Datalog constraints. + className="font-weight-bold text-success">a polymorphic effect system, region-based local mutation, purity reflection, and first-class Datalog constraints.
Flix supports structured - concurrency. + href="https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/">structured + concurrency.
For example, the code on the left shows the creation of a fresh
@@ -635,7 +635,7 @@ def conn(u: String, p: String): Validation[Err, Connection] =
applicative forA
expression that builds on
the Applicative
trait. The forA
construct makes
it simple to write error-handling code which uses the Validation[e,
- t]
data type.
+ t] data type.
Datalog constraints enriched with lattice semantics is one of the more @@ -748,7 +748,7 @@ let r = query p select (c, d) from ReadyDate(c; d)
Flix comes with a fully-featured Standard Library that offers access to more than 3,100+ functions. + className="text-success font-weight-bold">3,100+ functions.
@@ -818,7 +818,7 @@ let r = query p select (c, d) from ReadyDate(c; d)
The full library can be explored at: https://api.flix.dev/ + href="https://api.flix.dev/">https://api.flix.dev/
@@ -828,12 +828,12 @@ let r = query p select (c, d) from ReadyDate(c; d)
Flix features a modern compiler architecture which is resilient, incremental, and parallel. + className="font-weight-bold text-success">resilient, incremental, and parallel.
@@ -862,11 +862,11 @@ let r = query p select (c, d) from ReadyDate(c; d)
Throughput (entire compiler): | -41,700 lines/sec | -
Throughput (frontend only): | -93,000 lines/sec | -
Throughput (entire compiler): | +41,700 lines/sec | +
Throughput (frontend only): | +93,000 lines/sec | +
The above results can be reproduced by running the commands: java -jar flix.jar Xperf
- --n 21
and java -jar flix.jar Xperf --frontend --n 21
.
+ --n 21 and java -jar flix.jar Xperf --frontend --n 21
.
@@ -911,7 +911,7 @@ let r = query p select (c, d) from ReadyDate(c; d)
The VSCode extension uses the real Flix compiler hence there is a 1:1 correspondence between the extension + className="font-weight-bold text-success">real Flix compiler hence there is a 1:1 correspondence between the extension and the compiler.
@@ -1036,11 +1036,11 @@ let r = query p select (c, d) from ReadyDate(c; d)Tool | -Flix | -OCaml | -Haskell | -
---|---|---|---|
Tool | +Flix | +OCaml | +Haskell | +
Compiler | -flix | -ocaml | -ghc | -
LSP | -flix | -ocaml-lsp | -HLS | -
REPL | -flix | -utop | -ghci | -
Build Tool | -flix | -dune | -cabal, stack | -
Package Manager | -flix | -opam | -cabal | -
Package Repository | -GitHub | -opam | -Hackage | -
Compiler | +flix | +ocaml | +ghc | +
LSP | +flix | +ocaml-lsp | +HLS | +
REPL | +flix | +utop | +ghci | +
Build Tool | +flix | +dune | +cabal, stack | +
Package Manager | +flix | +opam | +cabal | +
Package Repository | +GitHub | +opam | +Hackage | +
Flix is actively developed by programming language researchers from Aarhus University in Denmark in collaboration with researchers + href="https://cs.au.dk/">Aarhus University in Denmark in collaboration with researchers from the University - of Waterloo in Canada, the University of - Tubingen in Germany, and Copenhagen University in Denmark. + of Waterloo in Canada, the University of + Tubingen in Germany, and Copenhagen University in Denmark.
@@ -1140,32 +1140,32 @@ let r = query p select (c, d) from ReadyDate(c; d)
3,800+ | -Merged Pull Requests (PRs) | -
2,500+ | -Resolved Issues (Tickets) | -
60+ | -Contributors | -
244,000+ | -Lines in Compiler Codebase | -
3,800+ | +Merged Pull Requests (PRs) | +
2,500+ | +Resolved Issues (Tickets) | +
60+ | +Contributors | +
244,000+ | +Lines in Compiler Codebase | +
We kindly thank EJ Technologies for providing us with JProfiler and JetBrains for providing us with IntelliJ IDEA. + href="https://www.ej-technologies.com/products/jprofiler/overview.html">JProfiler and JetBrains for providing us with IntelliJ IDEA.