web-dev-qa-db-ja.com

日常的に使用するプログラミング言語の数と、言語固有のタスクを効果的に管理する方法

編集:

複数の言語で作業するときに個々のタスクをどのように管理しますか

日常のタスク処理では、いくつの異なるプログラミング言語を使用していますか?

  • 各言語に取り組むとき、あなたはメンタルシフトをしますか?
  • それらに優先順位を付け、言語ごとに各タスクを個別に保持しますか?.
  • 言語/ IDE /環境をシームレスに切り替える各タスクの進行状況に基づいて段階的にコーディングしますか
  • すべての言語(構文ではない)に同じコーディングスタイル/規約を適用していますか?

関連:

プログラマーが複数のプロジェクトに同時に取り組むことは正常ですか

22
Aditya P

今日、私はJava、Python、C++、およびSQL(数えられる場合)を書きました。そして、私は2時間未満働いています。

これを定期的に行うと、メンタルシフトは無視できます。マルチタスクとは何の関係もありません。しばらく歩いて、車を運転して、自転車を運転して、水泳をするようなものです。問題はありません。それらは連続しているためです。

いずれにしても、ポイントは次のタスクに進む前に1つのタスクを完了することです。私は具体的な機能、修正などの観点からタスクを定義する傾向があります。多くの場合、そのタスクは1つの言語だけで実行されますが、いくつかの言語が必要になる場合があります。たとえば、 [〜#〜] jni [〜#〜] を使用する場合、通常はJavaとネイティブ側の両方に並行して変更を加えます。

いくつかの答え:

言語/ IDE /環境をシームレスに切り替えながら、各タスクの進捗状況に基づいて段階的にコーディングしますか

IDE、エディター、環境をシームレスに切り替えることができることが重要です。通常、私はそれらすべてを常に開いたままにします。

すべての言語に同じコーディングスタイル/規則を適用していますか(構文ではありません)?

それが2つの言語が話しているインターフェースの場合、はい-変数名などは類似している必要があります。それ以外の場合は、その言語の典型的なコーディングスタイルを適用しようとします。

25
Joonas Pulakka

SK-logicで示されているように、適切に選択されたドメイン固有の言語を使用している場合、mental shiftは問題になりません。ただし、言語を選択できないことが多いため、切り替えに時間がかかることがあります。私の経験では、プログラミングスタイルの切り替えよりも構文の切り替えの方が困難です。私が常に経験する唯一の迷惑なシフトはコメントスタイルシフトです。ファイルを開いてコード行をすばやく変更すると、多くの場合、次のようになります。

#  what
// the
;  f***
%  is
-- the one-line comment character or sequence?
5
Jakob

私の最後の仕事で:Java、C++、C#、JavaScript、VBScript。

しかし、ありがたいことに、上記のすべてが非常に異なるコンテキスト(およびいくつかの製品)にありました。そのため、各コードベースを十分に理解すれば、異なるコンテキストへの精神的な切り替えは実際には非常に簡単で論理的でした。

実際、私をさらに悩ませたのは、クライアントサポートの問題による中断でした。内部で別の言語のタスクに切り替えること自体は問題になりませんでした。

4
Bobby Tables

毎日使う:

  1. HTML/CSS
  2. JavaScript/JQuery
  3. VBScript/JScript
  4. PHP
  5. SQL
  6. C#/ Asp.Net

私もPythonを使用していますJavaとXML(それはカウントされますか?))。私の仕事は、さまざまなWebサイトを編集することです。大きく異なるパラダイム/テンプレート(手続き型、MVC、OOPなど))。

質問に答えるために-私は主にNotepad ++を次のように使用しますIDEリストされている最初の5つはVisual Studio for Asp.Netです。

行末にセミコロンが必要かどうか、ループに中かっこがあるかどうかを覚えておくと、各言語をすばやく切り替えるのが面倒になる場合があります。 VBScriptからJScriptへの切り替えは、これにとって絶対的に最悪です。ファイルはどちらも.aspで終わり、一見するとかなり似ているため、エラーが発生する理由を理解するにはしばらく時間がかかります。

2
whostolemyhat

