background preloader

Language Choices & Recommendations

Facebook Twitter

TIOBE Software: Tiobe Index Definition. Since there are many questions about the way the TIOBE index is assembled, a special page is devoted to its definition. Programming Language Before discussing how the ratings are calculated, first it needs to be clarified what counts as a programming language for the TIOBE index. There are 2 criteria that should both hold: The language should have an own entry on Wikipedia and it should clearly state that it concerns a programming language. The programming language should be Turing complete . The following languages are tracked by the TIOBE index: (Visual) Basic (Visual) FoxPro 4th Dimension/4D ActionScript Ada Agilent VEE Algol Alice Angelscript Apex AppleScript Arc AspectJ Assembly AutoIt AutoLISP Automator Avenue Awk Bash bc BlitzMax Boo Bourne Shell C Shell C-Omega Caml cg Ch Clarion Clean Clipper Clojure Cobra Common Lisp cT Curl Dart Delphi/Object Pascal DiBOL Dylan Eiffel Emacs Lisp Erlang Etoys Euphoria Factor Falcon Fantom Felix Forth Fortran Fortress Gambas GNU Octave Go Gosu Groovy Haskell haXe Heron HyperTalk Icon Inform Informix-4GL Io Ioke.

TIOBE Software: Tiobe Index. TIOBE Index for January 2016 January Headline: Java is TIOBE's Programming Language of 2015! Java has won the TIOBE Index programming language award of the year. This is because Java has the largest increase in popularity in one year time (+5.94%). Java leaves runner ups Visual Basic.NET (+1.51%) and Python (+1.24%) far behind. At first sight, it might seem surprising that an old language like Java wins this award.

Especially if you take into consideration that Java won the same award exactly 10 years ago. On second thought, Java is currently number one in the enterprise back-end market and number one in the still growing mobile application development market (Android). Java's rise goes hand in hand with Objective-C's decline (-5.88%). So what is the outlook for 2016? The TIOBE Programming Community index is an indicator of the popularity of programming languages. TIOBE Programming Community IndexSource: www.tiobe.com Java Python Visual Basic .NET JavaScript Assembly language Ruby.

The RedMonk Programming Language Rankings: January 2014. As long as we have been doing our programming language rankings here at RedMonk, dating back to the original publication by Drew Conway and John Myles White, we have been trying to find the correct timing. Should it be monthly? Quarterly? Annually? While the appetite for up to date numbers is strong, the truth is that historically changes from snapshot to snapshot have been minimal. This is in part the justification for the shift from quarterly to bi-annual rankings.

Although we snapshot the data approximately monthly, there is little perceived benefit to cranking out essentially the same numbers month after month. There are more volatile ranking systems that reflect more ephemeral, day-to-day metrics, but how much more or less popular can a programming language realistically become in a month, or even two? This month’s ranking, however, may call that approach into question. Besides that notable caveat, there are a few others to reiterate here before we get to the plot and rankings. List of languages that compile to JS · jashkenas/coffeescript Wiki. Study: Clojure, CoffeeScript and Haskell Are the Most Expressive General-purpose Languages. According to a study, the most expressive general-purpose languages are Clojure, CoffeeScript and Haskell.

The study uses LoC/commit as the measuring unit of expressiveness. Donnie Berkholz, a RedMonk's resident PhD, has conducted a study meant to quantify the expressiveness of various programming languages. The study is based on data provided by Ohlol, a repository keeping track of over 500,000 open source projects written in about 100 languages spanning around 20 years. Berkholz used as the expressiveness measuring unit LoC/commit, adding that he started from the assumption that “commits are generally used to add a single conceptual piece”. Also, the results are not a measure of maintainability or productivity, nor telling how readable is the resulting code or how long it takes to write it. Each language has LoC/commit distributed over a range since the study covers many different projects/language, each with its own average.

Some of Berkholz’ conclusions are: Berkholz’ conclusions are: Ruby, Clojure, and Ceylon: Same goal, three very different results. Computer languages reflect the goals, target audiences, and to some degree the personalities of their creators and their communities. As a result, even languages that are created with similar goals in mind may yield highly disparate final results, depending on how their communities understand those goals.

Ruby, Clojure, and Ceylon are three such languages. Ruby is the oldest of the three. Created in the mid-1990s, it didn't achieve widespread popularity until the 2000s. One reason for Ruby's growth is the work of Charles Nutter, who created jRuby, a port of Ruby to the Java virtual machine (JVM). Ruby is a dynamic, object-oriented language, whereas Clojure and Ceylon use a functional programming approach. Clojure appeared in 2007, created by Rich Hickey. In interviewing Ruby's Nutter, Clojure's Hickey, and Ceylon's King, I was surprised at how -- despite ending up with vastly divergent outcomes -- they share common goals and viewpoints. Clojure is the most unique of the three.

Andrew C.

Language Flame Wars

