実験言語を学ぶ価値はありますか?[閉まっている]


25

私はいつかプログラマーとして現場​​で働きたいと思っている若いプログラマーです。Java、VB.NET、C#を知っています。私は新しい言語を学びたいです(プログラマーとして、私が知っていることを拡張すること-あなたが違った考え方をする言語を学ぶことは価値があることを知っています)。どの言語が一般的かをオンラインで調べました。誰もがCとC ++を知っています(コンピューター全般についてほとんど知らないマグルさえも)、だから私はCを推し進めるべきだと思いました。

CとC ++は優れていますが、古いものです。HaskellやForthなど(などなど)は古く、人気を失っています。この同じ理由で、C(またはC ++)を学ぶのが怖いです。Javaもかなり古く、JVMによって実行され、ネイティブコードにコンパイルされないため、低速です。

私はかなり長い間Windows開発者でした。私は最近、Javaの使用を開始しましたが、それはJavaがより汎用性が高く、他の場所に拡散可能であったためです。問題は、次の理由により、非常に使いやすい言語のように見えないことです。

  • 最もよく使用される目的は、Webアプリケーションと携帯電話アプリ(特にAndroid)です。
  • それで作られた実際の製品に関する限り、頭に浮かぶのはNetbeans、Eclipse(IDEが使用する言語でIDEを作成するためのhurrah-HTML / CSS / Javascriptを書くためのWebページを作成するようなもの)、およびMinecraftだけですこれはたまたま楽しいですが、コンピュータの仕様に関しては遅延があり、バイポーラです。サポート。
  • それ以外はサーバーに使用されますが、一体-サーバーを作成/構成するだけではありません

ただし、.NET言語は優れています。

  • 真面目な会話でVB.NETやC#に言及すれば、人々は笑います。
  • MONOを使用しない限り、クロスプラットフォームではありません(まだ開発中であり、改善が必要です)。
  • JVMを備えたJavaのように、CLRによって実行/管理されるため、低レベルのものはありません。

私の最初の考えは、Cのようなものを学び、それを使ってC ++に踏み込むことでした(ただ、私が強い理解/基盤を持っていることを確認するためです)。


私が見たもの

ファントムはいいですね。それは私の2つのお気に入りの言語間の素敵な仲介者のようであり、2つの言語を交換可能に公開することもできますが、私が望むものとは異なり、完全なコンパイルではなくCLRまたはJVM(公開する内容に応じて)にコンパイルします。

Dもいいですね。それは非常に使用可能な言語のように思えるからMULTipleの源、実際にはC / C ++よりも良いように見えます。私はそれでうまくいきますが、この時点では明らかにあまり主流ではないので、私はまだその成功を確信していません。

Opa with web developmentやGo by GOOGLE など、他のことに焦点を当てた、とても素敵に見えるカップルが他にもあります。


私の質問

これらの「実験的」言語を学ぶ価値はありますか?他の質問を読んだことがあります。もしあなたが絶えず言語を学んでおらず、あなたがプログラミングにふさわしくないすべての言語に開かれているなら。私はこれを理解していますが、まだ理解していないかもしれませんが、実際には、言語が主流にならない場合、何か他のことを学ぶことに時間を費やすべきですか?古い(またはもうすぐ古くなる)プログラミング言語を学びたくありません。多くの人がこれを何か重要なものとみなしていることを知っていますが、あなたが実際にFORTRANを検討することはありますか(まだ知らなかったと仮定して)。私の目標は、将来の成功を確実にするために最新の状態を保つことです。


免責事項

はい、私は若いプログラマーですので、私はおそらく私の質問で多くの素朴な声明を出しました。 何でも自由に修正してください! 私はどこかで学習を始めなければならないので、私の知識の多くは、誤った記述や思考の欠陥を引き起こしたのに十分なほど大ざっぱです。コメントに感想を残してください。


結果...

私は、驚くべき反応に本当に驚いています。それらのほとんどは、私の誤解と誤解をとてもうまく指摘しています。私はこれから多くのことを学びました、そして、うまくいけば、私が学んだすべてを活用することに興奮しています!おそらく、Haskellの学習を始めて(20年以上とはいえ、それほど古くはない言語です-hahaha)、その後、私の周りのいくつかのオプションを調べ始めます。

