On Mon, Jul 19, 2010 at 2:01 PM, Uri Guttman <[email protected]> wrote: > > gack, this thread is annoying. so here are some high level philosophical > questions to think about regarding languages. > > first off, why are there so many languages? and by many, i mean > thousands and more. how many of you have invented a language (even a > mini-lang)?
What is a language? Seriously, what is the difference between some configuration parameters and a new language? What if the config file format is just a data structure in an existing language that has semantics attached? (For instance Rake.) At what point does existing language + library turn into a new language? (Before answering, read _On Lisp_ and consider how large Lisp programs routinely create mini-languages within Lisp. Also consider the origins of C++.) > no one seems to have mentioned turing compatibility. this means > something deep in all the langs mentioned. discuss. It is very hard to come up with a useful language that is not Turing complete. Can you loop and have if statements? Congratulations, you're Turing complete! For a long time my favorite example of a deliberately non-Turing complete language was SQL. It was not Turing complete because that made it possible to comprehensively analyze how queries would execute so they could be optimized. Unfortunately the latest versions of the SQL standard have added enough features to become Turing complete. (However most people don't use those features most of the time, so the optimizer is usually going to be able to work well.) > what about all those langs that were meant to conquer computing > civilization? PL/I, COBOL, ALGOL and even the dreaded ADA. c actually > conquered more than all of them. do you consider c a high level > language? PL/I in many ways was the Perl of the mainframe world. :-) COBOL was meant to conquer the business world. To the best of my knowledge it still processes more financial transactions than any other language. Don't knock ALGOL. It was meant to be a base from which ideas could be developed, and C is in the ALGOL family. ALGOL-68 introduced the idea of lexical closures, though I think that Pascal actually implemented them first. ADA I don't know enough about to find anything good to say. > should you learn assembler? is there work in it (yes)? what would > assembler teach you when using a high level lang? It teaches you what the CPU actually does. Whether that is worthwhile depends entirely on your interests. > what does it mean when you like or dislike a lang? in a non-technical > way why did you make that decision? I dislike languages that make me type too much (Java), make it too hard to find my obvious bugs (JavaScript), or whose implementations are too buggy (VB). > have any of you ever read an ANSI standard for a language? or tried to > implement parts of a standard like that? hell, reading ANSI standards is > a major skill in its own right! Read, yes. Tried to implement, no. > are languages for people or computers? Most are for people first, computers second. Machine language is for computers first, people second. Some newer ones (eg Java and C#) are for tools (IDEs, etc) first, people second, and computers third. > enuff for now. let's see what you all have to say before i drop my $.02 > back in. > > uri > > -- > Uri Guttman ------ [email protected] -------- http://www.sysarch.com -- > ----- Perl Code Review , Architecture, Development, Training, Support ------ > --------- Gourmet Hot Cocoa Mix ---- http://bestfriendscocoa.com --------- > > _______________________________________________ > Boston-pm mailing list > [email protected] > http://mail.pm.org/mailman/listinfo/boston-pm > _______________________________________________ Boston-pm mailing list [email protected] http://mail.pm.org/mailman/listinfo/boston-pm

