Since the early 1990s, I've been collecting and categorizing web sites
I've found useful. When I published the first version of this web site
all those years ago, that list was the focus of the site. Back then,
everybody on the web seemed to have the same idea. Eventually, some
people took the idea more seriously, and formed companies like Yahoo to commercialize their work. I've kept plugging along with my humble,
eclectic list all these years, and I can't seem to stop collecting. I
hope you find it useful, too.
- Agile Alliance, a group that has come up with a set of principles for "agile" software development
- Algorithms
- Angular teaches your old browser new tricks. It is what HTML would have been, if it was designed for building web applications.
- APL
- Artificial Intelligence
- Artima.com, whose pages include lots of interesting articles on programming
- Aspect-Oriented Programming
- Assembly-language programming
- Bochs: the Open-Source, Cross-Platform IA-32 Emulator
- Books
- C--, an intermediate language for compilers
- Choose a License: helps … developers choose an open source license for their source code
- Cygwin, ports of the popular GNU development tools and utilities for Windows
- data interchange formats
- Cap'n Proto: fast data interchange format and capability-based RPC system
- CBOR: RFC 7049 Concise Binary Object Representation
- JSON: a lightweight computer data interchange format tailored to JavaScript but suitable for other languages, too
- Protocol Buffers: a language-neutral, platform-neutral extensible mechanism for serializing structured data from Google
- DBA Support
- DBLP: computer science bibliography
- Douglas Engelbart videos, in which he demonstrates hyperlinks, interactive editing, mice, and many other concepts -- in 1968
- Dylan
- Open Dylan: compiles to native code, has an excellent IDE with support for incremental development, and has great library support
- Dynamic Languages Wizards Series, Spring 2001
- E programming language
- ERights.org: home of E, the secure distributed pure-object platform and p2p scripting language for writing Capability-based Smart Contracts
- Epigrams in Programmingby Alan Perlis
- Erlang, an open-source language used by Ericsson for telecommunications programming
- Explain Shell: explains shell commands you give to it
- Extreme Programming
- Falsehoods programmers believe about [mailing] addresses
- Flash
- FOLDOC, the Free On-Line Dictionary of Computing
- Frink: a practical calculating tool and programming language designed to help us all to better understand the world around us, to help us get calculations right without getting bogged down in the mechanics, and to make a tool that's really useful in the real world. It tracks units of measure (feet, meters, kilograms, watts, etc.) through all calculations, allowing you to make physical calculations easily, mix units of measure transparently, and ensure that the answers come out right.
- GCCXML: a program that can generate an XML description of a C++ program from GCC's internal representation
- GNU(Gnu's Not Unix) Project
- Savannah.GNU.org: a central point for development, distribution and maintainance of Free Software
- GNU Lightning: a library that generates assembly language code at run-time; it is very fast, making it ideal for Just-In-Time compilers, and it abstracts over the target CPU, as it exposes to the clients a standardized RISC instruction set inspired by the MIPS and SPARC chips
- Graphemica: For people who ♥ letters, numbers, punctuation, &c
- Graphics
- JavaScript InfoVis Toolkit: provides tools for creating Interactive Data Visualizations for the Web
- Protovis: composes custom views of data with simple marks such as bars and dots. Unlike low-level graphics libraries that quickly become tedious for visualization, Protovis defines marks through dynamic properties that encode data, allowing inheritance, scales and layouts to simplify construction.
- Haskell, a functional programming language
- Henry Baker's Archive of Research Papers
- High Scalability: building bigger, faster, more reliable websites
- Inform: a programming language for interactive fiction
- Io: a small, prototype-based programming language
- IrDA, the Infrared Data Association
- J Software: makers of compilers for J, a modern, array oriented, high level, high performance, general purpose programming language
- Java
- BeanShell: Lightweight Scripting for Java
- Gamelan.com: Java programming info. and tutorials
- NetBeans: the project that develops NetBeans IDE, the full-featured integrated environment for Java Developers and NetBeans Platform, the widely adopted infrastructure backplane for complex desktop applications
- PicoContainer: a small, simple container for arbitrary components
- TheServerSide.com: your J2EE community
- JavaScript
- AJAX
- MathJAX: beautiful math in all browsers
- Dojo: professional JavaScript tools for dynamic applications
- Flapjax: Adds event-driven, reactive evaluation to Javascript.
- Online JavaScript beautifier: Beautify, unpack or deobfuscate JavaScript and HTML, make JSON/JSONP readable, etc.
- Paper.js: an open source vector graphics scripting framework that runs on top of the HTML5 Canvas
- Parenscript: small lispy language that can be compiled to JavaScript
- Raphaël: a small JavaScript library that should simplify your work with vector graphics on the web
- Scriptaculous: web 2.0 JavaScript
- Simile Timeplot, a Javascript-based graphing library
- SproutCore: makes building javascript applications fun and easy
- Joel on Software: painless software management, by Joel Spolsky
- John McCarthy's history of Lisp
- Julia programming language
- Lambda the Ultimate: The Programming Languages Weblog
- Lesscode.org: a place to advocate, discuss, and practice the art of using less code to get more done
- Lightweight Languages Workshop
- Lisp
- Arc Language: Paul Graham's programming language, a derivative of Lisp
- Common Lisp
- Awesome Common Lisp: a curated list of awesome Common Lisp libraries
- Cliki, a discussion forum for Common Lisp in the Wiki style
- Common Lisp Cookbook
- Common Lisp Cookbook
- Common Lisp: The Language
- Common-Lisp.net: free project hosting, mailing lists, and FTP service for Common Lisp projects
- comp.lang.lisp, browsed through Google
- Condition Handling in the Lisp Language Family, an excellent paper by Kent Pitman
- Implementations
- CLISP(free)
- CMUCL: CMU Common Lisp (free)
- EncyCMUCLopedia: information about CMU Common Lisp
- SBCL: Steel Bank Common Lisp, a derivative of CMUCL
- Corman Lisp: Common Lisp for Windows (almost free)
- Franz, makers of Allegro Common Lisp (commercial)
- Gold Hill(commercial)
- LispWorks, originally written by Harlequin, but now owned by Xanalys (commercial)
- ThinLisp, a practical dialect of lisp for real world applications. You develop in Common Lisp, you deploy in C. ThinLisp programs are as fast as C, by design. Used for a decade in million line systems.
- International Lisp Conference 2002/2003/2005
- Jason Kantz's Lisp links
- Lisp Books and Information: by Bill Bradford
- Lisp resources, provided by Martin Cracauer
- lisp-lang.org: the new home of Common Lisp on the web
- Pascal Costanza's Highly Opinionated Guide to Lisp
- Practical Common Lisp: an introduction to Common Lisp
- Software Written in Common Lisp
- cl-autowrap: (c-include "file.h") => complete FFI wrapper
- CL-HTTP, a web server in Common Lisp
- CL-PDF: library for PDF generation
- CL-PPCRE: portable Perl-compatible regular expressions for Common Lisp
- CLOCC, the Common Lisp Open Code Collection
- Crash Bandicoot, a game for the PlayStation game console
- Do+: a high-level, extensible general iteration construct for Common Lisp
- Erlisp: a project to bring Erlang's ideas to Common Lisp
- GTFL: A Graphical Terminal For Lisp
- Hunchentoot: Yet Another Common Lisp Web Server
- Ironclad, a cryptography written entirely in Common Lisp
- JACOL: a framework for allowing Java and Common Lisp to interoperate
- Maxima, a symbolic mathematics program derived from Macsyma
- McCLIM: an open source implementation of the Common Lisp Interface Manager
- QuickLisp: Get started with Common Lisp libraries, quickly.
- Regex Coach
- Teepeedee2: a webapplication framework [in Common Lisp] for dynamic webpages. It's goal is to be fast. It only works on Linux.
- Successful Lisp: How to Understand and Use Common Lisp
- History of LISP: a project of the Computer History Museum
- Lisp 1.5 Programmer's Manual (PDF)
- Lisp Logos: by Conrad Barski, M.D.
- LUSH: a full-featured Lisp (but not Common Lisp) "shell" that uses dynamic scoping
- Medley Interlisp Project: our goal: restore Medley Interlisp to usability on modern systems
- NewLisp: a general purpose scripting language for developing Web applications and programs in general and in the domain of Artificial Intelligence (AI) and statistics
- Revised Maclisp Manual (The Pitmanual)
- uLisp: Lisp for the Arduino and MSP430
- Literate Programming
- LLVM (Low-Level VIrtual Machine): a compilation strategy designed to enable effective program optimization across the entire lifetime of a program
- Magic Ink: Information Software and the Graphical Interface, an excellent article on user interface design
- Memory Pool System Project: a flexible, adaptable, open source memory management system
- Message Queues and Publish/Subscribe
- Advanced Message Queuing Protocol: (AMQP)
- JMS: Java Message Service, a specification for topic- and queue-based messaging in Java
- implementations
- miscellaneous
- MQTT: an extremely lightweight publish/subscribe messaging transport
- RestMS: RestMS provides web applications with enterprise-level messaging via an asynchronous RESTful interface that works over standard HTTP/HTTPS
- Spread Toolkit: provides a high performance messaging service that is resilient to faults across external or internal networks
- ZeroMQ: Fastest. Messaging. Ever.
- MIT's 6.894 Object-Oriented Dynamic Languages class, Spring 2001
- Mozart Programming System, an advanced development platform for intelligent, distributed applications... based on the Oz programming language.
- Needle programming language
- Nice: a new object-oriented programming language based on Java
- O'Camlprogramming language
- Offline First: We live in a disconnected & battery powered world, but our technology and best practices are a leftover from the always connected & steadily powered past.
- Open source software
- SourceForge: a free hosting service for Open Source developers
- OpenGL
- OverAPI: programming cheat sheets
- Patterns
- Perl
- PhoneGap: Easily create apps using the web technologies you know and love: HTML, CSS, and JavaScript
- Planet PDF: a comprehensive, popular and independent Web site exclusively focused on Adobe Acrobat/PDF users and uses
- Processing: a system for producing interactive web pages a la Flash
- Program Transformation wiki
- Pythonprogramming language
- Candygram: a Python implementation of Erlang concurrency primitives
- Django: the web framework for perfectionists with deadlines
- JPython, a 100% Pure Java second implementation of the Python programming language
- MicroPython: a lean and efficient implementation of the Python 3 programming language that includes a small subset of the Python standard library and is optimised to run on microcontrollers and in constrained environments.
- Stackless Python
- Refactoring, a technique for restructuring code bit by bit to improve its design
- Regexper: beautiful regular expression visualizations
- Rubyprogramming language
- Scheme
- Information and Organizations
- Lambda Native: Use Scheme to write code for embedded and mobile platforms.
- Miscellaneous
- Software Written in Scheme
- Akku: a language package manager for Scheme.
- Alex Shinn's Scheme code, including his combinator-based text formatting library
- BRL: web programming using Kawa Scheme and Servlets
- Fluxus: allows you to write Scheme scripts that create graphics live, interpreting audio and OSC input as a source of animation data
- Functional PostScript
- GIMP, the GNU Image Manipulation Program, whose extension language is Scheme
- Impromptu: OSX programming environment for composers, sound artists, VJ's and graphic artists with an interest in live or interactive programming. Impromptu is a Scheme language environment, a member of the Lisp family of languages.
- Lily Pond: music notation for everyone
- Meroon, an object system for Scheme
- Oleg Kiselyov's software: written in Scheme and other languages
- Sassy: a portable 32-bit assembler for x86 processors written in R5RS Scheme with the addition of a few SRFIs
- Scheme Now!: A.K.A. Snow, a repository of Scheme packages that are portable to several popular implementations of Scheme
- SCWM, the Scheme Constraints Window Manager, a window manager for X windows customizable in Scheme
- SLIB, a common library for Scheme
- SSAX and SXML: consists of a DOM/SXML parser, a SAX parser, and a supporting library of lexing and parsing procedures
- Tiny CLOSfrom PARC
- Walter C. Pelissero's Software bits, including some written in Common Lisp and Scheme
- Self: a prototype-based dynamic object-oriented programming language, environment, and virtual machine centered around the principles of simplicity, uniformity, concreteness, and liveness
- Smalltalk
- Software Patents
- Spam: anti-spam programming techniques and software
- A Plan for Spam: Paul Graham's influential article on Bayesian spam-filtering techniques
- Subterfugue: a framework for observing and playing with the reality of software; it's a foundation for building tools to do tracing, sandboxing, and many other things
- Supper Happy Dev House: the Bay Area's premier monthly hackathon event that combines serious and not-so-serious productivity with a fun and exciting party atmosphere
- Swarm.js: reactive data sync lib
- SWIG: Simplified Wrapper Interface Generator
- Testing
- The Garbage Collection Page, by Richard Jones
- Thinking Clearly about Performance in ACM Queue
- Tips for Reading Code: the best ways to make sense out of those huge, unstructured, maintained-by-dozens-of-people, internally-inconsistent, undocumented code bases that we must understand and absorb
- Trailing-Edge.com: Software and Information Archives or the Trailing Edge of Computing
- TRS-80: the first computer that I owned or programmed
- Ira Goldklang's TRS-80 Revived Site: devoted to providing a second life to the Tandy Radio Shack Model 1, Model 3, and Model 4..., on which I first learned to program
- Retro Search: a specialised search engine indexing TRS-80 resources across the internet
- Retro Store: an app store for the Radio Shack TRS-80
- Trs80gp: A TRS-80 Model 1,2,3,4 Emulator for Windows, but which runs great under Wine
- txt2re headache relief for programmers: regular expression generator
- Ultimate Guide to Speech Recognition with Python
- User interface and web site design
- VCG: Visualization of Compiler Graphs
- Version Control Systems
- We are the SpaceX software team, ask us anything!: SpaceX AMA on Reddit
- Wizard Zines: programming zines by Julia Evans
- Wotsit.org: the programmer's file and data format resource. This site contains information on hundreds of different file types, data types, hardware interface details and all sorts of other useful programming information; algorithms, source code, specifications, etc.
- XWT: XML Windowing Toolkit... lets you write remote applications -- applications that run on a server, yet can project their user interface onto any computer, anywhere on the Internet
- YAML: YAML Ain't Markup Language specification, Version 1.1