By qualitatively and quantitatively analyzing a statistically valid random sample from almost 2 million C files and 11K+ projects, we find that developers limit themselves to using goto appropriately in most cases, and not in an unrestricted manner like Dijkstra feared, thus suggesting that goto does not appear to be harmful in practice.
(Here’s the preprint (PDF) linked from above abstract.)
In a new paper (PDF), researchers from the University of California, Davis, Southeast University in China, and University College London theorized that, just as with natural languages, some — and probably, most — written code isn’t necessary to convey the point of what it does. The code and data used in the study are available for download from Bitbucket. But here’s the bottom line: Only about 5% of written Java code captures the core functionality.
Nim is a young, statically typed programming language that has been getting more attention recently. See these articles for an introduction: What is special about Nim?, What makes Nim practical? and How I Start: Nim. The language offers a syntax inspired by Python and Pascal, great performance and C interfacing, and powerful metaprogramming capabilities. The author of “Unix in Rust” just abandoned Rust in favor of Nim and some early-adopter companies are starting to use it as well.
In 2013, a restoration project for Hut 6 of Bletchley Park uncovered a collection of papers being used as roof insulation. The papers were frozen to preserve them while they were inspected and repaired. Now they’re on display at an exhibition showing items found during the restoration process. “The documents also included the only known examples of Banbury sheets, a technique devised by [Turing] to accelerate the process of decrypting Nazi messages. No other examples have ever been found. All the findings are unique as all documentary evidence from the code breaking process was supposed to be destroyed under wartime security rules.”
Chris Testa KB2BMH taught a class on gate-array programming the SmartFusion chip, a Linux system and programmable gate-array on a single chip, using MyHDL, the Python Hardware Design Language to implement a software-defined radio transceiver. Watch all 4 sessions: 1, 2, 3, 4. And get the slides and code. Chris’s Whitebox hardware design implementing an FCC-legal 50-1000 MHz software-defined transceiver in Open Hardware and Open Source, will be available in a few months. Here’s an Overview of Whitebox and HT of the Future. Slashdot readers funded this video and videos of the entire TAPR conference. Thanks!
A wonderful Whitepaper entitled "Worst Cases for Correct Rounding of the Elementary Functions in Double Precision" (PDF) has been released. This has prompted Siddhesh Poyarekar from Red Hat to take a professional look into the mathematical functions found in GlibC (the GNU C library.) He has been able to provide an 8-times performance improvement to slowest path of pow() function. Other transcendentals got similar improvements since the fixes were mostly in the generic multiple precision code. These improvements already went into glibc-2.18 upstream. Siddhesh believes that a lot of the low hanging fruit has now been picked, but that this is definitely not the end of the road for improvements in the multiple precision performance. There are other more complicated improvements, like the limitation of worst case precision for exp() and log() functions, based on the results of the paper.
A recent post on Reactive Programming triggered discussions about what is and isn’t considered Reactive Logic. In fact, many have already discovered that Reactive Programming can help improve quality and transparency, reduce programming time and decrease maintenance. But for others, it raises questions like: How does Reactive differ from conventional event-oriented programming? Isn’t Reactive just another form of triggers? What kind of an improvement in coding can you expect using Reactive and why? So to help clear things up, columnist and Espresso Logic CTO Val Huber offers a real-life example that he claims will show the power and long-term advantages Reactive offers. ‘In this scenario, we’ll compare what it takes to implement business logic using Reactive Programming versus two different conventional procedural Programming models: Java with Hibernate and MySQL triggers,’ he writes. ‘In conclusion, Reactive appears to be a very promising technology for reducing delivery times, while improving system quality. And no doubt this discussion may raise other questions on extensibility and performance for Reactive Programming.’ Do you agree?
Infoworld has an absolutely wonderful article up, entitled “13 Essential Programming Tools for the Mobile Web” (a must read for any [mobile] web developer!) It includes things like jQuery Mobile, ChocolateChip-UI, Mobl and many other languages, APIs & Frameworks that GREATLY ease the work of developing Web Apps for use on/in Mobile Browsers…