ありがとう


10
「Python、C / C ++、Java、Perl、およびLISPの5つすべてを学ぶ」(Eric Raymond、ハッカーになる方法->基本的なハッキングスキル-> 1.プログラミング方法を学ぶ。
gnat

7
単に「古い」ということは、デフォルトでは自動的に「悪い」という意味ではないことに注意してください。これまでで最も素晴らしいプログラミングのいくつかは、30年前にC64で行われました。

8
FWIWほとんどすべての言語が使用しています-ほぼすべての言語を使用して誰かがあなたに笑う場合(Javaが遅い、.NetはM $の愚痴、Haskellは非実用的、C ++は古すぎるなど)すぐにそれらを笑って使用することを伝えます仕事
マーティン

6
「Haskell and ...彼らの人気を失った」からどこで入手しましたか?
左辺約

13
若いプログラマーには、あまりにも多くの仮定があります。それらを取り除く、彼らはあなたの心を曇らせています。
マチューM.

回答:


29

大幅に異なる言語を学習することは、言語を学習することではなく、問題に対するさまざまなアプローチに触れることです。ツールボックス用のツール。

注意すべきことの1つは、Haskellは特に古くはないことであり、実際には、主流の言語のみに精通している人にとって非常に良い候補です。Lispのような非常に古い言語でさえ、物事への影響のために学ぶのに非常に役立ちます。

また、Javaと.Netは解釈されず、その誤ったラベル付けに基づいて誤った仮定をしていると思われます。


おっと、解釈された問題について申し訳ありません。そこでは、2つの異なる矛盾表現を混ぜていました。質問自体で修正しました。
Freesnöw

19
ただし、Haskell 、たとえばJavaよりも古いです。しかし、はい、それはそれが時代遅れであることを意味しません。実際、その型システムはまだJavaの約20年先です。
ヨルグWミットタグ

5
@JörgWMittag:でも、HaskellについてよりもJavaについてもっと言っていると思います。
ティコンジャービス

1
HaskellとJava のみでプログラミングしていますが、公平を期すために主流の言語にはHaskellほど優れた型システムはありません。(OP ..._ lots_は、Javaで実行されるものよりも多くのものを言わなければなりません。)
ルイワッサーマン

1
Haskellは20年以上前になり、標準のHaskellは標準のC ++と同じくらい古い(両方とも1998年以降)。
fredoverflow

23

健康を維持:定期的に練習しましょう

練習が完璧になります。

書くコードと読むコードが多いほど、プログラマー/開発者/ソフトウェアエンジニア/達人/忍者/職人/ハッカー/流行語の知識/習熟に近づくことができます。より多くのコーディングと読み取りを行うだけでなく、新しいコードの記述方法を試すことによって、よりオープンマインドな(願わくば)ままになります。

推奨読書:

新しいパラダイムと言語機能について学ぶ

おそらく、新しいSuper-Language-Xで使用しているものをEnterprise-Language-Yに変換することはできないかもしれませんが、適切なタイミングを認識できるかもしれません。特定の目的に合うように、プロジェクトに異なるテクノロジーやスタックをいつ統合するかを知ることができるかもしれません。または、言語Yの機能を使用して言語Xのクールな機能をエミュレートし、それを活用するためにコードをリファクタリングする方法を知っているかもしれません(途中で他の同僚を啓発する可能性もあります)。

たとえば、興味深いFPの原則を発見し、それらをJavaに適合させたいと考えているかもしれませんが、これはおそらくFP by designではありません

推奨読書:

すべての取引のジャックになります...いくつかのマスターですか?

その「実験的」段階にあるとき、どの言語が主力になるかわからないので、それらの1つに賭けることについてあまり心配するべきではありません。他の人が同じ賭けをし、履歴書にこれらが表示されるのを見て興味をそそられる可能性があります。1つのツールをベルトに追加します。私たちの場合、それが最終的にどれくらいの重さであるかについてはそれほど問題はありません。

もちろん、すべての取引の達人になることはできません。しかし、あなたは1人のマスターになることができ、残りはかなり上手です。あなたは工芸を学んでおり、私たちのものは多面的です。定期的に運動をしたり、ワークショップに参加したり、本を手にしたり、新しいペットプロジェクトを書いたり、その他の同様のことをすることは、私たちの分野での変化のペースに追いつくための方法です。

推奨読書:

順応性を保つ

順応することを学ばなければ、必要なときにそれを行うのは困難です。常に新しいことを学習することで、新しいものを拾うたびに良くなります(非常に似たような挑戦に制約されない限り)。

ようなものだ「滞在ヤング」:オアシスの歌が行く滞在が若くて無敵

適応できれば、生き残ることができます。

推奨読書:

可視性を維持:募集代理店のレーダーを理解する

彼らはチェックボックスとしてキーワードとテクノロジーを使用します。私たちは、それらを心のない採用担当者のハニーポットとして使用します。

両方の方法で機能します。あなたが本当に自分のものを知っている限り、履歴書にたくさんのものがあることは良いことです。それはあなたの適応性と知識の幅を示しています。さらに、これらのいくつかを本当にマスターし、他のいくつかにまともな場合は、さまざまなポジションと仕事に合わせて履歴書のさまざまなバージョンを調整できます。


その他の役立つSEトピック


Paul GrahamのBeating the Averageを読む場合(または彼がプログラミングのテーマについて書いている他のことは)プログラミングの実践について彼が言わなければならないことの多くは、50%が正しく、50%が危険なほど間違っています。
メイソンウィーラー

@MasonWheeler:それは物議をかもします。多くのことが知られている業界の「巨人」からそれを見つけることができるように、自称されているかどうかはわかりません。多くの人は、他の人がノービグの書いているように、ゼド・ショーの書いたものも同様に否定します。すべてに批判的な心でアプローチする必要があります。私はそれを何でも与えられたものとみなし、このレベルの人々もそう思います(希望します)。多くの作家が特定の状況に照らしてトピックを提示しますが、すべての人に合うわけではありません。実際、ここでもこれを回答で毎日見ていますが、「人気」の力によって「ベスト」回答として尊敬されます。それでも、それは情報です。
ヘイレム

8

Telastynの答えを拡張するために、それは確かに異なるプログラミングパラダイムへの露出についてです。たとえば、ロジックプログラミングを学ぶことではありませんが、

  • 学ぶことを学ぶ(新しいスキルを学ぶ練習)
  • 脳を新しい方法で考えるように訓練する
  • あまり人気のない(または難解な)知識を得ることができます。
    • または少なくともあなたの技術的な知識でそれらを印象づけます:)
  • そしてもちろん、貴重な技術的洞察を提供します。C#がDよりも人気があるのはなぜですか?C ++はDができることをすべて実行できますか?Dはもっとできますか、それとも構文糖衣に似ていますか?