Language Frameworks Benchmarks. Why Clojure will win. I’m going to make a bold proclamation. I’m not going to claim that Clojure will ever become the most popular language, but it will win in the next 15 years in a major way, because it is already one of the most interesting, and all signs show that it will continue to build momentum,. This is independent of what happens with the Java ecosystem; Clojure will be ready to go off of the JVM if it needs to do so.

It is not in a hurry to make that change, but it that becomes necessary it will happen. Why am I so confident about Clojure? Partly, it’s the community. I started using Clojure in late 2008, and the language has improved by leaps and bounds, whereas many languages seem to have gone sideways over the past few years. On a fundamental level, this is different from the enterprise Java vision that has grown up over the past 18 years. Does Clojure have weaknesses? One argument made against it is its lack of a static type system. Like this: Like Loading... The next “secret weapon” in programming. Paul Graham, in 2001, wrote on his success with Viaweb (now Yahoo Store) that it was due to a “secret weapon” that enabled the rapid development and deployment of code: Lisp. Designed with functional programming in mind, the language offers abstractions that make code dense and therefore quick to write and maintain. Although Lisp was impractical for desktop applications at the time, Graham’s use of it for web-based software allowed a small team to kick ass.

Viaweb launched in 1995. It’s now 2010, and the Lisp family of languages is alive and well, thanks to Clojure, a Lisp that runs on the Java Virtual Machine. Ideas from Lisp and functional programming have also filtered into languages like Ruby and Python, which are far more powerful than C++, the lingua franca of the ’90s. Plenty of programmers love to hate static typing, and not for bad reasons, because they’re exposed to shitty static typing, such as that in Java. Misconception #1: Java is a representative of “static typing”. Functional programming is a ghetto. Functional programming is a ghetto. Before any flamewars can start, let me explain exactly what I mean. I don’t mean “functional programming sucks”. Far from it.

The opposite, actually. Not all ghettos are poor, crime-ridden, and miserable. Jewish ghettos existed for centuries in Europe, from the Renaissance to World War II, and many were intellectual centers of the world. Some were quite prosperous. What is functional programming? In general, functional programming is right. For a concrete example, let’s say I have a blackboard, face down, with a number (state) on it, and I ask someone to read that (call it n) and erase the number, then write n+1 on the blackboard.

Testing, debugging, and maintenance are a major component of real-world software engineering, and functional programming gives us the tools to tackle these problems in a tractable way. Functional programming, in the real world, doesn’t eschew mutable state outright. Like this: Like Loading... Learning C, reducing fear. I have a confession to make. At one point in my career, I was a mediocre programmer. I might say that I still am, only in the context of being a harsh grader. I developed a scale for software engineering for which I can only, in intellectual honesty, assign myself 1.8 points out of a possible 3.0.

One of the signs of my mediocrity is that I haven’t a clue about many low-level programming details that, thirty years ago, people dealt with on a regular basis. I know what L1 and L2 cache are, but I haven’t built the skill set yet to make use of this knowledge. I love high-level languages like Scala, Clojure, and Haskell. Of these, C was my weakest at the time. Transferability. For me, personally, the confidence issue is the important one. Becoming the mentor I’m going to make an aside that has nothing to do with C. What could this have to do with C? Business idiots love real X’s. That’s why I’m learning C. Fear of databases? Like this: Like Loading... Clojure-based Machine Learning. For many years, I’ve been convinced that programming needs to move forward and abandon the Algol family of languages that, still today, dampens the field.

And that that forward direction has been signalled for decades by (mostly) functional, possibly dynamic languages with an immersive environment. But it wasn’t until recently that I was able to finally put my money where my mouth has been all these years. A couple of years ago I finally became a co-founder and started working on a company, BigML, I could call my own (I had been close in the past, but not really there), and was finally in a position to really influence our development decisions at every level.

Even at the most sensitive of them all: language choice. Deep down, the people in charge either didn’t think languages make any difference or, worse, bought into the silly “availability of programmers” argument. Our experience so far could hardly be a better counterexample against algol naysayers. Like this: Like Loading... Six languages to master. « Michael O.Church. Eric Raymond, in “ How to Become a Hacker “, recommended five languages: . Each he recommended for different reasons: Python and Java as introductory languages, C to understand and hack Unix, Perl because of its use in scripting, and Lisp for, to use his words which are so much better than anything I can come up with, It’s 2012.

Many languages have come to the fore that didn’t exist when this essay was written. Others, like Perl, have faded somewhat. What is today’s five-language list? I won’t pretend that my answer is necessarily the ; it’s biased based on what I know. Why these 5? People who are getting started in programming want to things that are macroscopically interesting from a beginner’s perspective. After Python, is a good next choice, and not because of its performance. Python and C give a person coverage of the mid- and very-high levels of language abstraction. ML has been described as a “functional C” for its elegance. Also, static typing is a feature, not a drawback.