Jeffrey Bakker
2 min readJan 24, 2021

--

Thank you for the explanation of your scoring system, because it helps us understand how you’re evaluating these languages.

This is less biased than your other pieces, though I think it’s more beneficial for web developers; I’m unsure if I can use most of these languages to develop native desktop or native mobile applications, with access to hardware features and peripherals, if need be.

Some languages are better at things than others. For instance, writing desktop applications with a Graphical User Interface for both Windows and Linux and no specific need for hardware support, it took a small fraction of the effort to do it in Python compared to C++ and there were no performance issues for the type of work it was doing. However that was in 2005; I might not choose either of them given the chance today, depending on the project requirements. Python is also not bad for scripting in pieces for CI support and automation tools, but I prefer Ruby for that. At least your Python score versus C++ score are comparable to my experience, though for completely different reasons.

I know the following mostly only applies to Apple Operating Systems (iOS, iPadOS, tvOS and Mac OS) but I think Objective-C and Swift is worth a mention.

Objective-C is almost as old as C++ but it only add 6 reserved keywords to C to achieve OOP, unlike C++ which has now bloated it to 90 keywords. ObjC uses messages to communicate between objects, taking inspiration from Smalltalk. ObjC’s types, like strings, arrays and dictionaries are immutable. If you want to edit them you must use the explicitly named mutable version of that type NSMutableString, NSMutableArray, etc.

Swift was supposed to strongly discourage nulls, but in practice it does provide explicit operators which allow for them. Swift also pushes POP which is like OOP but favours composition over inheritance, which is a step in the right direction for OOP developers who don’t want to suffer from maintenance and refactoring nightmares. It apparently also supports FP but I have nothing intelligent to say there.

For cross-platform native mobile development, your main choices are Xamarin (C#), react-native (Javascript) or Flutter (Dart). I don’t think any of the other languages in the article really apply, except for C++ for non-UI code.

I feel (and write about) the OOP pain points and I’m a bit FP-curious, so this was an interesting preview of the languages available. I’ll keep this in mind when selecting a language in the future. Thanks.

--

--

Jeffrey Bakker
Jeffrey Bakker

Written by Jeffrey Bakker

Professional geek. Wannabe cyclist.

Responses (1)