A Deep Learning AI Routine learns how to Code

AI

The end of April is nigh, which means another edition of our software development news digest. These intriguing stories hopefully provide a measure of insight to your own application engineering efforts. If interested in checking out last month’s digest, just click on the following link. Thanks for reading!

A Deep Learning AI Routine learns how to Code

AI and machine learning continue to make an impact throughout the technology industry. These innovations are found in everything from data analysis to self-driving automobiles. In a similar matter as with robotics, some professionals wonder if their jobs are going to be taken over by a computer in the next decade.

Recently a team at Rice University developed a deep learning routine actually able to write some code. The good news for current developers is the prime directive for this AI application involves helping software engineers more easily handle interfacing with poorly documented APIs. News about this AI innovation appeared earlier this week at Tech Xplore.

The application – called Bayou – performs a deep analysis of APIs in online source code repositories, like GitHub and others, attempting to learn about the API’s usage idioms. The application is focused on the Java language at this time. Swarat Chaudhuri, associate professor of computer science at Rice and one of the creators of Bayou, commented on the tool’s genesis.

“People have tried for 60 years to build systems that can write code, but the problem is that these methods aren’t that good with ambiguity. You usually need to give a lot of details about what the target program does, and writing down these details can be as much work as just writing the code. Bayou is a considerable improvement. A developer can give Bayou a very small amount of information—just a few keywords or prompts, really—and Bayou will try to read the programmer’s mind and predict the program they want,” said Chaudhuri.

Most notably, it analyzed millions of lines of Java code as part of its self-training process. If you want to try the application for your own purposes, just simply ask Bayou.

Fannie Mae makes Software more Secure with Lean

We’ve previously talked about the Lean methodology. Considered a variant of Agile, Lean actually grew out of the manufacturing world in an attempt to make operational processes more efficient. Now, mortgage lender Fannie Mae is leveraging Lean to make its software development process faster and more secure. News about their efforts appeared this week in CSO.

Since implementing Lean in 2013, Fannie Mae’s development cycle decreased by half. Working more efficiently allowed the software engineering team to subsequently make their applications safer from hackers and other nefarious agents. They also saved hundreds of millions of dollars over that time, according to company VP, Michael Garcia.

Writing safer code from the beginning is a core principle of Lean applied to software engineering. Other Agile techniques, like smaller increments and faster testing, improve overall efficiency. The company explored applying the principles Six Sigma to their development process, but ultimately felt Lean made a better fit.

Lean is definitely an Agile variant worthy of evaluation for larger software development shops. A more efficient process simply brings many advantages, including more secure applications and an increase in business value. Dive into the CSO article for a further exploration of the use of Lean at Fannie Mae.

Stay tuned to the Betica Blog for additional news and insights from the constantly evolving world of software development.

Are Developers finally starting to Understand DevOps?

devops-blog

Software developers remain a curious and opinionated bunch. Over the last few decades they tend to adapt slowly to new methodologies, with DevOps offering little exception to this golden rule. A recent survey reveals things are finally beginning to change, as it shows application engineers beginning to actually “get” DevOps.

Of course, we recently wrote about network administrators feeling DevOps is all about the “Dev” in the first place. What follows is an analysis of the survey to see what these changing opinions mean for the process of software engineering. Perhaps you might gain an insight or two to help your own team’s project work?

Survey says DevOps makes Software Development Faster

Most organizations implementing DevOps do so in the hopes of making their software development process faster and more efficient. A survey of software engineers, CTOs, and IT pros by application maker, GitLab, notes that these wishes appear to be coming true. News about the survey appeared last month on the Developer Tech website.

According to the GitLab study, two-thirds of those polled feel DevOps greatly improves the speed of the software development process. This 65 percent moves upwards to 81 percent when only taking into account the opinion of managers. 29 percent of those surveyed plan new DevOps investments in the current year.

The best shops using the methodology are able to spend at least half of their workday actually writing code. Changes get deployed on demand. In short, these top organizations are twice as productive as those whose DevOps implementation is either immature or nonexistent.

Challenges to Efficient Application Engineering Remain

