Web開発のためのCLとPythonの選択


13

私はJavaのバックグラウンドから来ており、Paul Grahamによるこの小さなエッセイを読んだ後、仕事をスピードアップするために新しい言語、つまりCommon Lispを採用することを考え始めました(私はWeb開発者です)。

現在、ペットプロジェクトを書いていますが、将来のビジネスプランがいくつかあります。ポールはエッセイで「秘密兵器」としてLISPについて語っています。この声明が10年後に真実かどうかはわかりませんが、つま先をすてきなCLチュートリアルに浸したところ、LISPがWeb開発に優れているようです。

また、PaulはPythonを、私が実際によく知っている素晴らしい選択肢として言及しています。私の質問は、将来のWebプロジェクトのためにどれを選ぶべきですか?

私が考えていたこと:

  • デスクトップアプリケーションを開発するつもりはないので、好きな言語を選択できます。
  • pythonは非常に大きなコミュニティを持っているようですので、lispと比べてより多くのライブラリ/フレームワークがあります
  • lispには他のどこにも見つからない機能(マクロなど)があることがわかりました
  • 私はほとんど単独で、または他の1-2人のプログラマーと仕事をしていますが、Lispの知識を持つ人を見つけるのは難しい場合があります

それで、あなたはどう思いますか?


PythonコミュニティはPHPと比較してどれくらいの大きさですか?Python開発者を見つけることは、PHP開発者を見つけることと比較して難しいかもしれないと思うので、プロジェクトが実験的である場合、これらのオプションから選択するだけです。
アレックス

私はPHPがあまり好きではないので、これは私にとって選択肢ではありません。私は唯一の上司なので、私が好きではないものを使うように強制する人はいません。:)
アダムアロルド

2
@Vash Pythonの開発コミュニティはPHPほど大きくないかもしれませんが、それでもまだ非常に大きいです。さらに、PythonのオンラインドキュメントはPHPのドキュメントよりもはるかに優れていると思います。
quanticle

それは本当だと思う。
アダムアロルド

2
誰もまだClojureについて言及していないと思います!
カイロン

回答:


7

Javaのバックグラウンドから来ているので、Clojureプログラミング言語をチェックしてみませんか?
これは、JVMに常駐する最新のLisp方言であるため、多数のJARにアクセスできます。

Clojureの世界ではDjangoやRailsのような洗練されたプロダクション対応のWebフレームワークを見つけることはできませんが(少なくとも現時点では)、プログラマーはNoirおよびCompojure Webフレームワークを使用しています。
Clookure WebアプリをHerokuプラットフォームにデプロイすることもできます。

Clojureは非常にやりがいがありますが、学習曲線は非常に急です。関数型プログラミングを習得する準備はできていますか(慣れていない場合)?OOPの世界を生き抜くには?

Pythonは安全な側面です。Pythonは成熟しており、大量の本、多くのWebフレームワーク、膨大な知識プール、そして習得が容易です。

したがって、決定は本当にあなた次第です。


1
私は最近Clojureをチェックしましたが、それが私のニーズに最も合ったものだと思います!アドバイスをありがとう!
アダムアロルド

7

Lispは、象牙の塔から来る声を近くに立って聞くときに聞く言語です。PHPなどの他の言語は、エレガントでも強力でもないかもしれませんが、簡単で寛容な一般的な舌のようなものです。

Lispは多くの言語に影響を与えてきましたが、決して主流になりませんでした。どうして?多くの開発者は言語の概念を理解していなかったため、彼らにとってはかなりあいまいに見えました。Lispは、大多数の開発者にとって理解しにくいものです。Lispをプログラミング言語として必要とする職務記述書を見たことがありますか?私はしていません。"なぜ聞くの?なぜなら、多くの人々にとって維持し読むのが難しいからです。Lispでは、多くの場合、式を見ているだけで、式が何をしているのかすぐにはわかりません。それはある種の単純さを欠いており、だからこそ決して一般的な舌にはなりませんでした。

それにもかかわらず、Lispは多くの言語に影響を与えてきました。学問的な目的で学習することをお勧めします。それはあなたの精神的な境界を広げるので、あなたはしばしば別の観点から問題について考えることができます。ただし、大学の実現可能性調査を実施していない限り、Webアプリケーションに使用することはお勧めしません。他のオプションと比較して、ツールとライブラリのサポートが不足しています。最終的にいくらかのお金を生み、履歴書に提示できる実用的なスキルを習得したい場合は、ぜひPythonを選んでください。あなたもLispの恩恵を受けるでしょうが、全体的なプログラミングスタイルはLispの恩恵を受けるかもしれませんが、Lispは本質的に実用的でなく、学術的です。

また、最近では関数型言語のルネッサンスがあります。機能的な概念を取り上げる場合は、JVM上の.NETまたはScalaのF#を調べることもできます。

だからあなたの選択をします。両方が本物の言語である場合、ラテン語/古代ギリシャ語またはフランス語/ドイツ語/イタリア語/スペイン語/中国語/アラビア語のどちらを習得しますか?


