タグ付けされた質問 「programming-languages」

プログラミング言語は、機械で実行できる計算を表現するように設計された人工言語です。**注意:** Stack Overflowの他の場合と同様に、リソースおよびチュートリアルの推奨リクエスト、物事のリストのリクエスト(「どの言語にこの機能があるか...」)、および過度に意見に基づく(「何が最良か」 ... ")質問はトピックから外れています。

18
構成ファイルはどの時点でプログラミング言語になりますか?
私はしばらくの間、構成ファイルとコードとの関係について検討してきましたが、日によって、風の方向によっては、私の意見が変わったようです。Lispの学習中に最初に得た気づきにどんどん戻っていきますが、データとコードにはほとんど違いがありません。これは、構成ファイルについても二重に当てはまるようです。右から見ると、Perlスクリプトはperlの構成ファイルにすぎません。これは、QAや、構成ファイルの変更を担当する必要がある人のような分業などのタスクにかなり重い結果をもたらす傾向があります。 設定ファイルから本格的な言語へのクリープは一般に遅く、一般的なシステムを作りたいという欲求によって引き起こされているようです。ほとんどのプロジェクトは、ログを書き込む場所、データを検索する場所、ユーザー名とパスワードなどのいくつかの構成項目を備えた小さなものから始まります。しかし、その後、プロジェクトは成長し始めます。機能をオンまたはオフにできるようになります動作のタイミングと順序が制御され始め、必然的に誰かがそれにロジックを追加し始めたいとします(たとえば、マシンがXの場合は10、マシンがYの場合は15を使用します)。ある時点で、設定ファイルはドメイン固有の言語になり、その部分では不十分に記述された言語になります。 準備ができたので、次は私の質問です。 設定ファイルの真の目的は何ですか? 設定ファイルをシンプルに保つように試みるべきですか? それらに変更を加える責任は誰にあるべきですか(開発者、ユーザー、管理者など)? それらはソース管理されるべきですか(質問3を参照)? 前に言ったように、これらの質問に対する私の答えは常に変化しますが、今は考えています: プログラマーでない人が大きな動作のチャンクを素早く変更できるようにするため はい、ざらざらしていないものはすべてコードに含める必要があります ユーザーは構成ファイルを担当し、プログラマーは構成ファイルとコードの間の構成層を担当して、アプリケーションをより細かく制御する必要があります。 いいえ、しかしより細かい中間層は


17
Haskellの後に学ぶべき言語は何ですか?[閉まっている]
現在のところ、この質問は私たちのQ&A形式には適していません。回答は事実、参考資料、または専門知識によって裏付けられることを期待していますが、この質問は、討論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善して再開できると思われる場合は、ヘルプセンターにアクセスしてガイダンスを入手してください。 9年前に閉鎖されました。 ロックされています。この質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答ややり取りは受け付けていません。 私の最初のプログラミング言語として、Haskellを学ぶことにしました。私は分析哲学を専攻しており、Haskellを使用すると、自然言語解析用のトランスデューサー、定理証明者、通訳など、関心のあるプログラムをすばやく正確に作成できました。プログラミングを始めて2か月半しか経っていませんが、Haskellのセマンティクスと構文は、従来の命令型言語よりもはるかに簡単に習得でき、その構成の大部分に(今は)快適に感じることができました。 Haskellでのプログラミングは魔術のようなものですが、プログラミングの知識を広げたいと思います。学ぶために新しいプログラミング言語を選びたいのですが、任意の言語を選んでドロップして繰り返す時間がありません。それで、私が探している言語のタイプについてのいくつかの規定とともに、ここで質問をするつもりでした。主観的なものもあれば、Haskellからの移行を容易にすることを目的としたものもあります。 ストロングタイプシステム。Haskellでのプログラミングの私のお気に入りの部分の1つは、型宣言を書くことです。これは、個々の機能とプログラム全体との関係についての私の考えを構造化するのに役立ちます。また、私のプログラムの正しさについての非公式な推論も容易になります。私は効率ではなく、正確さに関心があります。 反復ではなく再帰に重点を置きます。私はHaskellで反復構造を使用していますが、それらを再帰的に実装しています。ただし、特にコンビネータやマップ、フォールド、バインドなどの高階関数を使用する場合は、複雑な反復手順よりも再帰関数の構造を理解する方がはるかに簡単です。 学ぶことはやりがいがあります。Haskellは働きがいのある言語です。カントを読むのと少し似ています。しかし、数年前のCでの私の経験はそうではありませんでした。私はCを探していません。言語は概念的に興味深いパラダイムを強制する必要がありますが、私の完全に主観的な意見では、Cのようなものはそうではありません。 答えを比較検討する:もちろん、これらは単なるメモです。整形式の回答をいただいた皆様に返信したいと思います。あなたはとても役に立ちました。 1)いくつかの回答は、再帰を強調する強力で静的に型付けされた言語が別の関数型言語を意味することを示しました。私はHaskellと強力に協力し続けたいと思いますが、camccannとlarsmansは、別のそのような言語は「移行を容易にしすぎる」と正しく指摘しました。CamlでHaskellを書くつもりはないので、これらのコメントは非常に役に立ちました!証明アシスタントのうち、CoqとAgdaはどちらも面白そうです。特に、Coqは、建設的論理と形式型理論への確かな紹介を提供します。私は一次述語と様相論理(メンデルソン、エンダートン、ヒンマンの一部)に少し時間を費やしたので、おそらくCoqをとても楽しんでいたでしょう。 2)他の人はLispを強く支持しました(Common Lisp、Scheme、Clojure)。私が集まるところでは、Common LispのとSchemeの両方が(優れた入門資料持つLispのオンと推論スキーマー、SICPを)。SICPの資料により、私はスキームに傾倒します。特に、Scheme through SICPは、さまざまな評価戦略、怠惰の実装、および継続、インタプリタ、記号計算などのトピックに焦点を当てる機会をカバーします。最後に、他の人が指摘しているように、Lispのコード/データの扱いはまったく新しいものになるでしょう。したがって、私はオプション(2)であるLispに大きく傾いています。 3)第三に、プロローグ。Prologには興味深い資料が豊富にあり、そのプライマリドメインはまさに私が興味を持っているものです。それは単純な構文を持ち、読みやすいです。現時点ではこれ以上コメントすることはできませんが、Prologの概要を読み、いくつかの紹介資料をざっと読んだ後、それは(2)にランク付けされます。そして、Prologのバックトラックは常にHaskellにハッキングされているようです! 4)主流の言語の中で、Pythonが最も興味深いように見えます。Tim Yatesは、言語を非常に魅力的に聞こえるようにします。どうやら、Pythonは1年生のCS専攻に教えられることがよくあります。そのため、概念的に豊富であるか、簡単に習得できます。もっと研究しなければならないでしょう。 お勧めありがとうございます!Lisp(Scheme、Clojure)、Prolog、またはCoqやAgdaのような証明アシスタントが推奨される主な言語のようです。

