Posts

Post Processing: Watch Your Language, Jaron Lanier Fixes The Internet

Image
Watch the rise and fall of your favorite programming languages, set to music: Popular Programming Languages 1965-2019.   The lead changed multiple times and the YouTube video ended with the top 3 languages being Python, Java, and Javascript.  Okay, C# came in 3rd if you don't consider Javascript a real programming language.

This was the work of a first year PhD student who mined data from GitHub repositories and historic national surveys.  It's not far from the TIOBE index I wrote about in a previous Post Processing which ranked the top 3 languages as Java, C, and Python.

There is yet another language survey done by Stack Overflow.  It polled its membership, and nearly 90,000 developers responded.  While 90,000 is a healthy sample size, keep in mind those polled still represent a closed environment.

Top 3 loved languages: Rust, Python, TypeScript.
Top 3 dreaded languages: VBA, Objective-C, Assembly
Top 3 languages programmers want to learn: Python, Javascript, Go

These result…

Bookshelf Classic: Beautiful Code

Image
This book is what you get when you ask 38 top software developers "What is beautiful code?"  An open ended question, you get diverging answers such as a deep dive into a regular expression matcher from Brian Kernighan, an optimization of population counts from Henry S. Warren Jr. (for bit-heads, not sociologists), and a treatise on why code is better treated as an essay from Yukihiro "Matz" Matsumoto.

For this post though, I want to focus on Jon Bentley's contribution, curiously titled "The Most Beautiful Code I Never Wrote."  Elaborating, Bentley writes

In software, the most beautiful code, the most beautiful functions, and the most beautiful programs are sometimes, not there at all.

He then uses the Quicksort algorithm to illustrate his point, first reviewing the code, instrumenting it with counters, and optimizing it along the way.  But the pressing question he tries to answer is: "How many comparisons does Quicksort make, on average, for a ra…

Swift V Kotlin

Image
Dropbox wrote a candid and insightful post titled The (not so) hidden cost of sharing code between iOS and Android. It's a common dream to have "one codebase to rule them all" but reality intruded, not only for DropBox, but on projects I have worked on as well.

Dropbox needed to support both Android and iOS devices, so instead of writing for each platform in Java and Objective C respectively, they labored to produce a layer of C++ code that worked for both.  But success was hard to come by, and in their own words:

By writing code in a non-standard fashion, we took on overhead that we would have not had to worry about had we stayed with the widely used platform defaults. This overhead ended up being more expensive than just writing the code twice.

I would add, from my own experience, that a "generic code layer" targets the lowest common denominator, and fails to take full advantage of native device features.  Add that Apple and Google are continuously improving t…

On The Road To macOS Catalina, Take The Scenic Route

Image
I've upgraded to macOS Catalina and there's a lot to like.  There's also a lot to be concerned about, and I recommend only upgrading if you have a second machine running the older macOS Mojave.

Post Processing: Swift, Kotlin, Team Scaling Fallacy, Levandowski

When I wrote Programming Languages I've Loved and Hated, it came from the heart.  In contrast, the Tiobe Index ranks the languages from the head, and is based on hits from a search query.  As of August 2019, Java reigns at #1, followed by C, and then Python.  The rankings did not surprise me, and at least 2 of my favorite languages made it into the top 3.  C++ came in 4th.

Swift (iOS) and Kotlin (Android), being specialty languages for the mobile space, were further down the list.  Swift came in at #18, but Kotlin disappointed, coming in at #45. Nevertheless, as iOS and Android users grow,  the popularity of Swift and Kotlin will likely follow.

The name Swift is easy to fathom.  The language speeds up iOS development (compared to using Objective C), and it also runs respectably fast.  The Kotlin designation is rather opaque, but being a derivative of Java, Kotlin was named after an island near St. Petersburg under the mistaken assumption that Java was also named after an island, a…

LuldCalc For Android

Image
LuldCalc is now available for Android.

Learn more about Limit Up Limit Down here: http://www.luldplan.com

See our privacy policy:
https://www.ytechnology.com/p/luldcalc.html

The app is now available on Google Play:



Bookshelf Classic: Design Patterns

Image
This is an odd book.  It is a classic, yet among the least useful books in my library.  The authors Gamma, Helm, Johnson, and Vlissides, affectionately referred to as the "Gang Of Four," wrestled with Object-Oriented Programming (OOP) to produce a catalog of solutions.  Inspired by the pattern languages used in architecture -- notably by architect, design theorist, and professor, Christopher Alexander -- they worked to imbue software development with the same formality, benefits, and gravitas of the age-old discipline.

To some degree, the "Gang Of Four" succeeded. They explored and reinforced a working vocabulary regarding software design such as Model View Controller, Singleton, and Factory.  Unfortunately, they also promoted jargony and academic terms such as adapter which is better known as wrapper, observer for publisher/subscriber, and compositor and composition for formatting classes.

OOP, while still popular, is waning, yielding to both new styles such as f…