Although the definition of system programming is fuzzy, it can be described as having to think at the bit, byte, instruction or CPU cycle level. Systems programming also implies demanding performance and reliability requirements. Joe Duffy, engineering director at Microsoft, presented strategies for system programming in C# at QCon New York. He also discusses pitfalls and how to mitigate them.
Log4j, the popular logging library for Java, will include a number of configuration options that allows it to run in a completely garbage-free manner. The release follows previous attempts to improve the performance of logging libraries, and has been positively received by the industry. Further changes to increase the number of scenarios in which log4j can run garbage-free are expected.
During his opening Keynote at QCon London on Monday morning Adrian Colyer mentioned the Pony Language as being "really fascinating stuff." We were fortunate enough to have the designer of the language, Sylvan Clebsch, giving a talk on the native languages track on the Wednesday. Clebsch suggested that Pony is a natural fit for FinTech systems.
Censum, the Java garbage collection analysis tool by jClarity, has reached version 3.0. The main new features of the new version include the ability to analyse Safepoint logs, new graphs showcasing the behaviour of the G1 garbage collector, and a set of analytics to highlight whenever applications force to much OS activity.
While Go 1.5 is still relatively new on the blocks, the Go team is already at work on improving its new, low-pause, concurrent garbage collector, which aims to make Go better suited for new application fields, Google engineers Austin Clements and Rick Hudson say.
As previously mentioned on InfoQ, Oracle had proposed JEP 248, about making G1 the default garbage collector, to be included in the list of JEPs targeting Java 9; recently, Oracle has confirmed such decision and made it official. The decision triggered a lengthy debate in the HotSpot’s email discussion list, which concluded with a provision to defer the change if G1 proves not to be fully ready.
Oracle is considering including JEP 248, making G1 the default garbage collector on server configurations, into the list of JEPs targeting Java 9. The decision has triggered some debate among the Java community, with many arguing that the CMS collector could have been more suitable.
Ruby 2.2.0, released on December 25th, is the gift rubyists got for Christmas. Highlights include several garbage collection (GC) improvements. There is a new incremental GC algorithm and symbols are now garbage collectable. Ruby also got a collection of minor improvements on the core classes and its standard library.
At Google I/O 2014, presenters Brian Carlstrom, Anwar Ghuloum, and Ian Rogers (all from Google) discussed ART (the Android RunTime). ART replaces Dalvik as the default platform for the next Android release. (A preview of the next Android release, termed Android L, is available as a download for developers. Android L will go public sometime in the fall.)
The Netty Project released the first version of Netty 4 in July. It has significant performance improvements primarily from reducing garbage collection overhead. Integrating Netty 4 at Twitter has led to a five times performance gain, but with some costs.
After more than two years, the Rubinius team has released version 2.0 which brings improved multi-threading support and implements the upcoming Ruby 2.1.
Charles Nutter, one of the lead developers of JRuby, announced the release of version 9000 (9K) in 2014. The new release targets the same feature set as Ruby MRI 2.0 and possibly 2.1 as well. Better performance, concurrency support and overall availability and portability provided by the use of the JVM can make this version suitable for production systems.
Ruby’s creator announced the move to generational garbage collection in Ruby 2.1 in what is expected to be an important performance boost for the language. The announcement took place during Barcelona Ruby Conference where Ruby’s GC was singled out as a major pain point in large scale Ruby deployments.
It’s been pretty quiet on the Mono front, but a few interesting things have been announced. The most notable is the adoption of .NET 4.5 for the mobile profiles and the introduction of a concurrent GC to Mono’s SGen garbage collector.
MonoDevelop now has integrated support for NuGet while the Mono project sees various improvements with release 3.0.3.