http://skilldrick.co.uk/2011/02/why-you-should-learn-brainfuck-or-learn-you-a-brainfuck-for-great-good/

brainf * ckを学ぶもう1つの理由は、チューリング完全なプログラミング言語がいかに基本的であるかを理解することです。プログラマーが言語を比較する際の一般的な議論は、「すべてチューリング完全」です。つまり、ある言語でできることは別の言語でできるということです。brainf * ckを学ぶと、チューリング完全言語を使用するのがいかに難しいか、そしてその議論がいかに水を含んでいないかを理解するでしょう。

http://norvig.com/21-days.html(Peter Norvig)

少なくとも半ダースのプログラミング言語を学んでください。クラスの抽象化をサポートする言語(JavaやC ++など)、機能の抽象化をサポートする言語(LispやMLなど)、構文の抽象化をサポートする言語(Lispなど)、宣言仕様をサポートする言語(PrologやC ++テンプレートなど)、コルーチン(アイコンやスキームなど)をサポートし、コルーチン(サイザルなど)をサポートします。


7

私の最初の考えは、Cのようなものを学び、それを使ってC ++に踏み込むことでした(ただ、私が強い理解/基盤を持っていることを確認するためです)。

さて、これは誤fallの巨大な山です。Cを知っている人は、C ++を学ぶのに苦労します。なぜなら、言語の使い方について知っていると思うことのほとんどが、誤った巨大な山だからです。遠隔地でも優れたC ++である慣用的なCは事実上ありません。単にC ++をゼロから学習するほうがよいでしょう。他の人がC ++を学ぶのを手伝うために自分の時間をボランティアする私のような人々は、C習慣を落とすよう人々に教えるためにC ++の部分を費やしています。

