News from the World of Software Development – December 2016

With the Holiday Season in full force, many technology organizations take a few days to rest up before 2017 begins. Despite the break a few interesting stories from the software development still arose in the past few weeks. Let’s take a look and see if any recent news offers some inspiration for you and your team. If you are interested in last month’s digest, simply click this link.

How Design is transforming the Practice of Software Development

Principles from the world of design are influencing how software gets written, especially at companies leveraging Agile as their methodology of choice. This is the opinion of a December article in ZDNet. The piece explains the similarities of thought between design and Agile as noted by Matt Cooper-Wright, a senior designer at IDEO.

“Both processes seek input from beyond the team doing the work. For designers this is user research, business needs, and technology possibilities. For software development this looks more like a backlogs, user stories, and success metrics. Both processes also embrace iteration and ongoing refinement. Design is more about jumping backwards and forwards where software is the continuous loop of development — but both talk to the same notion of ongoing refinement,” said Cooper-Wright.

Faster release cycles combined with a move towards continuous deployment is a major goal of many shops embracing Agile. Design concepts come into play with elegant user interfaces that serve the needs of end-users. Involving creative professionals during the storyboarding portion of the development cycle (and elsewhere as needed) ensures the final product offers a compelling user experience.

Tom Dabson, software engineering manager at Cognizant, sums up this evolution of application development. “We use design thinking as the approach to solving problems,” Design thinking is centered around truly understanding client needs and opening yourself up to try as many things as possible before coming up with the preferred solution,” commented Dabson.

Apple slowing down Mac Application Development?

The rumors are hot and heavy that Apple is deemphasizing software development for its Mac desktop computers. Engadget reported on this potential news story in late December. Considering the lack of new Mac computers for nearly four years until the recent introduction of an updated MacBook line, it is obvious mobile devices, wearables, and streaming media are Redmond’s major focus.

The article noted the poor battery power of the new MacBook as proof Apple’s engineering focus lies elsewhere. More tellingly, an analyst for Bloomberg reported Apple no longer maintains a dedicated team working on macOS software. Tim Cook denies these rumors when speaking to the press, but the real proof is in the lack of innovation on the Mac side of the shop compared to other areas within Apple.

A quote the late Steve Jobs made to Fortune Magazine 20 years ago rings true concerning the current priorities in Redmond. “If I were running Apple, I would milk the Macintosh for all it’s worth — and get busy on the next great thing. The PC wars are over. Done. Microsoft won a long time ago,” said Jobs.

We hope everyone enjoys their Holiday season, and looks forward to a fruitful 2017. Keep returning to the Betica Blog for additional insights from the ever changing world of software development. Thanks for reading!

The Apache Foundation and the World of Open Source Software

There’s no denying the continuing influence of open source software on the modern business world. Many of the most important innovations in software technology happened because of open source. Some notable examples include the ubiquitous HTTP server, Apache, the distributed computing framework, Hadoop, as well as modern NoSQL databases like Cassandra and CouchDB.

The Apache Software Foundation (ASF) remains one of the most important incubators of these kinds of applications, including the four examples mentioned above. Let’s take a closer look at its history and relevant accomplishments to inspire your own team’s development work. Maybe you will find a useful application to make your software engineering process easier?

A Rich History of supporting Software Development

The Apache Foundation grew from the team responsible for the Apache HTTP server. Development first began on that project in 1993, with many of the initial team agreeing to incorporate as a non-profit entity in 1999. As a US 501(c)(3) charitable organization, the ASF receives support and funding from a variety of individual contributors and corporate supporters.

The Foundation’s framework protects the intellectual property involved with its own development work. It also helps to limit any legal exposure for those involved in contributing to the various applications managed by the ASF. The foundation currently includes 500 members and 4,500 contributors working on a variety of projects.

ASF members are individuals who have shown a history of supporting open source principles. They get nominated and are subsequently voted upon by the existing membership. Earning ASF membership status is a feather in the cap of anyone involved in software development.

This organizational structure allows applications to be developed and supported by the ASF once they enter the public domain. In addition to the software built in-house, thousands of enterprise-level programs are distributed freely under the Apache license. The benefits the ASF provides to modern business world are essentially incalculable.

Interesting Apache Projects for Developers

Apache doesn’t only incubate and support full applications; included among the Foundation’s projects are a whole host of libraries suitable for use in a wide array of applications. Java developers looking for an ORM tool when working with relational databases need to check out Apache Cayenne. It provides a user-friendly environment for creating data models and defining business requirements with easy portability to any JDBC-compliant database.

Writing logging code is a time-consuming necessity for many software developers. Apache provides a logging framework, usable at no charge, supporting many popular languages, including Java, PHP, C++, C#, and Visual Basic. This saves software shops valuable time, allowing them to concentrate on the core parts of their applications.

Apache Subversion is used by many software development organizations for source code management and version control. It is an example of a project first developed outside Apache that entered the incubator program, and is now a top-level project at the Foundation. It is the source code program of choice for ASF projects.

Chances are excellent you use at least one application either developed at the ASF or released to the public under the open source Apache license. The Foundation and its work is a true example of what can be accomplished by the open source software community.

Keep coming back to the Betica Blog for additional insights from the world of software development. As always, 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!