It’s been a year of open-source projects. Both enterprises and startups have been releasing their code into the wild as a way to grow their capabilities. It’s not just the code that’s important; it’s the programmers and contributors that can get their hands on it, alter it, fix it, and make it better.
For some companies, the goal of an open-source project is to create better technologies and a better community. Microsoft is one of these companies, and its developer experience is open by design to help developers build “great applications, more easily, in a mobile-first, cloud-first world,” according to David Carmona, senior director of product marketing at Microsoft.
“We believe developers should be able to use the tools they need most, while also enabling the community to have an impact on how those tools evolve to meet their changing roles,” he said. “New open-source technologies such as the Visual Studio Code and .NET Core are two examples of the work Microsoft is doing to provide a more open developer experience.”
The head of open source at GitHub, Brandon Keepers, said that the repository viewed 2015 as the “tipping point” for open source. In 2016, it looks forward to “strong and diverse communities on GitHub helping make open source even more accessible.
“With important technologies from companies like Apple and Microsoft released on GitHub this year, it is clear that the future of modern software development is built on open source.”
Since the new year is quickly approaching, SD Times looked back at some popular GitHub projects that made an impact on the open and free software world.
1. Swift: Apple announced earlier this month that its programming language would be open source. Open-sourcing Swift enables developers to include it on other platforms like Windows and Android. Apple is going to continue to lead Swift development, but it will work with the community to fix bugs and add enhancements. The company also announced a new port to allow the programming language to work with the Linux operating system. The Swift Linux Port features Swift without the Objective-C runtime, the core language and standard library, core libraries, and the Swift Package manager.
Swift offers access to existing C and Objective-C code and frameworks, and is memory-safe by default. Swift has features like flow control, data structures and functions—all with high-level constructs like objects, protocols, closures and generics.
On its GitHub page, Swift has 30,201 commits and 233 contributors.
2. Apache Spark: Apache Spark is known for its speed and ease of use that enables developers to write apps in Java, Python or Scala quickly, using more than 80 built-in high-level operators. It’s a general cluster computing system for Big Data, and it provides an optimized engine that supports general computation graphs for data analysis. Spark was built using Apache Maven, a software project-management and comprehension tool.
Also, Spark uses the Hadoop core library to talk to HDFS and other Hadoop-supported storage systems. On the Apache GitHub page, it recommends building Spark against the same version that the cluster runs. Currently, the Apache Spark GitHub page has 14,136 commits (or tracked changes), as well as 767 contributors.
3. Free Code Camp: A survey by Stack Overflow found that almost half of developers out there are self-taught. Free Code Camp, another open-source project, aimed to provide those developers real-world experience by providing them with a community of programmers who can learn to write code together. At the same time, they are also building projects for nonprofit organizations.
Some of the benefits of the Free Code Camp community include:
• Learning skills such as HTML5, CSS3, JavaScript, databases, Git, Node.js, Angular.js and agile
• Being connected to thousands of software development professionals
• Working on free and open-source projects
• Learning to code at your own pace at the comfort of your own home
• Real-time help
Another benefit is if 400 hours worth of challenges are completed (including building 10 single page apps) a person can earn their Front End Development Certification. Currently, the code has 6,559 commits and 221 contributors.
4. VS Code: Microsoft’s Visual Studio Code became open source this year. It’s a new tool that aims to provide the simplicity of a code editor with necessary tools developers need for their core edit, build and debug cycle, according to the project’s GitHub page. It features editing and debugging support, an extensibility model, and lightweight integration with existing tools. The project also runs on Linux, OS X and Windows.
Developers can submit bugs and feature requests directly through GitHub, and also review source-code changes and documentation to make pull requests.
For developers interested in fixing issues and contributing directly to the codebase, Microsoft has provided instructions on how to do so. It covers:
• How to build and run from source
• The development workflow, including debugging and running tests
• Coding guidelines
• Submitting pull requests
5. Foreign LINUX: A GitHub project that broke down barriers of Linux and Windows was a top GitHub pick of the week back in March 2015. Foreign LINUX is a dynamic binary translator and a Linux system call interface emulator for Windows, capable of running unmodified Linux binaries on Windows without any drivers or modifications to the system.
Foreign LINUX also allows developers to run unmodified Linux applications in a pure user-mode application without privileged code or virtual machines, and it supports both dynamically and statically compiled executables as well as native hard links and client-side networking. According to its GitHub page, the project still lacks functionality required for many Linux applications. Maybe the New Year will bring Foreign LINUX some new contributors. The project currently has 829 commits and eight contributors.
6. React Native: Facebook wanted Android developers to take advantage of its JavaScript framework for native development, so the company announced React Native for Android in September of 2015. According to its GitHub page, The focus of React Native is on developer efficiency across all the platforms. Facebook uses React Native in multiple production apps and will continue investing in React Native in the future.
React Native features native components, asynchronous execution, touch handling, flexbox and styling, and polyfills. It has 4,384 commits and 446 contributors.
7. AngularJS: AngularJS lets contributors write client-side Web applications as if on a smart browser. “It can extend HTML’s syntax to express the application’s components clearly, and it automatically synchronizes data from the UI with JavaScript objects through 2-way data binding,” it says on its GitHub page.
Also according to its GitHub page, to help “structure your application better and make it easy to test, AngularJS teaches the browser how to do dependency injection and inversion of control.” It has 7,340 commits and 1,371 contributors.
8. .NET Core: Microsoft open-sourced its source code for the .NET Core Common Language Runtime (CLR) in GitHub in February 2015. The repository includes the full CoreCLR, known as the execution engine for .NET Core.
The CoreCLR implementation includes the RyuJIT compiler, .NET garbage collection, .NET native interoperability, and other .NET runtime components. New developers to the CLR team are encouraged to read the CoreCLR “Book of the Runtime” before getting started. Currently, the repo has 2,937 commits and 187 contributors.
9. RancherOS: “Everything in RancherOS is a container managed by Docker. This includes system services such as udev and rsyslog,” says the project’s GitHub page. “RancherOS includes only the bare minimum amount of software needed to run Docker. This keeps the binary download of RancherOS to about 25MB. Everything else can be pulled in dynamically through Docker.”
Two instances of Docker are used: One is system Docker, which runs as PID 1. System Docker then launches a container that runs the user Docker, which is then the instance that gets primarily used to create containers. This helps avoid deleting the entire OS.
RancherOS has 811 commits and 21 contributors.
10. Let’s Encrypt: An extensible client for the Let’s Encrypt CA that can automate obtaining certificates and configuring Web servers to use them. The Let’s Encrypt Client is in beta, and its GitHub page suggests that testers thoroughly test in staging environments before use on production systems.
Let’s Encrypt is a free project by the nonprofit Internet Security Research Group, and sometime in the new year, it could launch for everyone.