人気に関して、C ++ 最近少し再出現しています。実際、パフォーマンス非常に重要であり、すべてのコンポーネントをマネージドコンポーネントとして実行することで逃げることはできず、Modern C ++(特にC ++ 11を使用)は、彼らが思っていたCのゴミとはまったく違います。 、それは本当に悪くないです。本当に古くなっているわけではありません。新しくなっています。新しい標準は大幅にアップグレードされており、現在使用されているC ++の多くの領域に対して、現在またはパイプラインに適した代替言語はありません。これは、まともなC ++相互運用性を備えた言語(C ++自体も)がなく、既存のC ++コードベースから移行するのが困難だからです。

真面目な会話でVB.NETやC#に言及すれば、人々は笑います。

新しい人を獲得します。私の知る限り、VB.NETは、VB6からの移行を支援することを除いて、何らかの理由で実際に存在するものではなく、それ自体では価値のある目標ではありません。Javaに似ていますが、実際の言語機能といくつかの素晴らしいライブラリが追加されています。C#が吸うていないVSで非常に良いツール、と非常に人気の高い、よくサポートされる言語であることをひどくし、学ぶための固体、そうでない場合は例外的な、ものです。

MONOを使用しない限り、クロスプラットフォームではありません(まだ開発中であり、改善が必要です)。

MONOはかなり安定しています。さらに、最終的には、デスクトップユーザーの90%(または80%ですか?)が現在Windowsを実行しています。デスクトップアプリケーションを開発する場合、クロスプラットフォーム言語を使用している場合でも、非Windowsユーザーがサポートする時間に値するかどうかは未解決の問題です。

最終的には、C ++やHaskellなどの言語を学ぶことで多くのことが得られます。C++やHaskellは、大規模なランタイムではなく強力なコンパイラテクノロジーに焦点を当てています。

PHPを選択しないでください。それから学ぶことができる唯一のことは、言語を構築しない方法です。


1
C ++標準への最近の追加のかなりの割合は、既存のC ++の欠陥を修正するための過去の追加のかなりの割合のようにのみ存在します。たとえば、右辺値参照は、C ++がオブジェクトを値型として使用できるために存在するコピーコンストラクターに関連するパフォーマンスと複雑さの問題を回避するために、余分な複雑さを追加します。他のオブジェクト指向言語がそれをしない理由。
メイソンウィーラー

@MasonWheeler少なくともC#、D、およびEiffelでは、オブジェクトを値型として使用できます。また、RAIIはシステムプログラミングに最適です!
fredoverflow

@MasonWheeler:右辺値参照、完全な転送と移動のみのタイプ可能にします。パフォーマンスは、導入の3つの主な原因の1つにすぎません。値型オブジェクトは問題ありません。さらに、もちろん、C ++で任意の参照型オブジェクトを作成できます。
-DeadMG

また、これらすべてのパフォーマンスの問題があったとしても、C ++が依然として最速の言語であったことは面白いです。
-DeadMG

1
@FredOverflow:C#では、すべてのオブジェクトは参照型です。構造体は値型にすることができますが、オブジェクトはそうすることはできません。これは非常に正当な理由です。コピーコンストラクタのように、子孫オブジェクトを親型変数に割り当てる(または渡す)場合、実際にはそのオブジェクトを割り当てません。そもそもOOPを使用するポイントであるリスコフ置換を完全に台無しにします。それは恐ろしいアイデアであり、私はそれがつかまえなかったことをうれしく思います。
メイソンウィーラー

6

あなたが言ったことについていくつかコメントします...

1)古いプログラマーであっても、すべてのプログラマーはCを学ぶ必要があります。これは、マシンに近づくための素晴らしい言語です。ジョエルのCS学生へアドバイスから ....

卒業する前にCを学ぶ

