it-swarm-ja.com

プログラミング言語とUXの選択

コンテキストのビット

何よりもまずこれはプログラミングについての質問ではありませんですが、もちろん関連しています。

私のコンテキストは次のとおりです:開発エリアのある小さなコンサルティング会社を所有しています。私たちはさまざまなプロジェクトを扱っており、私にはさまざまな言語を専門とし、他の言語についてのより基本的な知識を持つプログラマーがいます。

私の質問の元となる1つの例は次のとおりです。Objective Cのアプリの開発には2か月、つまり約200時間かかりました。同じアプリ(まったく同じアプリ)がSwiftで100時間強かかりました。プログラマは同じで、Objective Cのエキスパートであり、Swiftの初心者でもありました。それでも、この新しい言語で彼の半分の時間がかかりました。確かに、彼は最初に別の言語でそれをしたので、彼はすでにアプリを知っていましたが、それは経験の違いによって補償される以上のものです。

非常によく似たケースが、DjangoAngularJSで作成されたWebアプリでも発生しました。外部企業が作成したアプリを入手するのに1年かかりました。 3か月後にPHP + jQueryに複製しました。繰り返しになりますが、アイデアを得るための出発点はありましたが、それでも非常に大きな違いがありました。

これが明確でない場合、非常に単純な例: HTML4を使用してWebページを作成できます。同じページにHTML5 + CSS3を使用できますが、機能が強化され、応答性が高いだけです

そのため、プロジェクトのKPIを測定する場合、使用するプログラミング言語に基づいて、明確でわかりやすい変数がいくつかあります。 これは主観的ではありません、費やされた時間、お金、プロジェクトに割り当てられた人々、目標に到達するまでの時間、必要な調整などを測定できます。

私の質問

Xに対するプログラミング言語の選択の影響に関する研究(ユーザーが利害関係者である場合)はありますか?

あるいは、特定のプログラミング言語が他のプログラミング言語が他よりも客観的に優れているかどうかに関する何らかのガイドはありますか特定のユーザーのニーズに基づいていますか?

3
Devin

事例として、開発者としては、速度に影響を与える特定の言語ではなく、Frameworkの知識との違いが多くなります。

Objective-C/Swiftの例では、開発者は言語に関係なく、CocoaまたはCocoa Touchフレームワークを使用します。 AppKit/UIKitが提供するビューとコントロール、API、それらの操作方法などを正確に知っている場合。

これにより、開発時間が大幅に短縮されます。

一方、言語間の構文の問題は、1つの明確なクエリで1分でグーグルできるものです-NSButtonがイベントを送信していない理由を知ることは、おそらく少なくとも2つのクエリであり、あいまいなクエリがあります

調査があると話せませんが、モバイルアプリケーションとデスクトップアプリケーションの領域内では、使用する言語をほとんど制御できないと言えます。これは、開発者が使用するフレームワークを選択できないため、フレームワークがサポートする言語を使用する必要があるためです。

この点でWebアプリケーションは異なります。どのフレームワークを使用するかについては、より多くの変化の余地があるからです。そして、そこに、どのフレームワークを使用するかについての議論があります。確かに賛否両論がありますが、残念ながら私はあなたがあなたのケースに最適なものを決定するために従うことができる決定的なガイドを持っていません。正直なところ、人気のあるフレームワークの中で、UXとの違いはおそらく微妙でしょう。

申し訳ありませんが、あなたの質問には本当に答えられませんでした-私はもともとコメントを残すつもりでしたが、自分が何度も入力していることに気づきました^^

3
A O

「確かに、彼は最初に別の言語でそれを行ったので、彼はすでにアプリを知っていましたが、それは経験の違いによって補償される以上です。」-しかし、それ?彼は今、2回目のアプリの要件/機能/落とし穴を知っています。これは、2番目の言語がより速い/より優れているかどうかについて混乱させる変数になります。ユーザーテストでは、同じ人に2つの異なるインターフェイスで同じタスクを試してもらい、そのバランスがあります(タスク/インターフェイスの順序を入れ替えますが、1人以上のユーザーが必要です)。これを学習効果と呼びます。 2番目のケースでは、2人の異なるユーザーが2つの異なるインターフェース(Django/angular対jquery/php)を使用していて、最初のインターフェースで最初のユーザーの結果にアクセスできる別のユーザーの交絡変数があります。そしてそれが、プログラミング言語とは何か、IDEにGUIの装飾を施した、プログラマ向けのコマンドラインユーザーインターフェイスです。

プログラミング言語の使いやすさに関して(私はそれを読んでいます):これは、APIの使いやすさを改善するための最近のいくつかの作業です。これは、問題の調査が取得するのとほぼ同じくらい具体的で証明可能なものです。 http:/ /cacm.acm.org/magazines/2016/6/202645-improving-api-usability/abstract doi:10.1145/2896587-ブラッドマイヤーズは、この分野の人に行き、テーマに関するワークショップの実行を手助けしました- http://www.cs.cmu.edu/~NatProg/programminglanguageusability/ -、およびCambridge Uniはこのテーマに関するコースを持っています- https://www.cl.cam。 ac.uk/teaching/1011/R201/Usability_of_Programming_Languages-notes.pdf

ただし、これと同様の作業は、API、関数、構文、エラー検出などの言語の非常に特定のプロパティ、または言語間の一般的な違いに焦点を合わせる傾向があります(高レベルは低レベルよりも時間/労力がかかりません)。特定のタスクに対するさまざまな言語の使いやすさの比較に関する作業については知りません。見つけたガイドラインは主に一般的であり、意見が分かれるでしょう。また、「より良い」とはどういう意味ですか?エラーが少ない? -そして、あなたが考えている特定のタスクはそれらに大きな影響を与えます。

事例として、言語自体ではなく、オープンソースライブラリのエコロジーの存在によって生産性が向上したことがわかりました。これにより、同じ言語で大量の作業を節約でき、その言語は以前使用していた言語とどれほど類似していたかがわかります。 。

2
mgraham