私はシカゴ地域で就職活動をしているのを見たことがあります-それだけでなく、彼らは経験なしであなたを雇い、あなたを訓練します。私はそのギグを望んでいましたが、通勤は私を殺したでしょう。ただし、これは私が長年見てきたほとんど唯一の広告だと思います。
ブライアンオークリー

わかりました。私もLISPとPythonを学びますが、Pythonを使用します。なぜなら、あなたと他の人たちが上記の理由であるからです。説明をありがとう。
アダムアロルド

3

一般的なLispとpythonの選択を考えると、私ができる最も実用的なアドバイスはpythonを学ぶことです。私の技術者は、プログラムを作る人は誰でもLispを学ぶべきだと考えていますが、それを学ぶことはあなたの「仕事をスピードアップする」のに役立つとは思いません。

Lispを学べば、長い目で見ればより良いプログラマになると思います。しかし、あなたが述べる理由のためにLispを学習しても、IMOの当面の目標に近づくことはできません。実用的で実用的なソリューションが必要な場合は、Pythonを学んでください。日々のタスクでemacsのカスタマイズが必要な場合を除き、日々のタスクで役立つLispを使用するのに十分なツールや機会がありません。

一方、勉強して学ぶ時間があり、選択した結果(ツールの不足、Lisp を取得する同僚を見つけるのが難しいなど)に耐える意思がある場合は、Lispを使用します。それは本当に素晴らしい言語です。


3

長期間にわたって独自のコードライブラリを作成しやすく、言語の限界に挑戦するのが好きで、設定のときどきのヒッチを気にしない場合は、Lispを使用することをお勧めします。自営業者の場合、マクロ機能により長期的に生産性が向上する可能性があります。

Pythonは、それほど柔軟でも、高速でも、強力でもありません。他の多くの言語と比較して学ぶことはほとんど簡単です。実際、それは非常にブルビーです。幅広いサポートがあり、流行言語du jourであり、多数のライブラリがあります。新しい言語の学習に不満を持っている人と一緒に仕事をしなければならないとしたら、おそらく少し良いでしょう。

Pythonが得意な人と比較してLispが得意な人を雇うかどうかを検討している場合、私はLispの人がPythonの人よりも優れたプログラマーおよびコンピューター科学者であるとすぐに推測します(他のすべてが等しい)。

私はひどく偏っている、と確信しています。


1
偏っているかどうか、あなたの意見がわかります!
アダムアロルド

2

ポール・グラハムが話していることを強調したいなら、私はLispを支持するだろう。Lispファミリーの言語によって支持されているアプローチと考え方の違いは、異なる考え方を奨励するため、全体としてプログラマーとしてのあなたに影響を与える可能性がはるかに高くなります。そして、私自身はそうしていませんが、LispでのWeb開発はかなりよくサポートされているようです。SOでこの質問を見てください。

Pythonは素晴らしい言語であり、私は決してそれをノックするつもりはありません。Pythonには多くの優れたWebフレームワークとツールがあり、必要に応じて、既に慣れ親しんでいる人を見つけやすくなります。

最終的には、現在の環境のために、Lispを選択することは、常に「自分の欲しいものを使いたいのか、それとも業界がすでに使用しているものを使いたいのか」という問題にかかっているようです。その質問に対するあなたの答えは何ですか?


2

時間的なプレッシャーがない場合は、Lispを使用してください。Lispを学習すると、Python(およびあなたが知っている他のすべての言語)を表示する方法が変わりますが、Pythonを学習しても、Lispを表示する方法は変わりません(知っている場合)。Lispは、ツールボックスの新しいツール以上のものです。それは新しい考え方です。

その間、Factorまたは別の連結言語を見てください。連結言語は、コンビネーターで考える方法を教えるのに素晴らしいです。連結言語を学習すると、他のすべての言語の表示方法が変わります。

最後に、右脳を鍛えます。プログラミング言語の形式主義により、問題解決のために左脳を過剰に使用せざるを得ません。右脳を活性化して、ゲームを変える別のパラダイムシフトにアクセスします。


0

Lispは、他のすべての言語と同じように、単なるツールです。確かに便利な機能がありますか。同時に、他のほぼすべての言語で同じ出力を使用することができますが、より多くの時間とコードが必要になる場合があります。Lispの主な問題は、プラットフォーム上でさまざまなLispをサポートする共有ホスト(私が知っている)がないため、少なくともVPSホスティングを取得する必要があることです。

Javaプログラマーなので、Groovy(またはScala)を見てください。JavaライブラリとAPIを使用できるようになり、生産性が向上します。


私のアイデアは共有ホスティングでも機能しないため、VPSは問題ではありません。
アダムアロルド

0

Lispについては、その起源以外に多くのことを知りません。Pythonについて私が知っているのはこれです:

最初の空飛ぶ円盤が着陸してから5分後、PythonコミュニティはI / Oシステムとのインターフェイスのために何かをまとめます。

また、主にJavaScriptから来た私は、Pythonが非常に自然にフィットすることを発見しました。おそらくその逆が真実かもしれません。

また、Djangoは最近の模倣のフレームワークです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.