66

C++、C#、Java の開発者が動的言語を学びたいと思うのはなぜでしょうか?

会社が主要な開発言語を C++/C#/Java から動的言語に切り替えないと仮定すると、動的言語にはどのような用途があるのでしょうか?

あなたが数年間使ってきた静的言語よりも、わずか数日の学習で、動的言語の方がより速く、またはより良く実行できるヘルパータスクは何ですか?

アップデート

最初のいくつかの回答を見て、2 つの問題があることは明らかです。私の主な関心事は、雇用主にとって経費として正当化できるものです。つまり、雇用主が動的言語の学習に資金を提供する正当な理由を探しています。従業員がより広い視野を持っていることは明らかですが、雇用主は通常、何らかの「本当の」利益を求めています。

4

35 に答える 35

80

多くの場合、開発している主要なソフトウェアの一部ではない簡単なタスクが発生します。このファイルをデータベースと比較して違いを教えてください。Perl/Ruby/Python でのテキスト解析は、Java や C# よりもはるかに簡単です (部分的には、正規表現を使用する方がはるかに簡単だからです)。Perl/Ruby/ Pythonを使用してテキスト ファイルを解析する時間は、Java/C# プログラムを作成するか手。

また、ほとんどの動的言語はテキストを簡単に解析できるため、コード生成に最適です。確かに、最終的なプロジェクトは C#/Java/Transact SQL でなければなりませんが、100 回カット アンド ペーストしてエラーを見つけ、さらに 100 回カット アンド ペーストする代わりに、コード ジェネレーターを使用する方が簡単な場合がよくあります (常にではありません)。

最近の例では、ある会計システムから会計システムにデータを取得する必要がありました。システムにはインポート形式がありますが、古いシステムはまったく異なる形式でした (一致する必要があるものの、固定幅)。タスクは、データを何度も移行するためのプログラムを作成することではありません。データを私たちのシステムに押し込み、そこに維持することです。そのため、私たちは C# と SQL Server のショップですが、Python を使用してデータをアプリケーションでインポートできる形式に変換しました。最終的には、Python を使用したかどうかは問題ではなく、データがシステム内にあることが重要です。私の上司はかなり感銘を受けました。

動的言語が使用されているのをよく目にするのは、テストです。同等の Java プログラムを作成するよりも、Python/Perl/Ruby プログラムを作成して Web サービスにリンクし、それに対してデータをスローする方がはるかに簡単です。また、Python を使用して、コマンド ライン プログラムを攻撃したり、大量のガベージ (ただし有効な) テスト データを生成したりすることもできます。非常に簡単です。

動的言語が得意とするもう 1 つのことは、コード生成です。C#/C++/Java コードの作成。いくつかの例を次に示します。

私がよく目にする最初のコード生成タスクは、システム内の定数を維持するために動的言語を使用している人々です。多数の列挙型を手作業でコーディングする代わりに、動的言語を使用してテキスト ファイルをかなり簡単に解析し、列挙型を使用して Java/C# コードを作成できます。

SQL はまったく別の球技ですが、多くの場合、関数を実行しようとする代わりに、カット アンド ペーストを 100 回行うことでパフォーマンスが向上します (実行計画のキャッシュまたは複雑なロジックを関数に入れることで、行単位ではなく行単位で実行する必要があるため)。セット)。実際、テーブル定義を使用して特定のストアド プロシージャを自動的に作成すると非常に便利です。

コードジェネレーターを購入することは常に良いことです。しかし、そうでなくても、切り取り/貼り付けに時間を費やすほうが楽しいですか、それとも Perl/Python/Ruby スクリプトを一度作成してからコードを生成するほうが楽しいですか? 何かを手作業でコーディングするのに何時間もかかるが、コード ジェネレーターを作成するのに時間がかからない場合は、それを一度使用したとしても、時間とお金を節約できます。コードを 1 回作成するよりもコード ジェネレーターを作成する方が時間がかかるが、コードを複数回更新する必要があることがわかっている場合でも、それは理にかなっている可能性があります。コードを処理するのに 2 時間、ジェネレーターを実行するのに 4 時間かかる場合、ジェネレーターを作成するよりも、同等のコードをさらに 5 回または 6 回処理する必要があることがわかっています。

