Programming Languages

This Week in Programming: Falling for Julia

25 Aug 2018 6:00am, by

This month saw the release of the long-awaited version 1.0 of Julia, the self-described “language for greedy programmers.” Why greedy? As cited from the language’s 2012 debut, the goals the Julia team set for themselves were lofty, to say the least. They are worth repeating here:

“We want a language that’s open source, with a liberal license. We want the speed of C with the dynamism of Ruby. We want a language that’s homoiconic, with true macros like Lisp, but with obvious, familiar mathematical notation like Matlab. We want something as usable for general programming as Python, as easy for statistics as R, as natural for string processing as Perl, as powerful for linear algebra as Matlab, as good at gluing programs together as the shell. Something that is dirt simple to learn, yet keeps the most serious hackers happy. We want it interactive and we want it compiled.”

As you can see from that initial wish list, one basic idea behind Julia was that they no longer wanted to compromise performance for ease-of-use. So, the question now is — did they succeed? Or, as an article in Quartz asks, should data scientists using R and Python switch over to Julia?

Of course, keeping in mind Betteridge’s law of headlines and the general rule of thumb when it comes to adopting new technologies, the answer is likely some combination of “obviously not” and “maybe for some things but not for others.” While Quartz points out that Julia is faster than Python and R, it also notes that “if processing speed isn’t important to you, Julia is probably inferior to whatever product you are using — at least for now.” They also mention the simple fact that, as a yet-to-be fully developed technology, “Julia is behind Python and R in terms of tools for debugging and identifying performance issues.”

At the same time, it certainly looks like Julia is turning some heads, with more than two million downloads, customers like the New York Federal Reserve, and an apparently surging popularity in China. If you find yourself considering leaving behind Python and R for the new girl on the block, here’s another article that gives a point-by-point comparison between the languages, definitely siding with Julia.

Really, though, is there ever a simple answer to a question like this? Choosing a language is always some blend of project requirements, language performance and features, and personal preference. Surely, we’ll watch Julia rise through the ranks as time goes on. Whether or not it replaces steadfast and stalwart languages like Python and R, well, that remains to be seen.

This Week in Programming

  • Twitter Is #SorryNotSorry for #BreakingMyTwitter: ProgrammableWeb writes this week that Twitter explains #BreakingMyTwitter, but I would venture that my heading would be more accurate. Citing an internal email and public post from Twitter’s Rob Johnson, they write that since “the developers using [the User Streams and Site Streams APIs] were among the most prominent members of the company’s ecosystem, it would appear that Twitter was intent on breaking up with them, backlash be damned.” The article ends by asking if developers will “continue trying to create meaningful apps using Twitter’s APIs” or if “Twitter’s developer ecosystem [is] dying a slow, intentional death,” and I find myself wondering just how many chances the company could possibly have. I mean, it’s not like I was writing about this same exact situation years ago or anything like that…
  • The Modules Cometh in Go 1.11: Perhaps you remember the hubbub around the introduction of the new vgo package versioning that was first announced back in February and formally accepted back in May? Well, with the release of Go 1.11, modules will get experimental support. So, it looks like it’s time for the rubber to meet the road and software developer Roberto Selbach offers a step-by-step introduction to go modules, leaving the internal debate in the past and focusing instead on how semantic versioning is going to work in Go moving forward. The post looks like a must-read for anyone committed to continuing on with Go.
  • Npm Adds Three New Security Features: After some recent issues with security, Javascript package manager npm announced some upgraded security features this week to help lock things down. The new features include “the report a vulnerability button, security advisories, and a feature that prevents the use of compromised passwords.” The “report a vulnerability” button will now appear on each package page, allowing users to quickly report suspected security issues, while security advisories will advise users of package vulnerabilities and offer suggestions on how to respond. Finally, the compromised password feature will compare users passwords “against an enormous list of 571 million password hashes graciously provided by Troy Hunt and the Have I Been Pwned project.”
  • Java & JavaScript Still Reign Supreme: Despite nearly daily headlines suggesting otherwise, it would appear that Java is still alive and well alongside its eponymous yet unrelated brethren JavaScript. This week, SDTimes brings us a report from the Cloud Foundry Foundation that finds “businesses seem to be sticking with Java and JavaScript for their enterprise application development needs.” According to the report, the other languages rounding out the top 10 included C++, C#, Python, PHP, VB.NET, C, Visual Basic 6 and VBA, with larger companies tending toward Python and C#. Java and JavaScript, meanwhile, reign supreme in North America, while C++ takes the place of JavaScript in Asia. If you’re interested in digging further, the full report is available for download.
  • GitLab’s Web IDE Gets Live Previews: A couple months back, GitLab launched its web-based IDE with a rather lengthy blog post describing its origins in internal debate. Now, in a much more straightforward blog post, the company announces that GitLab 11.2 will get a live preview in the Web IDE, the ability to import Android projects using XML manifest files, and a feature that enables custom project templates. Currently, the Web IDE live preview feature works with client-side JavaScript, but server-side Ruby support will be coming later this year. Lastly, GitLab announced that the Cloud Native Helm Chart is now generally available to help install GitLab on Kubernetes.

  • Fascinating, Historical Programming Tidbits: And to wrap this week up, we have a couple of articles that explore some of the fascinating history in the world of programming. First up, from our own pages, David Cassel takes a look at Vim, a text editor for the ages, exploring the slow migration from one extremely short-named editor to the next, until Vim was born — a name that increased the name length over previous editors by 50 percent. It’s a great read that explains Vim’s various quirks as part of a program “written for a world that doesn’t exist anymore.” Next, going further back in time another 150 years or so, the TwoBitHistory blog asks what did Ada Lovelace’s program actually do? The post takes the reader through the progression of mathematical thought leading up to Lovelace’s program and even goes so far as to translate it into C.

Feature image via Pixabay.

A newsletter digest of the week’s most important stories & analyses.

View / Add Comments

Please stay on topic and be respectful of others. Review our Terms of Use.