パート2:C. C ++とは言わなかったことに注意してください。Cはますます希少になりつつありますが、それはまだプログラマーの共通語です。彼らは互いに通信するために使用する言語であり、さらに重要なことは、ML、Java、Pythonなどの大学で教えられる「現代の」言語よりもはるかにマシンに近いことです日々。少なくとも1学期をマシンに近づける必要があります。さもないと、高レベルの言語で効率的なコードを作成できなくなります。コンパイラやオペレーティングシステムで作業することはできません。これらは、最高のプログラミングジョブの1つです。大規模なプロジェクトのアーキテクチャを作成することは決して信頼できません。継続とクロージャ、例外処理についてどれだけ知っているかは気にしません:while(* s ++ = * t ++)の理由を説明できない場合; 文字列をコピーします。または、それが世界で最も自然なことではない場合、あなたは迷信に基づいてプログラミングしています、私に関する限り:基本的な解剖学を知らない医師医薬品の販売担当者が言ったことに基づいて処方箋を出します。

2)言語は、一般的に使用されていなくても、考え方を学習するのに適しています。Scheme(またはLISP)を学んで、関数型プログラミングを理解してください(流行ではない場合でも)。このボードの別の投稿から。

おめでとうございます、実際にコンピューターサイエンスを教えようとしている数少ない学校の1つに行くようです。第一言語としての学習スキーム(IMO)は非常に良いことです。いいえ、他の多くの製品ほど商業的ではありませんが、コンピューターサイエンスの真の本質を学ぶための優れた言語です。-ジェリーCo 11年10月20日3:32で

C、C ++、およびJavaは、コンピューターサイエンスの産業副産物です。Schemeのルーツはすべてコンピューターサイエンスにあります。商業用の言語は、マクドナルドが料理に関係するのと同じくらいコンピュータサイエンスに関係しています。–ジェイソンTrue 11年10月20日5:30

これらの人は正しいです。あなたはコンピュータープログラミングとコンピューターサイエンスを混同しています-ダイクストラが言ったように、それは天体と望遠鏡の構造を混同するようなものです。Schemeは、コンピューターサイエンスの基本概念を学習するのに最適な言語です。コンピューターサイエンスの学位を取得するのが、Javaで基幹業務アプリを作成する方法を学ぶことであると期待している場合、間違ったプログラムに登録されている可能性があります。–エリックリッパー11年10月20日7:40で

私が知っているほとんどすべての開発者は、自分でC / C ++を学んでいます。そのために大学は必要ありません。-mouviciel 11年10月20日7:48で

動物学のコースでは、象の屋台をいじる方法ではなく、進化生物学、解剖学、動物の行動を教えるのと同じ理由で、jk。11年10月20日7時58分

元の前提を攻撃しているにもかかわらず、好奇心から称賛されるべきだと思います。あまりにも多くの人々が好奇心の欠如のために時代遅れになります。あなたの個人的な成長を利用することは、あなたがうまく成長することの素晴らしい兆候です。最も多くを学ぶ人は、物事がどのように機能するかを尋ね続けることをいとわない人です。


1
「私が知っているほとんどすべての開発者は、自分でC / C ++を学んだことがあります。そのために大学は必要ありません。」:ここでも同じです。私の大学では、彼らは私たちにCでの課題を与えましたが、Cコースは与えませんでした。彼らは私たちにコンピュータサイエンスの学生が本を手に入れてそれを学ぶことを期待していました。
ジョルジオ

1
Cを学ばなければならないことは、非常に苦痛です。私の同情。
DeadMG

2
実際にCを学ぶことは簡単な部分でした。実際の拷問は、C ++に移行しなければならなかったときに始まりました。;-)
ジョルジオ

3

学習した言語は、今後5年間で変更される予定です。それはあなたがしばらくの間だと思うかもしれない言語を学ぶことではなく、むしろ、学ぶ方法を学ぶことです。言語を学ぶことへのより多くの露出とその言語を学ぶプロセスは、長期的にあなたを非常に助けます!

私が働いていた最後の会社は、独自の社内言語を使用していました。ビジュアルベーシックに似ていましたが、同じではありませんでした。私が他の言語を知っていたという事実のために、私は他の従業員よりもはるかに速く彼らの言語を習得することができました。

C ++、BASIC、Pascalを学んだ後、日本語を学びました。コンピューター言語と外国語を学ぶことも同じスキルを要すると言えます。それらのスキルは失われるか、研ぎ澄まされる可能性があります。ドライブがあれば、それを続けて新しい言語を学んでください!

(ps。FORTRANやアセンブリの学習に関しては、少なくとも古い言語の1学期を受講することは価値があると思います。新しい言語では当たり前のこと、フラグ、メモリ割り当てなどを考えるようになります。 )