また、Java/C#/C/C++ よりも動的言語の方が簡単な場合もあります。特に正規表現が思い浮かびます。Perl で正規表現を使い始めてその価値に気付いた場合、Java 正規表現ライブラリーを使用したことがなければ、突然使い始めるかもしれません。もしそうなら、何か他のものがあるかもしれません。

動的言語に最適なタスクの最後の例を 1 つ紹介します。私の同僚は、ファイルでいっぱいのディレクトリを取り、さまざまな顧客のためにさまざまな CD にそれらを焼き付けなければなりませんでした。顧客は少数でしたが、ファイルは大量にあり、それらを調べて、それらが何であるかを確認する必要がありました。彼はこの作業を手作業で行いました....Java/C# プログラムを使用すれば時間を節約できたでしょうが、一度だけ、すべての開発オーバーヘッドを考慮すると、それだけの価値はありません。しかし、Perl/Python/Ruby で何かをまとめることはおそらく価値があったでしょう。彼はそれをするのに数時間を費やしました。Python スクリプトを作成して各ファイルを検査し、それがどの顧客に送られるかを照合し、ファイルを適切な場所に移動するのに 1 つもかからなかったはずです...繰り返しますが、標準的な仕事の一部ではありません。しかし、その仕事は一度限りのものでした。自分でやったほうがいいのか、Java/C# にタスクを実行させるために多くの時間を費やすか、Python/Perl/Ruby でそれを実行するのにはるかに短い時間を費やします。C または C++ を使用している場合、C または C++ でのプログラミングの余分な懸念事項 (ポインター、配列境界チェックなしなど) により、問題はさらに劇的になります。

于 2008-09-17T16:17:05.780 に答える
21

アメリカ英語を話す人にとって、別の言語を学ぶことは何の役に立つのかと尋ねて、あなたの質問を逆さまにさせてください。

私たちが話す言語 (およびプログラムで使用する言語) は、私たちの考え方に影響を与えます。これは、c++ 対 javascript 対 Lisp などの基本的なレベルで、または実装レベルで発生する可能性があります。これらのレベルでは、Ruby 構造が「実際の仕事」で解決策を見つけるためのひらめきの瞬間を提供します。

あなたの本当の仕事について言えば、市場が南下し、あなたの雇用主があなたを「適切なサイズ」にすることを決定した場合、あなたの限られた言語ではなく、数十の言語でソフトウェアを書いているため、柔軟な人にどのように対抗できると思いますか?暴露?すべてが同じであれば、答えは明らかだと思います。

最後に、あなたはプログラミングが好きで生計を立てています... そうですか?

于 2008-09-17T15:18:30.273 に答える
14

これについてはまだ誰も言及していないと思います。新しい言語を学ぶのは楽しいことです!確かに、それは新しいことに挑戦する十分な理由です。

于 2008-09-18T01:46:03.963 に答える
9

私は主に Java と C# でプログラミングしていますが、動的言語 (ruby/perl) を使用して、よりスムーズな展開、OS タスクの開始、自動レポート、一部のログ解析などをサポートしています。

ruby や perl の学習と実験を短時間行うと、データ形式を変更したり、ログから情報を取得したりできる正規表現操作スクリプトを作成できるようになります。短時間で作成できる小さな ruby​​/perl スクリプトの例は、非常に大きなログ ファイルを解析し、人間が読める形式または csv 形式で関心のある少数のイベントのみをレポートするスクリプトです。

また、さまざまなプログラミング言語の経験があると、Java、C++、C# などのより構造化された言語の問題に取り組むための新しい方法を考えるのに役立ちます。

于 2008-09-17T15:24:20.150 に答える
7

Perl や Ruby を学ぶ大きな理由の 1 つは、何度も繰り返さなければならない複雑なタスクを自動化できるようにすることです。

または、ログ ファイルの内容を分析する必要があり、grep や sed などを使用して利用できる以上の変更が必要な場合。

また、Ruby などの「セットアップ コスト」があまりかからない他の言語を使用すると、アイデアを C++ や Java などで実装する前に、すばやくプロトタイプを作成できます。

HTH

乾杯、

