Difference between revisions of "Coding"

From Things and Stuff Wiki
Jump to navigation Jump to search
(Blanked the page)
 
(32 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{menu}}
 
  
to further sort.
 
 
== General ==
 
:A program is many things. It is a piece of text typed by a programmer, it is the directing force that makes the computer do what it does, it is data in the computer's memory, yet it controls the actions performed on this same memory. Analogies that try to compare programs to objects we are familiar with tend to fall short, but a superficially fitting one is that of a machine. The gears of a mechanical watch fit together ingeniously, and if the watchmaker was any good, it will accurately show the time for many years. The elements of a program fit together in a similar way, and if the programmer knows what he is doing, the program will run without crashing.
 
 
:A computer is a machine built to act as a host for these immaterial machines. Computers themselves can only do stupidly straightforward things. The reason they are so useful is that they do these things at an incredibly high speed. A program can, by ingeniously combining many of these simple actions, do very complicated things. ... When a program works, it is beautiful. The art of programming is the skill of controlling complexity. The great program is subdued, made simple in its complexity.
 
 
-- http://eloquentjavascript.net/chapter1.html
 
 
=== Basics ===
 
* http://en.wikipedia.org/wiki/Computer_programming
 
* http://en.wikipedia.org/wiki/Script_(computing)
 
 
* [http://www.catb.org/~esr/faqs/hacker-howto.html How To Become A Hacker] - ESR
 
* http://www.catb.org/~esr/faqs/smart-questions.html
 
 
* [http://www.linusakesson.net/programming/pipelogic/index.php Pipe Logic] - "In this model, a UNIX pipe acts like a wire, that is, a conductor with parasitic capacitance."
 
 
* [[Wikipedia:Algorithms + Data Structures = Programs]]
 
 
* [http://www.starling-software.com/employment/programmer-competency-matrix.html Programmer Competency Matrix]
 
* [http://michaelochurch.wordpress.com/2012/07/27/six-languages-to-master/ Six languages to master.]
 
* [https://michaelochurch.wordpress.com/2013/01/13/learning-c-reducing-fear/ Learning C, reducing fear.]
 
* [http://www.perl.com/pub/2007/12/06/soto-11.html?page=1 Programming is Hard, Let's Go Scripting...]
 
* [http://www.codinghorror.com/blog/2009/01/a-scripter-at-heart.html A Scripter at Heart]
 
* http://vislab-ccom.unh.edu/~schwehr/Classes/2011/esci895-researchtools/
 
 
* [http://www.infoq.com/presentations/Simple-Made-Easy Simple Made Easy] - Rich Hickey emphasizes simplicity’s virtues over easiness’, showing that while many choose easiness they may end up with complexity, and the better way is to choose easiness along the simplicity path. ]
 
 
* [http://www.javacodegeeks.com/2012/09/self-taught-developers-are-you-missing.html Self-Taught Developers: Are You Missing Your Foundation?]
 
* [http://programmers.stackexchange.com/questions/163185/torvalds-quote-about-good-programmer Torvalds' quote about good programmer] - "Bad programmers worry about the code. Good programmers worry about data structures and their relationships."
 
 
* Stack Exchange: [http://programmers.stackexchange.com/questions/155488/ive-inherited-200k-lines-of-spaghetti-code-what-now I've inherited 200K lines of spaghetti code — what now?]
 
 
* [http://programming-motherfucker.com/become.html Become a Programmer, Motherfucker]
 
* [http://norvig.com/21-days.html Teach Yourself Programming in Ten Years]
 
* [http://worrydream.com/LearnableProgramming/ Learnable Programming] - Bret Victor - Designing a programming system for understanding programs
 
 
* [http://www.computerscienceforeveryone.com/Course_1/Unit_1/Lesson_1/ Computer Science For Everyone]
 
 
* [http://matt.might.net/articles/intro-static-analysis/ What is static program analysis?]
 
 
* [http://qaa.ath.cx/The5HardestThings.html The 5 Hardest Parts of Programming] - Optimization, Networking, Security, Reliability, Scalability
 
 
* [http://pokayokeguide.com/ The Pokayoke Guide to Developing Software]
 
* [http://www.zemanta.com/fruitblog/i-bet-you-over-engineered-your-startup/ I bet you over-engineered your startup]
 
 
=== Reference ===
 
* [http://www.zappable.com/2012/11/chart-for-learning-a-programming-langauge/ Chart for Learning a Programming Language]
 
 
* [http://hyperpolyglot.org/ Hyperpolyglot] - a programming language side-by-side reference sheet
 
** [http://hyperpolyglot.org/scripting Interpreted Languages: PHP, Perl, Python, Ruby (Sheet One)]
 
* [http://rosettacode.org/wiki/Rosetta_Code http://rosettacode.org/wiki/Rosetta_Code]
 
* [http://www.ariel.com.au/a/teaching-programming.html A Very Quick Comparison of Popular Languages for Teaching Computer Programming]
 
* [http://rigaux.org/language-study/syntax-across-languages.html syntax across languages]
 
 
* [http://redmonk.com/dberkholz/2013/03/25/programming-languages-ranked-by-expressiveness/ Programming languages ranked by expressiveness]
 
* [http://shootout.alioth.debian.org/ The Computer Language Benchmarks Game]
 
 
* [http://www.cs.utexas.edu/users/EWD/transcriptions/EWD04xx/EWD498.html How do we tell truths that might hurt?] - E.W. Dijkstra
 
* [http://wiki.theory.org/YourLanguageSucks YourLanguageSucks]
 
 
* [http://stackmonthly.com/ StackMonthly] - A monthly digest of the best questions on StackOverflow
 
 
* [http://james-iry.blogspot.com.br/2009/05/brief-incomplete-and-mostly-wrong.html A Brief, Incomplete, and Mostly Wrong History of Programming Languages]
 
* [http://web.archive.org/web/20060621084224/http://www.cse.ogi.edu/~diatchki/jokes/programmer.html The Evolution of a Programmer]
 
 
* [http://programmers.stackexchange.com/questions/154733/my-boss-decided-to-add-a-person-to-blame-field-to-every-bug-report-how-can-i My boss decided to add a “person to blame” field to every bug report. How can I convince him that it's a bad idea?]
 
 
* [http://news.ycombinator.com/item?id=4193479 Ask HN: Your favourite style guide?]
 
* [http://ledgersmbdev.blogspot.co.uk/2012/08/patterns-and-anti-patterns-in-code.html Patterns and Anti-Patterns in Code Comments]
 
 
* [http://projecteuler.net/ Project Euler] is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.
 
* [http://stackoverflow.com/questions/662283/websites-like-projecteuler-net Websites like projecteuler.net]
 
* [https://github.com/necolas/project-euler JavaScript solutions to the Project Euler problems.]
 
 
* [http://blog.stephenwyattbush.com/2012/04/07/dad-and-the-ten-commandments-of-egoless-programming Dad and the Ten Commandments of Egoless Programming]
 
 
* [http://wiki.osdev.org/Main_Page OSDev.org] - wiki that provides information about the creation of operating systems and serves as a community for those people interested in OS creation
 
 
* [[Wikipedia:wikipedia:Backus–Naur_Form|wikipedia:Backus%E2%80%93Naur_Form]] notation, for context-free syntax grammar
 
* [http://bford.info/packrat/ The Packrat Parsing and Parsing Expression Grammars Page]
 
 
* [http://www.informit.com/articles/article.aspx?p=1941206 "The Best Programming Advice I Ever Got" with Rob Pike]
 
 
* [http://adam.chlipala.net/mlcomp/ Comparing Objective Caml and Standard ML]
 
 
* [http://skillsmatter.com/podcast/agile-testing/bobs-last-language The Last Programming Language]
 
** [http://scottlocklin.wordpress.com/2012/09/12/not-all-programmers-alike Not all programmers are alike: a language rant]
 
 
* [http://typing.io/ Typing Practice for Programmers]
 
 
* [http://opsantipatterns.com/ Operations Anti-Patterns]
 
 
* [http://existentialtype.wordpress.com/2011/03/19/dynamic-languages-are-static-languages/ Dynamic languages are static languages]
 
 
* [http://spin.atomicobject.com/2012/10/29/troubleshooting-yourself-in-the-foot/ Troubleshooting Yourself in the Foot]
 
 
* [http://jstorimer.com/2012/11/30/naivety.html Naivety Helped Me Learn Rails]
 
 
* [http://schoolofdata.org/ School of Data] works to empower civil society organizations, journalists and citizens with the skills they need to use data effectively in their efforts to create more equitable and effective societies.
 
* [http://conductrics.com/data-science-resources/ A List of Data Science and Machine Learning Resources]
 
* [http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-080-great-ideas-in-theoretical-computer-science-spring-2008/ Great Ideas in Theoretical Computer Science] - OCW
 
 
* [http://matt.might.net/articles/best-programming-languages/ Advanced programming languages]
 
 
* [https://vimeo.com/9270320 Greg Wilson - What We Actually Know About Software Development, and Why We Believe It's True]
 
 
* [http://ivanjovanovic.com/2012/04/26/programming-languages-are-simply-not-powerful-enough/ Programming Languages Are Simply Not Powerful Enough]
 
 
* [https://speakerdeck.com/alex/why-python-ruby-and-javascript-are-slow Why Python, Ruby, and Javascript are Slow]
 
 
* [http://www.shockoe.com/blog/typingcodeout/ Don't Copy And Paste Other People's Code, Type It Out]
 
 
* [http://codular.com/ http://codular.com/]
 
 
* [http://pandodaily.com/2013/05/07/should-everybody-learn-to-code-a-pandodaily-meta-media-mashup-of-opinion/ http://pandodaily.com/2013/05/07/should-everybody-learn-to-code-a-pandodaily-meta-media-mashup-of-opinion/]
 
 
* [https://news.ycombinator.com/item?id=5802960 https://news.ycombinator.com/item?id=5802960]
 
* http://esolangs.org/wiki/Main_Page
 
 
* [http://www.cis.upenn.edu/~bcpierce/courses/670Fall04/GreatWorksInPL.shtml Great Works in Programming Languages]
 
 
* https://github.com/adambard/learnxinyminutes-docs
 
 
* [https://github.com/mame/quine-relay Quine Relay] is a Ruby program that generates Scala program that generates Scheme program that generates ...(through 50 languages)... REXX program that generates the original Ruby code again.
 
** https://github.com/SilasX/QuineRelayFiles/tree/master/output_files
 
* http://mamememo.blogspot.ca/2010/09/qlobe.html
 
 
* http://www.csc.kth.se/utbildning/kth/kurser/DD1335/gruint10/litterature/
 
 
=== Books ===
 
* http://en.wikipedia.org/wiki/Structure_and_Interpretation_of_Computer_Programs
 
** http://www.eecs.berkeley.edu/~bh/sicp.html
 
** http://news.ycombinator.com/item?id=2115756
 
 
* http://combinators.info/
 
 
* https://gitorious.org/learn-x-the-hard-way/learn-x-the-hard-way/blobs/master/README
 
 
* http://codingforinterviews.com/books
 
 
* http://en.wikibooks.org/wiki/Computer_Programming
 
* WikiBooks: [http://en.wikibooks.org/wiki/A-level_Computing/AQA/Problem_Solving,_Programming,_Operating_Systems,_Databases_and_Networking/Programming_Concepts A-level Computing/AQA/Problem Solving, Programming, Operating Systems, Databases and Networking/Programming Concepts]
 
 
* [http://www.cis.upenn.edu/~bcpierce/sf/toc.html Software Foundations]
 
 
* http://hackershelf.com/
 
* http://eric.themoritzfamily.com/books-every-self-taught-computer-scientist-should-read.html
 
* http://nlpwp.org/book/
 
 
* http://citizen428.net/blog/2010/08/12/30-free-programming-ebooks/
 
 
=== News and Blogs ===
 
* http://lambda-the-ultimate.org/
 
 
* http://queue.acm.org
 
 
* http://www.infoq.com/
 
 
=== Developers ===
 
* http://jwz.org/
 
* http://blogs.msdn.com/b/oldnewthing/
 
* http://paulirish.com/
 
* http://codinghorror.com/blog/ - Jeff Atwood
 
* http://braythwayt.com/ - Reginald Braithwaite
 
** http://raganwald.posterous.com/
 
* http://bradfitz.com/
 
* http://evan.status.net/
 
* http://rachelbythebay.com/
 
 
* http://desandro.com/
 
* http://dcurt.is/
 
 
* http://steve.org.uk/
 
* http://andrewducker.livejournal.com/
 
 
=== Tools ===
 
* http://repl.it/languages/
 
 
=== Coding techniques ===
 
* [http://www.martinfowler.com/articles/continuousIntegration.html Continuous Integration]
 
 
see also agile, xp, etc
 
 
* http://swreflections.blogspot.ca/2013/04/code-ownership-who-should-own-code.html
 
 
== Concepts ==
 
* http://en.wikipedia.org/wiki/Computer
 
* http://en.wikipedia.org/wiki/Computing
 
* http://en.wikipedia.org/wiki/Digital_computer
 
 
=== Computation ===
 
See also [[Maths]]
 
 
* http://en.wikipedia.org/wiki/Theory_of_computation
 
* http://en.wikipedia.org/wiki/Model_of_computation
 
* http://c2.com/cgi/wiki?ModelsOfComputation
 
* http://en.wikipedia.org/wiki/Computability_theory
 
 
* http://en.wikipedia.org/wiki/Church%E2%80%93Turing_thesis
 
* http://en.wikipedia.org/wiki/Church_encoding
 
* http://en.wikipedia.org/wiki/Turing_machine
 
* http://en.wikipedia.org/wiki/Turing_completeness
 
* http://en.wikipedia.org/wiki/Combinatory_logic
 
 
* http://en.wikipedia.org/wiki/Higher-order_function
 
* http://en.wikipedia.org/wiki/Fixed_point_combinator
 
* http://en.wikipedia.org/wiki/Lambda_calculus
 
** http://c2.com/cgi/wiki?LambdaCalculus
 
** http://plato.stanford.edu/entries/lambda-calculus/ [http://news.ycombinator.com/item?id=4932007]
 
** http://worrydream.com/AlligatorEggs/
 
** http://mvanier.livejournal.com/2897.html
 
** http://www.reddit.com/r/learnprogramming/comments/xzs76/lambda_calculus_explained_in_the_simplest_terms/c5r6otq
 
* http://en.wikipedia.org/wiki/Untyped_lambda_calculus
 
* http://en.wikipedia.org/wiki/Typed_lambda_calculus
 
* http://en.wikipedia.org/wiki/Simply_typed_lambda_calculus
 
* http://en.wikipedia.org/wiki/SKI_combinator_calculus
 
* http://en.wikipedia.org/wiki/Binary_lambda_calculus
 
* http://en.wikipedia.org/wiki/%CE%BC-recursive%20function
 
* http://en.wikipedia.org/wiki/Lambda-mu_calculus
 
* http://en.wikipedia.org/wiki/System_F
 
 
* http://en.wikipedia.org/wiki/Von_Neumann_architecture
 
* http://en.wikipedia.org/wiki/Harvard_architecture
 
* http://en.wikipedia.org/wiki/Modified_Harvard_architecture
 
 
* http://en.wikipedia.org/wiki/Alan_Turing
 
* http://en.wikipedia.org/wiki/Alonzo_Church
 
* http://en.wikipedia.org/wiki/Alfred_Tarski
 
* http://en.wikipedia.org/wiki/Kurt_G%C3%B6del
 
* http://en.wikipedia.org/wiki/Emil_Post
 
* http://en.wikipedia.org/wiki/Stephen_Kleene
 
 
* http://en.wikipedia.org/wiki/Computer_science
 
* http://en.wikipedia.org/wiki/Theoretical_computer_science
 
* http://en.wikipedia.org/wiki/Computational_complexity_theory
 
* http://en.wikipedia.org/wiki/Complexity_class
 
 
* http://i.stanford.edu/~ullman/focs.html
 
 
* http://stackoverflow.com/questions/487258/plain-english-explanation-of-big-o
 
* http://en.wikipedia.org/wiki/Time_complexity
 
* http://en.wikipedia.org/wiki/Polynomial_expression
 
 
* http://en.wikipedia.org/wiki/Semantics_(computer_science)
 
* http://en.wikipedia.org/wiki/Denotational_semantics
 
* http://en.wikipedia.org/wiki/Operational_semantics
 
* http://en.wikipedia.org/wiki/Axiomatic_semantics
 
* http://en.wikipedia.org/wiki/Algebraic_semantics_(computer_science)
 
* http://en.wikipedia.org/wiki/Symbolic_computation
 
 
* http://en.wikipedia.org/wiki/Programming_language_theory
 
* http://en.wikipedia.org/wiki/Automatic_programming
 
 
* http://en.wikipedia.org/wiki/Primitive_recursive_function
 
 
* http://blog.fogus.me/2011/09/08/10-technical-papers-every-programmer-should-read-at-least-twice/
 
 
* http://computationaltales.blogspot.co.uk/p/posts-by-topic.html
 
 
* http://worrydream.com/dbx/
 
 
* http://www.nand2tetris.org/
 
 
=== Engineering ===
 
* http://en.wikipedia.org/wiki/Software_engineering
 
* http://en.wikipedia.org/wiki/Software_development_methodology
 
* http://en.wikipedia.org/wiki/Software_development_process
 
 
* [[Wikipedia:Refactoring]]
 
 
* http://zachholman.com/talk/how-github-uses-github-to-build-github/
 
 
* [http://www.infoq.com/presentations/programming-abstraction-liskov Keynote: The Power of Abstraction]
 
** http://en.wikipedia.org/wiki/Barbara_Liskov
 
 
* http://en.wikipedia.org/wiki/Computer_engineering
 
* http://www.amazon.com/Bebop-Bytes-Back-Unconventional-Computers/dp/0965193403
 
 
* http://en.wikipedia.org/wiki/Computer_literacy
 
 
* https://code.google.com/p/gource/
 
 
* http://en.wikipedia.org/wiki/Control_flow
 
 
=== Evaluation ===
 
* http://en.wikipedia.org/wiki/Evaluation
 
 
* http://en.wikipedia.org/wiki/Expression_(mathematics)
 
* http://en.wikipedia.org/wiki/Expression_(computer_science)
 
 
An expression evaluates to a value. A statement does something.
 
x = 1
 
y = x + 1    # an expression
 
print y      # a statement, prints 2
 
 
* http://en.wikipedia.org/wiki/Statement_(programming)
 
 
* http://en.wikipedia.org/wiki/Evaluation_strategy
 
* http://en.wikipedia.org/wiki/Expression-oriented_programming_language
 
* http://en.wikipedia.org/wiki/Referential_transparency_(computer_science)
 
* http://en.wikipedia.org/wiki/Side_effect_(computer_science)
 
* http://en.wikipedia.org/wiki/Information_hiding
 
 
* http://en.wikipedia.org/wiki/Control_flow
 
* http://en.wikipedia.org/wiki/Conditional_(computer_programming)
 
* http://en.wikipedia.org/wiki/Call_stack
 
 
* http://en.wikipedia.org/wiki/First-class_citizen
 
* http://en.wikipedia.org/wiki/Non-strict_programming_language
 
 
* http://en.wikipedia.org/wiki/Rewriting
 
* http://en.wikipedia.org/wiki/Recursion_(computer_science)
 
* http://en.wikipedia.org/wiki/Modulo_operation
 
 
* Vimeo: [https://vimeo.com/66849976 Impossible Programs] - Scottish Ruby Conf
 
 
=== Syntax ===
 
* http://en.wikipedia.org/wiki/Semantics#Computer_science
 
 
* http://en.wikipedia.org/wiki/Syntax_(programming_languages)
 
 
* http://en.wikipedia.org/wiki/Syntactic_sugar
 
 
* http://en.wikipedia.org/wiki/Lexical_analysis
 
 
* http://en.wikipedia.org/wiki/Identifiers#In_computer_science
 
 
* http://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_Form
 
 
* http://en.wikipedia.org/wiki/Syntax_analysis#Programming_languages
 
* http://en.wikipedia.org/wiki/Abstract_syntax_tree
 
 
* http://www.johndcook.com/blog/2013/05/16/extreme-syntax/
 
 
=== Operators ===
 
* http://en.wikipedia.org/wiki/Operator_(programming)
 
 
* http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B
 
 
=== Algorithms ===
 
* http://en.wikipedia.org/wiki/Algorithm
 
* http://en.wikipedia.org/wiki/Algorithm_characterizations
 
 
* http://www.jamisbuck.org/presentations/rubyconf2011/index.html
 
 
* http://en.wikipedia.org/wiki/Memoization
 
 
* http://www.algosort.com/
 
* https://en.wikipedia.org/wiki/List_of_algorithms
 
* http://www.jjj.de/fxt/fxtpage.html#fxtbook [http://news.ycombinator.com/item?id=4957591]
 
* [http://xlinux.nist.gov/dads/ Dictionary of Algorithms and Data Structures]
 
* http://news.ycombinator.com/item?id=4961357
 
* http://graphics.stanford.edu/~seander/bithacks.html
 
* http://rosettacode.org/wiki/Category:Programming_Tasks
 
* http://www.hackersdelight.org/
 
* http://blog.notdot.net/tag/damn-cool-algorithms
 
* http://aima.cs.berkeley.edu/
 
* http://www.cleveralgorithms.com/
 
 
* [https://www.youtube.com/watch?v=t8g-iYGHpEA What different sorting algorithms sound like]
 
* http://preshing.com/20121026/1mb-sorting-explained
 
 
* http://justin.abrah.ms/computer-science/how-to-calculate-big-o.html
 
 
* http://news.ycombinator.com/item?id=4783301
 
 
* http://leftnode.com/entry/i-am-a-great-programmer-but-horrible-algorithmist.html
 
 
* http://jake.simvla.com/posts/531-mr-mrs-kipling
 
 
* https://www.varnish-cache.org/trac/wiki/ArchitectNotes
 
 
* http://developers.memsql.com/blog/common-pitfalls-in-writing-lock-free-algorithms/
 
 
* https://queue.acm.org/detail.cfm?id=1814327
 
 
* http://en.wikipedia.org/wiki/Pointer_(computer_programming)
 
 
* http://compgeom.cs.uiuc.edu/~jeffe/teaching/algorithms/
 
 
* https://news.ycombinator.com/item?id=6093777 - bloom filters
 
 
=== Functions ===
 
*[http://en.wikipedia.org/wiki/Subroutine subroutine] is a sequence of program instructions that perform a specific task, packaged as a unit. This unit can then be used in programs wherever that particular task should be performed. Subprograms may be defined within programs, or separately in libraries that can be used by multiple programs. In different programming languages a subroutine may be called a procedure, a function, a routine, a method, or a subprogram. The generic term callable unit is sometimes used.
 
 
* http://en.wikipedia.org/wiki/Function_prototype
 
 
* http://en.wikipedia.org/wiki/Anonymous_function
 
* http://en.wikipedia.org/wiki/Function_type
 
* http://en.wikipedia.org/wiki/Function_objects
 
* http://en.wikipedia.org/wiki/Closure_(computer_science)
 
** http://nathansjslessons.appspot.com/lesson?id=1000
 
 
* http://en.wikipedia.org/wiki/Callback_(computer_science)
 
* http://en.wikipedia.org/wiki/Call_site
 
* http://en.wikipedia.org/wiki/Tail_call
 
 
* http://en.wikipedia.org/wiki/Function_pointer
 
* http://en.wikipedia.org/wiki/Funarg_problem
 
 
* http://en.wikipedia.org/wiki/Hash_function
 
 
* http://en.wikipedia.org/wiki/Inline_expansion
 
 
* http://en.wikipedia.org/wiki/Curry%E2%80%93Howard_correspondence
 
* http://en.wikipedia.org/wiki/Currying
 
 
* http://en.wikipedia.org/wiki/Defunctionalization
 
 
===etc===
 
* http://en.wikipedia.org/wiki/Literal_(computer_programming)
 
* http://en.wikipedia.org/wiki/String_literal
 
 
* http://en.wikipedia.org/wiki/Variable_(programming)
 
* http://en.wikipedia.org/wiki/Constant_(computer_science)
 
 
* http://en.wikipedia.org/wiki/Scope_(computer_science)
 
* http://en.wikipedia.org/wiki/Side_effect_(computer_science)
 
 
* http://en.wikipedia.org/wiki/Hooking
 
 
* http://en.wikipedia.org/wiki/Concatenative_programming_language
 
* http://concatenative.org/
 
 
* http://en.wikipedia.org/wiki/Parallel_computing
 
 
=== Data types ===
 
* http://en.wikipedia.org/wiki/Data_type
 
* http://en.wikipedia.org/wiki/Type_system
 
 
* http://en.wikipedia.org/wiki/Reference_(computer_science)
 
 
* http://en.wikipedia.org/wiki/Strong_and_weak_typing
 
* http://en.wikipedia.org/wiki/Strong_typing
 
* http://en.wikipedia.org/wiki/Weak_typing
 
* http://en.wikipedia.org/wiki/Type_inference
 
 
* http://en.wikipedia.org/wiki/Structural_type_system
 
* http://en.wikipedia.org/wiki/Nominative_type_system
 
 
* http://en.wikipedia.org/wiki/Value_type
 
* http://en.wikipedia.org/wiki/Reference_type
 
 
* http://en.wikipedia.org/wiki/Symbol_(programming)
 
 
* http://en.wikipedia.org/wiki/Primitive_data_type
 
* http://en.wikipedia.org/wiki/Composite_data_type
 
* http://en.wikipedia.org/wiki/Abstract_data_type
 
* http://en.wikipedia.org/wiki/Algebraic_data_type
 
* http://en.wikipedia.org/wiki/Product_type
 
* http://en.wikipedia.org/wiki/Record_(computer_science)
 
* http://en.wikipedia.org/wiki/Tuple
 
* http://en.wikipedia.org/wiki/Tagged_union
 
* http://en.wikipedia.org/wiki/Recursive_data_type
 
 
* http://en.wikipedia.org/wiki/Type_signature
 
* http://en.wikipedia.org/wiki/Type_conversion
 
 
=== Data structures ===
 
* http://en.wikipedia.org/wiki/Data_structure
 
* http://opendatastructures.org/
 
 
* http://en.wikipedia.org/wiki/Continuation
 
* http://en.wikipedia.org/wiki/Continuation-passing_style
 
* http://en.wikipedia.org/wiki/Stack_(abstract_data_type)
 
* http://en.wikipedia.org/wiki/Call_stack
 
* http://en.wikipedia.org/wiki/Symbol_table
 
 
* http://en.wikipedia.org/wiki/Hash_table
 
* http://en.wikipedia.org/wiki/Array_data_structure
 
* http://en.wikipedia.org/wiki/Array_data_type
 
* http://en.wikipedia.org/wiki/Associative_array
 
* http://en.wikipedia.org/wiki/Set_data_structure
 
* http://en.wikipedia.org/wiki/Abstract_semantic_graph
 
* http://en.wikipedia.org/wiki/Bit_string
 
 
* http://en.wikipedia.org/wiki/Tree_(data_structure)
 
* http://en.wikipedia.org/wiki/Binary_tree
 
* http://en.wikipedia.org/wiki/Binary_search_tree
 
* http://en.wikipedia.org/wiki/B-tree
 
* http://en.wikipedia.org/wiki/Rope_%28data_structure%29
 
 
 
* http://courses.csail.mit.edu/6.851/spring12/
 
 
* http://www.careerride.com/c-arrays-and-linked-list.aspx
 
 
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.
 
 
* http://www.infoq.com/presentations/Data-Structures
 
 
* http://www.brpreiss.com/books/opus5/html/book.html
 
 
* http://okasaki.blogspot.ru/2008/02/ten-years-of-purely-functional-data.html
 
 
* http://www.xanadu.com/zigzag/
 
* YouTube: [http://www.youtube.com/watch?v=WEj9vqVvHPc Ted Nelson on Zigzag data structures] - relationship vector, hyperthoginal
 
 
* http://blogs.perl.org/users/ovid/2010/08/what-to-know-before-debating-type-systems.html
 
 
==== Mutability ====
 
* http://en.wikipedia.org/wiki/Persistent_data_structure
 
 
* http://davesquared.net/2013/03/reasoning-and-mutability.html
 
 
=== Functional ===
 
* http://en.wikipedia.org/wiki/Functional_programming
 
* http://en.wikipedia.org/wiki/Functional_reactive_programming
 
 
* http://stackoverflow.com/questions/327955/does-functional-programming-replace-gof-design-patterns
 
* http://www.dev.gd/20121224-understanding-map-filter-and-fold.html
 
* http://loup-vaillant.fr/tutorials/from-imperative-to-functional
 
 
* http://www.harukizaemon.com/blog/2010/03/01/functional-programming-in-object-oriented-languages/
 
* DrupalCon Munich 2012: [http://munich2012.drupal.org/program/sessions/functional-php Functional PHP]
 
 
* http://en.wikipedia.org/wiki/Applicative_programming_language
 
* http://en.wikipedia.org/wiki/Typed_lambda_calculus
 
* http://en.wikipedia.org/wiki/First-class_function
 
 
* http://technicae.cogitat.io/2012/12/the-secret-history-of-lambda.html
 
* https://gist.github.com/e000/1023982
 
* http://stevelosh.com/blog/2013/03/list-out-of-lambda/
 
 
* [http://www.infoq.com/presentations/Functional-Languages-101 Functional Languages 101: What’s All the Fuss About?]
 
* [http://leanpub.com/fp-oo Functional Programming for the Object-Oriented Programmer]
 
* [http://www.jmolly.com/2012/06/24/functional-and-object-oriented-programming.html Functional and Object-Oriented Programming]
 
 
* [http://www.javaworld.com/javaworld/jw-07-2012/120705-what-s-wrong-with-functional-programming.html Functional programming: A step backward]
 
* [http://richardminerich.com/2012/07/functional-programming-is-dead-long-live-expression-oriented-programming/ Functional Programming is Dead, Long Live Expression-Oriented Programming]
 
 
* [http://newartisans.com/2012/08/monads-in-pictures/ Monads in Pictures] - Aug 20th, 2012
 
 
* Google Video: [http://video.google.com/videoplay?docid=-4991530385753299192 Type-driven testing in Haskell - Simon Peyton Jones]
 
 
* http://www.ibm.com/developerworks/library/j-ft20/
 
 
* http://cstheory.stackexchange.com/questions/1539/whats-new-in-purely-functional-data-structures-since-okasaki
 
 
=== Object Orientated ===
 
* http://en.wikipedia.org/wiki/Object-oriented_programming
 
 
* http://en.wikipedia.org/wiki/Object_(computer_science)
 
* http://en.wikipedia.org/wiki/Class_(computer_science)
 
* http://en.wikipedia.org/wiki/Instance_(computer_science)
 
 
* http://en.wikipedia.org/wiki/Inheritance_(object-oriented_programming)
 
* http://en.wikipedia.org/wiki/Multiple_inheritance
 
* http://en.wikipedia.org/wiki/Prototype-based_programming
 
* http://en.wikipedia.org/wiki/Differential_inheritance
 
 
* http://en.wikipedia.org/wiki/Object_copy
 
* http://en.wikipedia.org/wiki/Object_lifetime
 
 
* http://en.wikipedia.org/wiki/Object_composition
 
* http://en.wikipedia.org/wiki/Composition_over_inheritance
 
* http://en.wikipedia.org/wiki/Late_binding
 
* http://en.wikipedia.org/wiki/Duck_typing
 
 
* http://en.wikipedia.org/wiki/Encapsulation_(object-oriented_programming)
 
 
* http://en.wikipedia.org/wiki/Method_(computer_programming)
 
* http://en.wikipedia.org/wiki/Mutator_method
 
* https://en.wikipedia.org/wiki/Protocol_(object-oriented_programming)
 
 
* https://en.wikipedia.org/wiki/Delegation_(programming)
 
* https://en.wikipedia.org/wiki/Delegation_pattern
 
 
* http://en.wikipedia.org/wiki/Mixin
 
 
* http://en.wikipedia.org/wiki/Observer_pattern
 
* http://en.wikipedia.org/wiki/Template_method_pattern
 
* http://en.wikipedia.org/wiki/Factory_method_pattern
 
* http://en.wikipedia.org/wiki/Composite_pattern
 
* http://en.wikipedia.org/wiki/Decorator_pattern
 
* http://en.wikipedia.org/wiki/Mediator_pattern
 
* http://en.wikipedia.org/wiki/Adapter_pattern
 
 
* http://en.wikipedia.org/wiki/Member_variable
 
 
* http://en.wikipedia.org/wiki/Command_pattern
 
 
* http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization
 
* http://en.wikipedia.org/wiki/SOLID_%28object-oriented_design%29
 
 
* https://plus.google.com/101960720994009339267/posts/hoJdanihKwb - rob pike on oo
 
** http://www.csis.pace.edu/~bergin/patterns/ppoop.html
 
 
* http://blog.ircmaxell.com/2012/07/oop-vs-procedural-code.html
 
 
* http://harmful.cat-v.org/software/OO_programming/why_oo_sucks [http://news.ycombinator.com/item?id=4245737]
 
** http://www.librador.com/2012/07/16/No-thats-not-why-OO-sucks/
 
* http://prog21.dadgum.com/156.html
 
 
* http://wcook.blogspot.co.uk/2012/07/proposal-for-simplified-modern.html
 
* http://blog.codeclimate.com/blog/2012/11/28/your-objects-the-unix-way/
 
 
* http://lwn.net/SubscriberLink/548560/16388a4dbede3884/
 
 
* http://en.wikipedia.org/wiki/Metaobject
 
* http://en.wikipedia.org/wiki/Metaclass
 
 
* http://en.wikipedia.org/wiki/Aspect-oriented_software_development
 
 
* http://web.media.mit.edu/~lieber/Lieberary/OOP/Delegation/Delegation.html [http://dl.acm.org/citation.cfm?id=960112.28718]
 
 
=== Polymorphism ===
 
* http://en.wikipedia.org/wiki/Polymorphism_(computer_science)
 
* http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming
 
* http://en.wikipedia.org/wiki/Subtyping
 
 
=== Macros ===
 
* http://en.wikipedia.org/wiki/Macro_(computer_science)
 
 
* http://www.loper-os.org/?p=401
 
 
=== MV* ===
 
* http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
 
* http://c2.com/cgi/wiki?ModelViewController
 
* http://puremvc.org/content/view/67/178/
 
 
* http://mikepackdev.com/blog_posts/34-a-review-of-mvc
 
 
"create your views, express your models or develop a controller"
 
 
* http://martinfowler.com/eaaDev/PresentationModel.html
 
* http://en.wikipedia.org/wiki/Model_View_ViewModel
 
 
* http://russelleast.wordpress.com/2008/08/09/overview-of-the-modelview-viewmodel-mvvm-pattern-and-data-binding/
 
* http://programmers.stackexchange.com/questions/114409/did-concept-of-viewmodel-exist-before-mvvm
 
 
=== Threads ===
 
* http://en.wikipedia.org/wiki/Thread_(computing)
 
* http://en.wikipedia.org/wiki/Critical_section
 
* http://en.wikipedia.org/wiki/Deadlock
 
 
* http://en.wikipedia.org/wiki/Mutual_exclusion
 
 
=== Paradigms ===
 
* http://c2.com/cgi/wiki?BigIdea
 
 
* http://en.wikipedia.org/wiki/Programming_paradigm
 
** http://upload.wikimedia.org/wikipedia/commons/f/f7/Programming_paradigms.svg
 
 
* http://en.wikipedia.org/wiki/Structured_programming
 
* http://en.wikipedia.org/wiki/Procedural_programming
 
* http://en.wikipedia.org/wiki/Imperative_programming
 
 
* http://en.wikipedia.org/wiki/Declarative_programming
 
** http://en.wikipedia.org/wiki/Dataflow_programming
 
** http://en.wikipedia.org/wiki/Reactive_programming
 
 
* http://latentflip.com/imperative-vs-declarative/
 
 
=== Patterns ===
 
* [[Wikipedia:Software design pattern]]
 
 
* [http://c2.com/cgi/wiki?WelcomeVisitors WikiWikiWeb], aka Portland Pattern Repository's Wiki, aka Ward's Wiki
 
* http://c2.com/cgi/wiki?ExtremeProgrammingRoadmap
 
 
* http://en.wikipedia.org/wiki/Behavioral_pattern
 
 
* http://en.wikipedia.org/wiki/Module_pattern
 
 
* http://en.wikipedia.org/wiki/Singleton_pattern - restrict the instantiation of a class to one object.
 
 
* http://en.wikipedia.org/wiki/Architectural_pattern_%28computer_science%29
 
* http://en.wikipedia.org/wiki/Common_layers_in_an_information_system_logical_architecture
 
 
* http://en.wikipedia.org/wiki/Actor_model
 
 
* http://www.perldesignpatterns.com/?PerlDesignPatterns
 
 
* http://www.jroller.com/landers/entry/the_design_pattern_facade_pattern
 
 
=== Compilation and interpretation ===
 
* http://en.wikipedia.org/wiki/Instruction_set_architecture
 
* http://en.wikipedia.org/wiki/Opcode
 
* http://en.wikipedia.org/wiki/Machine_code
 
 
* http://en.wikipedia.org/wiki/Instruction_pipeline
 
 
* http://en.wikipedia.org/wiki/Assembly_language
 
 
* http://en.wikipedia.org/wiki/Bytecode
 
 
* http://en.wikipedia.org/wiki/Compiler
 
* http://en.wikipedia.org/wiki/History_of_compiler_construction
 
* http://matt.might.net/articles/cps-conversion/
 
 
* http://en.wikipedia.org/wiki/Object_file
 
* http://en.wikipedia.org/wiki/Linker_(computing)
 
 
* http://en.wikipedia.org/wiki/Interpreted_language
 
* http://en.wikipedia.org/wiki/Dynamic_programming_language
 
* http://en.wikipedia.org/wiki/Interpreter_(computing)
 
 
* [http://gcc.gnu.org/  GNU Compiler Collection] includes front ends for C, C++, Objective-C, Fortran, Java, Ada, and Go, as well as libraries for these languages (libstdc++, libgcj,...). GCC was originally written as the compiler for the GNU operating system. The GNU system was developed to be 100% free software, free in the sense that it respects the user's freedom.
 
** http://en.wikipedia.org/wiki/GNU_Compiler_Collection
 
 
* [http://llvm.org/ LLVM] is a collection of modular and reusable compiler and toolchain technologies. Despite its name, LLVM has little to do with traditional virtual machines, though it does provide helpful libraries that can be used to build them. The name "LLVM" itself is not an acronym; it is the full name of the project.
 
** https://idea.popcount.org/2013-07-24-ir-is-better-than-assembly/
 
 
* [https://github.com/kripken/emscripten/wiki Emscripten] is an LLVM to JavaScript compiler. It takes LLVM bitcode (which can be generated from C/C++ using Clang, or any other language that can be converted into LLVM bitcode) and compiles that into JavaScript, which can be run on the web (or anywhere else JavaScript can run).
 
 
* http://en.wikipedia.org/wiki/Clang
 
 
* [http://www.parrot.org/ 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.
 
** http://en.wikipedia.org/wiki/Parrot_virtual_machine
 
 
* http://honza.ca/2013/05/building-a-lisp-to-javascript-compiler
 
 
=== 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.
 
 
* http://blogs.msdn.com/b/oldnewthing/archive/2010/08/09/10047586.aspx
 
 
* http://xtzgzorex.wordpress.com/2012/10/11/demystifying-garbage-collectors/
 
 
* http://blog.brownplt.org/2013/02/19/teaching-gc.html
 
 
* http://michaelrbernste.in/2013/06/03/real-time-garbage-collection-is-real.html
 
 
=== Metaprogramming ===
 
* http://weblog.therealadam.com/2011/12/09/why-metaprogram-when-you-can-program/
 
 
=== Monads ===
 
Aspect of functional. See Haskell, etc. for related.
 
 
* http://gbracha.blogspot.com.au/2011/01/maybe-monads-might-not-matter.html
 
 
* http://adit.io/posts/2013-06-10-three-useful-monads.html
 
 
* http://www.stephendiehl.com/posts/monads.html
 
 
=== Concurrency ===
 
* http://en.wikipedia.org/wiki/Concurrent_computing
 
* http://en.wikipedia.org/wiki/Concurrency_(computer_science)
 
 
=== Events ===
 
* http://en.wikipedia.org/wiki/Event_loop
 
 
* http://en.wikipedia.org/wiki/Event_(computing)
 
 
* http://en.wikipedia.org/wiki/Event-driven_programming
 
 
* http://en.wikipedia.org/wiki/Futures_and_promises
 
 
=== Messaging ===
 
* http://en.wikipedia.org/wiki/Messaging_pattern
 
* http://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern
 
 
* [http://en.wikipedia.org/wiki/Message_queue message queues] and mailboxes are software-engineering components used for interprocess communication, or for inter-thread communication within the same process.
 
** http://blog.iron.io/2012/12/top-10-uses-for-message-queue.html
 
 
* [http://zeromq.org/ ØMQ \zeromq\]
 
** The socket library that acts as a concurrency framework.
 
**  Faster than TCP, for clustered products and supercomputing.
 
 
* https://getbridge.com/start
 
 
* https://github.com/tef/glyph-rpc/
 
<tef> but glyph is the serialization format really :-)
 
* https://vimeo.com/45474360
 
* http://rest.hackyhack.net/2012-07-10.html
 
 
* [http://msgpack.org/ 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.
 
 
* http://www.amqp.org/
 
* http://www.rabbitmq.com/
 
 
* http://telehash.org/
 
 
* http://kentonv.github.com/capnproto/
 
 
=== Futures and promises ===
 
* http://en.wikipedia.org/wiki/Futures_and_promises
 
 
=== Command-line ===
 
* http://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop
 
 
=== GUI ===
 
* http://en.wikipedia.org/wiki/Integrated_development_environment
 
 
* http://en.wikipedia.org/wiki/Visual_programming_language
 
 
=== NLP ===
 
* http://thetokenizer.com/2013/04/28/build-your-own-summary-tool/
 
 
=== Debugging ===
 
* https://news.ycombinator.com/item?id=5788975
 
 
* https://github.com/yinwang0/ydiff
 
** http://yinwang0.wordpress.com/2012/01/03/ydiff/ [https://news.ycombinator.com/item?id=5767664]
 
 
==== DTrace ====
 
* http://www.brendangregg.com/dtrace.html
 
 
== Languages ==
 
* http://exploringdata.github.io/vis/programming-languages-influence-network/
 
 
* [http://www.youtube.com/watch?v=_ahvzDzKdB0 Growing a Language, by Guy Steele]
 
 
=== Fortran ===
 
1957
 
 
* http://en.wikipedia.org/wiki/Fortran
 
 
* http://www.ibiblio.org/pub/languages/fortran/unfp.html
 
 
=== ALGOL ===
 
1958
 
 
* http://en.wikipedia.org/wiki/ALGOL
 
 
=== Lisp ===
 
1959
 
 
See also [[Emacs]]
 
 
* http://en.wikipedia.org/wiki/Lisp
 
 
* http://landoflisp.com/#guilds [http://news.ycombinator.com/item?id=5030803]
 
 
* http://lisperator.net/blog/why-lisp/
 
* http://ghostopera.org/blog/2012/06/24/the-newbie-guide-to-common-lisp/
 
* http://www.quicklisp.org/
 
* http://blog.ppenev.com/2013/04/24/learning-lisp-the-bump-free-way.html
 
 
* http://ergoemacs.org/emacs/elisp.html
 
* http://nic.ferrier.me.uk/blog/2012_07/tips-and-tricks-for-emacslisp
 
 
* http://www.lwh.jp/lisp/
 
* http://nhiro.org/learn_language/LISP-on-browser.html
 
 
* https://google-styleguide.googlecode.com/svn/trunk/lispguide.xml
 
 
* http://www-formal.stanford.edu/jmc/history/lisp/lisp.html
 
* http://www.defmacro.org/ramblings/lisp.html
 
 
* http://arclanguage.org/
 
 
* http://picolisp.com/5000/!wiki?Home
 
* http://blog.thezerobit.com/2012/09/01/beautiful-quicksort-in-common-lisp.html
 
http://xuanji.appspot.com/isicp/1-1-elements.html
 
* http://programmers.stackexchange.com/questions/41045/scheme-vs-common-lisp-which-characteristics-made-a-difference-in-your-project
 
 
* https://igor.io/2012/12/06/sexpr.html
 
 
* http://programmers.stackexchange.com/questions/55284/is-lisp-still-useful-in-todays-world-which-version-is-most-used/188048#188048
 
* http://funcall.blogspot.sg/2009/03/not-lisp-again.html
 
 
* http://www.wilfred.me.uk/blog/2013/03/31/essential-elisp-libraries/
 
 
* http://norvig.com/lispy.html
 
 
* http://blog.samibadawi.com/2013/05/lisp-prolog-and-evolution.html
 
 
* https://github.com/google/lisp-koans
 
 
* http://www.tech-thoughts-blog.com/2013/06/first-steps-with-hy.htmlef
 
 
* http://mr.gy/software/soundlab/ - common lisp sounds
 
 
* https://www.hackerschool.com/blog/21-little-lisp-interpreter [https://news.ycombinator.com/item?id=6090464]
 
 
* http://dreamsongs.com/ArtOfLisp.html
 
 
=== ALGOL 60 ===
 
1960
 
 
* http://en.wikipedia.org/wiki/ALGOL_60
 
 
=== CPL ===
 
1963
 
 
* http://en.wikipedia.org/wiki/CPL_(programming_language)
 
 
=== BASIC ===
 
1964
 
 
* http://en.wikipedia.org/wiki/BASIC
 
 
=== APL ===
 
1964
 
 
wut
 
 
* http://en.wikipedia.org/wiki/APL_language
 
 
* [https://www.youtube.com/watch?v=a9xAKttWgP4 Conway's Game Of Life in APL]
 
* http://www.computerhistory.org/atchm/the-apl-progamming-language-source-code/
 
 
* http://scottlocklin.wordpress.com/2013/07/28/ruins-of-forgotten-empires-apl-languages/
 
 
=== BCPL ===
 
1966
 
 
* http://en.wikipedia.org/wiki/BCPL
 
 
=== Simula ===
 
1967
 
 
* http://en.wikipedia.org/wiki/Simula
 
 
=== Forth ===
 
1968ish
 
 
* http://en.wikipedia.org/wiki/Forth_(programming_language)
 
 
* http://www.forth.com/starting-forth/
 
 
* http://www.colorforth.com/HOPL.html
 
 
=== B ===
 
1969
 
 
* http://en.wikipedia.org/wiki/B_(programming_language)
 
 
=== Pascal ===
 
1970
 
 
* http://en.wikipedia.org/wiki/Pascal_(programming_language)
 
 
=== Smalltalk ===
 
1972
 
 
* http://www.smalltalk.org/main/
 
** http://en.wikipedia.org/wiki/Smalltalk
 
 
* http://strongtalk.org/
 
 
* http://worrydream.com/EarlyHistoryOfSmalltalk/
 
 
=== C / C++ ===
 
1972 / 1979
 
 
* http://en.wikipedia.org/wiki/C_(programming_language)
 
 
* http://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html
 
 
* http://c.learncodethehardway.org/
 
* [http://cm.bell-labs.com/cm/cs/who/dmr/chist.html The Development of the C Language*]
 
* http://scienceblogs.com/goodmath/2006/11/the_c_is_efficient_language_fa.php
 
* http://damienkatz.net/2013/01/the_unreasonable_effectiveness_of_c.html
 
* http://oncoding.posterous.com/the-c-programming-language-part-0
 
 
* http://www.stroustrup.com/bs_faq2.html
 
 
* http://denniskubes.com/2013/04/23/how-to-think-about-variables-in-c/
 
* http://blog.codygriffin.com/2012/09/a-case-for-tuples.html
 
 
* http://root.cern.ch/drupal/content/cling - c repl
 
 
* http://libcello.org/ [https://news.ycombinator.com/item?id=6047576]
 
 
* http://assembly.ynh.io/ [http://news.ycombinator.com/item?id=4560410]
 
 
* http://www.linuxforu.com/2012/06/gnu-make-in-detail-for-beginners/
 
* http://www.advancedlinuxprogramming.com/
 
* http://lwn.net/Articles/518329/
 
* http://www.lemis.com/grog/diary-oct2012.php?topics=c#D-20121012-233520
 
* https://gist.github.com/1091803
 
 
* http://www.a1k0n.net/2011/07/20/donut-math.html
 
* http://preshing.com/20121019/this-is-why-they-call-it-a-weakly-ordered-cpu
 
* http://zserge.com/blog/cucu-part1.html
 
 
* [http://ewontfix.com/10/ Non-invasive printf debugging]
 
 
* http://www.maier-komor.de/metac/
 
 
* http://en.wikipedia.org/wiki/C++
 
 
* http://en.wikipedia.org/wiki/C%2B%2B_Standard_Library
 
* [http://www.isocpp.org/ Standard C++]
 
 
* http://ccodearchive.net/list.html
 
* http://theck01.github.io/offbrand_lib/
 
** https://github.com/theck01/offbrand_lib/
 
* http://gmplib.org/
 
* https://github.com/ned14/uthash
 
 
* [http://www.boost.org/ Boost] provides free peer-reviewed portable C++ source libraries.
 
 
* http://www.rawmaterialsoftware.com/juce.php
 
* https://code.google.com/p/juced/
 
 
* http://www.cs.technion.ac.il/users/yechiel/CS/BadBooksC+C++.html
 
 
* http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html
 
* https://blogs.oracle.com/ksplice/entry/hello_from_a_libc_free
 
 
* http://www-scf.usc.edu/~csci102/slides.html
 
 
=== ML / Standard ML ===
 
1973 / 1990 / 1997
 
 
* http://en.wikipedia.org/wiki/ML_(programming_language)
 
 
* http://en.wikipedia.org/wiki/Standard_ML
 
 
* http://homepages.inf.ed.ac.uk/stg/NOTES/node2.html
 
 
* http://www.impredicative.com/ur/
 
 
* http://www.smlnj.org/
 
 
* http://www.pllab.riec.tohoku.ac.jp/smlsharp/
 
 
=== CLU ===
 
1974
 
 
* http://en.wikipedia.org/wiki/CLU_(programming_language)
 
 
Iterators.
 
 
=== Scheme ===
 
1975
 
 
* http://en.wikipedia.org/wiki/Scheme_(programming_language)
 
 
* http://schemers.org/
 
 
* http://vivid.chengyichao.info/
 
 
* https://dekudekuplex.wordpress.com/2009/10/23/to-scheme-or-not-to-scheme-scheming-schemers-and-non-scheming-schemers-or-keeping-the-fun-in-scheme/
 
 
* http://www.call-cc.org/
 
 
* http://trac.sacrideo.us/wg/wiki
 
 
Continuation-passing_style
 
 
=== Ada ===
 
1980
 
 
* http://en.wikipedia.org/wiki/Ada_(programming_language)
 
 
* http://www.ada2012.org/
 
 
=== Objective-C ===
 
1983
 
 
* [https://en.wikipedia.org/wiki/Objective-C Objective-C] is a general-purpose, high-level, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. It is the main programming language used by Apple for the OS X and iOS operating systems and their respective APIs, Cocoa and Cocoa Touch. Originally developed in the early 1980s, it was selected as the main language used by NeXT for its NeXTSTEP operating system, from which OS X and iOS are derived.[1] Generic Objective-C programs that do not use the Cocoa or Cocoa Touch libraries can also be compiled for any system supported by GCC or Clang.
 
 
=== Eiffel ===
 
1986
 
 
* http://en.wikipedia.org/wiki/Eiffel_(programming_language)
 
 
=== Caml / OCaml ===
 
1985 / 1996
 
 
* http://en.wikipedia.org/wiki/Caml
 
* http://en.wikipedia.org/wiki/OCaml
 
 
=== Object Pascal ===
 
1986
 
 
* http://en.wikipedia.org/wiki/Object_Pascal
 
 
=== Modula-3 ===
 
1986/1989
 
 
* http://en.wikipedia.org/wiki/Modula-3
 
 
=== Self ===
 
1987
 
 
* http://selflanguage.org/
 
* https://en.wikipedia.org/wiki/Self_(programming_language)
 
 
=== Perl ===
 
1987
 
 
* http://en.wikipedia.org/wiki/Perl
 
 
* http://www.linuxjournal.com/article/2070
 
 
* http://www.josetteorama.com/perl/what-is-modern-perl/
 
 
* http://www.cs.tut.fi/~jkorpela/perl/cgi.html
 
 
* http://www.ebb.org/bkuhn/blog/2012/12/18/perl-cobol.html
 
 
* http://lanyrd.com/2013/linuxconfau/szzxt/
 
 
* http://www.idryman.org/blog/2013/03/23/installing-swank-dot-js/
 
 
* http://www.cpan.org/
 
* http://mapofcpan.org/
 
 
* https://metacpan.org
 
 
* http://www.perl.com/pub/1999/03/pm.html
 
 
=== TCL ===
 
1988
 
 
* http://en.wikipedia.org/wiki/Tcl
 
 
* http://antirez.com/articoli/tclmisunderstood.html?
 
 
=== Haskell ===
 
1990
 
 
* [http://www.haskell.org/haskellwiki/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.
 
 
* [http://www.haskell.org/ghc/ GHC] is a state-of-the-art, open source, compiler and interactive environment for the functional language Haskell. Highlights:
 
** [http://www.haskell.org/ghc/docs/latest/html/ GHC Documentation]
 
 
* http://blog.ezyang.com/2013/01/the-ghc-scheduler/
 
 
* [http://pragprog.com/magazines/2012-08/thinking-functionally-with-haskell Thinking Functionally with Haskell] - 3rd Aug, 2012
 
 
* http://cheatsheet.codeslower.com/
 
 
* http://lisperati.com/haskell/ht1.html
 
 
* http://learnyouahaskell.com/chapters
 
 
* https://news.ycombinator.com/item?id=6116347
 
 
==== Packages ====
 
A [http://www.haskell.org/ghc/docs/7.0.3/html/users_guide/packages.html 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).
 
 
* [http://www.haskell.org/cabal/ 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.
 
** [http://www.haskell.org/cabal/users-guide/ Cabal User Guide]
 
 
* [http://hackage.haskell.org/packages/hackage.html 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.
 
 
* [http://www.haskell.org/haskellwiki/Cabal-Install 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.
 
 
* [http://ivanmiljenovic.wordpress.com/2010/03/15/repeat-after-me-cabal-is-not-a-package-manager/ Repeat after me: “Cabal is not a Package Manager”]
 
 
* [http://www.willamette.edu/~fruehr/haskell/evolution.html The Evolution of a Haskell Programmer]
 
 
* [http://projects.haskell.org/gtk2hs/ Gtk2Hs] - A GUI Library for Haskell based on Gtk
 
 
==== Arch ====
 
* Arch Wiki: [https://wiki.archlinux.org/index.php/Haskell_Package_Guidelines Haskell Package Guidelines]
 
* [http://archhaskell.wordpress.com/author/archhaskell/ News about Haskell on Arch Linux]
 
* https://github.com/archhaskell/habs - AUR is out of date for haskell packages
 
 
pacman -Rncs ghc
 
  remove all haskell..
 
 
==== Web ====
 
* [http://www.yesodweb.com/ Yesod] is a Haskell web framework for productive development of type-safe, RESTful, high performance web applications.
 
 
* [http://snapframework.com/ 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 ====
 
* [http://fay-lang.org/ 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
 
** https://github.com/chrisdone/fay
 
 
* https://news.ycombinator.com/item?id=5946694
 
 
=== Erlang ===
 
1990
 
 
* http://learnyousomeerlang.com/
 
* http://pragprog.com/articles/erlang
 
 
* http://thewebdev.de/the-erlang-stack/
 
* http://www.evanmiller.org/why-i-program-in-erlang.html
 
 
* http://elixir-lang.org/
 
 
* https://www.youtube.com/watch?v=lHoWfeNuAN8
 
 
=== J ===
 
1990
 
 
* http://en.wikipedia.org/wiki/J_(programming_language)
 
 
=== Q ===
 
1991
 
 
* http://en.wikipedia.org/wiki/Q_(equational_programming_language)
 
 
* http://www.jsoftware.com/jwiki/Articles
 
 
=== Lua ===
 
1993
 
 
* [http://www.lua.org/about.html 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)
 
 
* http://terralang.org/
 
 
* http://en.wikipedia.org/wiki/Lua_(programming_language)
 
* [http://www.lua.org/manual/5.2/ Lua 5.2 Reference Manual]
 
 
* http://tylerneylon.com/a/learn-lua/
 
* Awesome: [http://awesome.naquadah.org/wiki/The_briefest_introduction_to_Lua The briefest introduction to Lua]
 
* [http://lua-users.org/wiki/LuaTutorial Lua Tutorial] - lua-users wiki
 
* [http://www.lua.org/pil/ Programming in Lua] This book is a detailed and authoritative introduction to all aspects of Lua programming, by Lua's chief architect. Programming in Lua gives a solid base for any programmer who wants to use Lua. It covers all aspects of Lua—from the basics to its API with C—explaining how to make good use of its features and giving numerous code examples. The book is targeted at people with some programming background, but it does not assume any prior knowledge about Lua or other scripting languages.
 
* [http://www.luafaq.org/ Lua Unofficial FAQ (uFAQ)]
 
* http://stackoverflow.com/questions/10891957/difference-between-tables-and-metatables-in-lua
 
 
* http://notebook.kulchenko.com/programming/lua-good-different-bad-and-ugly-parts
 
* [http://phrogz.net/lua/LearningLua_FromJS.html Learning Lua/From JS] - Know JavaScript, and want to learn Lua? Here's are some quick facts about the similarities and differences.
 
* http://stackoverflow.com/questions/1022560/subtle-differences-between-javascript-and-lua
 
* http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=lua&lang2=v8
 
* http://www.mediawiki.org/wiki/User:Sumanah/Lua_vs_Javascript
 
 
* http://code.google.com/p/lua-checker/
 
* [http://luajit.org/ LuaJIT] — a Just-In-Time Compiler for Lua.
 
* [http://metalua.luaforge.net/ 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.
 
 
* http://www.brischalle.de/Lua-Quick-Try-Out/Lua-Quick-Try-Out_en.html
 
 
os.time();
 
os.getenv()
 
  i.e. os.getenv( "HOME" ); ?? to confirm, hardcoded as no time atm.
 
 
* http://olivinelabs.com/busted/ - testing
 
 
* http://moonscript.org/
 
* https://love2d.org/
 
 
* http://luvit.io/ - non-blocking node.js
 
 
* http://loop.luaforge.net/
 
 
* http://kripken.github.io/lua.vm.js/lua.vm.js.html
 
 
=== R ===
 
1993
 
 
Good for stats.
 
 
* http://en.wikipedia.org/wiki/R_language
 
 
* http://tryr.codeschool.com/
 
 
* http://simplystatistics.org/2013/04/02/introducing-the-healthvis-r-package-one-line-d3-graphics-with-r/
 
 
=== Brainfuck ===
 
1993
 
 
* http://en.wikipedia.org/wiki/Brainfuck
 
 
* http://fatiherikli.github.io/brainfuck-visualizer/
 
 
=== Racket ===
 
1994
 
 
* http://en.wikipedia.org/wiki/Racket_(programming_language)
 
 
* http://racket-lang.org/
 
 
=== PHP ===
 
1995
 
 
See [[PHP]]
 
 
=== Java ===
 
1995
 
 
* http://en.wikipedia.org/wiki/Java_(programming_language)
 
 
* https://github.com/OmerShapira/Syntactic
 
* http://badassjs.com/post/32812527381/doppio-a-java-virtual-machine-compiler-and
 
 
Java syntax seems unwieldy.
 
 
* http://en.wikipedia.org/wiki/Web_container
 
* http://en.wikipedia.org/wiki/Java_Servlet
 
 
==== Apache Tomcat ====
 
* http://tomcat.apache.org/
 
** http://en.wikipedia.org/wiki/Apache_Tomcat
 
 
* http://tomcat.apache.org/tomcat-6.0-doc/deployer-howto.html
 
 
* http://wiki.apache.org/solr/SolrTomcat
 
 
==== Jetty ====
 
* http://en.wikipedia.org/wiki/Jetty_(web_server)
 
 
=== Ruby ===
 
1995
 
 
* http://www.ruby-lang.org/en/
 
* http://en.wikipedia.org/wiki/Ruby_(programming_language)
 
 
See [[Ruby]]
 
 
=== Dylan ===
 
Mid 90s
 
 
* http://opendylan.org/
 
* http://en.wikipedia.org/wiki/Dylan_(programming_language)
 
 
=== C# ===
 
2000
 
 
* http://en.wikipedia.org/wiki/C_Sharp_(programming_language)
 
 
* http://csharp.net-informations.com/
 
 
=== D ===
 
2001
 
 
* http://dlang.org/
 
* http://en.wikipedia.org/wiki/D_(programming_language)
 
 
* http://ddili.org/ders/d.en/index.html
 
 
=== Processing ===
 
2001
 
 
* http://en.wikipedia.org/wiki/Processing_(programming_language)
 
 
* http://natureofcode.com/ - processing book
 
 
=== Io ===
 
2002
 
 
* http://iolanguage.org/
 
* http://en.wikipedia.org/wiki/Io_(programming_language)
 
 
=== Scala ===
 
2003
 
 
* http://en.wikipedia.org/wiki/Scala_(programming_language)
 
 
* http://blog.greweb.fr/2013/01/playcli-play-iteratees-unix-pipe/
 
 
* https://speakerdeck.com/ryanlecompte/confessions-of-a-ruby-developer-whose-heart-was-stolen-by-scala
 
 
* http://www.dehora.net/journal/2013/06/15/on-scala/
 
 
=== F# ===
 
2005
 
 
* http://en.wikipedia.org/wiki/F_Sharp_(programming_language)
 
 
* http://msdn.microsoft.com/en-us/vstudio/hh388569.aspx
 
* http://www.tryfsharp.org/
 
* [http://graybeardprogrammer.com/?p=1 A Gray Beard Explores F#]
 
* http://colinbul.wordpress.com/2013/02/23/f-end-to-end/
 
 
=== Vala ===
 
2006
 
 
* http://en.wikipedia.org/wiki/Vala_(programming_language)
 
 
=== Clojure ===
 
2007
 
 
* http://clojure.org/
 
** http://en.wikipedia.org/wiki/Clojure
 
 
* https://github.com/clojure/clojurescript
 
 
* https://github.com/technomancy/leiningen
 
 
* http://adambard.com/blog/clojure-batteries-included/
 
 
=== Arc ===
 
2008
 
 
Lisp dialect by PG etc. Developed in Racket.
 
 
* http://arclanguage.org/
 
* http://en.wikipedia.org/wiki/Arc_(programming_language)
 
 
=== Pure ===
 
2008
 
 
* http://purelang.bitbucket.org/
 
 
* http://en.wikipedia.org/wiki/Pure_(programming_language)
 
 
=== Go ===
 
2009
 
 
* http://golang.org/
 
** http://en.wikipedia.org/wiki/Go_language
 
 
* http://robfig.github.com/revel/
 
 
* http://research.swtch.com/godata
 
 
* http://skife.org/go/2012/11/18/go_part_1.html
 
 
* http://pragprog.com/magazines/2012-06/the-beauty-of-concurrency-in-go
 
* http://nathany.com/why-go
 
 
* http://arstechnica.com/information-technology/2013/05/my-favorite-programming-language-googles-go-has-some-coders-raving/
 
 
=== Dao ===
 
2009
 
 
* http://daovm.net/
 
 
=== Zimbu ===
 
2009
 
 
* [http://www.zimbu.org/ Zimbu] is an experimental programming language.  It is a very practical, no-nonsense kind of language.  It mixes the good things of many existing languages and avoids their deficiencies.  And then throws in a few brand new ideas.
 
** http://en.wikipedia.org/wiki/Zimbu
 
 
=== Rust ===
 
2010
 
 
* http://en.wikipedia.org/wiki/Rust_(programming_language)
 
 
* http://www.rust-lang.org/ - from mozilla
 
** https://github.com/mozilla/rust/wiki/Doc-using-cargo-to-manage-packages
 
 
* http://winningraceconditions.blogspot.co.uk/2012/09/rust-0-index-and-conclusion.html
 
* http://lucumr.pocoo.org/2012/10/18/such-a-little-thing/
 
 
* https://github.com/pcwalton/zero.rs
 
* https://github.com/charliesome/rustboot
 
 
=== Crack ===
 
2010
 
 
* [https://code.google.com/p/crack-language/ The Crack Programming Language]
 
 
=== Dart ===
 
2011
 
 
* http://www.dartlang.org/ - from google
 
** http://en.wikipedia.org/wiki/Dart_(programming_language)
 
 
* http://programming.oreilly.com/2013/05/dart-is-not-the-language-you-think-it-is.html
 
 
* http://www.youtube.com/watch?v=VQLdm8BY1Ao
 
 
=== Elm ===
 
2011
 
 
* [http://elm-lang.org/ Elm] is a functional reactive programming (FRP) language that compiles to HTML, CSS, and JS. FRP is a concise and elegant way to create highly interactive applications and avoid callbacks.
 
** http://en.wikipedia.org/wiki/Elm_(programming_language)
 
 
* http://elm-lang.org/learn/Escape-from-Callback-Hell.elm [https://news.ycombinator.com/item?id=5311361]
 
 
* http://radar.oreilly.com/2012/12/emerging-languages-spotlight-elm.html
 
 
=== Elixier ===
 
2011
 
 
* [http://elixir-lang.org/ Elixir] is a functional meta-programming aware language built on top of the Erlang VM. It is a dynamic language with flexible syntax with macros support that leverages Erlang's abilities to build concurrent, distributed, fault-tolerant applications with hot code upgrades. Elixir also provides first-class support for pattern matching, polymorphism via protocols (similar to Clojure's), aliases and associative data structures (usually known as dicts or hashes in other programming languages). Finally, Elixir and Erlang share the same bytecode and data types. This means you can invoke Erlang code from Elixir (and vice-versa) without any conversion or performance hit. This allows a developer to mix the expressiveness of Elixir with the robustness and performance of Erlang.
 
** http://en.wikipedia.org/wiki/Elixir_(programming_language)
 
** https://github.com/elixir-lang/elixir
 
 
* http://joearms.github.io/2013/05/31/a-week-with-elixir.html
 
 
=== Shen ===
 
2011
 
 
* http://www.shenlanguage.org/
 
** http://en.wikipedia.org/wiki/Shen_(programming_language)
 
 
=== Julia ===
 
2012
 
 
* http://julialang.org/
 
** http://en.wikipedia.org/wiki/Julia_(programming_language)
 
 
* http://strata.oreilly.com/2012/10/matlab-r-julia-languages-for-data-analysis.html
 
 
* http://julialang.org/blog/2013/03/julia-tutorial-MIT/
 
 
=== Typescript ===
 
2012
 
 
* http://www.typescriptlang.org/
 
** http://en.wikipedia.org/wiki/TypeScript
 
 
From Microsoft, compiles to JS.
 
 
* http://www.hanselman.com/blog/WhyDoesTypeScriptHaveToBeTheAnswerToAnything.aspx
 
 
=== Clay ===
 
* http://claylabs.com/clay/
 
 
=== Babar ===
 
2013
 
 
* https://github.com/gigasquid/babar
 
 
=== Lobster ===
 
2013
 
 
* http://strlen.com/lobster
 
 
=== Chicken ===
 
2013
 
 
* http://torso.me/chicken
 
 
=== Z ===
 
2013
 
 
* [http://chrisdone.com/z/ A tiny language called Z]
 
 
== Other ==
 
=== GNU ===
 
* http://www.gnu.org/software/guile/
 
 
=== Regular expressions ===
 
* http://en.wikipedia.org/wiki/Regular_expression
 
 
* http://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions
 
* http://www.pcre.org/
 
 
* http://us2.php.net/manual/en/book.pcre.php
 
 
* https://github.com/VerbalExpressions
 
 
==== Guides ====
 
* [http://wiki.xtronics.com/index.php/Regex regex cheatsheet]
 
 
* http://regex.learncodethehardway.org/book/
 
* http://net.tutsplus.com/tutorials/javascript-ajax/you-dont-know-anything-about-regular-expressions/
 
 
* http://swtch.com/~rsc/regexp/regexp1.html
 
* http://stackoverflow.com/questions/16621738/d-less-efficient-than-0-9
 
* http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags?lq=1
 
 
==== Web tools ====
 
* http://regex101.com/
 
 
* http://gskinner.com/RegExr/
 
 
* http://myregextester.com/
 
* http://regexpal.com/
 
* http://regex.inginf.units.it/
 
* http://www.debuggex.com/
 
* http://www.regexper.com/ -js
 
* http://www.spaweditor.com/scripts/regex/ - php
 
* http://www.regextester.com/index2.html
 
 
* http://www.pcreck.com/ - pcre
 
 
* http://stevenlevithan.com/regex/colorizer/
 
 
* http://txt2re.com/
 
* http://rubular.com/
 
 
* http://regexcrossword.com/
 
 
==== GUI ====
 
* http://regexxer.sourceforge.net/
 
 
=== Serialization and markup ===
 
See also [[HTML/CSS#Markup]], [[JavaScript#JSON]]
 
 
* http://en.wikipedia.org/wiki/Serialization
 
* http://en.wikipedia.org/wiki/Marshalling_(computer_science)
 
 
* http://en.wikipedia.org/wiki/Comparison_of_data_serialization_formats
 
* http://en.wikipedia.org/wiki/Category:Data_serialization_formats
 
* http://www.drdobbs.com/web-development/after-xml-json-then-what/240151851
 
 
* http://en.wikipedia.org/wiki/Markup_Language
 
 
* http://en.wikipedia.org/wiki/S-expression
 
 
* http://en.wikipedia.org/wiki/Runoff_(program)
 
* http://en.wikipedia.org/wiki/IBM_Generalized_Markup_Language
 
* http://en.wikipedia.org/wiki/TeX - 1978
 
* http://en.wikipedia.org/wiki/Scribe_(markup_language) - 1980
 
 
* http://en.wikipedia.org/wiki/Standard_Generalized_Markup_Language
 
* http://en.wikipedia.org/wiki/HTML
 
* http://en.wikipedia.org/wiki/XML
 
** http://en.wikipedia.org/wiki/XSLT
 
** http://www.w3.org/TR/xlink11/
 
* http://en.wikipedia.org/wiki/XQuery
 
 
* http://en.wikipedia.org/wiki/JSON
 
 
* http://www.yaml.org/
 
** http://en.wikipedia.org/wiki/YAML
 
** http://ajaxian.com/archives/json-yaml-its-getting-closer-to-truth
 
 
* https://code.google.com/p/dspl/
 
** https://developers.google.com/public-data/
 
 
* [https://code.google.com/p/protobuf/ Protocol Buffers] are a way of encoding structured data in an efficient yet extensible format. Google uses Protocol Buffers for almost all of its internal RPC protocols and file formats.
 
** https://developers.google.com/protocol-buffers/docs/overview
 
 
* [http://stateless.co/hal_specification.html HAL is a format you can use in your API that gives you a simple way of linking. It has two variants, one in JSON and one in XML.]
 
 
* http://blog.okfn.org/2013/04/24/frictionless-data-making-it-radically-easier-to-get-stuff-done-with-data/
 
 
* http://www.dataprotocols.org/en/latest/data-formats.html
 
 
* http://kentonv.github.io/ - from proto buf dev [https://news.ycombinator.com/item?id=5954266]
 
 
* http://en.wikipedia.org/wiki/H-Store
 
** http://www.craigkerstiens.com/2013/07/03/hstore-vs-json/
 
 
=== UML ===
 
* http://bramp.github.io/js-sequence-diagrams/
 
 
=== XUL ===
 
* [http://en.wikipedia.org/wiki/XUL XUL] (/ˈzuːl/ zool), which stands for XML User Interface Language, is a user interface markup language that is developed by the Mozilla Project. XUL is implemented as an XML dialect; it allows for graphical user interfaces to be written in a similar manner to Web pages.
 
 
* https://developer.mozilla.org/en/XUL
 
 
* https://developer.mozilla.org/en/XUL
 
* https://developer.mozilla.org/en/XULRunner
 
 
=== Compression ===
 
* http://mattmahoney.net/dc/dce.html?year=2011
 
 
=== Network ===
 
* [http://www.beej.us/guide/bgnet/output/html/singlepage/bgnet.html Beej's Guide to Network Programming] - Using Internet Sockets
 
 
* http://en.wikipedia.org/wiki/Distributed_hash_table
 
 
=== Stats and big data ===
 
* http://cacm.acm.org/blogs/blog-cacm/155468-what-does-big-data-mean/fulltext
 
* http://www.evanmiller.org/statistical-formulas-for-programmers.html
 
 
* http://code.google.com/p/ourmine/wiki/LectureNaiveBayes
 
 
* http://bigocheatsheet.com/
 
 
* http://bitly.com/bundles/bigmlcom/4
 
 
* http://www.gregreda.com/2013/07/15/unix-commands-for-data-science/ [https://news.ycombinator.com/item?id=6046682]
 
 
* [http://arxiv.org/abs/1210.0530v1 Best Practices for Scientific Computing]
 
 
* http://blog.zipfianacademy.com/post/46864003608/a-practical-intro-to-data-science
 
 
* [http://www.kaggle.com/ Kaggle] - Service - From Big Data to Big Analytics.
 
 
* http://allthingsd.com/20130520/in-media-big-data-is-booming-but-big-results-are-lacking/?mod=thisweek
 
 
* http://www.forbes.com/sites/gilpress/2013/05/28/a-very-short-history-of-data-science/
 
 
* https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers
 
 
=== Games ===
 
* http://osgameclones.com/
 
 
* http://gameprogrammingpatterns.com/
 
 
* http://www.essentialmath.com/tutorial.htm
 
 
=== Documentation ===
 
* http://docopt.org/
 
* http://jashkenas.github.com/docco/
 
* http://jacobrask.github.com/styledocco/
 
 
* https://www.braintreepayments.com/blog/api-where-to-begin
 
 
* http://rhodesmill.org/brandon/2012/one-sentence-per-line/
 
 
=== to sort ===
 
[[Game of Life]]
 
 
* [http://matt.might.net/articles/grammars-bnf-ebnf/ The language of languages] - explains grammars and common notations for grammars, such as Backus-Naur Form (BNF), Extended Backus-Naur Form (EBNF) and regular extensions to BNF.
 
 
* http://en.wikipedia.org/wiki/Comparison_of_user_interface_markup_languages
 
 
* [http://thrift.apache.org/docs/concepts/ Apache Thrift network stack]
 
 
* [http://www.gnu.org/licenses/gpl-howto.html How to use GNU licenses for your own software]
 
 
* Stackoverflow: [http://stackoverflow.com/questions/141525/absolute-beginners-guide-to-bit-shifting Absolute Beginner's Guide to Bit Shifting?]
 
 
* [http://slidetocode.com/2012/05/06/the-perfect-programming-language/ The genesis of a perfect programming language]
 
 
* [http://videolectures.net/mit6046jf05_demaine_lec02/ Lecture 2: Asymptotic Notation, Recurrences, Substitution, Master Method]
 
 
* [http://oss.oetiker.ch/rrdtool/ RRDtool] is the OpenSource industry standard, high performance data logging and graphing system for time series data. RRDtool can be easily integrated in shell scripts, perl, python, ruby, lua or tcl applications.
 
 
* [http://semver.org/ Semantic Versioning 2.0.0-rc.1]
 
 
* [http://xmlvm.org/overview/ XMLVM] is to offer a flexible and extensible cross-compiler toolchain. Instead of cross-compiling on a source code level, XMLVM cross-compiles byte code instructions from Sun Microsystem's virtual machine and Microsoft's Common Language Runtime. The benefit of this approach is that byte code instructions are easier to cross-compile and the difficult parsing of a high-level programming language is left to a regular compiler. In XMLVM, byte code-based programs are represented as XML documents. This allows manipulation and translation of XMLVM-based programs using advanced XML technologies such as XSLT, XQuery, and XPath.
 
 
* [http://mathematica.stackexchange.com/questions/11819/help-find-a-bright-object-on-mars Help find a bright object on Mars!]
 
 
* [http://oredev.org/2012/sessions/its-not-you-its-them-why-programming-languages-are-hard-to-teach Session: It's Not You, It's Them: Why Programming Languages Are Hard To Teach]
 
 
* [http://blog.appfog.com/what-the-obama-it-team-teaches-us-about-polyglot-programming/ What the Obama IT team teaches us about polyglot programming]
 
 
* [https://vimeo.com/36579366 Bret Victor - Inventing on Principle]
 
 
* YouTube: [http://www.youtube.com/watch?v=Vt8jyPqsmxE Extracting Energy from the Turing Tarpit] - Alan C. Kay during the ACM A.M. Turing Centenary Celebration, June, 2012.
 
 
modelling;
 
* [http://qe-forge.org/gf/ QEforge] is a web portal offering support to researchers active in the field of computer simulation and numerical modeling of matter and materials at the atomic scale. The most popular source code management (CVS, SVN or Git ) systems, mailing lists, public forums, download space, wiki pages, and much more are provided through the Gforge engine.
 
 
* [https://code.google.com/p/gource/ Gource] is a software version control visualization tool.
 
 
* [http://ubietylab.net/ubigraph/ UbiGraph] is a tool for visualizing dynamic graphs. The basic version is free, and talks to Python, Ruby, PHP, Java, C, C++, C#, Haskell, and OCaml.
 
 
* [http://hunspell.sourceforge.net/ Hunspell] is the spell checker of LibreOffice, OpenOffice.org, Mozilla Firefox 3 & Thunderbird, Google Chrome, and it is also used by proprietary software packages, like Mac OS X, InDesign, memoQ, Opera and SDL Trados.
 
 
 
==== GROK ====
 
* https://code.google.com/p/semicomplete/wiki/Grok
 
* YouTube: [http://www.youtube.com/watch?v=KTJs-0EInW8 Stanford Seminar - Google's Steve Yegge on GROK]
 
 
=== For kids ===
 
* http://scratch.mit.edu/
 
* http://ase.tufts.edu/DevTech/ScratchJr/ScratchJrHome.asp
 
 
* http://www.robomind.net/en/index.html
 
** http://www.in-the-attic.co.uk/2012/10/04/teaching-my-5-year-old-daughter-to-code/
 
 
* http://www.sesameworkshop.org/our-blog/2012/12/17/sesames-best-practices-guide-for-childrens-app-development/
 
 
* http://blog.minibloq.org/
 
 
* http://squeak.org/ - smalltalk
 
 
* http://www.aisforarray.com/
 
 
* https://github.com/maryrosecook/islaclj
 
 
=== Social ===
 
* http://snipplr.com/
 
 
=== Aesthetics ===
 
perl
 
 
* http://code-poems.com/
 
* http://www.wired.co.uk/news/archive/2012-10/12/code-poems-book
 
* http://en.wikipedia.org/wiki/Just_another_Perl_hacker
 
* http://www.ibm.com/developerworks/linux/library/l-japh/index.html
 
 
* http://ruben.verborgh.org/blog/2013/02/21/programming-is-an-art/
 
* https://blooki.st/BlookElement/ShowTextPhoto?blookElementId=1962
 
 
=== Humour ===
 
* http://www.reddit.com/r/programmerhumor
 
* http://www.reddit.com/r/programminghorror
 
* http://www.reddit.com/r/ProgrammerCringe
 
* http://www.reddit.com/r/shittyprogramming/
 
 
* http://codecrap.com/
 
* http://www.devsigh.com/
 
 
* http://twoproblems.com/
 
 
* [http://stackoverflow.hewgill.com/questions/234/075.html What is your best programmer joke?]
 
* http://stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered
 

Latest revision as of 00:32, 26 August 2013