Coding

From Things and Stuff Wiki
Revision as of 23:57, 2 January 2013 by Milk (talk | contribs) (→‎Lisp)
Jump to navigation Jump to search


misc. links, badly in need of clean-up. to order languages by release date.

See also Maths

General

  • Pipe Logic - "In this model, a UNIX pipe acts like a wire, that is, a conductor with parasitic capacitance."

comment

Basics

Reference

Books

Web API

http://www.diffbot.com/

Geo

VMs

  • Parrot is a virtual machine designed to efficiently compile and execute bytecode for dynamic languages. Parrot currently hosts a variety of language implementations in various stages of completion, including Tcl, Javascript, Ruby, Lua, Scheme, PHP, Python, Perl 6, APL, and a .NET bytecode translator. Parrot is not about parrots, though we are rather fond of them for obvious reasons.

Workflow

Books

Data types and structures

The difference between arrays and linked lists are:

- Arrays are linear data structures. Linked lists are linear and non-linear data structures. - Linked lists are linear for accessing, and non-linear for storing in memory - Array has homogenous values. And each element is independent of each other positions. Each node in the linked list is connected with its previous node which is a pointer to the node. - Array elements can be modified easily by identifying the index value. It is a complex process for modifying the node in a linked list. - Array elements can not be added, deleted once it is declared. The nodes in the linked list can be added and deleted from the list.

Algorithms

Garbage collection

Cleaning up saved things that are created and only needed at the time of a particular process, i think. Managed in some languages, seen as possibly bad by some.

OOP

Functional

MV*

"create your views, express your models or develop a controller"

Metaprogramming

Monads

see haskell for other stuff

Messaging

  • ØMQ \zeromq\
    •  The socket library that acts as a concurrency framework.
    •   Faster than TCP, for clustered products and supercomputing.
<tef> but glyph is the serialization format really :-)
  • MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON but it's faster and smaller. For example, small integers (like flags or error code) are encoded into a single byte, and typical short strings only require an extra byte in addition to the strings themselves.

REST and like

Perl

Lua

  • Lua is a powerful, fast, lightweight, embeddable scripting language. Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode for a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping.
  • http://en.wikipedia.org/wiki/Lua_(programming_language)
  • Lua 5.2 Reference Manual
  • http://code.google.com/p/lua-checker/
  • LuaJIT — a Just-In-Time Compiler for Lua.
  • Metalua is a language and a compiler which provide a complete macro system, similar in power to what's offfered by Lisp dialects or Template Haskell; manipulated programs can be seen as source code, as abstract syntax trees, or as an arbitrary mix thereof, whichever suits your task better.
os.time();
os.getenv()
  i.e. os.getenv( "HOME" ); ?? to confirm, hardcoded as no time atm.

C / C++

Java

Java syntax seems unwieldy.

Lisp

http://xuanji.appspot.com/isicp/1-1-elements.html

Clojure

Ada

TCL

Haskell

  • Haskell is an advanced purely-functional programming language. An open-source product of more than twenty years of cutting-edge research, it allows rapid development of robust, concise, correct software. With strong support for integration with other languages, built-in concurrency and parallelism, debuggers, profilers, rich libraries and an active community, Haskell makes it easier to produce flexible, maintainable, high-quality software.
  • GHC is a state-of-the-art, open source, compiler and interactive environment for the functional language Haskell. Highlights:

Packages

A package is a library of Haskell modules known to the compiler. GHC comes with several packages: see the accompanying library documentation. More packages to install can be obtained from HackageDB.

Using a package couldn't be simpler: if you're using ––make or GHCi, then most of the installed packages will be automatically available to your program without any further options. The exceptions to this rule are covered below in Section 4.9.1, “Using Packages ”.

Building your own packages is also quite straightforward: we provide the Cabal infrastructure which automates the process of configuring, building, installing and distributing a package. All you need to do is write a simple configuration file, put a few files in the right places, and you have a package. See the Cabal documentation for details, and also the Cabal libraries (Distribution.Simple, for example).

  • Cabal (Common Architecture for Building Applications and Libraries) is a system for building and packaging Haskell libraries and programs. It defines a common interface for package authors and distributors to easily build their applications in a portable way. Cabal is part of a larger infrastructure for distributing, organizing, and cataloging Haskell libraries and programs. Specifically, the Cabal describes what a Haskell package is, how these packages interact with the language, and what Haskell implementations must to do to support packages. The Cabal also specifies some infrastructure (code) that makes it easy for tool authors to build and distribute conforming packages.
  • HackageDB (or just Hackage) is a collection of releases of Haskell packages. Each package is in the Cabal format, a standard way of packaging Haskell source code that makes it easy to build and install. These pages are a basic web interface to the Hackage package database.
  • cabal-install package provides the cabal command-line tool which simplifies the process of managing Haskell software by automating the fetching, configuration, compilation and installation of Haskell libraries and programs. Those packages must be prepared using Cabal and should be present at Hackage.
  • Gtk2Hs - A GUI Library for Haskell based on Gtk

Arch

pacman -Rncs ghc
  remove all haskell..

Web

  • Yesod is a Haskell web framework for productive development of type-safe, RESTful, high performance web applications.
  • Snap is a simple web development framework for unix systems, written in the Haskell programming language. Snap has a high level of test coverage and is well-documented. Features include: a fast HTTP server library, a sensible and clean monad for web programming, an HTML-based templating system for generating pages

JS

  • Fay - A proper subset of Haskell that compiles to JavaScript. Fay is a small programming language which has the following properties: A proper syntactic and semantic subset of Haskell, Statically typed, Lazy, Pure by default, Compiles to JavaScript, Has fundamental data types (Double, String, etc.) based upon what JS can support, Outputs minifier-aware code for small compressed size, Has a trivial foreign function interface to JavaScript

Erlang

F#

Rust

Go

Dart

Typescript

From Microsoft, compiles to JS.

Elm

APL

wut

R

Good for stats.

GNU

XUL

Documentation

Other

For kids

Social

Aesthetics

perl