そろそろメインの言語を別にしようかな
◆ そういえばちょうど今月から元号が変わって令和だしね
◆ キリがいいしね
◆ キリがいいしね
最近 Vivaldi をアップデートしたら Chrome バージョンが 73 になってて Vivaldi でしか使ってなかったページでもこの仕様変更の影響が出てました
流石に面倒なのと見れなくはないのでもう放置です
ホント余計なことばかりしてくれます
こういう Google の勝手に付き合うのも疲れますし JavaScript では ES2015 からはいろいろ機能がどんどん入ってますが全部が全部歓迎ってものでもないです
例えばこれとか
PHP みたいな元が対して好きでもないものだと アップデートの変更をほぼ追ってなくて 知らない構文を見て 「そんな機能増えてたんだー」 と思うくらいで 気に入らない機能が増えてても「あーそうなんだー」くらいなものです
JavaScript の場合は基本機能がかなり私好みなものだったこともあって 変な仕様にしてほしくないという思いが強いんですよね
ブラウザで動いていつでもすぐに使える手軽さ (使い始めた頃は)すごくシンプルで最低限だけの機能かつ自由度の高い拡張性 さらにわかりやすい仕組みのプロトタイプベースのオブジェクト指向言語 (クラスベースのオブジェクト指向が好きじゃなくて他の探してた頃に見つけたので思い入れ度も高いです) と良いところ揃いです
でも そろそろ別の言語をメインにしていこうかなと思ってます
ブラウザを日常的に使う以上 JavaScript を捨てるのは無理ですが 常に最新を追うわけでもなく 変な変更があっても「そんな変わってたんだー」と言えるくらいを目指します
ただ 候補となる言語にピンとくるのがないんですよね
それくらい JavaScript が私の好みに合いすぎていました
ちょっとしたことするときには楽に書けるけど アロー関数がなくて function 必須(最近追加予定があるとか聞いた気もする) だったり 外側スコープ参照できなかったり 引数の順番が覚えにくかったりメインとして使うほどじゃない
むしろ代替見つけて使わない方向にしたい
配列とかアロー関数とか PHP で不便だった部分が改良されてる
最近 php 互換捨てたし良くなりそうと勝手に期待してる
まだまともに使ってないのでデメリットはほぼ不明
動的言語が好きなので型周りが不便に感じない程度に緩ければいいけど C# とかみたいなレベルに堅いとなるとちょっとこまる
PHP 代替としてありな気もするけどちょっとしたことするなら PHP のほうが短く書けたりもする
JupyterNotebook がブラウザで使えてかなり便利なので優先度高い候補
ブラウザのコンソールで気軽にコードを実行できる JavaScript の良い部分が Python でもできるようになる
あくまでページの一つなので 事前にサーバを起動しておいて JuputerNotebook のページを開く必要あり
JavaScript みたいにどのページでも良くて開いてるページのデータをサンプルとして使える便利さまではない
JupyterNotebook はインストール必要なので事前準備が必要なのがネック
通常の REPL なら Python は Linux だと基本デフォルトで入ってる言語なので JavaScript よりもどこでも動くとも言える
言語的には不満点もあるけど PHP に比べたらどうということはないレベル
次メジャーアップデートでいろいろ改善するみたいな噂は聞いたけど別にいいや感がでてきた
日本製で日本語情報が(たぶん)多いくらいしかメリットなさそう
Rails が有名だけど 個人的にあれの方針があんまり好きじゃないので そんなに使う理由もない感じ
昔は Ruby のみのツールで gem 必要だったものも今じゃたいてい npm とかにある
昔の JavaScript 風でシンプルな機能で拡張性も高いプロトタイプベースのオブジェクト指向言語
良いところが多いけどデフォで機能少なすぎるデメリットも同じ
ライブラリが少ないのでメインとして使うにはできないことが多すぎる気がする
C と組み合わせられるメリットがあるので C もメインで使ってるならありだけど C はほぼ使わないからメリット薄め
昔はスクリプト最速みたいなこと言われてたけど今もそうなのかな
VSCode がメインエディタになってきたのでそのメリットを最大限享受するならこれ
だけど型チェックや記法が求めてるタイプじゃない
ビルド時じゃなくて 動的に追加される素の JavaScript から呼び出したときの実行時チェックがほしいし型指定は elm とかみたいに外側に書きたい
あと JavaScript から対して離れてない
メインにするほどじゃなく JavaScript の framework の一つレベルにしかならなそう
あと Haskell の練習
それも稀にしか使わないから毎回調べながら
ここまで厳しい関数型だと慣れてもスラスラ書いていける気がしない
ロジックをいろいろ考えて最適化した結果がコードになるようなものでちょっとしたことするのに向かない気がする
メインは難しい
Handlebars のヘルパとか WebAssembly とかで似たものが使われたりする
S 式?をベースにして使われてるものはあちこちにあるし
簡単に処理内容とデータを持てる構造を作るときに似たような構文のものを作って使ったりはする
ただ 簡単な計算や条件を書いたりリスト処理はできてもそれ止まりで これだけでなんでもできるというのは無理だと思う
ちょっとしたものなら C# より短く書ける
シンプルに関数組み合わせて使う分にはこっちのほうがいいけど .NET Framework の class/interface/namespace など入ってくると複雑で C# のほうが見やすくわかりやすいと思う
また WPF など GUI 系を使うとなると C# のほうが向いてそうかな
ただ組み合わせられるのでロジック部分と言語分けるのも良さそう
VisualStudio あれば使いやすいけど VisualStudio なしはかなりつらい
書くこと多いし補完で型見れないと無理
メインにするなら使う PC 全部にインストールして常時起動はしたいけど インストールに数時間かかるし重いしで VisualStudio を常時起動なんて無茶
VSCode もわりと使えるけど VisualStudio に比べると足りてない部分も多い
他言語はコンソールアプリ前提だし コンソールアプリのみなら VSCode でありかも
GUI エディタは流石に無理そう
Windows 限定なのは dotnet core を使えば Linux でも動くし .NET Framework 5.0 では統合されるみたいなことを聞いたので 一応候補度は高め
使ってみて毎回苦労してる感じ(特に文字列あたり)
IDE あればいいけどただのエディタだとコンパイル試してエラーが山のように出る
エラーメッセージが丁寧だから助かるけどやっぱり C#+VisualStudio 的なサポートがある IDE がほしいと思う
C/C++ の代替になるものなのでスクリプト系言語好きで C/C++ はあんまり好きじゃない人が使うものでもないのかもしれない
でもネイティブな exe とか作る必要があるときもあるので C/C++ 代わりに使えるようにはしたい
最近生きてるのかな
これも C/C++ 代替で C/C++ よりは書きやすかった(たぶん)
いまなら Rust でいいかなと思う
一部で人気みたいだけどなぜか特に興味ない
これなら Rust でいいかな
昔過ぎてあんまり覚えてない
C++ も C をちょっと便利にしたくらいで C++ らしい使い方はしてなかった
途中で D に行ったりもっと楽に使える言語探して使わなくなった
これなら Rust で(r
C 系とも関数型系とも違って独特な書き方
使いやすいとは言えなかった
最近だと Python で十分じゃない?と思ってる
素の状態だと R のほうがいいかもしれないけど Python のほうがライブラリに高機能なものが多い
numpy/pandas と pyplot あれば R でやってたことはだいたいできそう
書き方が R の癖のあるのから C 系に近いものになった
ほんのちょっとかる~く使った感じだと Python よりよいと思えるのはみあたらなかった
Python は基本は何でもできる用途でライブラリを使えば科学計算も向いてるもの
こっちはデフォで科学計算向けみたいだし 普段そういう用途で使うことはあまりないのでメインに向かなそう
Excel でマクロ使うほどのことするなら R/Python などでいいし
具体的な違いが言えるほど使ってないけど後発の Kotlin のほうがもっと緩めで良いところを取り込んでる感じがする
あと Android 開発にも Kotlin が向いてるし JVM 系なら Kotlin でいい気がしてきてる
なんとなく良さそうに思ってるのでわりと候補度高い
ざっと見た感じではわざわざ言語作るほどと思えないくらいの特徴なさ
元が JavaScript の置き換え狙ってただけあって JavaScript に近くて JavaScript に型つけた感じ
TypeScript と被りそう
これにするメリットも見当たらず 使い始める壁は低いけどわざわざ乗り越える必要もない感じ
だけど Flutter ではこれが必要らしいので Flutter 使うならありなのかも
モバイルするなら Xamarin/ReactNative/KotlinNative/Cordova などがあるけどこの中だと Flutter が興味度高い
**:
こう見ると Python かな?
Hack や Kotlin は期待値が高いだけでほぼ使ってないから使ってやっぱり違うってなる可能性も高めです
最近は PC ユーザが減ってスマホ・タブレットが多いらしいし モバイル手を出すのもいいけど自分があんまり使わないのでそんなに乗り気がしないです
流石に面倒なのと見れなくはないのでもう放置です
ホント余計なことばかりしてくれます
こういう Google の勝手に付き合うのも疲れますし JavaScript では ES2015 からはいろいろ機能がどんどん入ってますが全部が全部歓迎ってものでもないです
例えばこれとか
PHP みたいな元が対して好きでもないものだと アップデートの変更をほぼ追ってなくて 知らない構文を見て 「そんな機能増えてたんだー」 と思うくらいで 気に入らない機能が増えてても「あーそうなんだー」くらいなものです
JavaScript の場合は基本機能がかなり私好みなものだったこともあって 変な仕様にしてほしくないという思いが強いんですよね
ブラウザで動いていつでもすぐに使える手軽さ (使い始めた頃は)すごくシンプルで最低限だけの機能かつ自由度の高い拡張性 さらにわかりやすい仕組みのプロトタイプベースのオブジェクト指向言語 (クラスベースのオブジェクト指向が好きじゃなくて他の探してた頃に見つけたので思い入れ度も高いです) と良いところ揃いです
でも そろそろ別の言語をメインにしていこうかなと思ってます
ブラウザを日常的に使う以上 JavaScript を捨てるのは無理ですが 常に最新を追うわけでもなく 変な変更があっても「そんな変わってたんだー」と言えるくらいを目指します
ただ 候補となる言語にピンとくるのがないんですよね
それくらい JavaScript が私の好みに合いすぎていました
候補
「*」 の数が候補度ですPHP (*)
JavaScript より前に使っててたまに使うけど使いづらさが目立つちょっとしたことするときには楽に書けるけど アロー関数がなくて function 必須(最近追加予定があるとか聞いた気もする) だったり 外側スコープ参照できなかったり 引数の順番が覚えにくかったりメインとして使うほどじゃない
むしろ代替見つけて使わない方向にしたい
Hack (***)
php を改良したもの配列とかアロー関数とか PHP で不便だった部分が改良されてる
最近 php 互換捨てたし良くなりそうと勝手に期待してる
まだまともに使ってないのでデメリットはほぼ不明
動的言語が好きなので型周りが不便に感じない程度に緩ければいいけど C# とかみたいなレベルに堅いとなるとちょっとこまる
Python (***)
もともと shellscript が意味不明過ぎて代替に使ってたくらいPHP 代替としてありな気もするけどちょっとしたことするなら PHP のほうが短く書けたりもする
JupyterNotebook がブラウザで使えてかなり便利なので優先度高い候補
ブラウザのコンソールで気軽にコードを実行できる JavaScript の良い部分が Python でもできるようになる
あくまでページの一つなので 事前にサーバを起動しておいて JuputerNotebook のページを開く必要あり
JavaScript みたいにどのページでも良くて開いてるページのデータをサンプルとして使える便利さまではない
JupyterNotebook はインストール必要なので事前準備が必要なのがネック
通常の REPL なら Python は Linux だと基本デフォルトで入ってる言語なので JavaScript よりもどこでも動くとも言える
言語的には不満点もあるけど PHP に比べたらどうということはないレベル
Ruby (*)
いつか使ってみるかと思いつつ使わないうちに人気と需要も落ちていった……次メジャーアップデートでいろいろ改善するみたいな噂は聞いたけど別にいいや感がでてきた
日本製で日本語情報が(たぶん)多いくらいしかメリットなさそう
Rails が有名だけど 個人的にあれの方針があんまり好きじゃないので そんなに使う理由もない感じ
昔は Ruby のみのツールで gem 必要だったものも今じゃたいてい npm とかにある
Lua (**)
プラグインなどに使われてたりする言語なので稀に使ってる昔の JavaScript 風でシンプルな機能で拡張性も高いプロトタイプベースのオブジェクト指向言語
良いところが多いけどデフォで機能少なすぎるデメリットも同じ
ライブラリが少ないのでメインとして使うにはできないことが多すぎる気がする
C と組み合わせられるメリットがあるので C もメインで使ってるならありだけど C はほぼ使わないからメリット薄め
昔はスクリプト最速みたいなこと言われてたけど今もそうなのかな
TypeScript (**)
JavaScript のライブラリが TypeScript なことが多いので読むことは多めVSCode がメインエディタになってきたのでそのメリットを最大限享受するならこれ
だけど型チェックや記法が求めてるタイプじゃない
ビルド時じゃなくて 動的に追加される素の JavaScript から呼び出したときの実行時チェックがほしいし型指定は elm とかみたいに外側に書きたい
あと JavaScript から対して離れてない
Elm (**)
HTML と JavaScript を書かなくていいので JavaScript の代わりならありかもしれないけどできることが制限あって 一部のことをするときは JavaScript でコードを書いてポート?が必要だったはずメインにするほどじゃなく JavaScript の framework の一つレベルにしかならなそう
あと Haskell の練習
Haskell (**)
書けるようになりたいと思いつつ難しくて本当に基本的なことしかできないそれも稀にしか使わないから毎回調べながら
ここまで厳しい関数型だと慣れてもスラスラ書いていける気がしない
ロジックをいろいろ考えて最適化した結果がコードになるようなものでちょっとしたことするのに向かない気がする
メインは難しい
Lisp (**)
書けそうでかけないHandlebars のヘルパとか WebAssembly とかで似たものが使われたりする
S 式?をベースにして使われてるものはあちこちにあるし
簡単に処理内容とデータを持てる構造を作るときに似たような構文のものを作って使ったりはする
ただ 簡単な計算や条件を書いたりリスト処理はできてもそれ止まりで これだけでなんでもできるというのは無理だと思う
F# (***)
.NET なので C# の知識が使い回しできそうちょっとしたものなら C# より短く書ける
シンプルに関数組み合わせて使う分にはこっちのほうがいいけど .NET Framework の class/interface/namespace など入ってくると複雑で C# のほうが見やすくわかりやすいと思う
また WPF など GUI 系を使うとなると C# のほうが向いてそうかな
ただ組み合わせられるのでロジック部分と言語分けるのも良さそう
C# (***)
WinForms/WPF で GUI つくるために一時期使ってたVisualStudio あれば使いやすいけど VisualStudio なしはかなりつらい
書くこと多いし補完で型見れないと無理
メインにするなら使う PC 全部にインストールして常時起動はしたいけど インストールに数時間かかるし重いしで VisualStudio を常時起動なんて無茶
VSCode もわりと使えるけど VisualStudio に比べると足りてない部分も多い
他言語はコンソールアプリ前提だし コンソールアプリのみなら VSCode でありかも
GUI エディタは流石に無理そう
Windows 限定なのは dotnet core を使えば Linux でも動くし .NET Framework 5.0 では統合されるみたいなことを聞いたので 一応候補度は高め
Rust (***)
使える様になりたいとは思いつつも難しめ使ってみて毎回苦労してる感じ(特に文字列あたり)
IDE あればいいけどただのエディタだとコンパイル試してエラーが山のように出る
エラーメッセージが丁寧だから助かるけどやっぱり C#+VisualStudio 的なサポートがある IDE がほしいと思う
C/C++ の代替になるものなのでスクリプト系言語好きで C/C++ はあんまり好きじゃない人が使うものでもないのかもしれない
でもネイティブな exe とか作る必要があるときもあるので C/C++ 代わりに使えるようにはしたい
D (*)
昔少しだけ使ってた最近生きてるのかな
これも C/C++ 代替で C/C++ よりは書きやすかった(たぶん)
いまなら Rust でいいかなと思う
Go (*)
構文が C 系に近いけど少し特殊で分かりづらめ一部で人気みたいだけどなぜか特に興味ない
これなら Rust でいいかな
C/C++ (*)
最初に使った言語昔過ぎてあんまり覚えてない
C++ も C をちょっと便利にしたくらいで C++ らしい使い方はしてなかった
途中で D に行ったりもっと楽に使える言語探して使わなくなった
これなら Rust で(r
R (*)
統計処理っぽいことしてたときに使ってたC 系とも関数型系とも違って独特な書き方
使いやすいとは言えなかった
最近だと Python で十分じゃない?と思ってる
素の状態だと R のほうがいいかもしれないけど Python のほうがライブラリに高機能なものが多い
numpy/pandas と pyplot あれば R でやってたことはだいたいできそう
Julia (**)
R の代替になるとかならないとか書き方が R の癖のあるのから C 系に近いものになった
ほんのちょっとかる~く使った感じだと Python よりよいと思えるのはみあたらなかった
Python は基本は何でもできる用途でライブラリを使えば科学計算も向いてるもの
こっちはデフォで科学計算向けみたいだし 普段そういう用途で使うことはあまりないのでメインに向かなそう
VBA (*)
まぁないよねExcel でマクロ使うほどのことするなら R/Python などでいいし
Scala (**)
JVM 系ではよさそうだけど関数型しすぎてちょっと使いづらそう具体的な違いが言えるほど使ってないけど後発の Kotlin のほうがもっと緩めで良いところを取り込んでる感じがする
あと Android 開発にも Kotlin が向いてるし JVM 系なら Kotlin でいい気がしてきてる
Kotlin (***)
稀に使うものの最低限の機能だけやコピペの修正なので構文はそこまで把握してないなんとなく良さそうに思ってるのでわりと候補度高い
Dart2 (**)
死んでたのに Flutter が出てなんか復活したざっと見た感じではわざわざ言語作るほどと思えないくらいの特徴なさ
元が JavaScript の置き換え狙ってただけあって JavaScript に近くて JavaScript に型つけた感じ
TypeScript と被りそう
これにするメリットも見当たらず 使い始める壁は低いけどわざわざ乗り越える必要もない感じ
だけど Flutter ではこれが必要らしいので Flutter 使うならありなのかも
モバイルするなら Xamarin/ReactNative/KotlinNative/Cordova などがあるけどこの中だと Flutter が興味度高い
まとめ
***:- Hack
- Python
- F#/C#
- Rust
- Kotlin
**:
- Lua
- TypeScript
- Elm
- Haskell
- Lisp
- Julia
- Scala
- Dart2
こう見ると Python かな?
Hack や Kotlin は期待値が高いだけでほぼ使ってないから使ってやっぱり違うってなる可能性も高めです
最近は PC ユーザが減ってスマホ・タブレットが多いらしいし モバイル手を出すのもいいけど自分があんまり使わないのでそんなに乗り気がしないです
COMMENT
コメント一覧 (3)
-
- 2019/05/21 21:50
-
え、GOは無いの?
私は少ししかやってないけど欠点無いわ。exeを簡単に作れるし。
スクリプト言語が良くてJavaScirptが好きだっていうならGOかRUBYがおすすめ。
開発環境はRubyMineとGoLandがおすすめ。 -
-
- 2019/05/21 21:55
-
VisualStudioが重いってしょぼいパソコン使ってるね。
VisualStudio2019でメモリ使用量が4分の1以下になったそうだよ。
-
-
- 2019/05/21 22:03
-
netbeans+Java
delphi(Community エディションは無料)
qt creator c++
は候補に入ってないけどどうですか?
-