Compiled languages (dynamic languages can also be statically-typed) have been (and still are) the preferred development languages for software projects. You can get a sense of this by scanning job listing websites and open-source project hosting websites; C, C++, C#, and Java predominate. Thus, there is enormous incentive to develop exceptional tools for engineers who develop software in these languages. However, all of the features you describe could be available for dynamic languages. A compiler program performs all of the same steps that an interpreter program (such as the Perl interpreter) performs except for one: it does not execute the code that it is evaluating. Both lex and parse a source code file into an expression tree, and both compile the expressions they find into computer code. One does this exclusively; one does this in addition to executing the code that it evaluates. One could write a compiler for a dynamic language (this has been done for many such languages) and execute it to see if any problems occur. One could also develop a refactoring program for dynamic languages (this has also been done; see the Ropeide for an example of a Python refactoring IDE). So to say that you have not been able to "replicate" the properties of compiled languages with dynamic languages simply says to me that such tools aren't as convenient to you as those provided for compiled languages, and I would have to agree for the reasons that I cited above: there is less of an incentive to develop such tools to the degree that exists for compiled languages.
Here is why I think parts of your list are unreasonable.
"No unnecessary overhead" and "sensible error messages": I'm not sure these are concrete enough to qualify as features. No language will probably ever satisfy everyone's opinion of "necessary overhead," or "sensible error messages." Some error messages are admittedly worse than others, but what may seem sensible to some will frustrate others. The same is true of language overhead.
"No dependency on a virtual machine": as the performance of virtual machines begins to rival that of "bare iron" execution for high-level languages, the advantages of the one over the other diminish accordingly.
"everything an object" and reflection: this is nitpicking, but it seems that what you really want is some method of treating data objects uniformly and inspecting or coercing their type later on. As the authors of "Structure and Interpretation of Computer Programs" (http://mitpress.mit.edu/sicp/full-text/book/book.html) demonstrate, you can do this in LISP by treating everything as a list, a native type of that language, and providing the appropriate constructors, accessors, and predicates for working with lists that represent different types of data (in the book, they use integer, rational, real, and complex numbers as their type hierarchy).
Note : "Southern", as used in this section, refers to members of Congress from the eleven states that made up the Confederate States
of America in the American Civil War. "Northern" refers to members from the other 39 states, regardless of the geographic location of
those states.
The original House version:
* Southern Democrats: 7-87 (7%-93%)
* Southern Republicans: 0-10 (0%-100%)
* Northern Democrats: 145-9 (94%-6%)
* Northern Republicans: 138-24 (85%-15%)
The Senate version:
* Southern Democrats: 1-20 (5%-95%) (only Senator Ralph Yarborough of Texas voted in favor)
* Southern Republicans: 0-1 (0%-100%) (this was Senator John Tower of Texas)
* Northern Democrats: 45-1 (98%-2%) (only Senator Robert Byrd of West Virginia opposed the measure)
* Northern Republicans: 27-5 (84%-16%) (Senators Bourke Hickenlooper of Iowa, Barry Goldwater of Arizona, Edwin L. Mechem of New Mexico, Milward L. Simpson of Wyoming, and Norris H. Cotton of New Hampshire opposed the measure)
The vote was more along the lines of North/South (as defined in the article) than Democrat/Republican. Almost all of the Southern legislators voted against the act. It only appears that Democrats were more opposed to the measure (in terms of percentages) than Republicans because, to that point in time, Democrats had always had a stronger showing in Southern elections than Republicans.
Compiled languages (dynamic languages can also be statically-typed) have been (and still are) the preferred development languages for software projects. You can get a sense of this by scanning job listing websites and open-source project hosting websites; C, C++, C#, and Java predominate. Thus, there is enormous incentive to develop exceptional tools for engineers who develop software in these languages. However, all of the features you describe could be available for dynamic languages. A compiler program performs all of the same steps that an interpreter program (such as the Perl interpreter) performs except for one: it does not execute the code that it is evaluating. Both lex and parse a source code file into an expression tree, and both compile the expressions they find into computer code. One does this exclusively; one does this in addition to executing the code that it evaluates. One could write a compiler for a dynamic language (this has been done for many such languages) and execute it to see if any problems occur. One could also develop a refactoring program for dynamic languages (this has also been done; see the Ropeide for an example of a Python refactoring IDE). So to say that you have not been able to "replicate" the properties of compiled languages with dynamic languages simply says to me that such tools aren't as convenient to you as those provided for compiled languages, and I would have to agree for the reasons that I cited above: there is less of an incentive to develop such tools to the degree that exists for compiled languages.
You seem to have forgotten a very important part of the article you are quoting:
http://en.wikipedia.org/wiki/Civil_Rights_Act_of_1964#By_party_and_region
The vote was more along the lines of North/South (as defined in the article) than Democrat/Republican. Almost all of the Southern legislators voted against the act. It only appears that Democrats were more opposed to the measure (in terms of percentages) than Republicans because, to that point in time, Democrats had always had a stronger showing in Southern elections than Republicans.
http://en.wikipedia.org/wiki/History_of_the_United_States_Democratic_Party#Civil_War.2C_Reconstruction.2C_and_the_Gilded_Age:_1854-1896
That the South votes more heavily Republican is a recent phenomenon, dating to the Civil Rights act.
http://en.wikipedia.org/wiki/History_of_the_United_States_Democratic_Party#The_Johnson_Years:_1963.E2.80.931968