3

プログラマになりたければ、できるだけ多くの「古い」言語を学んだ方がよいでしょう。Lispから始めて、Forthをよく理解し、すべてのWirth言語の進化、Fortranの進化、Prologの興亡、秘密のAdaエコシステムに忍び込み、Occamの学習から秘密の武器を手に入れましょう。「主流」を追いかけることは、意欲的なプログラマーがこれまでにできる最も愚かなことです。


+1:まったく同感です。Haskell、Scheme、Scala、SMLなど、あまり主流ではない言語で実験して得た多くの興味深いアイデア
ジョルジオ

2

物事の露出部分については同意します。Java、C、C ++、Javascript、Python、Ruby、および.NETを少し知っていますが(主にM $ <-個人的な意見が嫌いだからです)、私はDでのプログラミングが大好きだと言わざるを得ません。

Dには本当に素晴らしい機能セットがあります(それらのほとんどはC ++ / Java(クラス抽象化を備えた言語)などで実装されています)が、私が絶対に最も好きなことの1つはジェネリックとデリゲートです(コールバックを実装しやすくします)。それとは別に、C ++と比較して、はるかに単純な構文を扱うことができます。Dには非常に効率的なガベージコレクターがありますが、メモリを自分で処理することもできます(特にC / C ++モジュールとインターフェイスする場合)。Dには、ユーザーが寄稿したモジュールが多数ありませんが、これらはエントリーの障壁にはなりません。既存のC / C ++ライブラリー(簡単に使用できる)と簡単にインターフェースをとることができるため、モジュールの必要性に応じて冗長化できます。

Dには独自の標準ライブラリ(Phobos)があり、すべての一般的なプログラミング問題のニーズに対応しています。また、Phobosまたは単独で使用できる代替ライブラリ(Tango-D2)もあります。Web開発者であり、イベントベースのサーバーを作成する必要がある場合、Tangoには優れたセレクター抽象化があります(select()、poll()、epoll()のみのtango.io.Selector)。libevよりもパフォーマンスが優れていることがわかりました。


私がDの学習を拒否するわけではありませんが、静的に型付けされたOOおよび手続き型の非低レベル言語を既に知っている人にとっては、異なるパラダイムを強調したり、少し金属に近い言語を学ぶことは間違いなく価値があります。Dについても実験的なことはあまりありません。
左辺約

1
同意した。OPの質問は、「実験的」がまだ安定していない/企業のサポートを支持している/主流ではない何かであることに集中していると思いました。そして、たとえあなたが「実験的」な異なるパラダイムの実装に行くとしても、そこにはわずかなパラダイムしかないと思います。そして、ほとんどの言語はどちらか一方を実装しています。それから、どの言語がより良く/速く/使いやすく/手元の仕事に最適かを判断します。これらの要因は、プログラマーによって異なります。
シュリパッドクリシュナ

1

言語は、何らかのドメインの問題を解決するために開発されます(少なくとも最初は)。使い慣れた方法でツールで解決できない問題に直面していない場合は、大工になることを期待して木製の板を叩きます。言語が解決しようとしている種類の問題を理解してください。「実験的」言語と新しい/流行のクールなガイ言語との唯一の違いは、それをサポートするお金です。たとえば、Go from google and Dart。それらが私の裏庭で開発された場合、彼らはおそらくいくつかのフォーラムで死ぬでしょう、それはそれです。彼らは、解決しようとしている問題を説明するのが得意な場合にのみ生き残ります。または、PerlやC ++など、問題を解決する方法を吸収して生き続けることが得意な逆の方法もあります。そして、私はLuaを学ぶことを提案するかもしれません、それ ' プログラム内に埋め込むために作成された言語は、非常に高速で軽量であり、Javaのような一部の言語では簡単に解決できない大きな問題や小さな問題を解決するツールを提供します。日本語を例にとると、文化を無視して構文、文法、アルファベットを学ぶだけでは、なぜそれがそんなに複雑なのか理解できず、結局それをすべて忘れてしまいます。それはあなたのために何も解決していません。


1

複数の異なる言語を学習することにより、プログラミングのより広い視野が得られます。「異なる」ことに重点を置いて-たとえば、C#とJavaを学習しても、そのうちの1つだけを学習する以上のことは教えられません。ただし、C#またはJava、および関数型言語(たとえば)を学習します。

