|
From: xahlee on 18 Jul 2008 13:17 Today, i took sometime to list some major or talked-about langs that arose in recent years. Here's the result: http://xahlee.org/UnixResource_dir/writ/new_langs.html Plain text version follows. ------------------------------------- There is a proliferation of computer languages today like never before. In this page, i list some of them. In the following, i try to list some of the langs that are created after 2000, or become very active after 2000. * Erlangâ. Functional, concurrent. * Haskellâ Oldish, functional. * Mercuryâ. Logic, functional. * Qâ. Functional lang, based on term rewriting. To be replaced by âPureâ http://pure-lang.sourceforge.net/. ML Family: * Ozâ. Concurrent. Multiparadigm. * Aliceâ. Concurrent, ML derivative. Saarland University, Germany. * OCamlâ * F#â. Microsoft's functional lang. Lisp family: * Mathematicaâ * NewLispâ * Arcâ. Paul Graham's selling his name. * Qiâ. Common Lisp added with modern functional lang features. * Schemeâ, notably PLT Schemeâ. * Dylan programming languageâ. Rather dead. Proof systems: * Coqâ. For formal proofs. * For much more, see Automated theorem provingâ. Perl Family or derivative: * PHPâ. Decendent of Perl for server side web apps. * Rubyâ. Perl with rectified syntax and semantics. * Perl6â * Sleepâ. A scripting lang, perl syntax. On Java platform. Java related: * C#â. Microsoft's answer to Java. * Scalaâ. A FP+OOP lang on Java platform as a Java alternative. * Groovyâ. Scritping lang on on Java platform. 2D graphics related. * Scratchâ * Adobe Flashâ's ActionScriptâ. 2D graphics. * Processingâ. 2D graphics on Java platform. Misc: * Linden_Scripting_Languageâ. Used in virtual world Second Life.. ------------------------------ Following are some random comments on comp langs. in the above, i tried to not list implementations. (e.g. huge number of Scheme implemented in JVM with fluffs here and there; also e.g. JPython, JRuby, and quite a lot more.) Also, i tried to avoid minor derivatives or variations. Also, i tried to avoid langs that's one- man's fancy with little followings. For those of you developens in Java, Perl, Python for example, it would be fruitful to spend a hour or 2 to look at the Wikipedia articles about these, or their home pages. Wikipedia has several pages that is a listing of comp langs, of which you can read about perhaps over 2 hundreds of langs if you want. The user base of the langs differ by some magnitude. Some, such as for example PHP, C#, are within the top 10 most popular lang with active users (which is perhaps in order of hundreds of millions). Some others, are niche but still with huge users (order of tens or hundreds of thousands), such as LSL, Erlang, Mathematica. Others are niche but robust and industrial (counting academic use), such as Coq (a proof system), Processing, PLT Scheme, AutoLisp. Few are mostly academic followed with handful of experimenters, Qi, Arc, Mercury, Q, Concurrent Clean are probably examples. ------------------ I was prompted to have a scan at these new lang because recently i wrote a article titled âThe Fundamental Problems of Lispâ ( http://xahlee.org/UnixResource_dir/writ/lisp_problems.html (ranty)), which mentioned my impression of a proliferation of languages (and all sorts of computing tools and applications). Quote: 10 years ago, in the dot com days (~1998), where Java, Javascript, Perl are screaming the rounds. It was my opinion, that lisp will inevitably become popular in the future, simply due to its inherent superior design, simplicity, flexibility, power, whatever its existing problems may be. Now i don't think that'll ever happen as is. Because, due to the tremendous technological advances, in particular in communication (i.e. the internet and its consequences, e.g. Wikipedia, youtube, youporn, social networks sites, blogs, Instant chat, etc) computer languages are proliferating like never before. (e.g. erlang, OCaml, Haskell, PHP, Ruby, c#, f#, perl6, arc, NewLisp, Scala, Groovy, Goo, Nice, E, Q, Qz, Mercury, Scratch, Flash, Processing, ..., helped by the abundance of tools, libraries, parsers, existance of infrastructures) New langs, basically will have all the advantages of lisps or lisp's fundamental concepts or principles. I see that, perhaps in the next decade, as communication technologies further hurl us forward, the proliferation of langs will reduce to a trend of consolidation (e.g. fueled by virtual machines such as Microsoft's .NET. (and, btw, the breaking of programer's social taboo of cross communication of computing languages, led by Xah Lee)). --------------------- in general, creating a lang is relatively easy to do in comparison to programing tasks in the industry (such as, for example, writing robust signal processing lib, a new feature in web server, video web server framework, a game engine ...etc.). Computing tasks typically have a goal, where all sorts of complexities and nit-gritty detail arise in the solving process. Creating a lang often is simply based on a individual's creativity that doesn't have much fixed constraints, much as in painting or sculpting. Many langs that have become popular, in fact arose this way. Popularly known examples includes perl6, Ruby, Arc, Python. Creating a lang requires the skill of writing a compiler though, which isn't trivial, but today with mega proliferation of tools, even the need for compiler writing skill is reduced. (e.g. Arc. (10 years ago, writing a parser is mostly not required due to existing tools such as lex/yacc)) Some lang are created to solve a immediate problem or need. Mathematica, Adobe Flash's ActionScript, Emacs Lisp, LSL would be good examples. Some are created due to a new discoveries in computing models. Lisp, Haskell, Qi, Prolog, SmallTalk, are of this type... Some are created by corporations from scratch for one reasons or another. e.g. Java, Javascript, AppleScript, Dylan, C#. The reason is mostly to make money by creating a lang that solves perceived problems or need, as innovation. The problem may or may not actually exist. (C# is a lang created probably mostly just for legal reasons) ------------------- Looking at some tens of langs, one might think that there might be some unifying factor, some unifying theory or model, that limits their type, class, or model. With influence from Stephen Wolfram book âA New Kind of Scienceâ, i'd think there's no such thing. That is to say, different languages are potentionally endless, and each can become quite useful or important or with large user bases. In other words, i think there's no theoretical basis that would govern what languages will be popular due to its technical/mathematical properties... (sorry just writing out my thoughts here...) Perhaps another way to phrase this imprecise thought is that, languages will keep proliferating, and even if we don't consider langs that are one-man's fancy, there will still probably be forever birth of languages, and they will all be useful or solve some niche problem, because there is no theoretical or techinacal reason that sometimes in the future there would be one lang that can be fittingly used to solve all computing problems. Also, the possibilities of lang's syntax are basically unlimited, even considering that they be practical and human readible. So, any joe, can potentionally create a new syntax. The syntaxes of existing langs, when compared to the number of all potentionally possible (human readible) syntaxes, are probably a very small fraction. That is to say, even with so many existing langs today with their wildly differing syntax, we probably haven't seen nothing yet. Also note here all langs mentioned here are all plain-text linear ones. Spread sheet and visual programing langs would be example of 2D syntax... but i haven't thought about how they can be classified as syntax. (nor do i fully understand the ontology of syntax) (see e.g. http://en.wikipedia.org/wiki/Syntax http://en.wikipedia.org/wiki/Visual_programming_language ) Just some extempore thoughts. Xah â http://xahlee.org/ â
From: Chris Rathman on 22 Jul 2008 01:43 I can't say that I see any particular point to the essay. But I did want to point out that Oz should not be considered part of the ML family. Aside from not being statically typed - a very central tenet to ML, Oz is much more part of the Logic family of languages (Mercury, Prolog, etc...). On Jul 18, 12:17 pm, "xah...(a)gmail.com" <xah...(a)gmail.com> wrote: > Today, i took sometime to list some major or talked-about langs that > arose in recent years. > > ML Family: > > * Oz¨J. Concurrent. Multiparadigm. > * Alice¨J. Concurrent, ML derivative. Saarland University, Germany. > * OCaml¨J > * F#¨J. Microsoft's functional lang.
From: J�rgen Exner on 22 Jul 2008 06:38 Chris Rathman <Chris.Rathman(a)gmail.com> wrote: >I can't say that I see any particular point to the essay. You must be new here. There never is any particular point to Xah Lee's rantings except to cross-post borderline topics to borderline relevant NGs and then lay back and enjoy the ensuing slaughter. PLEASE DO NOT FEED THE TROLL >On Jul 18, 12:17 pm, "xah...(a)gmail.com" <xah...(a)gmail.com> wrote: jue
From: szr on 22 Jul 2008 14:49 J�rgen Exner wrote: > Chris Rathman <Chris.Rathman(a)gmail.com> wrote: > >> I can't say that I see any particular point to the essay. > > You must be new here. There never is any particular point to Xah > Lee's rantings except to cross-post borderline topics to borderline > relevant NGs and then lay back and enjoy the ensuing slaughter. Admittedly, I'm not all too familiar with his postings, but on a general note, isn't it possible that someone else might not see it the same as you do? I really didn't see anything really sinister about the posting or it's content. It may very well be someone attempting to create a conversation, someone who may not be generally well received a lot of the time I gather. Also, if have such a distaste for his postings, you are free to ignore them as well. That said, I am all for alerting someone of something which may be a complete waste of their time, but in this case it feels like you are projecting your own dislike for the OP. Unless the OP really is deserving of such branding (in which case I'd stand corrected), I don't think it is reason enough to tell others not to read of his work just because you aren't particularly fond of it. Perhaps citing an actual example illustrating a reason to avoid him like the plague would of helped :-) -- szr
From: cartercc on 22 Jul 2008 15:56 On Jul 18, 1:17 pm, "xah...(a)gmail.com" <xah...(a)gmail.com> wrote: > Today, i took sometime to list some major or talked-about langs that > arose in recent years. You missed PowerShell and ActionScript. Languages are just tools. It may have escaped your notice, but it's a remarkable fact that no two languages are alike! It's not the language that we should focus on, but the task at hand. Personally, I feel that we can gain a lot more by studying the different kinds of problems we can solve by computing and relate the language to the job, rather than learning a language and then trying to find a fit with a particular class of problems. If you look at TIOBE and the like, you will note that the top four language categories (Java/JavaScript, C/C++, Basic, and Perl/Python/ Ruby) account for around eighty percent of the language usage (not counting PHP), and all the other languages quickly fall off. No. 13 on the TIOBE rating was PL/SQL at 0.073 percent. If you read the employment ads (Dice, etc.) the percentage is even greater for the big languages. To me, this indicates that we have several mainstream languages that account for the vast majority of work and a vast number of task specific languages for special purposes. CC
|
Next
|
Last
Pages: 1 2 Prev: Embedded Text/Java Editor Next: jai to create a grayscale img from any imagetype |