問題タブ [boo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
boo - 新しい言語はいつ仕事に適したツールですか?
長い間、私は必要な機能セットを見つけるためにさまざまな言語を試してきましたが、見つけることができませんでした。私は自分のさまざまなプロジェクトに適切に適合する言語を持っていますが、これらの言語の共通部分を考え出し、プロジェクトの99.9%を単一の言語で実行できるようにします。私は以下が欲しい:
- .NET上に構築されているか、.NET実装があります
- コンパイル時と実行時の両方で.NETランタイムへの依存関係はほとんどありません(主要なユースケースの1つは、.NETランタイムが完全にカスタムである組み込み開発であるため、これは重要です)
- 管理されていない依存関係のない100%.NETコードのコンパイラがあります
- 任意の式のネストをサポートします(以下を参照)
- カスタム演算子定義をサポートします
- 型推論をサポートします
- 末尾呼び出しを最適化します
- 明示的な不変/可変の定義があります(素敵です-私はこれを愛するようになりましたが、それなしで生きることができます)
- 強力なメタプログラミングのための実際のマクロをサポートします(絶対に必要です)
私が使用している主な2つの言語は、BooとNemerleですが、F#でも遊んでいます。
Nemerleに対する主な不満:コンパイラには恐ろしいエラー報告があり、実装は地獄(コンパイラとライブラリ)としてバグがあり、マクロは関数内または属性としてのみ適用でき、依存関係に関してはかなり重いです(十分ではありませんが)ディールブレーカー)。
Booに対する主な不満:任意の式のネスト(ディールブレーカー)、マクロの記述が困難、カスタム演算子の定義(潜在的なディールブレーカー)がありません。
F#に対する主な不満:醜い構文、メタプログラミングを理解するのが難しい、非フリーライセンス(壮大なディールブレーカー)。
ですから、考えれば考えるほど、自分の言語を開発することを考えます。
長所:
- 必要な構文を正確に取得する
- かなり速くなるターンアラウンドタイムを取得します。定量化するのは難しいですが、開発者の生産性が1.5倍になっても驚かないでしょう。特に、これにより特定のプロジェクトで使用できるテストインフラストラクチャが原因です。
- コンパイラにカスタム機能を簡単に追加して、ランタイムでうまく機能させることができます
- 私は自分が望むように設計され、正確に機能するものを手に入れました-これはNIHのように聞こえますが、これは私の人生を楽にしてくれます
短所:
- 人気が出ない限り、メンテナンスの負担に悩まされます。誰もがもっとプロフェッショナルなものを望んでいると思うので、少なくともNemerleの人々を乗り越えることができることは知っていますが、それには村が必要です。
- 最初の欠点のため、私はプロの設定でそれを使用することを警戒しています。とは言うものの、私はすでにNemerleを使用しており、独自のカスタム変更されたコンパイラーを使用しています。
- それが人気を博さなければ、開発者を見つけることははるかに難しくなり、PaulGrahamが容認すらしないかもしれません。
したがって、これらすべてに基づいて、一般的なコンセンサスは何ですか?これは良いアイデアですか、それとも悪いアイデアですか?そしておそらくもっと有益なことに、私は大きな賛否両論を見逃しましたか?
編集:ネストの例を追加するのを忘れました-これがNemerleのケースです:
編集#2:存在する場合にこの言語に変換されるコードのタイプの例を示すことは害にならないだろうと考えました(S. Lottの答えだけで、私がそれをするのを怖がらせるのに十分かもしれません)。このコードは、カスタム構文(opcode、:=、quoteblockなど)、式のネストなどを多用しています。ここで良い例を確認できます:ここ。
boo - ブーはあなたのために何ができますか?
C# での 9 時から 5 時までの仕事のやる気を維持するためにサイド プロジェクトの趣味を手に入れようとしていて、Boo を見ていました。いくつかの?
- ブーとの経験は?
- Boo または Boo でどのようなアプリやプロジェクトを行ったことがありますか
- ブーの能力は?
Webの世界だと思いますが、デスクトップアプリケーションなどで手を汚したいと思います.
c# - var キーワードのポイントは何ですか?
varキーワードは、明示的な型宣言の必要性をなくします。それが適切な場合についての SO の議論を興味深く読みました。
また、ローカル変数の宣言をオプションにすることで、さらに一歩進んでいるように見える(しかし使用されていない) Booについても読みました。Boo を使用すると、型と宣言の両方を暗示できます。
なぜ C# 言語の設計者はわざわざ var キーワードを含めたのでしょうか?
更新:はい、var は匿名型をサポートしていますが、匿名型自体は var キーワードを必要としません...
対
syntax - ブーのラムダ?
ブーでラムダをどのように扱いますか? 「callable」は同じことですか?ラムダをパラメーターとして受け取るメソッドをどのように定義しますか?
.net - Boo (Binsor) に見える内部構造
IoC に Castle Windsor を使用しており、Binsor を使用して構成を定義したいと考えています。Boo に内部を見せたい。アセンブリを でマークしようとしまし
InternalsVisibleTo("Boo.Lang")
たが、うまくいきませんでした。Rhino.Commons.Binsor.BooComponentInstaller 内から例外がスローされることに気付いたので試してみInternalsVisibleTo("Rhino.Commons")
ましたが、どちらも機能しません。何か案は?
boo - Boo に言語キーワードを追加して、'when' を 'if' として動作させるにはどうすればよいですか?
「if」として動作する「when」キーワードをBOOに追加する方法がわかりません。メソッドを作成できると思いますが、if のように when を動かすことができません。任意のポインタをいただければ幸いです。
-マーク
c# - 最小限の Silverlight の例
Silverlight アプリケーションの本当に最小限の例は何ですか?
たとえば、IronPython で次の例を作成しました。
次に、 chironを使用して .xap ファイルを作成しました。いいえ (明示的な) XAML、いいえ何もありません。たとえば、C#で同じことを行うことは可能ですか? コマンドラインからコンパイルできるソースファイルは 1 つですか? もしそうなら、ソースコードは何ですか?
私の動機は、型破りな言語で Silverlight アプリを作成しようとすることです。現在、Boo で立ち往生しています...
c# - .NET ネストされたクラス
私が取り組んでいる現在のクラス ライブラリには、「フィールド」から継承され、読みやすさを維持するためにネストされる 50 を超える特定の「フィールド」タイプを持つ基本クラス (フィールド) があります。例えば...
これまでのところ、すべて問題ないように見え、次のようにコードを使用できます。
しかし、なぜこれも同様に機能するのでしょうか? コンパイラ/IDE インテリセンスがこれらの「FieldA」を連鎖し続けることを可能にするために、ここで何が起こっているのでしょうか?
決してアプリケーションを壊すわけではありませんが、それは独特だと思いました。Boo (ライブラリに使用されている実際の言語) でも同じことを行います。
.net - ルール エンジンの DSL を作成する際に使用するテクノロジは?
Business Rules and Validation Application Block for .NETの DSL を作成するには、どのテクノロジをお勧めしますか? なぜ?
フレームワークのアーキテクチャは、プロダクションによって確立され、実証テストされています。人間が読めるルールをコンパイル済みのルール実装に変換する .NET プロセッサを作成したいだけです。
私が知っているオプションは次のとおりです。
- .NET Booのコンパイラ パイプラインを使用する
- F# に付属のパーサー ビルダー ( FsLex および FsYacc) を使用する
残念ながら、これらのアプローチのいずれも、DSL 構文 (進化する可能性があります) を考えると、DSL を編集するための多かれ少なかれフレンドリーな IDE を構築するものを提供しません。
アイデアやヒントはありますか?
python - BOO 対 IronPython
IronPythonとBOOの違いは何ですか? 2 つの Python のような言語が必要ですか?