Frameworks and shadows

6 code and framework trends you should follow in 2017

For developers, 2016 was a big year, as several programming ecosystems hit major milestones. AngularJS 2 finally arrived, and Node.js moved toward VM neutrality. Developers complained about JavaScript fatigue, while others felt fatigued by the complaints about fatigue. 

Java 9 was delayed... again, but Go 1.7 did get released, Go 1.8 is coming soon, and Elm, Kotlin, and other new languages have emerged into the limelight. Meanwhile, progressive web apps (PWAs) became the next big thing in mobile.

So what can you expect to see in 2017 from these high-profile languages and frameworks? TechBeacon polled experts in the developer community for their predictions. Here are six things they say are in store.

World Quality Report 2017-18: The state of QA and testing

1. Java 9 arrives, but it's not as big as Java 8 

The Java 9 community is still working out the details of implementing Project Jigsaw, its new module system. The release date was pushed back to July 2017, but Ben Evans, co-founder of JClarity and Java book author, thinks it will ship on schedule, but cautions that at least intially, it won't be as big a deal as was Java 8. "It will have a major impact in the longer-term, but will be adopted much less quickly,” he contends.

Java 8 is popular due to its cleaner code and better performance that its predecessor, but Evans doesn't think Java 9 will get as many early adopters. “The challenges involved in adopting modules, especially for libraries and framework authors, are large for some projects," he says. More cautious organizations will stay on 8 for some time to come, he adds.

"[Java 8] will be seen as a long-term support release." —Ben Evans, co-founder, JClarity

There's a possibility that the developers of the Java Development Kit (JDK) will again decide not to include Jigsaw in the Java 9 release—it was originally promised for Java 8— but that seems unlikely, says Paul Bakker, a software architect at Luminis Technologies who is currently working on an early release O'Reilly book on Java 9 modularity.

Jigsaw is merging into the main Java 9 codebase —until recently it was a separate download—and is likely to make it to the final release, Bakker predicts. “This is great, because the module system, and the end of the classpath, are a huge step for the platform.”

Once Java 9 is released, it could have a large impact, but not necessarily a positive one in the early going, says Martijn Verburg, one of the developers of OpenJDK. “The introduction of the module system, combined with the change in the default garbage collector, means that developers and enterprises expecting the smooth migration path that Java has always enjoyed will experience a much bumpier go of it this time around.”

Verburg agrees that Java 9 won’t have the impact that Java 8 did.

“There are some great new features, such as HTTP2 support, and jshell for a Java REPL, but there isn't a stand-out developer feature like there was with Java 8 and Lambdas."
Martijn Verburg, OpenJDK

Jigsaw will make Java better in the long term, he contends, but only if the community at large picks it up and migrates to it. "There's still a huge amount of tooling support required in order to make it a success,” he says.

2. Node.js will do more to court enterprise users

Ryan Lewis, a Node.js contributor, contends that Node.js is becoming more stable and enterprise-focused. He expects that trend to continue into 2017 and beyond. “We already have examples like PayPal—they’ve built critical systems on Node.js,” he says.

“The Node.js Foundation is doing a lot of smart things to show enterprises that the Node.js ecosystem is stable and low-risk.”
Ryan Lewis, Node.js contributor

So what does he expect from the Node.js ecosystem in 2017? Best practices have become fragmented. In response he's been working a Node.js certification that could be available later this year. "We want to establish a baseline of foundational knowledge so that more risk-averse enterprises can feel better about the stability of the ecosystem, and its developers,” he says.

The ecosystem also needs to build up trust around Node.js modules. The so-called “left-pad” incident last year rattled many enterprises when it broke crucial JavaScript tools that major web companies use. Now NodeSource, an enterprise tooling company for Node.js, is building what it calls Certified Modules, which will be a more reliable and secure source for Node.js modules that won't allow administrators to suddenly remove a module that hundreds of thousands of projects use.

It's unclear whether the product will be paid or free, but it's already in beta, and scheduled for release this year. Certified Modules will provide many of the crucial Node.js modules as easily as npm does,  but will use more stable and secure methods for handling and maintaining them.

Another development that needs to be decided in 2017 is how Node.js is going to incorporate ES6 modules. These need to be incorporated to maintain broad interoperability with standard JavaScript (ES6), Lewis says.

Node.js 8  is slated for release in April, follwed by Node.js 9 in October, according to the release calendar. Version 8 is a big deal because it's a long-term support (LTS) release, meaning it will be supported for two and a half years by the Node.js Foundation. In contrast, versions 7 and 9 won’t be supported very long after the next version comes out. 

"Significant decisions for the ecosystem will be made in 2017.”
—Ryan Lewis