ロブ

于 2008-09-17T15:31:59.367 に答える
5

Paul Grahamは、Pythonプログラマーがより優れたJavaプログラマーを作った理由について数年前に記事を投稿しました。(http://www.paulgraham.com/pypar.html

基本的に、新しい言語が会社の現在の方法論に関連しているかどうかに関係なく、新しい言語を学ぶことは新しいアイデアを学ぶことを意味します。「ビジネスクラス」とは見なされない言語を進んで学ぶ人は、給料を稼ぐだけでなく、プログラミングに興味があることを意味します。

ポールのサイトを引用するには:

そして、Pythonは仕事に就くので、人々はPythonを学びません。彼らは本当にプログラミングが好きで、すでに知っている言語に満足していないので、それを学びます。

これはまさに、企業が採用したいと思うようなプログラマーになります。したがって、より適切な名前がないため、Pythonのパラドックスと呼びます。企業が比較的難解な言語でソフトウェアを作成することを選択した場合、彼らはより優れたプログラマーを雇うことができます。それを学ぶのに十分な気遣い。そして、プログラマーにとって、パラドックスはさらに顕著です。良い仕事をしたいのであれば、学ぶための言語は、人々が単に仕事を得るために学ぶのではない言語です。

雇用主が新しい言語を学ぶための費用を喜んで支払うならば、(それが必須のクラスではなかったと仮定して)学ぶことを志願した人々は、すでに「ファーストトラック」にいるのと同じ人々である可能性があります。

于 2008-09-22T07:33:50.697 に答える
5

あなたはこの会社でずっと働くつもりですか?あなたが就職活動をしているなら、将来の雇用主の中にはPython のパラドックスに気づいている人もいるでしょう。

于 2008-09-17T15:18:26.780 に答える
5

優れたホッケー選手は、パックがある場所でプレーします。偉大なホッケー選手は、パックがある場所でプレーします。- ウェイン・グレツキー

私たちの業界は常に変化しています。どの言語も永遠に主流になることはできません。私にとって、Java、C++、.Net は、パックが現在ある場所です。そして、python、ruby、perl は、パックが配置される場所です。上手になりたいか、偉くなりたいかは自分で決めてください!

于 2008-09-18T13:43:56.980 に答える
4

初めて Python を学んだとき、私は Java ショップで働いていました。ときどき、Java プログラムよりも Python スクリプトの方がはるかに簡単な、本格的なテキスト処理タスクを実行する必要がありました。たとえば、複雑な CSV ファイルを解析して、どの行が Oracle データベースの行に対応しているかを特定する必要がある場合、Java よりも Python の方がはるかに簡単でした。

それ以上に、Python を学ぶことで、Java プログラマーとしての能力が大幅に向上したことがわかりました。同じ概念の多くを別の言語で学んだことで、それらの概念をよりよく理解していると感じています。また、Python が Java よりも簡単な理由については、次の質問をご覧ください: Java -> Python?

于 2008-09-17T15:22:50.123 に答える
3

編集:元の質問の更新を読む前にこれを書きました。更新された質問に対するより良い回答については、私の他の回答を参照してください。西部で最速の銃であることに対する警告として、これをそのままにしておきます =)

10 年以上前、私がコンピューターの使い方を学んでいたとき、ひげを生やした老人は、C と C++ が業界のツールであると説明しました。誰も Pascal を使用せず、アセンブラーで会社を危険にさらすのは愚か者だけでした。

そしてもちろん、Java と呼ばれるひどく遅くて醜いものについては誰も言及しません。本格的なビジネスのツールにはなりません。

そう。うーん。上記の話の言語を置き換えると、おそらく未来を予測できます。おそらく、あなたはできません。要点は、Java がこれまでで最後のプログラミング言語になることはなく、雇用主も変わる可能性が高いということです。未来は 1 日 24 時間あなたに充電されています。準備して。

新しい言語を学ぶことはあなたにとって良いことです。また、場合によっては、自慢する権利を長期間与えることができます。私の最初の大学のコースはスキームでした。そのため、人々が新しい言語 du jourについて私に話すとき、私の反応は「ファーストクラスの関数? それは前世紀のことです」のようなものです。

