はてなキーワード: swiftとは
現状でMacにしかできないことはSwiftでの開発くらいで、どう転んでもそれ以外の優位性は0:100でWindows機にあると思う。(米:Swifitになっていましたね
高校生なので乱暴に扱ったりすることがあるだろうし、他の教科書を考えると軽くて丈夫なノートがいい。だからLenovoのいい奴にしようかと思ったけど、Macbookに興味を持っているらしいのでどうしようか悩んでいる。何をしたいかもわからない子供に本当に与えていいのだろうか。子供のITリテラシーは人並み以上にはあると思っている。つくづく便利な世の中と思うけど、最初の一歩が重要なのは変わらないよね。
今、知り合いのつてでテレビ局の制作下請け業務のADやらないかって話があってそれを引き受けるかどうか迷ってる。
大学在学時に精神病んだり多重債務が膨らんだことで卒業してすぐ実家に戻って2年くらいニートしてた。
ニートって言ってもぼちぼち家業の手伝いして、とりあえず利息をなんとかするために日雇い派遣に行って、
グループセラピーに顔出したり、町おこしやってる地元NPOでボランティアしたりなんやかんやしてたけどどこにも属してなかったからニートはニートだ。
同じ面子と毎日顔を合わせていると不安でたまらなくなるから月に二日が限界だった派遣も、2年経つごろには週4~5で3つぐらいの現場をローテーションできるくらいには回復した。
そのころになってようやくとりあえずどこでもいいから腰を据えようと考えられるようになって週3のコンビニバイトと週2のホテル清掃を掛け持ちを始めた。
1年前にコンビニの時給が上がってからは週4にシフトを増やしてもらってそっち一本に専念して今もやってる。もうかれこれ4年になる。
当時はやっていたテキストサイトなりに影響を受けてhtmlを自分で書いてみたのが最初で、
それからお遊びで自分のサイトをCSSで装飾をしたりCGIプログラムを書いてみたりしてた。それも高校生になるころにはやらなくなったけど。
それでもずっとWeb周りの情報は集めていて、はてなも情報収集のためにブックマークを使い始めたのがきっかけだった。
2年のニート期間中に、ようやく落ち着いて勉強をできるようになったので、
ドットインストールでJavascript、PHP、Python、Rubyの基本的な書き方をさらったのち、ちょくちょく自主制作をやるようになった。
いってもPHPとPythonはWordPressとC4DのXpressoくらいでしか使ってない。Rubyは一回TwitterBOTとミニゲーム作ったあとなんか好きになれなくて弄らなくなった。
でももともとWebに憧れがあったからかサイト制作でJavascriptを使うということは結構長く続けられた。
通ってた大学はメディア関係の学部でイラレフォトショもそれなりに使ってたからそんなつまずくこともなく、ちまちまポートフォリオに制作したサイト溜めてた。
あと関係ないけど図書館でJavaの参考書借りてきて写経したり、XCodeでSwiftに挑戦したりしたけどアプリにあんま興味なくていつの間にかやらなくなった。
それもサーバー代が払えなくなったりHDDがおしゃかになって全部なくなったんだけどね。ここ最近はPCも持ってなかったし。
なんとか最近になって惨めな田舎生活から飛び出すだけのお金が貯まって、定職につくことまでようやく考えられるようになって
「ちょっと遅くなったけどだめもとでまた一から頑張ろう、まずはポートフォリオまとめていこう」と思ってた矢先にコロナショックで世の中おかしくなりだした。
自分も不安でたまらなくて、コンビニバイトをしていることから小売業の求人に応募しつつ、Web制作や、大学時代の経験から映像制作の募集に片っ端から応募した。
ADの誘いを受けたのはこの流れで、受けた企業の採用担当でない社員の方から別の企業を紹介されてそういう話になった。
履歴書も見たしもう一度会ったらもう内定を出すと言われている。
あからさまに怪しいと自分も思う。放送業界のハードさは周知の通りである。しかし自分にはトラウマがある。
大学卒業直後に第二新卒での就職を目指して3か月だけ就活をしていた時期がある。
そのときに「テレビの制作やってる部署に中途採用してあげるから一か月後に荷物まとめて東京に出てきて」と言われ結局自分はそれを蹴った。
当時はほぼ無収入なのに借金の返済に月6万かける生活で不安が大きかったのと、
クライアントや代理店から依頼された案件で企画から制作までじっくり取り組んでいきたかったので放送業界はやや不本意だったからである。
でも今になればあのとき飛び込んでいれば違った未来があっただろうと後悔する気持ちがある。
少なくとも今のようにぼんくらとして馬鹿にされ近所から白眼視されながら惨めに孤独に片田舎で生活するようなことはなかったのではないだろうか。
今の自分は映画「悪人」の妻夫木の役どころや「レズ風俗」の永田カビみたいなもんである。
今現在はその企業以外に2社映像制作会社(放送関係ではない)の面接選考が進んでいてそれも自分を迷わせる原因だったりする。
最近のはてブの話題からいろいろ考えてしまうんだけど、現実逃避するように誰に見せるわけでもないポートフォリオサイトを休日に作り続けてる。
プログラミング未経験者から「プログラミングを勉強してみたい、でもどのプログラミング言語をやればいいのかわからない」というような悩みを聞くことがあるので、https://redmonk.com/sogrady/2020/02/28/language-rankings-1-20/ に載っている人気の言語TOP 20について、未経験者が最初に学ぶのはどの言語が良いかという観点で簡単に解説してみます。
対象読者はプログラミング未経験者なので、なるべく難しい言葉を使わないようにしたつもりです。また、正確性よりもわかりやすさを重視しているので何かしら間違っているかもしれません。ご留意ください。
Webブラウザの上で動くプログラミング言語。元々ただの文書しかなかったインターネットの世界に、グリグリ動くページを作りたいという欲求により生まれた。JavaScriptのおかげで今のWebページはグリグリ動きまくりである。
元々HTMLをちょちょっといじる為だけのものだったが、どんどん進化を続けて今は一つの超人気プログラミング言語である。今ではブラウザ上でなくても普通に動かせる(Node.jsという)ので様々な用途で使われている。
ブラウザ上で動くプログラミング言語は基本的にJavaScriptしかないので、JavaScriptはすべてのWebプログラマが学ぶ必要があると言っても過言ではない。
ちょっとしたプログラムを書いてすぐブラウザ上で動かせるので楽しい。そういう点ではプログラミング入門に適していると言えるかもしれない。
機械学習を始めとしたデータサイエンスの分野で激烈に人気のある言語。理由としてはNumPyとかTensorFlowのようなライブラリが充実しているというのが大きく、資産がたくさんあるのでこれからも使われ続けるであろう。
言語としては、誰が書いても簡潔で読みやすいコードになる傾向にあり、小さいプログラムを書くにはいい感じである。米国ではプログラミング教育にPythonがよく使われているという話も聞くし、初心者がプログラミングを始めるのにはいいのかもしれない。
将来AIやデータサイエンスをやってみたいと思うのであればPythonから始めましょう。
ランキングでは常に一位に近い順位をつける言語。Javaができた当時は色々と革新的だったらしく、組み込み業界からWebまで流行りまくっていた。今でもその名残か使っているところは多い。過去の資産やプログラマの数が多いのが一番の理由だと思う。AndroidアプリもJavaで書く(もしくはKotlin)。
実行速度が速く、また下位互換性がしっかりしているので過去に書かれたコードが新しいマシン上でも動きやすいのが長所。短所としては、歴史ある言語で下位互換性を保っているため文法が古い感じがする。タイプ量も多くなるし、学習コストはJavaScriptやPHP, Ruby, Pythonあたりに比べると高い。
正しく使えば強力な言語だが、日本のクソSEもどきは全員(自称)JavaエンジニアであることがJavaが毛嫌いされる理由の一つになっている[要出典]。いわゆるGAFAもJavaをかなりヘビーに使っているので要は玉石混交ということである。
Androidアプリを作ってみたいというならJavaからはじめるのはアリ。
Webページを作るためだけに生み出された言語。プログラマの数が非常に多い。日本で求人が一番多いのはJavaかPHPであろう。
初心者でもとっつきやすく、すぐに動くプログラムを作れるので入門に使われることも多い。学習コストの低さはトップレベルである。しかし基本的には古くてダメな言語とみなされており、PHPで作られたWebサービスは脆弱性が多いという都市伝説もある。真実は闇の中である。
近年のバージョンアップで比較的良い方向に向かっている(と個人的には思う)ので、選択肢としては意外と悪くないかもしれない。
Microsoftが生み出した言語で、.NETというプラットフォームを使ってWebサービスを、Unityというゲームエンジンを使ってゲームを作ることができる。
最近有名なのはUnityで、今やほとんどの3Dソーシャルゲーム(の一部分)はUnityで作られている。そう考えるとC#のプログラマは結構いそうだし将来もある程度安泰かもしれない。もちろん.NETも広く使われている。
ただし.NETもUnityも触らない人にとっては基本的に縁のない言語である。
なんかゲーム作ってみたいかもなーと思う人はC#から始めてもいいんじゃないでしょうか。
C言語に色々な機能を足しまくってできた巨大な迷宮のような言語。言語仕様は複雑怪奇だが実行速度は全プログラミング言語中でも最速レベルなので、パフォーマンスが重要な開発において使われる。アプリやサービスというよりは、それらを作るためのライブラリ、プラットフォームなどを作るときに使われることが多い。Web系の会社でいうとGoogleなどは主にC++を使っている。
基本的には初心者が触る必要はない。競技プログラミングを極めたいとかならC++からはじめてもいいかもしれない。
このランキングの中で唯一、日本人によって作られた言語。作者のまつもとさんは世界的有名人である。ちなみに島根県出身、在住。
プログラミングを楽しくすることがモットーらしく、確かに書き味は良い。また作者が日本人なこともあってか日本語情報が多く、情報収集という点ではとてもやりやすい。
Ruby on RailsというWebサービスを作るためのフレームワークが世界的に大ヒットしたため、必然的にRubyの知名度も上昇した。少し前まで日本のWeb系スタートアップは猫も杓子もRuby on Railsといった様相であった。今は少し落ち着いたようだが今も人気は根強く、Web系プログラミングスクール等ではだいたいRuby on Railsを教えているとかいないとか。
Webに興味があるのならRubyから始めるのが一番無難な選択肢と言える…のか?まあ悪くはないと思う。今でも需要は多い。スクールに行きたいのであれば黙ってスクールのカリキュラムに従いRailsをやりましょう。
これは他の言語とは毛色の違う言語である。というかCSSはプログラミング言語と呼んでいいのだろうか?
CSSはHTMLを装飾するためのものである。字に色をつけたり、背景を変えたり、レイアウトやサイズを変えたりするのは基本的にCSSの役割である。
すごく大雑把にいうと、HTMLで表示する内容(文章や画像)を定義し、CSSでその見た目を整え、JavaScriptで動きをつける。というのがWebサービスの”見た目”を作るやり方である。
なので、Webに興味があるのであればある程度はCSSの知識が必要である。が、これ単独で学ぶようなものではない。Webサービスを作る時についでに調べて少しずつ覚えていけば良い。
TypeScriptは比較的新しい言語で、JavaScriptをさらに拡張したものである。Microsoftによって開発されている。
プログラムにはデータの型(Type)というものがある。例えば「1」や「2」は数値型、「あいうえお」は文字列型といった具合である。大まかに言うと、この「型」に対して厳しい言語は型チェックによりバグの混入を防ぎやすいがプログラムを書くのが大変、というかコード量が多くなる。型が緩い言語はサクサクかけるし短く書けるがバグを生みやすくプログラマの力量が問われる。ランキングの中だとJavaScript, Python, PHP, Ruby, Perlあたりは緩く、Java, C++, C, Swift, Go, Kotlinあたりは厳しい。
そんな中、世で広く使われているJavaScriptの型チェックが緩すぎるのでもっとちゃんと型をつけたい、そんな要望を叶えるのがTypeScriptである。基本的にJavaScriptを理解している人間が使うべき上級者向け言語というのが現状なので、初心者が始めるには適していない。
ただしこの先主流になっていく可能性は大いにあるので、どこかのタイミングで勉強してみても損はしないと思う。
C言語は基本的にOSを作るための言語である。OSというのはWindowsとかmacOSとかLinuxといったもので、マシンを動かすための基盤となるソフトウェアである。AndroidスマホにはAndroid(という名のOS), iPhoneにはiOSが載っている。コンピュータは基本的にOSがあって初めて動かすことができ、OSが提供する機能を使ってブラウザやスマホアプリなどを動かせるのである。
というわけで、初心者が学んで実用的なものではない。ただしC言語というのは世の中の様々なものの基盤になっており、他言語の文法もC言語から拝借しているものが多い。例えばC言語をある程度勉強していればJavaやPHPなどはなんとなく雰囲気で書けてしまったりする。
そういうわけで、コンピュータサイエンスをこれからちゃんと学んでいきたいという人(大学生とか)はC言語から始めるのもいいと思う。ちなみに筆者は初めて書いた言語はCであるが、意味が理解できるまでに2年かかった。才能がないとこうなるので注意。
SwiftはAppleによって作られたAppleのための言語である。iOSアプリ(iPhoneアプリと言い換えても良い)を作るためだけに存在している。
言語自体は他と比べて新しいため文法や機能がイケてる雰囲気があるので基本的にはいいのだが、iOSアプリ以外で使っている人は多分世界で5人くらいしかいないと思う。なのでiOSアプリに興味がない人はやめておきましょう。iOSアプリを作りたいあなたは他に選択肢はない。Swiftをやりなさい。
Swiftが生まれる前はiOSアプリを書くためにObjective-Cが必要だったため、多くの人がこの言語を使っていた。が、今はSwiftがあるので、古くからあるObjective-C製アプリをメンテナンスする時以外に使う機会はない。名前すら覚える必要がないので存在を忘れてしまって構わないが、これだけ順位が高いということは多くの企業がいまだにObjective-Cで開発し続けているということであり、ニッチな需要はこれからも残るのかもしれない。
Scalaは関数型言語と呼ばれる言語の一つ。Javaの親戚みたいなものなのでJavaとの連携が容易であり、上手く使えば性能も出るしコード量も少ないしバグも少なくて最高、な感じらしい。が、その分難易度が非常に高いので初心者が手を出すものでは絶対にない。どんなに早くても他に二つは言語を覚えてから勉強しましょう。Javaを覚えてからやるのがベター。
正直ほとんど書いたことがないのでよくわからないが、ビッグデータというワードが流行りだした頃はデータ解析用途でかなり流行っていた。その後機械学習やAIブームが来て、今でも現役で使われてはいるがPythonがどんどん勢力を拡大しているので少し目立たなくなってきた、というのが個人的な印象である。まあプログラミング初心者が最初にやるようなものではないことだけは確かである。
Go言語は比較的新しいGoogle製のプログラミング言語で、Googleのように巨大なシステムでの使用を目的に作られたものである。しかし実際には様々な企業が利用しており今一番勢いのある言語と言ってもかもしれない。
他のプログラミング言語の良い点や悪い点を参考に設計されており、実行速度の速さと生産性(プログラムの書きやすさ、読みやすさ)を両立できるような言語になっている。ただし、機能を増やすのではなく本当に重要な機能だけに絞るという思想があるようで、他の言語に慣れていると機能の少なさに不便を感じるかもしれない。
学習コストが低いという点では最初に学ぶ言語として適しているかもしれないが、GoだけでWebサービス等をサクッと作れるのかというと微妙なので、アウトプットを出しにくいというのはあるかもしれない。
シェルというのはテレビなんかでハッカー的な人間がPCを開いて謎の黒い画面に白い文字を打ち込んだりするアレである。説明としては正確ではないがまあ大体そんなもんである。何が言いたいかというと初心者が最初に学ぶとかそういうものではない。しかし実際に開発の仕事をやるとシェルの知識はあったほうがいいし、シェルに多少詳しくなるとPC上でテキスト操作をしたりファイルをいじったりというのが便利にできるようになる。ただし(通常は)極める必要はない。
Shellと言っても実際にはbash, csh, tcsh, zshなど色々あるのだがそれらをひとまとめにしてShellとなっているようだ。
PowerShellは上のShellの親戚みたいなもので、ShellがMacやLinuxで動くのに対しPowerShellはWindowsで動く。そんだけである。あと正直あまり知らない。
ランキングの中ではかなり昔からある言語で、サーバーと呼ばれるマシンには大体Perlが入っている。そのくらい市民権を得た超有名言語で、C言語やC++で書くほどでもない小さなプログラムはとりあえずPerlで書く、というくらいには広く使われていた。インターネット初期はほとんどのWebサイトはPerlで書かれていたとかいないとか。PHPなどの登場はその後である。
今でも広く使われてはいるが、RubyやPythonがPerlの後継的な位置付けであるため、初心者が新しくPerlを学ぶメリットというのはあまり思い浮かばない。何か特定の目的があるのであればいいと思う。
Kotlinは簡単に言えばBetter Javaである。Javaをもうちょっといい感じに書きたいという気持ちで作られた言語で、Scalaと同じくJavaの親戚のようなものである。
ランキングの中ではSwiftと並んでかなり新しい部類。AndroidアプリをKotlinで書けるようになったことがきっかけで人気が爆発的に上昇、今ではWebの開発にも使われていたりする。
とは言えまだまだ新参者といった感じで、ドキュメントなどの情報も他の言語に比べると物足りないので初心者には厳しいかもしれない。
言語自体はとてもいい感じなので、もう少しコミュニティが成熟してくれば最初に学ぶ言語の選択肢として有力になるかもしれない。
HaskellはScalaと同じく関数型言語である。ScalaがJava的な書き方でも動くの対し、Haskellは「純粋関数型言語」と呼ばれ、ランキング中の他の言語とは一線を画した書き方になる。どう考えても初心者にはオススメしない。少なくとも他に二つは言語をマスターしてからやりましょう。
なんとなくWebに興味がありそうならJavaScriptかRubyもしくはPHP、Androidアプリに興味があればJava、iPhoneアプリに興味があればSwift、AIやデータ分析に興味があればPython、3Dゲーム開発に興味があればC#。この辺りをやりましょう。
特に目的がないのであればフィーリングで選んで大丈夫ですが、やめておくべき言語というのはあるのでその辺だけ参考にしてもらえれば。
なお筆者はただのヘボプログラマであり、大好きな記事(http://www.mwsoft.jp/column/program_top10.html) の現代版かつより初心者向けなものを書いてみたいと思ってこの記事を書きなぐった次第である。あまり真に受けないよーに。
今VBAでExcelとか触ってるならPythonでSelenium使ってWebシステムの自動化や、PyAutoGUIで普通のアプリの自動化とかやってみて欲しい
Pythonは少し癖があるけど難しい言語ではないし(VBAとはかなり毛色が違うとは思う)、ちょっと手間かかるけどPyCharmとかVSCodeとかの環境整えて補完やテストやデバッグやバージョン管理のやり方覚えると、VBAよりもイライラが驚くほど減ると思う
あるいは、プログラミングは自動化が好きな人と道具的なツールアプリを作るのが好きな人と自己表現が好きな人がいるように思えて(あとゲーム作り好き)、自動化が好きな人とツールアプリを作るのが好きな人は結構好みが似ていると思うから、PCのソフトを作るならC#+VisualStudio、iOS/AndroidのソフトならSwift/Kotlin、WebアプリならJavaScript(と今ならVueとか?よく知らない)とかを覚えると面白いかもしれない
自動化で転職するのは難しい気がするけれど(事務系の資格持ちとかならスキルとして強いと思う)、アプリ開発ならかなり求人多いし、零細が多いから年収気にしなければ高卒でも就職は出来ると思う
コロナ自粛で勉強中。以前買ったHaskell本を読み直している。落ち着いて読めば結構理解できる。
https://gihyo.jp/book/2016/978-4-7741-8390-9
現場の方々に向け,関数プログラミングのエッセンスを厳選解説した入門書。
関数型言語Haskellを用い,基本から,Java 8/C/C++/Python/JavaScript/Rubyをはじめ各種命令型言語との比較,オススメの開発/設計テクニック等を平易に解説。
改訂版ではGlasgow Haskell Compiler 8ならびに新機構のStackage/stackへの全面対応,関数型言語由来の他言語の機能解説章(第8章)の新設(Swift/Go/Rust/C#等の例も紹介)をはじめ実践開発に役立つ解説を増強し,関数型言語でも命令型言語でも活かせる「使える基本」を凝縮しました。
このプログラミング言語はMtGだと多分この色の組み合わせだろう。
みたいなのをまとめたら次のようになった(TIOBEのランキング順トップ50)。
後半は知らない言語もあって怪しいが、おおよそこのようになると思われる。
※改めて見てみると何箇所か違和感があったので最初の版からちょっとだけ修正した。
順位 | プログラミング言語 | 色の組み合わせ | 内訳 |
---|---|---|---|
1 | Java | アブザン | 白黒緑 |
2 | C | ゴルガリ | 黒緑 |
3 | Python | ティムール | 緑青赤 |
4 | C++ | ジャンド | 黒赤緑 |
5 | C# | バント | 緑白青 |
6 | Visual Basic .NET | セレズニア | 緑白 |
7 | JavaScript | ボロス | 赤白 |
8 | PHP | グルール | 赤緑 |
9 | SQL | 無色 | |
10 | Swift | 4C(緑欠色) | 白青黒赤 |
11 | Go | ゴルガリ | 黒緑 |
12 | Assembly language | 黒単 | 黒 |
13 | R | イゼット | 青赤 |
14 | D | グリクシス | 青黒赤 |
15 | Ruby | 赤単 | 赤 |
16 | MATLAB | イゼット | 青赤 |
17 | PL/SQL | 無色 | |
18 | Delphi/Object Pascal | アゾリウス | 白青 |
19 | Perl | ラクドス | 黒赤 |
20 | Objective-C | エスパー | 白青黒 |
21 | SAS | アゾリウス | 白青 |
22 | Visual Basic | 緑単 | 緑 |
23 | Dart | ジェスカイ | 青赤白 |
24 | Scratch | 白単 | 白 |
25 | Scala | 5C | 白青黒赤緑 |
26 | Groovy | ナヤ | 赤緑白 |
27 | Transact-SQL | 無色 | |
28 | F# | アゾリウス | 白青 |
29 | Rust | マルドゥ | 赤白黒 |
30 | COBOL | オルゾフ | 白黒 |
31 | ABAP | アゾリウス | 白青 |
32 | Lisp | シミック | 緑青 |
33 | Kotlin | 4C(緑欠色) | 白青黒赤 |
34 | Logo | 白単 | 白 |
35 | RPG | ディミーア | 青黒 |
36 | Lua | 緑単 | 緑 |
37 | Fortran | スゥルタイ | 黒緑青 |
38 | PowerShell | ジェスカイ | 青赤白 |
39 | Ada | ディミーア | 青黒 |
40 | LabVIEW | ディミーア | 青黒 |
41 | Erlang | 緑単 | 緑 |
42 | Julia | イゼット | 青赤 |
43 | ML | 青単 | 青 |
44 | Scheme | シミック | 緑青 |
45 | Haskell | エスパー | 白青黒 |
46 | TypeScript | ジェスカイ | 青赤白 |
47 | OpenEdge ABL | アゾリウス | 白青 |
48 | LiveCode | アゾリウス | 白青 |
49 | PostScript | 無色 | |
50 | ActionScript | ジェスカイ | 青赤白 |
見返してみるとおおよそ次のルールに従って決めているような気がした。
緑の判定があやふやな気が若干しないでもない…
色 | イメージ |
---|---|
白 | 高レイヤ、初心者向け |
青 | 浮世離れ、ベンダー |
黒 | 低レイヤ、黒魔術 |
赤 | 速い、先進的 |
緑 | 基盤、グルー |
無色 | 道具 |
C言語:
Linuxとかサーバープログラムの内部で使われることが多いけど、
C++:
実行速度が超高速なのと複雑怪奇な構文が特徴だよ!
ゲームプログラミングや動画編集ソフトといった高いパフォーマンスが
求められるシステムで使われるイメージがあるから、最初は近づかなくても良さそうだね!
C#:
Microsoft にズブズブな印象が強いのがちょっと気になっちゃうね!
Java:
Androidアプリとかサーバーアプリ作るのに使えるよ!
最初は近づかないほうが懸命だと思うよ!
Javaの強化版で、Androidアプリとかサーバーアプリ作るのに使うよ!
もしAndroidアプリを作るなら最初にこれを学ぶと良いかも???
iosアプリを作るのに使えるよ!
iosアプリ作ってる時にどうしても触らなきゃいけないときが来るんだよね...。
iosアプリを作るのに使うよ!
もしもiosアプリ作りたいんだったら実質これしか選択肢は無いから覚悟してね?
書きやすい方だから身構えなくても大丈夫だけど、Macが無いと書けないから気をつけて!
PHP:
PHPのお仕事はいっぱいあるからこれが出来ると飯が食えて嬉しいね!
Ruby:
個人的には本当に好きじゃないけど、仕事も人口も多いのが特徴だね!
JavaScript:
環境を整えたり流行を追ったりするのがちょっとだけ面倒くさいけど、
Go:
Googleで開発された言語で、書いてるとドーパミンが出るよ!
僕が大好きな言語なんだけど残念ながら仕事は少ないね、本当に残念だ。
Lua:
ほとんど見かけないのに何故かたまに書かざるを得ない事がある言語だよ!
既存のアプリケーションのプラグインを書く時に強制されたりするかな?
言語自体は単純だから、使う時が来たら覚えるぐらいでいいと思うよ!
Perl:
遥か昔に広く利用されていた言語だよ!
きっと今でもどこかの世界では使われてるんだろうけど、
令和だったら他の言語も学びやすい環境が整ってるから学ばなくて良いかもね!
まつほろひとゆきが作った日本産のコンピューター言語。パールというコンピューター言語を元に作られていてWebサービスを作るためのフレームワークを搭載している。代表的なWebフレームワークはtDiary
C
デニス立地さんがNTTで開発した言語。マルチクスというOSを作成するために作られた。わざと複雑な言語仕様にすることで自分の役職ポジションを守ろうとしていたが、思った以上に世の中の人間はこの言語を使いこなしてしまい、超有名な言語になってしまった。スーファミのゲーム制作にさえ使えなほどの超高級言語
おまじないと呼ばれるプリプロセッサでの書き換えが必要な謎の文字列を埋め込む必要があったり、言語仕様に曖昧な部分も多く、同じソースなのに実行環境によって動きが異なる、欠陥言語である。(32bit向けプログラムが64bit環境で動作しないなど)
オブジェクト指向言語。すべてのオブジェクト指向言語はこいつから始まった。
主にWindows上で動作するゲームを作るための言語。今ではUnityとか色々なゲーム開発の環境とかあるが、結局はパフォーマンスとか考えたらC++使うことになる。
代表作はOpenGL、DirectX、Window10、LibreOffice など
JavaScriptから派生した言語。読み方は(ジャワ。ジャワ島のジャワ。)。もともとはOracleの創始者の博士が趣味で作成して、現在のOracleデータベースの基礎となるテクノロジー。アプレットという実行するための専用プログラムをインストールしないと、Javaで作ったプログラム(.classファイル)は動作しない。マークはコーヒーだと思われがちだが、紅茶(ジャワティー)である。
アンドロイドOSを作成するためにも使われており、アンドロイドのOSカーネルはJavaで制御されている。そのため定期的にGCが走るので、アンドロイド端末は定期的に動作を停止することがある(いわゆるプチフリーズ)。
対策するためにはGC戦略を見直してヒープ領域のサイズやメモリに乗せるキャッシュのサイズなどの調整が必要であるが、げんざいのGoogleにはこれらを調整する人員はすでにいない。
このように業務用データベースから携帯電話まで幅広く使われているので、Javaの技術があっても市場価値は殆どないと言われている。(みんな使えて当たり前)
晩年政界への進出を目論んでいた松下幸之助が、未来社会を見据えて開発した言語。主にWebアプリケーションを作成するために使われている。PはパナソニックのP。を略してPHP
かんたんにシェルコマンドを実行できたり、クエリストリングに代入した値を直接グローバルで評価できたりするなど、洗練されていてとても便利な言語である。
HTMLやメール本文の中にもPHPの処理を書き込むことができる。
この世のすべてのサーバーに実行環境が存在するので、PHPのコードさえあれば、コンパイルも不要でどのような環境でも動作する。
C言語の100倍生産性が高く、Wikipedia、Facebook、Slackなどの超一流のサイトやサービスで大量のアクセスを捌いている。
WardPressと呼ばれるフレームワーク(全世界のWebサイトの3分の1以上はWardPressで作成されている)を作成している言語であり、この言語なくして今のWebは存在していない。
データベースとも親和性がある、などと言われることもあるが特に根拠はない。
韓国人棋士を倒したAIに特化したプログラム言語。Googleが開発しており、もともとはDartという名前だったが、汚いという理由でなまえがGoに変わった。そのため現在はDartという言語は存在していない。
AIに特化しているというだけあり、低レイヤむけの実行ファイルを作成する必要があるため、コンパイルが必要ではあるが、だいたいどの環境向けのバイナリも生成することができる。
デフォルトでディープラーニングを使うための機能を持っていたり、プログラムを並列実行するための機能が備わっているので、コア数の多い環境で高速に動くプログラムを作りやすい。
JavaScript
Javaの元になったプロトタイプベースのオブジェクト指向言語。読み方はジャワエスクリプト。W3Mというブラウザの上でインタラクティブにWebサイトを動かすために作成された言語。もともとブラウザの上で動くための言語だったが、後にSafariブラウザに搭載されていたV6エンジンというJavaScript言語の実行エンジンを分離してNPMというJavaScriptを直接実行できる環境となった。
それ以降JavaScriptはブラウザ以外にVRゴーグルの中などで動くようになった。
並列プログラミングが不可能な作りのため、コールバックを多用して、スパゲッティーコードを量産することができる。
NPMを使う奴らは、JSがブラウザ環境で使われる言語であることを全然考えてないため、WebpackとかBabelといった謎の開発環境をシコシコ積み上げている。いつかその塔は爆発し崩れ去ることになるであろう。
Javaと同じくJavaScriptから派生した言語。Javaとは互換性は無いが、JavaScriptの上位互換があるため、JavaScriptのコードをそのまま実行することができる。
$マークから始まる命令のみで構成されているとても縁起のいいプログラミング言語。おもにパララックスなどを実現するために利用されていて、WardPressなどのドライバとしても使われている。
JavaScriptの改良版であり、現在JavaScriptと言われているプログラム言語の99%はjQueryのことである。そのため現在慣習的にJavaScriptと呼ばれているもののほぼ全てはjQueryである。
jQueryを覚えればJavaScriptは覚えなくても良い。などと言われるが、正確にはjQueryを覚えた頃にはJavaScriptも覚えている。というのが正確である。
JavaやjQueryなどと同じくJavaScriptから派生した言語。Microsoftが開発した関数型言語。開発時はF#(エフシャープ)というコードネームだった。
型に特化した言語であり、Microsoft製のVSCodeというIDE環境でしか開発、実行が出来ない。(ただしMacやLinux上でも動作可能)
TypeScriptを動かすにはサーバーにVSCodeもインストールする必要があり、言語やIDEのバージョンアップも多いため、メンテナスンスが困難である。
前進となるObjectiv-Cという言語が、気持ち悪い構文であったため開発者が不足しており、このままではOSのメンテナンスもままならない、という理由で最初のバージョンがわずか14日間で作られた言語。
eraseToAnyPublisher()で全部AnyPublisherにして使うのが作法みたいだけどそれってどうなの。
それRxで言うasObservable()でしょ?
そしてAnyPublisherだけじゃそれが1発飛んで終わるのか継続的にポンポン飛んでくるのか型からじゃ分からないでしょ。
その点RxはObservableをはじめ、SingleやMaybeやCompletableを普通に取り回してるよね。
っていうか作法って何よ。いや作法は俺が言ってるだけだけど、ちゃんとした理由なくない?例えばFuture作ったらそのまま返せば良いじゃないですか。どうして駄目なんスか。
Rxに比べたCombineの利点ってエラーをジェネリクスで定義できるってとこだけじゃない?SwiftUIとの連携は別として。
Combineの方が速いらしいけど...そもそもRxSwiftで速度が問題になることなんてないし。
ああもう、こんなこと言ってたらeraseToAnyPublisher()自体にも腹立ってきたわ。なんであんな長ったらしいもんがそこら中に溢れてんねん。
モバイルアプリの実装と言えば主力はKotlin、Swift(Objective-C)だけど、簡単な作りであればcordovaをベースにフロントエンド開発ライクに進められる。
そもそものライブラリ選定には関わっていなかったものの、便利と思って使った結果後悔した思い出のお話。
Angular, Vueで実装していたけどレンダリング系に属するイベント盛りだくさんの場合、
結果的にネイティブ実装したほうが楽だしレンダリングの面で有利。
そもそもcordovaだからと言ってネイティブの知識がいらないわけじゃない。
標準サポートしているプラグイン群でできることは限られてくるし、そのまま突き進むならネイティブ実装の知識は必要になる。
これは当たり前だけど…
JSのパッケージングだったりCSSビルドが組めないとなると逆にコスト高。
そもそもNode.jsのビルドを根本的に理解してない奴がプロジェクトを作ったせいで
JSのパッケージビルドもされない、jQueryを突っ込まれるなどひと悶着あった。
3年前くらいだったけど既にTypeScriptも出てたし、何故そうしなかったのか理解できない。
結果ロードが激重になった。そりゃそうだ、minifiedされてないのだから。
用法用量を正しく守って使わないと、後で面倒になる好例だった。
大概は専用プラットフォーム上でビルドしていくがこれがくせ者。
ブラウザIDE(という名のただのテキストエディタ)が使えるけどそもそも構成管理できない。
ローカルビルドと乖離するし、ブランチすら切れないのだから本人以外は触れないシロモノになってくる。
別端末でビルドしようとすると同名の新しいプロジェクトが作成される。
ここまでくるともう触りたくなくなる。ただ、触らないわけにはいかないので何とか整合が取れる状況にした。
さらに言えば、ビルドが終わってステータスが見れるが、内訳が見れるのはそのタイミングだけ。
多分、海外で公開したプラットフォームをそのまま持ってきてるんだと推測しているが流石にこれは悪意しか感じない。
ただのCLIをバックグラウンドで実行するだけのGUIラッパーと化している。
かといってlintを掛けてくれるわけでも無し。
個人的に要らないし今後は使わない。
突き当たったのはWebSocketを使うシーンが出てきたとき。
ライブラリで何とかする方向で進めたかったけどそもそもwebpackビルドにすら対応していなかった。
件のAngularベースの場合はもっとひどくてクソラッパーを作りやがったせいで依存度が激高になった。
ちなみにネイティブはそれぞれにサポートするライブラリが出ていて、最新バージョンに向けてきちんとメンテナンスされている。
根本的にiOS側の実装でレスポンシブ的なレイアウトが作りにくい現状を鑑みて、
WEBベースで新商品などの通知をしたい、残りは情報の閲覧のみでSPA構成的なシロモノで作りたい。
こんな需要には使ってもいいんじゃないかと思う。相当なレアケースだけれども。
いいところは確かにあって、CSSでデザインの調整が効くところは大いに評価できる。
これがまたネイティブ実装だと面倒。特にiOS。お前はダメだ。
結局進めていくとネイティブ実装の知識を求められるのだから、ネイティブで実装したほうが良くね?と言ったところ。
ユースケース的に超単純要件でアプリを作りたい、かつ、ユーザに何かpush通知的なやつを入れたいって場合は使ってもいい気がする。
日本は、世界でもトップクラスの情弱国家・情弱民族だもんなあ。
若者さんたちは「21世紀にもなって工場勤務はちょっと・・」とか言っちゃって
渋谷とか六本木の雑居ビルでグズグズとタムロしてる「IT企業(笑)」ばかり。
テストコードもろくに書けないくせに、意識だけは無駄に高そうに、SwiftでiOS専用のゴミアプリばかり作っちゃってさ。
そんでMS・GAFA・BATその他世界の企業から食われてさ。
「なんで日本の大企業はGAFAレベルの会社作ってくれないの?俺ら有能なエンジニアはずっと和製GAFAを待ってるのに」ってさ。