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!    

2017 Trends in Software Development

With the New Year now upon us, it becomes a great time to take a look at some of the major trends impacting the world of software development. Understanding the shifts in a continually evolving industry helps position your application engineering team for success both now and in the future. Maybe your shop is already part of making these trends the new reality in the technology sector?

Chat-based Tech becomes Commonplace for Developers

Last year, we talked about the use of ChatOps for software development teams, allowing engineers and QA staff to use smart chatbots to streamline portions of the process. Users can easily start builds, test scripts, automate virtual environments, and more using a simple messaging app that keeps the entire team in the loop.

One of the most popular technology trends for 2017 is the increased use of chatbots and Business Bots throughout the business world. Expect chatbot usage to greatly expand among software developers. The era of DevOps requires efficiency, communication, and collaboration, with chatbots and ChatOps making life easier for all.

Another notable 2017 business trend is Advanced Collaboration, and the use of chatbots is helping to make this reality happen for developers and other departments within many technology businesses.

Mobile App Development grows in Importance at Businesses

Mobile apps have been around since before the introduction of the iPhone. Their increased use at businesses of all sizes – especially at smaller organizations – is a predicted trend in the tech world for 2017. Nearly half of all small businesses are expected to leverage mobile apps in their daily operations over the next year, according to the mobile development platform, Biznessapps.

Software development shops focusing on business apps need to look at ramping up their Android and iOS development efforts. Java remains the language of choice for the majority of Android projects, while Swift is gaining on Objective-C for iOS initiatives.

Docker becomes Mainstream at Development Shops

Many businesses strive for continuous deployment to stay competitive in the modern business world. This is one of the reasons for the popularity of Agile as a methodology and DevOps or Tribes as an organizational structure. This places the onus on development teams to leverage a wide variety of tools to make processes more efficient, like Docker for migrating applications across virtual production, development, and QA environments.

In 2017, Docker, as well as other package-based tools, are expected to become commonplace at shops across most business sectors. Vagrant, which works like Docker but is able to package an entire environment, is another similar application now becoming the standard for managing virtual development environments. Virtualization and packages are now a must for nearly all application engineering shops.

Functional Programming keeps Cloud Servers running Smoothly

As more and more mobile devices connect to the Internet – with their users expecting a seamless experience – servers on the Cloud need to prevent becoming bogged down in a massive amount of traffic and requests. Enter functional programming. Functional languages, like Clojure and Scala, are essentially stateless, allowing them to run more efficiently in parallel on servers using different processor cores or in distributed environments.

2017 is expected to see a rise in popularity of these and other functional programming languages, given the continued growth of the Cloud and mobile device connectivity.

Keep an eye on these trends throughout the upcoming year to see if they come to fruition. Check back regularly at the Betica Blog for additional dispatches from the world of software development. Thanks for reading!

Swift – the Apple Programming Language for Mobile Devices and More

Until 2014, if you wanted to write applications for Apple iOS (the iPhone or iPad), watchOS (the Apple Watch), tvOS (Apple TV), or even a macOS desktop application, the most straightforward way involved using the Xcode IDE with Objective-C as your language. This changed when Apple released a new language, known as Swift. The main advantages it brought were a relative ease of learning, improved safety, along with a more readable and concise programming style.

Let’s take a closer look at Swift to see if it makes sense to use for your team’s Apple programming projects or more.

The Genesis of Swift

The development of Swift began inside Apple in 2010, with an internal project team led by Chris Lattner. The language’s first iteration was introduced to the world at Apple’s WWDC in 2014. New versions are typically released in concert with an Xcode update – Swift 3.0 becoming available in September of 2016.

Although originally a proprietary language owned by Apple, Swift entered the open source domain under the Apache 2.0 license in 2015. This also allows developers to target Linux in addition to Apple’s array of platforms. RemObjects Software even makes the Elements compiler that lets Swift code target .NET, Android, and the Java runtime. 

Needless to say, the language is growing in popularity, as evidenced by IBM’s website allowing you to write Swift code and quickly see the resultant output. Apple themselves released an iOS app, called Swift Playgrounds, that provides an introduction to the language as well as the practice of programming. It is suitable for anyone from ages 12 to 100.

An Overview of Swift’s Features

It is difficult to go into too much depth on a programming language in a simple blog post, but here is a quick overview of some high-level features of Swift. The language syntax is similar to most other object-oriented languages (Objective-C, Java, C#, C++) with the notable absence of semicolons at the end of every line. Object notation using dots is easily understandable by any veteran software engineer.

Automatic memory management is a useful feature, greatly simplifying the coding process. Namespaces, generics, and native error handling (using a try-catch-throw block) are some of the modern language capabilities also provided by Swift. It even supports a few patterns from the functional programming world – most notably, map and filter.

In addition to memory management, a variety of compile-time features help enforce code safety. For example, your code isn’t allowed to set an object to nil; the complier throws an error in this situation. Xcode also includes a debugging console that provides a built-in interactive version of Swift.

If your team already has a few projects written in Objective-C, you are easily able to use Swift modules within the same codebase. This allows a quick migration to the new language or a mixture of both to leverage the capabilities and experience of your development staff. Finally, the compiler produces high-speed native machine code, providing fast performance to your users on any supported device.

The growing popularity of Swift, even beyond Apple’s proverbial “walled-garden,” makes it worthy of exploration if your shop is writing applications for the desktop or any type of mobile device – from wearables to smartphones. Leveraging Apple’s Swift Playgrounds iPad app or the IBM Swift Sandbox website offers an easy way to perform your own due diligence.

Stay tuned to the Betica Blog for additional dispatches from the wide world of software development. Thanks for reading!