そしてもちろん、高級言語を使用すると、より多くのことを行うことができます。

于 2008-09-17T15:35:24.633 に答える
2

新しい言語を学ぶことは長期的なプロセスです。はい、数日で基本を学びます。しかし!おそらくご存じのとおり、どの言語も実際に実際に適用できるかどうかは、標準ライブラリとその他の利用可能なコンポーネントに関係しています。を効率的に使用する方法を学ぶには、多くの実践的な経験が必要です。

おそらく、当面の唯一の短期的な利点は、開発者が Python/Perl/Ruby ハンマーを必要とする爪を区別することを学ぶことです。そして、もし彼らが少しでも優秀なら、彼らはもう少し勉強して(おそらくオンラインで!)、本当の専門家になることができます.

長期的なメリットは容易に想像できます。

  1. 従業員はより良い開発者になります。より良い開発者 => より良い品質。私たちは最近、知識経済に生きています。すでに機能している頭脳に投資する方が賢明です。

  2. 次の大きな言語が登場すると、適応しやすくなります。NBL には、今日のスクリプト言語に存在する多くの機能 (ファーストクラス関数、クロージャー、ストリーム/ジェネレーターなど) が含まれる可能性が非常に高くなります。

  3. 新しい市場の可能性と、より迅速に対応する能力。あなたが Python を書いていなくても、他の人は. あなたのクライアント?プロジェクト内の別のベンダーですか? 重要なコンポーネントが他の言語で書かれているのではないでしょうか? コードを理解し、それとやり取りできる人がいなければ、お金と時間がかかります。

  4. 募集。あなたの会社が人々に新しくて面白いことを教えているという評判があれば、優秀な人材を採用しやすくなります。誰もが Java/C#/C++ をやっています。就職市場で自分自身を差別化するのに効果的な方法ではありません。

于 2008-09-17T17:59:36.737 に答える
2

更新された質問への回答に向けて、それは鶏/卵の問題です。費用を正当化する最善の方法は、それが他の場所でどのようにコストを削減するかを示すことです。そのため、何らかの機能プロトタイプを構築するために、最初に何かを学ぶために余分な/個人的な時間を費やす必要があるかもしれません.

上司にデモを見せてください。「ねえ、私はこれをやったんだけど、これだけ時間の節約ができた [もっといいのは、これだけの $$]。みんながこれを使えたら、どれだけのお金を節約できるか想像してみて」

そして、彼らが同意した後、それがどのように他の技術であるか、より多くのトレーニングを受けること、そしてそれをより良く行う方法について他の人のためにトレーニングすることは費用に見合う価値があることを説明します.

于 2008-09-17T20:12:23.657 に答える
1

JVM で動的言語 (da-vinci vm など) を実行することに注目が集まっており、JVM で実行される動的言語 (JRuby、Grrovy、Jython) の数が増えていることを考えると、ユースケースは増加していると思います。私が本当に有益だと思ったシナリオのいくつかは次のとおりです。

  1. プロトタイピング- RoR または Grails を使用して、標準のアプリ サーバーで実行できるという利点を備えたクイック プロトタイプを構築し、(おそらく) 既存のサービスを再利用します。

  2. テスト- 適切な単体テストは、動的言語ではるかに高速に実行されます

  3. パフォーマンス/自動化テスト スクリプト- これらのツールの一部では、独自のスクリプト言語の代わりに、選択した標準の動的言語を使用してテスト スクリプトを記述できるようになり始めています。副次的な利点は、既に記述した単体テスト コードを再利用できることです。

于 2008-09-18T05:59:45.863 に答える
1

Ruby を学びたいと雇用主に言わないでください。最先端の Web フレームワーク技術について学びたいと彼に伝えてください。たまたま最もホットなものが Django と Ruby on Rails です。

于 2008-09-19T00:20:40.897 に答える
1

Lisp や Perl (Moose を参照) などの柔軟な OOP システムを使って何かを学ぶことで、ソフトウェア エンジニアリングに関する自分の考えをより広げ、理解することができます。理想的には、すべての言語には、プログラマーとしての能力を強化、拡張、成長させる独自の側面 (CLOS であろうと他の手法であろうと) があります。

