How to Pick a Language
Interesting article about how to pick a language
computer programming langugageArt and code - obscure or beautiful code? | JAOO Community Blog
Through the ages a lot of interesting (and some obscure) programming languages have entertained and confused people. At JAOO Aarhus 2008 Guy L. Steele and
Through the ages a lot of interesting (and some obscure) programming languages have entertained and confused people. At JAOO Aarhus 2008 Guy L. Steele and Richard P. Gabriel gave a presentation about languages and language constructs in a presentation that is a work of art in itself.Structure and Interpretation of Computer Programs
Using Emacs and Lisp Cooperatively. A post from Bill Clementson's Blog.Programming Textbooks
Clojure is a LISP implementation for the Java Virtual Machine.
"The goal of this article is to provide a fairly comprehensive introduction to the Clojure programming language."How to Design Programs, Second Edition
Bad programming is easy. Idiots can learn it in 21 days, even if they are dummies.
great bookPLOT: Table of Contents
“Programming Language for Old Timers (PLOT) is a new dialect of Lisp designed by Dave Moon in February 2006, and thoroughly revised and simplified November 2007 and March 2008. I have been developing PLOT as a hobby, with the idea of for once having a programming language which does everything the right way. You know it is right when both simplicity and power are maximized, while at the same time confusion and the need for kludges are minimized.”
A LISP-style programming language by David A. Moon.
Notable features: - structural macrosAbstract Heresies: Not Lisp again....
“In this course we will be using the programming language Lisp...” Argh! Not that again! What is it with Lisp? Ok, maybe at Harvard they do that sort of thing, but this was MIT! Don't they hack computers here?
“If you already know how to program, you may be at a disadvantage because you will have to unlearn some bad habits.”
interesting account of someone's first taste of lispcs252r Record
Advanced Functional Programming - Fall 2006
These pages are a record of the in-class discussions for the graduate class "Advanced Functional Programming" given at Harvard University in the Fall of 2006.Nimrod Programming Language
This page is about the Nimrod programming language, which combines Lisp's power with Python's readability and C's performance.
Nimrod Programming Language - efficient, expressive, elegant, statically typed, imperative, procedural, object-oriented, functional and generic
Nimrod is a new statically typed, imperative programming language, that supports procedural, object oriented, functional and generic programming styles while remaining simple and efficient. A special feature that Nimrod inherited from Lisp is that Nimrod's abstract syntax tree (AST) is part of the specification - this allows a powerful macro system which allows domain specific languages. Nimrod is a compiled, garbage-collected systems programming language which has an excellent productivity/performance ratio. Nimrod's design focuses on the 3E: efficiency, expressiveness, elegance (in the order of priority)...
Nimrod is a new statically typed, imperative programming language, that supports procedural, object oriented, functional and generic programming styles while remaining simple and efficient. A special feature that Nimrod inherited from Lisp is that Nimrod's abstract syntax tree (AST) is part of the specification - this allows a powerful macro system which allows domain specific languages.Object Computing, Inc. - Java News Brief - March 2009
Clojure - Functional Programming for the JVMMatt Sears | 20 Clojure Links To Get You Up To Speed
Clojure is a functional programming language for the Java Virtual Machine with several powerful features for building concurrent applications. In addition, Clojure is fast, robust, and a powerful general-purpose programming language. A dialect of Lisp, Clojure embraces traditional code-as-data philosophy and a powerful macro system, plus some syntactic sugar tailored to Java.YouTube - Broadcast Yourself.
Presents the big ideas in Clojure, a new dialect of Lisp. Assumes basic knowledge of Java but not Lisp.jlongster - Writing apps for the iPhone in Scheme
bookin which are found tricks of the trade concerning clojure authorship - Technomancy
I was reading an article on "Lambda the Ultimate" about Bruce Mills's book "A Theoretical Introduction to Programming," and in particular about the difference between "menu-lookup" writing of glue code, and "real programming", which the author defines as "to increase the computational capacity, to begin with a set of operations, and develop them into new operations that were not obviously implicit in the original set."
A really nice and introspective peek into Kragen's development as a programmer. Lots of nice insights.NP Contemplation: Clojure: Genetic Mona Lisa problem in 250 beautiful lines
Clojure is surrounded by hype these days. The word on the streets is that Clojure is the Next Big Thing. It has access to the largest library of code and it proposes a nice solution the to the concurrency problem. Lots more has been said... But I haven't seen a lot of code. So I set out to make a small but meaningful program in Clojure to get a sense of it's potential. I give Clojure two thumbs up, and I think you'll do too. The Mona Lisa Problem The program I present tries to paint Mona Lisa with a small number of semi-transparent colored polygons. It does so by using Darwin's theory of evolution to evolve programs that draw Mona Lisa.
The (clojure) program I present tries to paint Mona Lisa with a small number of semi-transparent colored polygons. It does so by using Darwin's theory of evolution to evolve programs that draw Mona Lisa.Relevance Blog : Rifle-Oriented Programming with Clojure
An article describing the basic syntax of clojure
In this article, you will see some of the ways that Clojure addresses the key concerns of OO: encapsulation, polymorphism, and inheritance.An Introduction to Lambda Calculus and Scheme
A function accepts input and produces an output. Suppose we have a "chocolate-covering" function that produces the following outputs for the corresponding inputs: peanuts -> chocolate-covered peanuts rasins -> chocolate-covered rasins ants -> chocolate-covered ants We can use Lambda-calculus to describe such a function: Lx.chocolate-covered x This is called a lambda-expression. (Here the "L" is supposed to be a lowercase Greek "lambda" character). If we want to apply the function to an argument, we use the following syntax: Functions can also be the result of applying a lambda-expression, as with this "covering function maker": Ly.Lx.y-covered x We can use this to create a caramel-covering function: (Ly.Lx.y-covered x)caramel -> Lx.caramel-covered x (Lx.caramel-covered x)peanuts -> caramel-covered peanuts Functions can also be the inputs to other functions, as with this "apply-to-ants" function: Lf.(f)antsAIMA Python file: utils.py
NorvigSimply Scheme: Introducing Computer Science
@mobilebooks Simply Scheme: Introducing Computer Science http://url4.eu/dPaG [from http://twitter.com/sbepstein/statuses/4986924979]SICP in Clojure
This site exists to make it easier to use Clojure rather than Scheme while working through SICP.
This site exists to make it easier to use Clojure rather than Scheme while working through SICP. The folks behind SICP were kind enough to release it under a Creative Commons Attribution-Noncommercial 3.0 Unported License, which will allow me to annotate the text and adapt its source code and exercises to fit the Clojure language.Functional Geometry
Nice bit of drawing code.
関数プログラミングで扱う幾何学について。Why MIT switched from Scheme to Python | Wisdom and Wonder
* Why MIT switched from Scheme to Pythonhttp://intensivesystems.net/tutorials/monads_101.html
Comparison of the LISP and HASKELL (functional) languages
Interesting read on some programming languages I hadn't heard of until today, they are still very useful apparentlysoftware - xml - s-exp vs XML | cat -v harmful stuff
Erik Naggum on XML
"Robbery is not just another way of making a living, rape is not just another way of satisfying basic human needs, torture is not just another way of interrogation. And XML is not just another way of writing S-exps. "Paul Stadig: Clojure + Terracotta = Yeah, Baby!
"These two seem like an interesting combination. Imagine the possibilities...kill your database, simple POJO applications, free distributed transactions, clustered JVMs with limitless memory...it would make your hair would grow back, you'd get women, and become filthy rich...well...maybe not, but at least you'd have more fun writing software." -- Paul StadigHow I finally understood the Y Combinator (and blew my damn mind) « noeit
The very things I find ugly in Ruby are what make amazing Ruby software like RSpec possible, and that Python could never have (given the current implementation). Gary Bernhardt I think Ruby's syntax is ugly until they do something glorious and beautiful with it like Rake, then I think "damn it!" Unidentified AttendeeHacker News | How I Hacked Hacker News (with arc security advisory)
How I Hacked Hacker News (with arc security advisory)Urbantastic - Tech Tuesday: The Fiddly Bits
# My own setup.
An architectural approach that uses mostly static HTML and JSON, powered by CouchDB.
In my last post I promised to talk a little about the technology that underlies Urbantastic. It’s not the usual suspects, so it’s worth some explanation.
Annotated link http://www.diigo.com/bookmark/http%3A%2F%2Fblog.urbantastic.com%2Fpost%2F81336210%2Ftech-tuesday-the-fiddly-bits
emacsでjsインタプリタ。alertとかDocument.writeとかが使えないから微妙Clojure performance tips « Occasionally sane
Shows good examples of XML and HTTP processing in ClojureZach's Journal - RIP, Erik Naggum
Incl. list of bookmarks to "Best of Naggum" usenet articles
Some essays, flames and other stuff by Erik NaggumAbstract Heresies: You knew I'd say something.
An exhaustive exploration of recursion, tail calls and TCO2009-04-09 - きしだのはてな
後者関数のラムダ式に書き間違いがある気がする。 succ = λx.λf.λx.f(n f x) => succ = λn.λf.λx.f(n f x) だと思うんだけど、どうなんだろう…。Dan Weinreb’s blog » Blog Archive » Why Did M.I.T. Switch from Scheme to Python?
Why Did M.I.T. Switch from Scheme to Python?
The freshman software engineering course (...) is now nearly thirty years old. Engineering has changed quite a lot in thirty years. Since 1995, Gerry and his co-author Prof. Hal Abelson have advocated changing the freshman curriculum radically, not basing it on SICP. In 1980, computer engineering was based on starting with clearly-defined things (primitives or small programs) and using them to build larger things that ended up being clearly-defined. Composition of these fragments was the name of the game. However, nowadays, a real engineer is given a big software library, with a 300-page manual that’s full of errors. He’s also given a robot, whose exact behavior is extremely hard to characterize (what happens when a wheel slips?).
"In 1980, computer engineering was based on starting with clearly-defined things (primitives or small programs) and using them to build larger things that ended up being clearly-defined. Composition of these fragments was the name of the game... Nowadays, a real engineer is given a big software library, with a 300-page manual that’s full of errors. He’s also given a robot, whose exact behavior is extremely hard to characterize (what happens when a wheel slips?). The engineer must learn to perform scientific experiments to find out how the software and hardware actually work, at least enough to accomplish the job at hand. We may not like it this way (”because we’re old fogies”), but that’s the way it is..."
Dan Weinreb’s blog » Blog Archive » Why Did M.I.T. Switch from Scheme to Python?
Some explanation of why MIT switched from Scheme to Python.Ctrl+中指か薬指を使うキー操作が多いEmacsで指の負担を軽くする方法 - ’(rubikitch wanna be (a . lisper))
To use JK to scroll.briancarper.net :: Clojure 1, PHP 0
Annotated link http://www.diigo.com/bookmark/http%3A%2F%2Fbriancarper.net%2Fblog%2Fclojure-1-php-0
Building your own blog in clojure.Relevance Blog : Java.next: Common Ground
I have chosen four languages which together represent "Java.next": Clojure, Groovy, JRuby, and Scala. Notes on Functional programming
Annotated link http://www.diigo.com/bookmark/http%3A%2F%2Fblog.thinkrelevance.com%2F2008%2F8%2F4%2Fjava-next-common-ground
This sentence from the article says much: "In my experience, this style of coding tends to reduce the size of a codebase by an order of magnitude, while improving readability." Example from article: "...do not have to code defensively, using a slew of factories, patterns,...you can build a minimal solution and evolve it."
"Many people are looking for the "next big language." The next big language is already here, but it isn't a single language. It is the collection of ideas above (plus probably some I missed) as manifested in Java.next. -- Does the transition to Java.next deserve the name "big"? Absolutely. In my experience, the move from Java to Java.next is every bit as big as the previous tectonic shifts in the industry, both in learning curve and in productivity advantages once you make the transition."Hyperpolyglot: Lisp: Common Lisp, Scheme, Clojure, Emacs Lisp
Lisp Dialects 比較Racket
Formerly PLT/Dr Scheme
With Racket, you can script command shells and web servers; you can quickly prototype animations and complex GUIs; regexps and threads are here to serve you. To organize your systems, you can mix and match classes, modules or components. Best of all, you start without writing down types.7 lines of code, 3 minutes: Implement a programming language
Implementing a programming language is an experience no programmer should go without; the process fosters a deep understanding of computation, and beside that, it's fun!
Writing a new programming LanguageHacker News | Here's a very quick dump of some things waiting to be read/digested/whatever in ...
Assorted Clojure Resources from Hacker News