2

A bit of context

Before anything, this is NOT a question about programming, but of course it's related.

My context is as follows: I own a small consultation firm with a development area. We deal with a variety of projects and I have programmers who specialize in different languages and have a more basic knowledge of other languages.

One example that originates my question is as follows: An app in Objective C took 2 months of development, or around 200 hours. The same app (exact same app) took a little bit over 100 hours in Swift. The programmer was the same and an expert in Objective C, and a novice with Swift. Yet it took him half the time with this new language. Granted, he already knew the app because he did it in another language first, but it's more than compensated by the difference in experience.

A very similar case happened with a web app made in Django plus AngularJS. It took our client 1 year to get the app made by an external company. We replicated it in PHP + jQuery in 3 months. Again, we had a starting point to get ideas, but still a very significative difference.

If this is not clear, a very simple example: I can use HTML4 to create a web page. I can use HTML5+CSS3 for the same page, just enhanced and responsive

So, when measuring the KPI for a project, we really have some clear and mensurable variables based on the programming language used. This is not subjective at all, we can measure time spent, money, people assigned to a project, time to get to goals, adjustments needed and so on.

My question

is there any study on the effects of choice of programming languages on UX (where the users are the stakeholders)?

Alternatively, is there some kind of guide on whether certain programming languages are objectively better than others based on specific user needs?

  • Could you kindly clarify one thing: Who are the users? Are they the users of the system being developed, or the programmers that use various languages, frameworks and tools? In other words, are we discussing the experience of developers or system users? – Izhaki Feb 14 '17 at 21:07
  • @Izhaki, the users are all the stakeholders for the project since the KPI this choice of languages affects, will have a repercussion on the project in its entirety – Devin Feb 14 '17 at 21:09
2

Anecdotally, as a developer, it is more of a difference with knowledge in a Framework, rather than a specific language that affects speed.

In your Objective-C/Swift example, your developer is going to be using the Cocoa or Cocoa Touch framework, regardless of language. If she knows exactly what views and controls AppKit/UIKit offers, their APIs, how to work with them, etc.

That's going to decrease development time significantly.

Whereas issues with syntax across languages is something that you can google in a minute with one clear query-- knowing why your NSButton isn't sending an event is perhaps at least 2 queries, with more vague queries

I can't speak to if there's a study, but I can tell you that inside of the mobile application and desktop application space, you have little control over the language that's going to be used. This is because developers don't have a choice as to which framework to use, and must use a language the framework supports

Web applications are different in this regard, because there's a lot more wiggle-room as to which frameworks you use. And that's where you'll see the debates about which frameworks to use. There are definitely pro/cons, but unfortunately I don't have a definitive guide you could follow to determine what's best for your case. Truthfully, amongst the popular frameworks, the differences with UX will probably be subtle

Sorry I didn't really answer your question-- I originally intended on leaving a comment, but found myself typing a lot ^^

1

"Granted, he already knew the app because he did it in another language first, but it's more than compensated by the difference in experience." - but is it? He now knows the requirements / functions / pitfalls of the app second time round which will be a confounding variable as to whether the second language is quicker/better. In user tests it's termed a learning effect when you get the same people to try the same task with two different interfaces, and there are balances for that (swapping the task/interface ordering, but you need >1 user). In your second case, you have two different users using two different interfaces (django/angular vs jquery/php), there you have the confounding variable of a different user having access to the first user's results on the first interface. And that's what programming languages are, command line user interfaces for programmers, with some GUI decorations in IDEs.

As to the usability of programming languages (i'm reading it as that): This is some recent work on improving the usability of APIs which is about as concrete and as provable as research into the issue gets: http://cacm.acm.org/magazines/2016/6/202645-improving-api-usability/abstract doi: 10.1145/2896587 - Brad Myers is a go to guy in this sphere and has helped run workshops on the theme - http://www.cs.cmu.edu/~NatProg/programminglanguageusability/ - , and Cambridge Uni have a course on the subject - https://www.cl.cam.ac.uk/teaching/1011/R201/Usability_of_Programming_Languages-notes.pdf

However this and such similar work tend to either focus on very specific properties of languages: APIs, functions, syntax, error finding etc, or general differences between languages (high-level takes less time/effort than low-level). I'm not aware of any work on the comparative usability of different languages for a specific task, and any guidelines you find will be mainly general and opinionated, and what you mean by 'better' - quicker? less errors? - and the specific tasks you have in mind will impact them heavily.

Anecdotally, I found my productivity increased not due to a language itself but to the existence of an ecology of open-source libraries that saved me a ton of work in that same language, and how similar that language was to previous ones I'd used.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.