于 2008-09-17T16:42:30.197 に答える
1

このスレッドへの回答を確認してください。

https://stackoverflow.com/questions/76364/what-is-the-single-most-effective-thing-you-did-to-improve-your-programming-ski#84112

新しい言語を学ぶということは、心を開いて物事を行う新しい方法を学ぶことです。

于 2008-09-17T15:23:17.267 に答える
1

これがあなたが探しているものかどうかはわかりませんが、私が働いている小さな会社で Java を使用してメイン アプリケーションを作成していますが、Python を使用して小さなスクリプトをすばやく作成しています。バックアップ ソフトウェア、データを操作して結果をプッシュするための一時的なスクリプト。Java でクラスやその他のものをいじるよりも、Python と一緒に座って簡単なスクリプトを作成する方が簡単な場合があります。

定着しない一時スクリプトは、多くの設計時間を無駄にする必要はありません。

そして、私は怠け者ですが、もちろんできるだけ多くのことを学び、他の言語にどのような機能があるかを確認するのは良いことです. もっと知っていても、将来のキャリア変更であなたを傷つけることはありません:)

于 2008-09-17T15:23:30.637 に答える
1

個人的に私は Java アプリに取り組んでいますが、一部のサポート スクリプトには perl がないと生活できませんでした。

指しているデータベースをすばやく反転するスクリプト、ビルドスクリプトを実行するスクリプト、データをスクレイピングして比較するスクリプトがあります。

確かに、Java やシェル スクリプト (私もそれらのいくつかを持っています) を使用してすべてのことを行うことができますが、迅速で汚いものが必要なときにクラスをコンパイルしたい (クラスパスが正しく設定されていることを確認するなど) 必要があります。スクリプト言語を知っていれば、退屈で反復的な手作業の 90% を取り除くことができます。

于 2008-09-17T15:25:59.287 に答える
1

別の言語、特に動的型付け言語を学ぶと、他の言語について学ぶことができ、全体的に優れたプログラマーになることがよくあります。たとえば、Ruby を学ぶと、Java ではできない方法でオブジェクト指向プログラミングを学ぶことができます。全体として、単一の言語に固執するよりも、多才なプログラマーになる方がよいと私は信じています。あなたが働いている会社/クライアントにとって、あなたの価値が高まります。

于 2008-09-17T15:20:17.227 に答える
1

開発者としての視野を広げることがすべてです。厳密に型指定された言語だけに限定すると、最高のプログラマーにはなれない可能性があります。

タスクに関しては、Python/Lua/Ruby/Perl は、いくつかのファイルを見つけて名前を変更するなどの小さな単純なタスクに最適です。また、シンプルなアプリをすばやく開発するためのフレームワーク (Rails、Django、Lua for Windows など) と組み合わせると、うまく機能します。37Signals は、Ruby on Rails でシンプルだが非常に便利なアプリを作成することに基づいています。

于 2008-09-17T15:24:32.600 に答える
1

Ruby で遊べば遊ぶほど、C# の理解が深まることがわかりました。

1)これらの言語を切り替えると、それぞれが解決しようとする問題の背後に独自の構造と哲学があります。これは、仕事問題の領域に適したツールを見つけるのに役立ちます。

2)コンパイラー(または一部の言語のインタープリター) の役割がより顕著になります。Ruby の型システムが .Net/C# システムと異なるのはなぜですか? これらはそれぞれどのような問題を解決しますか? コンパイラの構造と言語への影響をより低いレベルで理解していることに気付くでしょう。

3) Ruby と C# を切り替えることで、デザイン パターンの理解が深まりました。一般的なデザイン パターンを C# などの言語で実装してから、Ruby などの言語で実装することを強くお勧めします。これは、特定のパターンの哲学に対するコンパイラの儀式の一部を理解するのに役立ちました。

4) 別のコミュニティ. C#、Java、Ruby、Python などには、さまざまなコミュニティがあり、能力を発揮するのに役立ちます。あなたのクラフトを次のレベルに引き上げる素晴らしい方法です。

5) 最後になりましたが、新しい言語は楽しいからです :)

于 2010-05-20T04:07:23.217 に答える
1

ハンマーしか持っていない場合、すべての問題が釘のように見え始めます。

