はてなキーワード: プログラミング言語とは
高校の情報の授業で扱うプログラミング言語は、Python、VBA、JavaScript、Scratchの4種類です。
・・・ この本、面白そうなんだけど、取り上げられている言語が「Ruby、Io、Prolog、Scala、Erlang、Clojure、Haskell」なので、ある程度プログラミングの経験がある人が対象かな。たぶん複数の言語を多少なりとも使ったことのある人向けかと。
ちなみにオックスフォード大学では1年生向けの最初のプログラミング言語として Haskell が選ばれているとか。凄いよね。そして彼らが2番目に教わるのが Oberon だとか。言語の定義が最もコンパクトな言語だからとか。(ケンブリッジ大学で最初に教えるのは OCaml だそうです。)
中華包丁持って意気揚々とフランス料理屋の厨房に来られてもちょっと困る
道具(プログラミング言語)を選定するということは対象分野(例えばWeb系なのか業務システム系なのか等)をある程度定めることになるのが現実だよ
定職についてるからプログラマになる予定はない。気が向けば自作ゲームやWordPressのために勉強するかもなあ(可能性はミリ)ってぐらいだね
じゃあこうだ
自作ゲーム ⇒ Unity(C#)、RPGツクール(Ruby)
いろんな種類のプログラミング言語に興味がある ⇒ 『7つの言語 7つの世界』 https://www.ohmsha.co.jp/book/9784274068577/
著者Bruce A. Tate 著、まつもと ゆきひろ 監訳、田和 勝 訳
複数のプログラミング言語とパラダイムを使いこなせれば、プログラマとしての幅が広がります。
本書は、1週間で1つの新しい言語を学ぶ“Seven Languages in Seven Weeks”を、Rubyの作者まつもとゆきひろ氏の監訳で発行するものです。
言語の特徴を映画の登場人物になぞらえて、Ruby、Io、Prolog、Scala、Erlang、Clojure、Haskellという個性的な7つの言語を紹介。
分類方法にもよるけど、プログラミングのパラダイム(考え方)は
の2種類がある。
それぞれに根拠となる計算モデルがあり、細分化すると4種類に分類できる。
パラダイム | 分類 | 基礎となる計算モデル | 言語 |
命令型 | 手続き型 | チューリングマシン | C、Java、Python、JavaScript |
宣言型 | 問合せ型 | 関係モデル | SQL |
宣言型 | 関数型 | ラムダ計算 | Lisp、Haskell |
宣言型 | 論理型 | 一階述語論理 | Prolog |
それぞれのグループで代表的な言語を1個ずつ順番に学んでいけば、全ての種類を一通り制覇できる。
例えば、
といった具合で。
各グループのどれか1個を知っておけば、同一グループの言語であれば仕様が似ているので、2個目以降を新たに学ぶときに、学びやすいはずだ。
自分が作りたいソフトウェアに合わせて、適したプログラミング言語を選べば良い。
など。
実用的なプログラミングを学ぶ場合は言語そのものだけでなく、周辺知識として、
アルゴリズム、ミドルウェア(フレームワークなど)、設計、テストなど、他の知識も必要になってくるので、
まずはPythonで一通り突貫して学ぶのが良いかもしれない。今なら教材が充実しているので。
いろいろ盛り上がってるけど、今学ぶなら何がいいのか建設的な話をしようじゃないか
20年以上前に聞いたことがあるのはC+だのプラプラだの、ビジュアルベーシックだの、フォートランだの、Javaだのだった
今なら何を学べば一番潰しが聞くのか。これを話してほしいと思う
ChatGPTは、幅広いトピックに関する情報を学習しており、主要なプログラミング言語であるPythonやJavaScriptに関する情報は豊富に学習しています。
そのため、これらの言語に関する質問やサポートには比較的得意です。
一般的に、ユーザー数が少なく、学習データが限られているプログラミング言語やマイナーなトピックに関するサポートは、制約があるかもしれません。
ChatGPTは、学習データに基づいて学習しており、そのデータの中に含まれていないトピックや言語に関しては限定的な知識しか持っていません。
したがって、マイナーな言語や専門的なトピックに関する質問に対する正確なサポートは難しい場合があります。
ただし、ChatGPTは一般的なプログラミングの原則やアルゴリズムに関する知識を持っており、プログラミングに関する基本的な質問やアドバイスには役立つことがあります。
マイナーな言語に関しても、一般的なプログラミングの原則や問題解決の方法についての質問に対してはサポートが可能です。
ただし、特定の言語の詳細な質問については、ユーザーが他の専門家やコミュニティから情報を収集する必要があるかもしれません。
そんな親父が使うプログラミング言語はもちろんProcessing!
初期のWebブラウザーに搭載されたプログラミング言語がJavaScriptというクソ言語だったのが運の尽きかもね?
勘違いのないように補足すると、プログラマーの美徳として挙げられている怠惰は「仕事をしたくない」という意味ではない。
仕事は猛烈にするけど同じ作業の繰り返しは刺激がなくて退屈だから、プログラマーの強みを活かして作業を自動化するという意味ですね。
そもそもプログラミングをやりたくない人なら、性格が怠惰でも怠惰でなくても、プログラマーに向いてないことは当たり前の話。
他の仕事やった方が本人のため。
プログラマーの三大美徳を提唱したラリー・ウォール本人は、プログラミング言語(Perl)を作れるスキルがある人でした。
生産性を問われるIT土方じゃなくて、自分が好きな時に好きなことだけをやって食っていける段階の人。
そのレベルになって初めて「俺は怠惰だから~」と自虐的なギャグを言える。(個人的には嫌味なマウントだと思うけどね?)
低スキルのIT土方が勘違いして、自分のやる作業を自動化できないのに、面倒くさいから仕事をやりたくないと思ってしまったら悲惨
家系図を作りたいと思ったのだが、Windows用の家系図ソフトでどうも思うようなものが見つからない。
Windows用GUIアプリを作る場合、C#やPython、JavaScript辺りを使えばいいかな?と思った。
この中で学習コストが低いのは、Python<JavaScript<C#だと思った。
どうでしょうか?
C#、Python、JavaScriptはそれぞれ異なるプログラミング言語であり、学習コストについても異なるレベルでアプローチできることがあります。
以下に、それぞれの言語について学習コストや選択の観点を示します。
Pythonはシンプルで読みやすい文法を持ち、初心者にも優しいプログラミング言語です。
豊富なコミュニティと資料があり、GUIアプリケーションを作成するためには「Tkinter」などのライブラリがあります。
家系図のような比較的シンプルなアプリケーションを作成するには、Pythonが適していると言えるでしょう。
JavaScriptはウェブ開発に広く使用されており、ウェブベースのGUIアプリケーションも作成できます。
Electronというフレームワークを使用することで、JavaScriptを使ってクロスプラットフォームのデスクトップアプリケーションを開発できます。
家系図アプリをウェブベースで提供したい場合には、JavaScriptを選択することも考えられます。
C#はMicrosoftのプログラミング言語で、Windowsアプリケーション開発に特に適しています。
Windows Presentation Foundation(WPF)を使用してGUIアプリケーションを作成できます。
家系図アプリをWindows向けに開発する場合には、C#とWPFの組み合わせが優れた選択肢となります。
総合的に見ると、Pythonが初学者向けの学習コストが低く、比較的シンプルなアプリケーションを作成する際には有力な選択肢です。
ただし、他の言語もそれぞれの特性や利点があり、プロジェクトの要件や自身のスキルに合った言語を選ぶことが重要です。
どの言語を選ぶにしても、オンラインリソースやチュートリアルを活用して学習を進めることをお勧めします。
C#、Python、JSは、多少触ったことがあるけど中途半端なので、本格的なGUIを作る場合、学習に時間がかかるだろう。
最終的にはC#が最適だと思うが、その前にPythonでGUIアプリを作ってみても良いかもしれない。=C#で作った場合との比較対象が得られるため。