Functional Programming hits the Big Time

functional-progNo longer the stuff of more esoteric applications, functional programming is beginning to see increased usage across the software development world. At its essence, functional programming tells software explicitly what to do, instead of procedural programming’s focus on how to do it. As revealed in its name, it is a stateless paradigm with more similarities to mathematical functions than a massive object-oriented application.

Let’s take a high level overview of functional programming to see if it makes sense as part of your development team’s toolbox. Perhaps it triggers some insights to solve a pressing problem in your current software engineering efforts?

So what is Functional Programming?

The changing business world and its focus on interactive apps able to scale massively are outgrowing state-driven software. This fact is highlighted in a recent article by Forrester Research published in ZDNet providing a look at functional programming and its increased relevance to the programming community. The article notes FP requires a different mindset and approach compared to traditional programming languages.

A recent study reported that over half of all surveyed developers work for a company now using functional programming in some fashion. Forrester compares this migration to the emergence of object-oriented programming in the 90s. OOP served to transcend the limitations of procedural programming back then, and FP is poised to do the same thing to OO software today.

In addition to its overall brevity compared to object-oriented code, functional programming offers other advantages over older programming styles. It reduces regression errors in code, supports greater reuse, and also makes both the creation and maintenance of software an easier process. As noted earlier, applications written with a focus on the functional paradigm are able to massively scale better than OO software.

That latter point is especially important in a business marketplace increasingly dependent on eCommerce and social media.

Functional Programming Languages

While there is a host of functional programming languages considered to be “pure,” many of these are included as part of mathematical software. Thankfully, nearly all popular languages support the use of functional programming constructs embedded within any codebase. As such, programmers and architects need to be conscious of thinking in a functional mindset when designing and writing applications.

A hybrid language like Scala (or even F# for Microsoft shops) serves a bridge for introducing more functional concepts into a team’s “regular” programming style. Even old school examples like PHP or JavaScript are able to work as a functional programming language. Simply understanding how functions work within any language helps bootstrap this new mindset.

While Forrester provides the full functional programming report referenced in the ZDNet article, it requires a subscription to their research service. If your company already subscribes, congratulations and a download are in order. The research report is also available for non-subscriber purchase for $499.

Thankfully, there are other free resources available for learning about functional programming. The UK-based developer, Mary Rose Cook has a detailed blog post on the topic. Smashing Magazine also provides a useful introductory article.

Simply put, learning about functional programming is a wise choice for any software professional. Expect to encounter its use in your career soon, if you aren’t already using it today.

As always, thanks for reading this edition of the Betica Blog. Come back soon for additional insights on the programming world.

GitHub Analysis reveals the Changing Face of Programming Language Usage

One obvious constant in the technology industry is its rapid pace of change, and the practice of programming offers no exception to this rule. What was once a popular language at the turn of the century might hardly get used for applications today. On the other hard, new programming languages seem to appear on a monthly basis.

Data from the source code repository, GitHub, offers a window on this changing face of software development. Let’s look more closely at their analysis to check the latest trends in programming language usage. Perhaps these insights might be of use in your own team’s development efforts?

393 Different Programming Languages at GitHub – in One Year!

GitHub boasts 4.5 million users who maintain around 10 TB of source code at the repository. Incredibly, those development projects are written in 393 different programming languages. Even more impressive is that data only represents one year of GitHub usage statistics!

Those numbers have only increased since the original July publication of an article by Waren Long at the source{d} blog used as a reference for this post. Another interesting point is their analysis doesn’t even include JavaScript, one of the most widely used languages, because of GitHub users’ propensity to refer to popular libraries, like Node.js or React.js, as a project’s language instead of JavaScript.

Long’s methodology for determining programming language is quite detailed, so refer to the link in the previous paragraph for additional insights, if interested. 

The Current Most Popular Programming Languages on GitHub

There are few surprises listed among the most popular languages currently in use at GitHub. Python and Java rank at the top of the list, with a popularity percentage of 16 and 15.3 respectively. That doesn’t necessarily mean both languages have more lines of source code stored in the repository. That honor lies with PHP, even though it only ranks at #5 on the popularity scale.

Other languages in the top 10 include the venerable, like C, C++, and C#, along with relative upstarts like Ruby, Objective-C, and Go. Apple’s newer programming language for iOS applications, Swift, rounds out the top 10. A related analysis adding in Google search queries to the GitHub data notes that Go is currently the “hottest” programming language.

Moving from One Language to Another

The original source{d} blog article also looked what languages programmers are transitioning into over time. This is useful information for both individual developers as well as software development shops. For example, many Visual Basic developers eventually transition into C#, which isn’t surprising for programmers working primarily on the Microsoft technology stack.

PHP developers, on the other hand, tend to move into Java, Python, or even C#. Python’s current popularity is confirmed by the fact that 24 percent of programmers working in the five other most popular languages — Java, C, C++, PHP, and Ruby – eventually work with Python. The “walled garden” nature of Apple platforms is revealed by the high percentage of programmers switching between Swift and Objective-C for project work.

Ultimately, anyone working as a programmer or a manager of software development needs to dive into the source{d} analysis of GitHub’s data. It’s truly fascinating.

Keep coming back to the Betica Blog for additional insights from the software development world. Thanks for reading!