ドライバーやペンチがあれば、複雑な問題が簡単に解決できる場合があります。

請負業者や大工などに、「すでにハンマーを持っているのに、なぜドライバーの使い方を学ぶのですか?」と尋ねる人はいません。本当に優秀な請負業者/大工は、たくさんの道​​具を持っていて、それらを上手に使う方法を知っています。すべてのプログラマーは同じことをし、新しいツールの使い方を学び、それらを上手に使うべきです。

ただし、電動工具を使用する前に、ショップの安全性についてお話ししましょう。電動工具に付属するすべての安全規則を読み、理解し、従ってください。そうすることで、人身事故のリスクが大幅に軽減されます。そして、これを覚えておいてください: これらを着用することほど重要な規則はありません: 安全メガネ -- 標準

于 2008-09-17T17:41:51.753 に答える
1

それらは、メイン言語で同じものを開発するよりも速く (そして潜在的に汚い) 修正のためにメイン言語のギャップを埋めるための「クイック ハック」に役立ちます。例: 大きなテキスト ファイルを調べて、電子メール アドレスのすべてのインスタンスを別のインスタンスに置き換える perl の単純なスクリプトは、10 分程度の時間で簡単に実行できます。メイン言語で同じことを行うためにコンソール アプリを一緒にハッキングすると、その倍数の時間がかかります。

また、他の言語に触れることで能力が広がり、異なる言語の観点から問題に取り組むことを学ぶことは、言語自体と同じくらい価値があるという利点もあります。

最後に、スクリプト言語は拡張の領域で非常に役立ちます。LUA を例に取ります。わずかなオーバーヘッドで Lua インタープリターをアプリに組み込むことができ、アプリ全体の再構築を必要とせずに、エンド ユーザーに公開したり、変更したり配布したりできる豊富なスクリプト機能を作成する方法が得られます。これは、多くのゲーム、特に World of Warcraft で大きな効果を発揮するために使用されます。

于 2008-09-17T15:25:05.547 に答える
1

I think the main benefits of dynamic languages can be boiled down to

  1. Rapid development
  2. Glue

The short design-code-test cycle time makes dynamic languages ideal for prototyping, tools, and quick & dirty one-off scripts. IMHO, the latter two can make a huge impact on a programmer's productivity. It amazes me how many people trudge through things manually instead of whipping up a tool to do it for them. I think it's because they don't have something like Perl in their toolbox.

The ability to interface with just about anything (other programs or languages, databases, etc.) makes it easy to reuse existing work and automate tasks that would otherwise need to be done manually.

于 2008-09-17T19:25:42.770 に答える
0

雇用主に迷惑をかけないでください。本に40ドルを費やし、ソフトウェアをダウンロードして、毎日、演習を読んだり実行したりするために時間を割いてください。すぐにあなたは訓練されるでしょう:)

于 2008-09-22T13:29:51.887 に答える
0

テスト。

多くの場合、動的言語を使用してC#/Javaアプリケーションをテストする方が迅速かつ簡単です。インタラクティブプロンプトで探索的テストを実行し、自動テストスクリプトをすばやく作成できます。

于 2008-09-17T18:54:08.990 に答える
0

他の人は、より多くの言語を学ぶことでより優れたプログラマーになる理由をすでに説明しています。

それだけの価値があると上司を説得することに関しては、これはおそらくあなたの会社の文化です。キャリアとスキルの進歩をポリシーにする (昇進または退出) 場所もあれば、それを重視するが従業員の主導に任せる場所もあり、収益に重点を置いている場所もあります。

言語を学ぶことがなぜ良いことなのかを上司に説明しなければならない場合、私からのアドバイスは、必要な期間だけ仕事にとどまり、家に帰って自分で新しいことを勉強することです.

于 2008-09-17T19:33:17.727 に答える
0

動的言語は、アイデアのプロトタイピングに最適です。多くの場合、パフォーマンス上の理由から、永続的なソリューションや製品では機能しません。しかし、Python のような言語を使用すると、標準の C/C++/Java を内部に埋め込んだり、その逆を行ったりすることができ、非常に重要な部分を高速化できますが、動的言語の柔軟性と一緒に接着したままにすることができます。