私は物事のISP側のアプリケーションを作成します。プログラミングに手を出す多くのネットワークエンジニアによってしばしば書かれる「あなたが快適にできることをする」という文化もあります。私は毎週、本当にすごいものまで、非常によく書かれたプログラムに対処しなければなりません。私がよく遭遇し、取り組むこと...

  • Perl、しばしば一瞬だけのスクリプト、またはPerlしか知らない(または好きな)人々がよく使用します。レガシーなものの多くは、私が見つけたPerlで書かれています。最悪のものの一部はPerlで記述されています。これは、言語が悪いためではなく、初心者のプログラマが簡単に誤用しているためです。特定の種類の1回限りのプログラムでは、これを自分でも使用しています。それより大きなものにはめったに使用しません。
  • [〜#〜] php [〜#〜]、これはたくさんありますが、多くの場合、小道具のスターター言語です。いくつかの非常によく書かれたプログラム、いくつかのシュロック。特定の種類のWebアプリケーションでは、PHPを選択します。これは、より早く着地できるためです。
  • Shell Scripting、主に、ログの読み取りなどの他のプログラムまたはタスクの実行に使用します。
  • 期待、まだこれに遭遇します(ネットワークデバイスでコマンドを実行するためのニルヴァーナであると主張する熱狂者)。必要なときに私はそれに取り組んでいますが、目に見える単一の機能のない何千行もの長いプログラムの1つだけに出会うと、子猫は世界中のどこかで殺されます。
  • [〜#〜] c [〜#〜]、移植性の問題のためめったに使用されませんが、特定のタスクを実行するために使用します。
  • Java、私はこれを頻繁に使用します。これは、広範なライブラリサポートと簡単な展開のためです。私たちには非常に異種のネットワークがあり、私とは異なるアジェンダを持つITスタッフがいます。 Javaを使用すると、ライブラリを含めることができ、ITがプログラムを展開するためにシステムで何かを「アップグレード」する必要があることを心配する必要はありません。ほとんどの場合、これは私のプログラミング言語です。

社内には他の言語(.net、VB、Phyton、Railsなど)もありますが、私はそれらに取り組む必要はありません...まだ。

編集、編集用 ...

言語間で作業するときは、精神的にシフトする必要があります。ほとんどの場合、私が見失ってしまうのは構文です。参考図書のコレクションを用意しています。他の言語の考え方に戻るには、約30分かかります。言語の構文が鈍いほど、シフトは長くなります。 Java= Perlを実行することへの移行は、しばらくPerlに触れていなかった場合、おそらく最も時間がかかります。これを実行すればするほど、簡単になります。

2
Bill

現時点では、Ruby、PHP、Java、C、JavaScriptを作成しており、毎日これらのそれぞれに最低1時間は書き込みます。主な問題は、実際にはすべて関連のないプロジェクトのため、時間を見つけることです。

メンタルシフト

私の仕事のスタイルは、長い間働きたいと思っています。残念ながら、これは私が単一のものしか持っていない場合、コードの断片を持つメンタルブロックに遭遇すると、それを乗り越えるのに長い時間がかかることを意味します。休憩を取っても役に立たないと思います。他のプロジェクト、特に他の言語を使用して、元の言語に戻るまでに行き詰まったときに切り替えるようにすることで、すぐに解決策が得られます。

したがって、はい、精神的な変化があり、それが私をはるかに生産的にすると思います。

タスクの優先順位付け

タスクマネージャー(gTasks for Android)を使用しており、プロジェクトごとに個別のToDoリストがあります。プロジェクトで複数の言語が必要な場合は、それらを分離しません。これは通常、何らかの形で強い関連性があるためです。たとえば、JavaScriptとRubyいくつかのAJAXものを行うためのものです。言語が技術的に同じプロジェクト用であるが、プロジェクトが非常に大きいために本質的に無関係である場合それから私はそれらを別々のプロジェクトとして数えるでしょう。

一般に、私の優先順位は「最もタスクが多いリスト」ですが、問題が発生した場合は常に切り替えます。

コーディング規約

その少しのミックス:

  • プロジェクトが他の人と一緒に開発されている場合、明らかに、そのプロジェクトのために決定されたすべての規則に準拠します。
  • プロジェクトが個人的なものである場合、私は自分のコードが、特定の言語のコミュニティ/標準ライブラリの主要なスタイルと一致するように見えるようにします。 Javaコードは読みにくいと思います。同様に、Rubyのキャメルケースメソッドは奇妙で外に見えます場所。
  • インデントなど、単に言語を使用するだけでは明らかではない規則については、独自の標準を採用し、使用するすべての言語でそれらを使用する傾向があります。インデントの場合、常に2つのスペースを使用します。ブレーススタイルの場合、私は常にWikipediaが現在決定している Compact Control Readability Style と呼ぶものを使用します。

余談:私にとって最大の課題は、実際にはスタイル言語を切り替えることです。 SASSをRubyと一緒にコーディングしてから、他のものすべてをCSSに戻す必要がある場合、競争することは非常に困難です。程度は低いですが、HAML/HTMLとJSONで同じ問題があります。/XML。

私は2つの言語で作業します:c#とpython。

どちらも同じプロジェクトで使用していますが、明らかに異なるタスクに使用しています。

タスクに取り組んでいるときは、完全な状態になるまで、またはそれ以上集中できなくなるまで、そのタスクに取り組みます。つまり、言語を切り替えなければならない場合でも、最後のタスクを完了すると、どちらの言語でも考えがわからなくなってしまうため、認知的不協和音はほとんどありません。

確かに、私は仕事から出てきたときに短い休憩を取ります。これはおそらく非常に役立ちます。

2
Matt Ellen

できるだけ少ない。通常、1。Pythonに加えて、2。HTMLテンプレート、3。HTML + CSS、および4. Javascriptが含まれます。 PythonからJSに切り替えるには、さまざまなツールを使用する必要があるため、間違いなくメンタルシフトが必要です。

HTML + CSSは、それ自体が言語ではないかもしれません(または、宗教に依存する可能性があります)としても、HTMLテンプレートとは別に追加します。これには、メンタルシフトと他のツールの使用も必要ですが、 JavaScript。デザインの観点からHTML + CSSをいじって、ページを必要なモックアップのように見せることは、HTMLテンプレートを作成することとは異なる考え方です。しかし、それはPythonに直角です。つまり、プログラミングの考え方を別のものに切り替える必要があります。:)

2
Lennart Regebro

私はC(組み込み)、C++(デスクトップ)、Python、Matlab、およびVHDL(ハードウェアプログラミング言語の一種)を頻繁に、多くの場合はすべて同じ日に使用しています。私の環境では、このような言語の器用さは私の考えでは不可欠です。

特定のプロジェクトで必要なすべてを1つの言語で効率的に行うことができないことがよくあります。たとえば、埋め込まれたCとVHDLはどちらもかなり低レベルなので、結果を解析する(またはコードを生成する)ためにPythonを使用することがよくあります。

それらをすばやく切り替えることはしばらくすると問題ではありません。ハンマーからドライバーに切り替えるようなもので、仕事に最適なツールです。

1
Martin Thompson

それは実際には作業の定義に依存します...私は毎日Microsoft Surfaceアプリケーションの開発にC#を使用しています。 Java私も毎日Androidアプリケーションに使用しています。しかし、自分自身を教育してRを使い始めましたRubyとObjective-C。時々私はいくつかのSQLを必要とします、そしてあなたが質問にスクリプト言語と他の言語を含めれば、JavaScipt、SPARQLとBeanShellも。

すべての言語に同じコーディングスタイル/規則を適用していますか(構文ではありません)?

私は各言語のコーディング規約に従うようにしていますが、特にJavaとC#の間)中括弧とC#での大文字のメソッドの命名のためにいくつかの問題があります。

public void test() {
   ...
}

vs.

public void Test()
{
   ...
}
1

1つのプロジェクトで6つ以上の言語をよく使用しています。それらのほとんどは通常、そのプロジェクトにのみ固有のものです。

メンタルシフトは、タスクに適さない言語を使用している場合にのみ必要です。それ以外の場合は、ベストフィットを使用するのが自然です。プロジェクトのさまざまな段階では、さまざまな言語のセットが使用されます。

1
SK-logic

私はウェブアプリを構築しています。だから現在その:

  • XHTML
  • JavaScript
  • の一部としてのC#
  • ASP.Net Framework(これもsort of of a language)
  • データベース通信用のT-SQL
  • 人間とのコミュニケーションのための英語。

エディター:Sublime Text(選択不可)、Visual Studio 2010(ASP.Netに関しては他に実行可能な選択肢はありません)

0
5arx

私の仕事では、Java、C、Python、Django、および少量のPHPを使用しています。また、MicrosoftのC++の非常に小さなプロジェクトにも取り組みました。

毎日全部使っているわけではありませんが、何日か使っても問題ないです。典型的な日には、私は1つか2つしか使いません。私が自宅で行うプログラミングには、通常、QtやRuby on Railsのような)の職場で使用するのとは異なるテクノロジーを使用する作業が含まれます。

0
jonescb