3. Go (Golang) will become a top 10 language

Richard Eng, campaign director at Smalltalk Renaissance, has been researching programming language rankings for several years. He’s even built his own rankings system for programming languages, which he calls the Eng Language Index.

Google’s brainchild, Go, is the programming language to watch in 2017, he says. “It will continue its astonishing ascendancy toward the top tier of IT languages," he says, noting that it's already a top 10 language on several language ranking websites. 

Node.js and Ruby have been the languages of choice for startups, increasingly Go is displacing Node.js for mission-critical applications, Eng says. "As the IT industry moves inexorably toward multi-core and concurrent processing, languages like Go will play an vital role." 

4. AngularJS 1 and 2 remain one, React on a roll

Jeremy Likness, a blogger and director of application development at iVision, says AngularJS has the lead in the JavaScript front-end framework space overall in the software industry. But while Angular has a strong lead among Java developers, React is more popular, and has more users among general JavaScript developers. “Angular 2 will continue its popularity,” Likness says, “but React will gain momentum and may threaten Angular's lead by year end.”

But is there is any lingering controversy or likely separation in the AngularJS ecosystem, given the compatibility break between Angular 1 and 2?  Likness doesn't think so. "There will continue to be a long tail for Angular 1.x apps, but there is a clear path to Angular 2, and I see people taking that path."

Angular 1 application maintainers have only three choices, he says. They can remain in place; they can move to Angular 1.5 and refactor apps to leverage newer features, such as components and lifecycle management, which positions them nicely to upgrade to Angular 2; or they can move straight to Angular 2.

The decision depends on the level of best practices the developers applied when architecting their Angular 1 apps. "Poor architecture is harder to migrate, whereas cleaner architecture with tests is a lot easier to migrate," Likness says.

To help companies migrate, Angular has a very useful ngUpgrade feature that lets developers upgrade Angular 1 apps in place, and migrate in small chunks, rather than one big overhaul. 

"I don't think Angular 1 and 2 will evolve as separate tools," he concludes. Some apps will live on in certain cases, but newer projects and updates will begin to converge over the coming year.

Expect the next version of AngularJS to arrive in March 2017, but it will be called Angular 4, not Angular 3.

5. Kotlin is the next big thing for Android

On reason for all of the interest in Kotlin, the  programming language created by Jetbrains, has been its growing popularity for Android development, says Kotlin chief evangelist Hadi Hariri

“Kotlin is Java on steroids," says Android developer Aritra Roy. Becuase it's  interoperable with Java, programs can be "Kotlin-ified" with a single click, he says. And Kotlin users end up writing less code that's more compact and readable than Java. “That makes it great for lazy engineers like me, who are always on tight deadlines.”

Kotlin is based on the Java virtual machine (JVM), but has a different syntax. While Java is the primary language Android developers use today, particularly in the enterprise, it’s not beloved by everyone. Criticisms of Java often center around its verbosity. Kotlin, in contrast, is a more succinct and pragmatic language.

Andrew Orobator, an Android developer at American Express, says this is the year  Kotlin will finally take off.  He sees more developers writing production code in Kotlin, as the community grows. “Its null safety feature is simply a godsend,” he says. The language won't allow programmers to compile any potential null reference errors, eliminating those "dreaded" NullPointerExceptions, he says.

Another attraction of Kotlin is its compactness. Orobator saw a 50% reduction in lines of code after converting one of his plain Java objects. "Gradle recently adopted Kotlin, and Gradle isn’t going anywhere," he adds.

"Kotlin is a much-needed improvement in the Android ecosystem that will make programming in Android fun again.”
Andrew Orobator, American Express

6. Progressive web apps take flight

In 2016 Progressive web apps (PWAs) emerged as a major new paradigm in mobile web development. Maximiliano Firtman,  author of the book High Performance Mobile Web, expects to see a greater number of PWAs built in 2017.

“PWAs will finally see the light when they become real apps with OS integration, not just shortcuts on a home screen,”
Maximiliano Firtman

“The new installation process will be available in Android and Windows, and it will be the beginning of the addition of PWAs in app stores, as an alternative publishing method.”

But the birth of one paradigm often means the death of another, and in this case, the victim is WebView-based apps. “Safari will start supporting some of the APIs behind PWAs with time, and this will be the beginning of the end for most WebView-based apps, such as Apache Cordova and PhoneGap apps, Firtman says.

    Those are the key trends these Java experts see. Is there something we missed? Share your predictions and retrospectives for your language and framework ecosystems in the comments below. 

    World Quality Report 2017-18: The state of QA and testing
    Topics: App DevMobile