そうは言っても、若いプログラマーとして、さまざまな種類の言語を見て回る前に、1つの言語を本当にしっかりと理解することでより多くの価値を得ることができると思います。Java、VB.NET、およびC#をどれだけよく知っているかは、質問から完全には明らかではありません。上記の言語のいずれかを使用してプロジェクトを攻撃した場合、言語の知識ではなく、プロジェクト自体がボトルネックになると確信していますか?「これをどのように言語で行うのですか?」実際の問題について考えるよりも、おそらく現在の言語のいずれかにもっと集中する必要があるでしょう。

そして、私はあなたがどちらがどれであるかを決定するために実際的なアプローチを取るべきだと思います。JavaはAndroidアプリに使用されますか?Androidアプリの作成が興味のあるものである場合、それは重要ではありません。C#はWindows以外の開発にはあまり適していませんか?Linuxの開発に興味があるなら悪いニュースです。そうでない場合は関係ありません。等々。

そして、あなたが言った「実験的な」言語は?実用的には、他の人との作業に関してはあまり適していないでしょう。おそらく、Fantomを知っている人なら誰でも、C#やJavaを知っている人が1,000人見つかるでしょう。個人的なプロジェクトの場合、これは必ずしも問題ではありません。あなたの目標があなたの雇用可能性を高めることであるなら、それはそうです。


1

PostscriptやAPLのような言語でプログラミングを学習することは、主にその知識を使用する可能性がゼロに近づくため、時間の浪費と言えるでしょう。しかし、同じように、RubyとPythonを使用するつもりがないのであれば、RubyとPythonは時間の無駄だと主張することができます。

しかし、あなたがLispをPostscriptと同じくらい書く必要があるとしても、Lispを学ぶことは無駄だと言う人はほとんどいません。しかし、Lispを学習することで、問題について違った考え方をすることを(できれば)教えてくれるので、ほとんどのプログラマーはあなたの時間の価値があると言うでしょう。

それでも、必要な時間の投資は実際には1〜4時間で済むため、新しい言語を学ぶことをためらうことはありません。また、Luaのような言語の使用は、最も珍しい場所ポップアップします。数時間かけてサンプルを実行していなければ、それらを認識することはなかったでしょう。

新しい言語を見つけたら、それが何に役立つかを少し読んでください。お気に入りの言語ではカバーできないニッチな場合は、基本を学ぶのに1日かかります。確かに、学士号のシーズン17を見るよりも良い時間です。そうすれば、あなたがそれを使用している場合、それは頭に浮かぶことができ、あなたはより多くを見つけるべき場所を知っています。

個人的には、Goを確認することをお勧めします。私はこれを使用して、3日かかるCやC ++のサードパーティライブラリよりもパフォーマンスが良く、Python、C#、Rubyなどでは不可能な単一ページプログラムを記述しました。本当に、本当に、本当に自分のことを知っている人々によって。


-1

タイプの異なるものを選んでください。機能ごとにグループ化し、各グループから1つを選択します。これを専門的に行いたい場合は、使用するものを選択してください(テンプレートメタプログラミングを使用して静的に型指定されたコンパイル言語の場合は、C ++ over D)。

貧しいD、それは良い言語ですが、C ++が持っていたキラーアプリを欠いています:当時の#1言語との完全な後方互換性(C ++の場合はC)。それは素晴らしいことですが、その重要な小さな事実はおそらくDを歴史の本のサイドショーのステータスに委ねるでしょう。


-2

Cは古いかもしれませんが、それでも非常に強力で興味深いものです。Cを学習することは、「プログラミング」の将来に大いに役立ちます。

Javaは遅くありません。彼が何を言っているのかわからないと言った人は誰でも、JavaはOOPについて多くを学びます。

Pythonから始めて、Cや他の何かを始めてみませんか。


Cは、マイクロコントローラーの共通語でもあります(4Kしか持っていない場合、8Kランタイムを購入する余裕はありません)。そのスペースだけで、Cはその先に積極的な使用の別の良い10年があります。
TMN

Javaは以前は低速でしたが、最初の数年はJavaが速度の悪魔よりも小さいことを覚えています。一部の人々は、パフォーマンスが改善されなかったと思います。
MetalMikester
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.