{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "@id": "https://www.vidyasource.com/blog/its-not-only-about-the-benjamins/",
  "url": "https://www.vidyasource.com/blog/its-not-only-about-the-benjamins/",
  "mainEntityOfPage": "https://www.vidyasource.com/blog/its-not-only-about-the-benjamins/",
  "headline": "It's Not Only About the Benjamins",
  "description": "The highest paying languages are also among the most fun and productive. We know from experience.",
  "datePublished": "2017-09-27T00:00:00.000Z",
  "author": {
    "@type": "Person",
    "name": "Neil Chaudhuri",
    "jobTitle": "President",
    "url": "https://www.linkedin.com/in/neil-chaudhuri/",
    "sameAs": "https://www.linkedin.com/in/neil-chaudhuri/"
  },
  "publisher": {
    "@id": "https://www.vidyasource.com/#organization"
  },
  "image": "https://www.vidyasource.com/img/blog/benjamins.jpeg",
  "keywords": [
    "Go",
    "Scala",
    "Clojure",
    "Python",
    "Java",
    "Apache Spark",
    "Play Framework",
    "ReactiveMongo",
    "Scalaz",
    "Akka",
    "Swift",
    "Kotlin",
    "Programming",
    "Functional Programming",
    "Open Source",
    "Analytics",
    "Software Engineering",
    "Machine Learning",
    "Big Data"
  ],
  "articleBody": "The [2017 Stack Overflow Developers Survey](https://insights.stackoverflow.com/survey/2017) had the most\nrespondents since they began the project in 2011. You really should\ntake a look. They cover a *lot* of ground, and the findings across geography and demographics are\n[fascinating](https://www.youtube.com/watch?v=W6MkESn1v1w).\n\nIt's interesting most developers report feeling underpaid. That isn't surprising to me, but it might be counterintuitive to\npeople more accustomed to [Stark Industries](https://www.youtube.com/watch?v=VVyoXimCrdQ) than to [Pied Piper](https://www.youtube.com/watch?v=BzAdXyPYKQo).\nIt's natural to follow up by asking [which programming languages pay the most](https://insights.stackoverflow.com/survey/2017#top-paying-technologies),\nand those answers *did* surprise me.\n\nWorldwide it's Clojure! Really? This is particularly interesting since Stack Overflow has also noted that\nClojure is [losing popularity among functional languages](https://stackoverflow.blog/2017/09/06/incredible-growth-python/). I\nguess there is some combination of major investment in Clojure with a shrinking pool of capable Clojure developers that is driving\nup their value.\n\nIn the United States, the title for highest-paying programming language is shared by Scala and Go. Meanwhile\nPython, which Stack Overflow declared\n\"[has a solid claim to being the fastest-growing major programming language](https://stackoverflow.blog/2017/09/06/incredible-growth-python/),\"\nis the highest-paid in France and India and second-highest (to Java) in Germany.\n\nIt's great these languages pay so well, but what really matters is they are powerful languages that help us solve\nharder problems faster. At Vidya we have had the pleasure to work with all of them.\n\n**Clojure**\n\nYes, even Clojure. I worked on a DARPA project called [XDATA](https://www.darpa.mil/program/xdata) which identifies the\nanalytics tools best suited to particular kinds of problems. One such tool was\n[Cascalog](https://github.com/nathanmarz/cascalog) from the mind of [Nathan Marz](https://twitter.com/nathanmarz?lang=en),\nthe creator of Apache Storm and author\nof the [Lambda Architecture](http://lambda-architecture.net/). It's gone cold now, but at the time, Cascalog represented a powerful alternative\nto Map Reduce because it is built on Clojure to harness the power of functional programming to solve\nBig Data problems. This was my first professional exposure to functional programming after years of working with\nJava, and I became so enamored of the natural fit between functional programming and Big Data that I even\n[blogged about its advantages over Java for building analytics](https://www.vidyasource.com/blog/java-is-dysfunctional-with-big-data/).\n\nIt was also at XDATA that I met a brilliant team from [AMPLab at Berkeley](https://amplab.cs.berkeley.edu/) who had\ncreated a revolutionary project called Spark.\n\n**Scala**\n\nSpark was my first introduction to Scala, and I have been a huge fan of the language ever since. I marveled at how I could write\ncomplex analytics--at least for me at the time--with so little code. Since then, Spark became\nopen-sourced as Apache Spark, and I got\n[badges in both Scala and Apache Spark on Stack Overflow](https://stackoverflow.com/users/1347281/vidya?tab=badges). I expanded my\nScala knowledge working not only with Spark but also with Play Framework, ReactiveMongo,\nScalaz, and Akka for several government and commercial clients. I have come to enjoy Scala so much\nthat it is very hard to go back to writing Java. I even put together a tutorial on YouTube called\n[Nine Reasons to Try Scala](https://www.vidyasource.com/tutorial/nine-reasons-to-try-scala/) and have given several talks\nbased on it.\n\nScala motivated the evolution of Java that began with\n[Java 8](http://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html), and Scala itself continues to evolve\nin disparate domains with\n[Scala.js](https://www.scala-js.org/), [Dotty](http://dotty.epfl.ch/), and [Scala Native](http://www.scala-native.org/en/latest/).\nThe learning curve is steep, and slow compilation and esoteric documentation continue to be real problems. But Scala\nhas made me a better engineer in every language I use by helping me embrace immutability,\ncomposability, and all the other qualities that make functional programming so powerful.\n\n**Go**\n\nI am still new to Go, but I can see why it continues to shoot up the [TIOBE Index](https://www.tiobe.com/tiobe-index/).\nGoogle designed Go neither to be revolutionary like Smalltalk nor all things to all people like Java. Instead, it does\na few things well, and it is *very* fast. The canonical use case for Go is multicore programming because it provides\n[goroutines and channels](https://tour.golang.org/concurrency/1), which abstract concurrent tasks by facilitating messages\namong lightweight threads. `Future` in Scala does something similar, and that is also a powerful albeit\n[controversial](https://stackoverflow.com/questions/27454798/is-future-in-scala-a-monad) abstraction. Both languages are also\nstatically typed but offer facilities reminiscent of dynamic typing.\n\nAs for my first professional experience with Go, you're looking at it. I rebuilt the\nVidya website using [Hugo](https://gohugo.io/), a static-site generator. It's really fast and comes with a lot of nice features, but\nit could use more like CDN integration and an asset pipeline. Overall it is a pleasure to work with. I had to learn some Go in\norder to customize our site's functionality, but I have a long way to go before I consider myself any kind of expert.\nI look forward to the opportunity to wrap my head around the syntax and do more interesting things.\n\n**Python**\n\n[When I spoke at Code Writers DC](blog/2017/06/05/speaking-at-code-writers-workshop-2017/), I identified statically typed\nlanguages as a \"trend\" in software engineering and cited Scala, Go, Swift,\nand Kotlin as examples. Python, however, is a big exception. It's been around forever, and as Stack Overflow noted, it's\nstill blowing up because of Big Data and machine learning. The list of Python tools\nfor data science is long--[Pandas](http://pandas.pydata.org/), [NumPy](http://www.numpy.org/),\n[SciKit Learn](http://scikit-learn.org/stable/), and [NLTK](http://www.nltk.org/) just to name a few. [Keras](https://keras.io/),\narguably the leading Deep Learning tool out there, is a Python abstraction over other\nPython components--[TensorFlow](https://www.tensorflow.org/), [CNTK](https://docs.microsoft.com/en-us/cognitive-toolkit/), and\n[Theano](http://www.deeplearning.net/software/theano/). Other languages--like Go and Scala and Clojure along with of course\nR--feature powerful data science libraries in their own right, but Python's ecosystem can't be beat as much as I prefer\nstatically typed languages.\n\nWhenever people ask my advice on where they should begin their programming careers, I always suggest Python first\nand then JavaScript. I enjoy Python and wrote a lot of it on XDATA, but I haven't had the opportunity\nto use it as much as I would like since then. I am happy to report though that our most popular tutorial\n[Starting with Data](https://www.vidyasource.com/tutorial/starting-with-data/) is based on Python and JavaScript.\n\nIt's cool that Vidya has so much experience with the most lucrative languages in the world, but it's even cooler that\nwe have had the pleasure to do what we love--building great software with the best tools. As they say,\n\"Find a job you love and you'll never work a day in your life.\""
}