Coder Social home page Coder Social logo

drup / links Goto Github PK

View Code? Open in Web Editor NEW

This project forked from links-lang/links

0.0 2.0 0.0 18.98 MB

Links

License: Other

OCaml 80.91% Makefile 0.45% Shell 0.45% Standard ML 2.38% JavaScript 14.73% Emacs Lisp 0.48% Python 0.40% HTML 0.05% Perl 0.08% LiveScript 0.05%

links's Introduction

Links: Linking Theory to Practice for the Web

Links helps to build modern Ajax-style applications: those with
significant client- and server-side components.

A typical, modern web program involves many "tiers": part of the
program runs in the web browser, part runs on a web server, and part
runs in specialized systems such as a relational database. To create
such a program, the programmer must master a myriad of languages: the
logic is written in a mixture of Java, Python, and Perl; the
presentation in HTML; the GUI behavior in Javascript; and the queries
are written in SQL or XQuery. There is no easy way to link these: to
be sure, for example, that an HTML form or an SQL query produces the
type of data that the Java code expects. This is called the impedance
mismatch problem.

Links eases the impedance mismatch problem by providing a single
language for all three tiers. The system is responsible for
translating the code into suitable languages for each tier: for
instance, translating some code into Javascript for the browser, some
into Java for the server, and some into SQL to use the database.

Links incorporates ideas proven in other programming languages:
database-query support from Kleisli, web-interaction proposals from
PLT Scheme, and distributed-computing support from Erlang. On top of
this, it adds some new web-centric features of its own.

FEATURES

 * Allows web programs to be written in a single programming language
 * Call-by-value functional language
 * Server / Client annotations
 * AJAX
 * Scalability through defunctionalised server continuations.
 * Statically typed database access a la Kleisli
 * Concurrent processes on the client and the server
 * Statically typed Erlang-esque message passing
 * Polymorphic records and variants
 * An effect system for supporting abstraction over database queries
whilst guaranteeing that they can be efficiently compiled to SQL

links's People

Contributors

slindley avatar yallop avatar jamescheney avatar nikswamy avatar jgbm avatar thierry-martinez avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.