In their survey, GitLab highlighted a few challenges to the software development process. Two-thirds of the respondents noted the lack of clear direction on application engineering projects. Slightly over half mentioned the need for rework and unexpected scope creep, while 31 percent felt unrealistic expectations hampered their efforts.

Leveraging automated processes to improve efficiency is a high priority at 60 percent of the surveyed organizations. Around 90 percent of those companies are currently using Agile, DevOps, or a mixture of both. 16 percent are still using the venerable Waterfall methodology for some or all of their development work.

Continuous testing also plays an important role in the ultimate success of any company’s DevOps adoption, a concept highlighted by Razi Siddiqui, SVP and CIO at GCi Technologies. “It’s a key indicator that your DevOps/agile practice is mature, and your QA strategy must take into account that 100% test automation is not practical – nor is it possible,” said Siddiqui.

Sid Sijbrandij, CEO and co-founder of GitLab, commented on their survey conclusions. “The survey reveals software professionals finally see the need for DevOps in their workflow and are beginning to adapt their workstyle in order to make this a reality. Despite the progress in the shift in mindset, current DevOps practices are not cutting it. Instead of a single application that accomplishes the goals of both Dev and Ops, many glue together the tools for the two departments, which has proven to be an ineffective means for collaboration,” said Sijbrandij.

It definitely appears that any enterprise software development not using DevOps runs the risk of being left behind in today’s business landscape. Thanks for reading this edition of the Betica Blog. Keep returning for additional insights on the wide world of software development.

React.js gets a Fresh Update

reactJS

With Facebook’s founder testifying to the U.S. Congress, in unrelated news, the company’s React.js UI library for JavaScript recently received a new update. Version 16.3 of React provides a host of new features for developers hoping to add some efficiency to their web applications. If you are interested in downloading it, the update is available on Facebook’s own GitHub repository.

If your team isn’t using React, check out our previous articles covering it and its mobile variant, React Native. What follows is a high level overview of React version 16.3. News about the new update appeared in InfoWorld, among other sources.

A Look at the New Features of React.js 16.3

The main changes in the updated version of React involve improved management of the component lifecycle, as well as a new API to help developers better deal with context in their application. These new component lifecycles include: getDerivedStateFromProps and componentWillReceiveProps, which gives programmers a safer option than using the legacy versions. Another one, getSnapshotBeforeUpdate, safely handles the reading of properties before performing an update.

Some lifecycles are receiving an “unsafe” prefix to warn developers not to use them. Runtime safety isn’t the issue as much as the likelihood of deprecated functionality and subsequent incompatibility with future versions of React. In short, they are warning you about potential future bugs. Another reason for this is providing a “heads up” to engineers maintaining open source applications using React.

Facebook engineer, Brian Vaughan commented on what led to this new lifecycle functionality. “A few days ago, we wrote a post about upcoming changes to our legacy lifecycle methods, including gradual migration strategies. In React 16.3.0, we are adding a few new lifecycle methods to assist with that migration,” said Vaughan.

Another option involves using the new StrictMode component. This serves to identify any unsafe legacy lifecycles when running in development mode. It also warns about other side effects from using older lifecycles and React functionality. Expect additional features to be added to this component in future updates.

The New React Context API adds Efficiency

In addition to providing a boost in efficiency, React’s new Context API allows for static type checking and deep updates. Data is able to be passed through a component tree without the manual inclusion of props. The old API is expected to still work for a few more versions, so start updating your code to use to new one.

Facebook cautions about overusing the new API. “Don’t use context just to avoid passing props a few levels down. Stick to cases where the same data needs to be accessed in many components at multiple levels,” said the social network’s development team.

Other fresh features in React 16.3 include a new API for managing refs, called createrefAPI. This lets programmers access DOM nodes or React elements derived from the render process. The forwardRef API facilitates code reuse by help devs use higher-order components for this purpose.

Since React is effectively becoming a standard for UI development in web applications, we hope this look at its latest version provides some insights for you and your team. As always, thanks for reading the Betica Blog. We hope to see you again very soon!