Software Engineering discussion

What kinds of apps did you write with Prolog?
Brad wrote: "I used Prolog when it first came out from Borland, but quickly lost interest... not because it wasn't interesting, but I couldn't think of interesting apps that would best leverage it.
What kinds ..."
I created a form-based comment application for bad-boy loans I monitored. it was a single-user app with comments made by others typed into the program by a secretary. A printed report was then passed aound to everyone.
I went on to experiment with searching and sorting routines - by volume and speed. I then created an Idea Generating Program for personal use.
My piece de resistance is (present tense) a credit scoring system for a commercial mortgage loan portfolio. It is a backward-chaining rule-based inference engine. I created the engine from the ground up so it has an interface "only a mother could love." But it works! I save about two weeks or 80 hours of time each year over the paper-based method I used for years.
http://people.ku.edu/~nkinners/LangLi...
And here is the ACM Hello World project:
http://www2.latech.edu/~acm/HelloWorl...
And here is a timeline showing how languages influenced other languages
http://www.levenez.com/lang/

It's a dynamic language that emphasizes the programmer over the system, so while the results might not be as efficient, it is fun to program in.
In Ruby, everything is an object, so something like "this is a string".length will return the length of the string.
Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell

I used it as a part of C#. I would have described LINQ as C# syntax to declare data bindings used to interface with a database. The thing I like about it is the intellisense that it provides in the Microsoft IDE. The thing I don't like about it is that it feels like you write many lines of code for zero functional gain. The intellisense is convenient, but not necessary. I'm guessing the real value add is in the security advantages from LINQ.

* What are the underlying principles of OO vs functional vs declarative vs procedural languages.
* What are the problems each tries to solve and why do it in the manner that they do?
* What are the characteristics of each and under what circumstances should I choose one over another to create an application?
Here is a description of a book that purports to discuss such questions:
*********
"The book presents a set of tools ( a mathematical metalanguage, abstract syntax, operational and denotational semantics) and uses it to explore a comprehensive set of programming language design dimensions, including dynamic semantics (naming state control data), static semantics (types, type reconstruction, polymorphism, effects) and pragmatics (compilation, garbage collection)."
*********
The book that purports to accomplish all this is "Design Concepts in Programming Languages" by Turbak, Gifford, and Sheldon by MIT Press.
The specific book is unimportant. It would be nice to have at least a working knowledge of these concepts and how they are implemented in various languages. I have seen a web-site that shows various programming examples implemented in many different languages. I can't recall the site off-hand.
...So many many places in information-space to explore and so little time...

http://www.tiobe.com/index.php/conten...

h..."
Great site. Some observations and questions:
** In the top ten language rankings, I wondered if Zipf's Law might apply. (http://en.wikipedia.org/wiki/Zipf%27s...). Based on some preliminary calculations using Excel - it seems that it does... except for Java. Java's % is about half of what Zipf would predict. Curious...
** The TIOBE Programming Community Index shows some turbulence around March, 2004. The FAQ's indicate this was due to Google changing their methodology - with a resultant decline in Java and C++. That is, these were overrepresented in TIOBE's rankings, vs. those of (apparently) dynamic languages. It would be interesting to follow this further: it's hard to believe that Sun/ATT were "salting" the search results, somehow.
** Could Apple's recent hostility to non-Apple API's in iPhone/iPad development somehow be responsible for Objective-C's jump in popularity?