...そして、両方の長所を最大限に活用できます。なぜもっと多くの人がこれらの言語を学ぶべきかという観点からこれを正当化する必要がある場合は、同じソフトウェアをはるかに速く開発できることと、ソリューションがどれほど堅牢であるかを指摘してください (動的言語の問題のデバッグ/修正は私の経験にあるため、かなり簡単!)。

于 2008-09-17T17:48:25.903 に答える
0

grep と ruby​​ を知ることで、問題を絞り込み、一部の本番サーバーで多数の Java 例外が発生する問題の修正を検証することが可能になりました。Ruby でソリューションをまとめたので、数日ではなく午後に完了しました (設計、実装、テスト、実行、バグ修正、再実行、強化、結果分析)。すべて Java のソリューションまたは C# のソリューションを使用して同じ問題を解決することもできましたが、おそらくもっと時間がかかったでしょう。

動的言語の専門知識があれば、動的でない言語でのより単純なソリューションにつながることもあります。ruby、perl、または python では、問題が発生したときに、静的に型付けされた言語で複雑なクラス階層を作成する誘惑に駆られる可能性がある場合に、最小のものに対して直感的に連想配列 (ハッシュ、辞書、使用したい任意の単語) に到達します。必ずしも要求するわけではありません。

さらに、ほとんどのスクリプト言語をほとんどのランタイムにプラグインできます。したがって、どちらか/またはである必要はありません。

于 2008-09-17T17:58:26.940 に答える
0

雇用主が見ることができる「真の利益」は、ソリューションをより迅速に実装できる優れたプログラマーです。ただし、費用を正当化するための具体的な数値を提供することはできず、雇用主は、将来をより良くすることに取り組むのではなく、現在お金を稼ぐことに取り組むように指示する可能性が高くなります。

雇用主の負担でトレーニングを受けることができるのは、彼らがその必要性を認識したときだけであり、すでにそのスキルセットを持っている新しい人を雇うよりも安価です.

于 2008-09-17T18:01:03.907 に答える
0

仕事の後、フリーランスの仕事のために... :)そして最終的には可能な限りプログラミングの読み書きができるようになります... ;)

于 2008-09-17T20:17:17.497 に答える
0

動的言語は考え方が異なり、動的言語や関数型言語から学んだ実践が、より静的に型付けされた言語に移行できる場合もありますが、時間をかけて別の言語を学習しないと、あなたがコーディングしているときの考え方を知っていました。

于 2008-09-18T04:25:52.440 に答える
0

哲学的な問題は別として、私は、Java では大きすぎるブルートフォースの問題を解決するために、手早く汚い Ruby スクリプトを作成することから価値を得ていることを知っています。昨年、私は 3 つの別々のディレクトリ構造を持っていましたが、それらはすべて多かれ少なかれ同じでしたが、ファイル間に多くの違いがありました (クライアントはバージョン管理について聞いたことがなかったので、残りはご想像にお任せします)。

Java でアナライザーを作成するにはかなりのオーバーヘッドが必要でしたが、Ruby では約 40 分で動作するようになりました。

于 2008-09-17T15:20:20.550 に答える
0

また、Scala などの関数型プログラミング言語の学習も検討する必要があります。簡潔な構文やクロージャーなどの強力な機能など、Ruby の多くの利点があります。しかし、それは Java クラス ファイルにコンパイルされ、Java スタックにシームレスに統合されるため、雇用主が飲み込みやすくなる可能性があります。

Scala は動的型付けではありませんが、その「暗黙の変換」機能により、静的型付けの利点の多くを保持しながら、動的型付けの多くの、おそらくすべての利点が得られます。

于 2008-09-17T15:36:52.430 に答える
0

多くの場合、動的言語 (特に python と lua) は、プラグインのような機能を追加するためにプログラムに組み込まれます。これらは特定の動作を簡単に追加できる高レベル言語であるため、低/中レベル言語は必要ありません。 .

Lua は、一般的なプログラミング言語としてではなく、プログラム内に機能を追加するための使いやすさのために設計されているため、低レベルのシステム コールがすべて欠けています。

于 2008-09-17T15:22:15.053 に答える