5
非同期、ノンブロッキング、イベントベースのアーキテクチャの違いは何ですか?
違いは何ですか: 非同期、 ノンブロッキング、および イベントベースのアーキテクチャ? 何かを非同期と非ブロッキング(およびイベントベース)の両方にすることはできますか? プログラミングで最も重要なことは、非同期、非ブロッキング、および/またはイベントベース(または3つすべて)です。 あなたが例を提供することができれば、それは素晴らしいことです。 私が同様のトピックに関するこの素晴らしいStackOverflowの記事を読んでいたので、この質問が尋ねられていますが、それは上記の私の質問に答えていません。

6
オブジェクト指向プログラミングの代替案?
OOPは、おそらく今日のソフトウェア設計で最も使用されているプログラミングパラダイムです。私の質問は、他にどのようなパラダイムがそれと競合し、OOPの代わりに立つことができるかということです。その質問を明確にするために、私は他にどのようなパラダイムがあるかについて質問していません。たくさんありますが、どれがいいのか知りたい… 理論だけでなく、実際に使用されてきました。 OOPと競合できるため、大規模なプロジェクトで最小限の労力で使用できます。 ビジネスロジック、データベースなどを備えたデスクトップアプリの開発に使用できます。 OOPと一緒に使用されるのではなく、OOPの代わりとして使用されます。 そして、もしあれば、それの長所/短所は何ですか、それがOOPよりも良い/悪い理由、それを使用するのに最適な言語は何ですか、人気のある言語でそれを使用するのはどうですか、それはどんなデザインパターンを持っていますか、そしてそれはできますかOOPを完全に置き換えますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.