
はてなキーワード:nodejsとは
ようやく(ほぼ)すべてが自動化された。
あとはローカルサーバーの起動をスタートアップに設定する(方法をAIに聞いて指示に従う)だけの消化試合。
署名時要求してくるパスワードを自動入力するahkファイルはドキュメントのAutoHotkey配下に置いた。
バッチファイル(make.sign.bat)はデスクトップに置いた。
#Persistent#SingleInstance ignoreSetTitleMatchMode, 2WinWaitActive, pinentrySendInput お前のパスワードSleep 100SendInput {Enter}ExitApp
//run-batch-server.jsconsthttp =require('http');const { exec } =require('child_process');const server =http.createServer((req, res) => { if (req.url === '/ping') { res.writeHead(200); res.end('pong'); } else if (req.url === '/run-batch') { exec('C:\\Users\\you\\Desktop\\makesign.bat', (err) => { res.writeHead(200); res.end(err ? 'Error' : 'OK'); }) ; } else { res.writeHead(404); res.end('Not found'); }});server.listen(12345, () => {console.log('Batch serverrunningathttp://localhost:12345/');});
@echo offsetlocal enabledelayedexpansion::ミリ秒単位のUTC時刻を取得for /f %%a in ('powershell -nologo -command "[int64]::Parse((Get-Date).ToUniversalTime().ToString('yyyyMMddHHmmssfff'))"') doset timestamp=%%a::署名するファイル名set infile=%TEMP%\pgp_input.txtset outfile=%TEMP%\pgp_output.asc:: 以前の出力があれば削除if exist "%outfile%" del "%outfile%"::タイムスタンプを原文として保存echo %timestamp%> "%infile%":signloop::AutoHotkeyでパスフレーズ入力(gpgがパスワード要求するダイアログが出た場合に備える)start "" /b "C:\Users\infini\Documents\AutoHotkey\autopass.ahk"::PGPクリア署名を作成gpg --yes --clearsign --output "%outfile%" "%infile%"::署名が成功していればループを抜けるif exist "%outfile%" (echo [INFO]署名成功goto postprocess) else (echo [WARN]署名失敗、再試行します… timeout /t 1> nulgotosignloop):postprocess::PowerShellで余計な改行なしに |< をつけてクリップボードにコピーpowershell -nologo -command ^ "$header = '>|'; $footer = '|<'; $body =Get-Content '%outfile%' -Raw;Set-Clipboard -Value ($header + \"`r`n\" + $body + $footer)"echo Done.signed.asc created and clipboard updated (no extra blankline).endlocalexit /b
// ==UserScript==// @namePGP署名自動付加スクリプト(GM_xmlhttpRequest版)// @namespacehttp://tampermonkey.net/// @version 1.0// @description投稿前にPGP署名を付けてから送信(fetch未使用)// @matchhttps://anond.hatelabo.jp/dorawii_31/edit*// @grant GM_xmlhttpRequest// @grant GM_setClipboard// @grant GM_notification// / @connectlocalhost// ==/UserScript==(function () { 'use strict';const submitId = 'submit-button';consttextareaId = 'text-body';const localServer = 'http://localhost:12345/run-batch';constpgpSignatureRegex = /-----BEGINPGPSIGNEDMESSAGE-----[\s\S]+?-----BEGINPGPSIGNATURE-----[\s\S]+?-----ENDPGPSIGNATURE-----/;consthttpRequest = (url) => { return newPromise((resolve,reject) => { GM_xmlhttpRequest({ method: 'GET',url:url, onload: function (response) { resolve(response.responseText); }, onerror: function (error) {reject(error); } }); }); };const interceptClick = () => {constbtn = document.getElementById(submitId); if (!btn ||btn.dataset.pgpIntercepted === 'true') return;btn.dataset.pgpIntercepted = 'true';btn.addEventListener('click', async function (e) {consttextarea = document.getElementById(textareaId); if (!textarea) return;const content =textarea.value; if (pgpSignatureRegex.test(content)) {console.log('[PGPスクリプト]署名が検出されたためそのまま送信します'); return; } e.preventDefault(); e.stopImmediatePropagation();console.log('[PGPスクリプト]署名が見つからないため処理を停止し、署名を取得します');try { awaithttpRequest(localServer); //バッチ実行constsignatureText = await navigator.clipboard.readText(); if (!signatureText.includes('BEGINPGPSIGNEDMESSAGE')) { alert('PGP署名がクリップボードに見つかりませんでした。'); return; }const newText = content.replace(/\s*$/, '') + '\n' +signatureText + '\n';textarea.value = newText;console.log('[PGPスクリプト]署名を貼り付けました。送信を再開します。');btn.click(); //イベント再発火 }catch (err) { alert('PGP署名の取得または貼り付けに失敗しました。\n' + err); } },true); }; window.addEventListener('load', () => {setTimeout(interceptClick, 1000); });})();
プロミスメソッドとか全然まだ理解してなくてそのなかに関数代入したその関数にオブジェクトのプロパティにresponseを?いやまあそのあたりのコードが示すデータの流れが全然理解できないような人間でもここまでできちゃった。
AIすごいなと思うよ。そして思うのは今後重要になってくるのは文法とか自体に詳しいことじゃなくて、そのプログラムの処理内容を指示できるシステムエンジニア的な言語化能力のほうじゃないかなと思った。
-----BEGINPGPSIGNEDMESSAGE-----Hash: SHA51220250609111559680 -----BEGINPGPSIGNATURE-----iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaEbCbwAKCRBwMdsubs4+SLueAPwOv7PBk4voAe5qlcCEvs/PJhmKc5QAb/1R43JMQFuDZgD/UTPEKsL/PhK9jFGv2HDXK1dVjLNwvosgX9uYJh5xxwY==qiOE-----ENDPGPSIGNATURE-----
※一番下に追記あり
社内政治的に言えば負け組に属するし昇給に期待できないのとメンタル面の複合的な理由で頑張り切れなくて成果も出ずモチベーションが下がってる。
今後のベースアップも望み薄な状況になったので給与同水準で今後頑張れそうなところに入りてぇなぁ。
現状と同水準の年収500万、それ以上もらえるのならうれしい。
完全リモートワーク。出向などはなし。
Web系といえばWeb系。Androidアプリ開発もやってたけど今はWebの運用保守まわり。
就職して10年くらい流れに身を任せてなぁなぁに過ごしてきたので何も身についてる気がしない。
以下のスキルもだいたいが腰をいれてやろうと思えばできる、なレベル。
・まぁわかる
k8s,Java(SpringBoot),PHP(5.3くらいまでの話)
Kotlinは読めはするけど書くのはなかなか厳しめ。
趣味レベルでReactとかを使ったフロントエンドのやつをgithubに上がってるやつみて修正したりとかはしたことあるけど
・いまだにわからん
身から出た錆ではあるがいやほんとどうすりゃいいのか。
転職エージェントとかでもこんな微妙なのとマッチングしてくれそうなとこなさそうだしなぁ。
モダンな言語をチョットデキルくらいまではやりこんだりしてから転職市場に飛び込んだ方がいいかね。
まったくプランが見えない。
甘えが過ぎるかもしれないけど、必要あらば答えるので厳しくでもよいのでお願いします。
気になったコメントやブコメがあったのでこれだけは答えようと思う
これは理由にも書いた通り以下にかかっていて
大き目プロジェクトに入ったら超絶ブラック進行すぎて燃え尽きて仕事ができなくなり一番下に落ちている
全然エンジニアと違う部署に行ったりとかしたけど成果出せずまたエンジニア業務に戻った
スキルセットにあるk8sやSpringBootも保守で必要になるから触ったりしたけど成果はまちまちで昇給は数回しかない
なので仕事に向き合えてない自分が嫌で、向き合えてない分周りの評価も低いし
引く手あまたどころか引く手は存在するのだろうかというのが今
定年まで会社にしがみつく予定だったけど上もぎっちり詰まってるしもう厳しいかもってなって増田に書いたところ。
まぁ書いたうえであーだこーだなコメントやブコメ見て自己分析も省みることができたので
EKSやGKE、AKSくらいは一通り触れるようになっておこうかなとは思った。
転職エージェントさっさとやれもその通りなのでなんも使ったことないけどとりあえずやってみようかな。
Permalink |記事への反応(23) | 19:14
大きいくくりだとjavascriptです。サーバー側でも実行できるように派生したのがnodejsです。なのでnodejsのコードをブラウザで実行しても動かないことが多いです。実行環境が仮想マシンで有名どころはgoogleが作ってるv8エンジンがあります。nodejsて書いたコードはこのエンジン上で動きます。
>nodejsについて、nodejs+expressをローカルマシンで動かす場合使用する言語はjavascriptなのでしょうか?
現在はDenoが強く推奨されているようですが。
ECMAScriptが標準になりますが、Node.js独自のライブラリー、Expressを使うなら当然Expressのライブラリー、その他の外部ライブラリーなどが普通に使われます。
外部ライブラリを使用可能にするには事前にインストールが必要です、外部ライブラリを使う場合には「require()」などで参照が必要です。
なので当然ECMAScript以外の勉強も必要です。
素のJavaScriptは大規模開発に適さないので、TypeScript化することで大規模開発に適します、小規模開発なら素のJavaScriptでおkです。
TypeScriptは学習難易度が高いのがデメリットです。
当方ソフトウェアエンジニアで勤務先の環境がクソすぎるので転職しようと思っているのだが、
転職先の開発環境を面接で聞く際にどこまでが常識でどこまでが過剰要求なのかが分からないので教えてほしい。
ちなみにGithubアカウントはちゃんと持っているし,OSSにもコミットしているよ.
などなど.個人環境としては可もなく不可もなくという状況なのだが、
でもメーカーのクソなところで, だいたいネットにはつながっていない.
技術書を読んでいる人が皆無.
我流で書いた上司先輩のクソコード以外読んだことない人しかいないので.
このレベルはもう期待していない.
いいなぁ~.ネットの世界にはこの環境で仕事ができる人も存在するらしいよ.
はてな見てると、はてなにいるような技術に関心を持つような人は実際には存在しないんじゃないかって思うぐらい、
私の周囲のソフトウェアエンジニアのレベルの低さに呆れるので、
普通の(はてな基準)エンジニアと一緒に普通の(はてな基準の)会社で仕事をしてみたいなぁ.
Densoの方の退職エントリでも,Densoでもこのレベルかーという内容だったし、
日本でWEB系以外で"""欲しい"""の基準以上は不可能なのかなぁ。
はぁ
今までの自分のスキル関係なく、今日からスクラッチでソフトウェア開発するとしたら、どんな環境がいいんだろう?という問いかけです。
ちなみに自分は以前組み込み系のエンジニアでWeb系は詳しくない&ここ1年ソフトウェアの仕事から離れてましたが、最近Webアプリ作りたいなと考えてます。
・組み込みソフト・・・基本C言語、最適化するとこはアセンブラ、マイコンのコンパイラが対応してたらC++
・Windowsアプリ・・・C#(.net framework)、nodejs(electron)
・スマートフォンアプリ・・・3DだとC#(Unity)、Dart(flutter)、javascript(React)、作り込むならネイティブ(iOSはswift、androidはKotlin)
・Webアプリ・・・nodejs、ruby(onrails)、Dart(flutter+firebase)、python(Django)
・社内アプリ・・・社内がマイクロソフト環境(outlookとかteams)ならPowerApps
・AI開発・・・python(TensorFlow、scikit-learn)
とある受託開発の会社を経営してんだけど、まぁ俺が元々フリーでエンジニアやってた時の延長線上みたいな会社でさ。
と言っても、もう20年目で社員は25人で小さいながらもまぁまぁな規模なんだけど、売り上げは安定しないし、給料はうなぎ登りだし。。
5年前にとある製品を俺主導で開発して、毎年本業の受託の30%くらいの売り上げが立つようになっていい感じだったんだけど、
一昨年あたりから売り上げが下がり出して、もう今はほとんど0になってしまい、次の製品の開発が必至な状態なんだけど、
ほとんどの社員は本業の受託で一杯一杯だし、手が空いてる人といえば俺くらいしかいなかったのね。
まぁなんだかんだで、営業もマネージメントも仕組みとしては回ってて、俺はキャッシュフローの管理と、勤怠が悪いような
元々Webエンジニアなので、NodeJSとかReactとか勉強し直して、今時のアーキテクチャーでまぁ今時のスタートアップ的な
サービスを作ってさ、今日社員みんなに次期製品のPoCとして発表したんだけど、アラフィフで元々ASP(Active Server Page)とか
JavaでWebシステムを開発してたのが、フロントエンドもWebpackから始まって、SCSS、ReactのHookとか理解して、バックエンドも
ちゃんとRestfulなAPIで設計してさ、DBもMySQLで結構頑張ったんだけど、反応がそれはもう微妙で。
まぁそれまで誰にも言ってなかったのも悪いんだけど、長い付き合いの社員に社長がやるんじゃなくて社員からボトムアップ的に
やらないと盛り上がらないよと言われて、まぁ至極正論なんだけど、ただでさえ受託でパツパツなのに、誰がやるねん見たいなさ。
だったらトップが自ら動こうと思ったらこんなんで。ちなみにアイデアは本当に悪くなくて、実装も綺麗にしたんだけど、
まぁ多分社員的にはつまらない受託の仕事の傍ら、イケイケの技術で自社プロダクトの開発をやりたいんだろうなぁ。
それが社長がやっちゃったから気にくわないんだろうなと思ったわ。
Webでは単純にテキストサイトではない本当に色々なことができるようになってきた。
HTML5になって以降まさに飛ぶ鳥を落とす勢いだ。
ここ5年くらいでデスクトップアプリに負けないレベルのSaasも出てきた。
Slack、Youtubeや生放送、Googleドキュメント、Googlemapをカーナビ代わりにしている人もいる。
Javascriptも相変わらず日進月歩でTypescriptやらNodejsやらReactやらVue.js Three.jsなど、もうテキストサイトの付属品ではないことは明らかだ。
個人的にはWebGLでアプレットを使わず3Dの描画ができるようになったのは衝撃的だった。
そんなわけで、Webはどんどん急激に高度化し大規模化してきている。
ここまで大規模化していったシステムはセキュリティ的にもシステム的にもこれまでのような少数のチームがちまちま作るには手に負えない状況に来ているんじゃないかと思う。
それが表面化してしまった事件が今回のコインチェック事件ではないか。
コインチェックはおそらくWeb系のエンジニア主体でイケイケで開発したんだと思われる。
ただセキュリティが甘かった、つまりシステムとしてセキュリティ(内面)に問題があった。
これはまさにWebエンジニアの弱いところを突かれたといっても過言ではない。
それに伴ってWeb企業もSIer化していくんじゃないかというのが私の持論。
全てとは言わないが、これまでのWeb系エンジニアの開発スタイルはどちらかというとイケイケドンドンでできたらいいや使えたらいいやの精神でやってきたんじゃないか。
これでは大規模なシステムになるとセキュリティも保守も難しくなってくるだろう。
大規模なシステムはきちんとオブジェクト指向で作ってテスト駆動でウォーターフォール式で開発するのが筋ってものだ。長期的な目で見れば理にかなっている。
今後高度化していくWebに対応するためにはそうやって作っていくべきだろうし、自然にそうなっていくだろう。
大規模なサービスに関わるWebエンジニアは自然にSIer的になっていくんじゃないか。
Googleスライドとかスプレッドシートはヤバいくらい複雑なシステムだと思うしハイクオリティだとおもうんだけど、どんな開発体制で作られたんだろうか気になる。
twitterでvimとneovimの2語で検索すると勘違いしてる人がちらほらといる。
https://twitter.com/search?f=tweets&vertical=default&q=vim%20neovim&src=typd
特定のツイートURLを引用したいがかわいそうだからやめとくけど、
誰かがちゃんとVimとNeovimについて説明しないからこうやって初心者が勘違いする。
pukiwikiよりもpukiwiki plusが良いみたいな考えね。
nodejsよりもio.jsとかvert.xが良いみたいな考えね。
それなりにVimに精通してる人達がVimとNeovimが別物だということをちゃんと提示しないとダメだと思う。
こういうのは世界中のpatch投稿者のモチベーションダウンにつながる恐れがある。
ちゃんと違いを知った上でNeovimを選択するなら構わないが、よく知らないのにVimはオワコンと決めつけるのは大至急やめなさい。
:echo 1 / 0:echo 0 / 0
2147483647-2147483648
きっしょwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
他の言語もチェックしてみるか
packagemainimport "fmt"funcmain() {fmt.Println(1 / 0)fmt.Println(0 / 0)}
echo 1 / 0;echo 0 / 0;
print 1 / 0print 0 / 0
ZeroDivisionError: integer division or modulobyzero
print(1 / 0)print(0 / 0)
ZeroDivisionError: divisionbyzero
nodejsだと1/0と0/0で異なるメッセージが表示された。
console.log(1 / 0);
Infinity
console.log(0 / 0);
luajitだとnodejsで表示されたメッセージの短縮形で表示された
print(1 /0)
print(0 /0)
main=doprint(1/0)
Infinity
main=doprint(0/0)
publicclassTest {publicstaticvoidmain(String[] args) { System.out.println(1 /0); }}
publicclassTest {publicstaticvoidmain(String[] args) { System.out.println(0 /0); }}
Exception inthread "main"java.lang.ArithmeticException: /byzeroatTest.main(Test.java:3)
#!/bin/bashecho$((1 /0))echo$((0 /0))
test.bash: 行 4: 1 / 0: 0 による除算です (エラーのあるトークンは "0")test.bash: 行 5: 0 / 0: 0 による除算です (エラーのあるトークンは "0")
haskellとnodejsとluajitはエラーにならないけどまあいい。
Vimはやべえよ。
何を作りたいかというとマルチプレイヤーのブラウザゲームが作りたいんだよね。
俺の開発用のceleron 1コアのメモリ1GB環境では重すぎる。
isoファイルを10000個同時にダウンロードしてるぐらい重すぎる。
ページの読込みがなかなか完了しない。
こんなクソ重いフレームワークはそれなりのサーバスペックがないとパフォーマンスに影響が出すぎるので除外したい。
phpのフレームワーク一般に言えるんだけどプロジェクト毎にプロジェクトルートのなかにフレームワークのコアファイルを置くのがなんか嫌だ。
nodejsはシングルスレッドなので負荷の高いサイトで使うのは厳しそう。
pythonでもgolangでもwebsocketは使えるのでnodejsにこだわる必要もないしvert.xを使う選択肢もある。
日本ではvert.xの話題あんまり盛り上がってないよね。どこかの企業さんが実践で使いましたって記事を書いたら会社の知名度が上がると思う。
scala,golang,elixirこの3つの選択肢でいいのかな。
でも負荷の高いブラウザゲームやってる会社ってrailsとかphpだよね。
redisをうまく活用しとけばあんまりそれ以外でボトルネックとなるようなことって無いのかな。
スクエニさんのオンラインのドラクエもどうやってるんだろうね。
あと海外のブラウザゲームってほとんどがaws使ってるのでaws使えばいいのかな。
でも怖いよね高額料金を請求されたらさ。
金儲けの為にサイトを作らないとawsは使ってられない気がする。
プログラムの癌(Runy)をなくすの前に人間の癌をなくすやり方について書いておこう
癌は熱に弱い。42度の熱で消滅する。心臓に癌ができないのは熱に弱いから 外部から熱をあてて癌を直す治療がある。ハイーパーサーミアという治療法で厚生省から認可がおりており健康保険がきく。1回3千円くらい 10回セットで3万円くらい 病院にいけばやってくれる。動物病院でもやっている。42度の熱をあてるだけ 手術がない 体に負担がかからない 副作用もない 入院がいらない 時間が取られない 抗がんん剤や複雑な手術をする必要ない。体を痛めない
でだ ここからが問題だ まずハイーパーサーミアの機器を導入している病院が少ない。少ない理由は病院が儲からないから 3万円では医者が儲からないしやりたがらない。最近ハイーパーサーミアが知れ渡ってきてハイーパーサーミアの操作できる人が不足を理由に取りやめる病院が出てきている。また一緒に抗がん剤を抱き合わせてきたり、効果がないと否定してお金や体に負担がかかる3大療法をすすめてきたりする。3大療法はやらないほうがよい。放置もよくない。それより熱線をあてることに徹した方がいい。近くにハイーパーサーミアがなかったり、受けられなかったら、三井式温熱治療器やダイエットサウナをおすすめする。治療が受けれるのであれば3大療法よりハイパーサーミアだけやる。3大療法もやめたほうがよい。ハイパーサーミアは高いステージから生還してるし、費用が安く、副作用もなく、時間が取ることなく、体に負担がかからない。
抗がん剤は結局正常な細胞を弱らすだけでがん細胞を消滅させるわけではないのでけっしてやってはいけない。もちろん放置もいけない。
三井式温熱治療器やダイエットサウナでも体に42度の遠赤外線をあてる事が出来る。
三井式温熱治療器はアマゾンや楽天で買える。レビューがたくさん書かれていて癌に効果があったとたくさん書かれている。
ハイパーサーミアの医療現場で使われているサウナ機器(スマーテイ)もアマゾンで売っていたりする。
これで外から42度をあて続けるだけでよい
三井式温熱治療器の楽天のレビューを見てみる 癌治療に効果があったと高評価が150件が書かれている 要確認
http://review.rakuten.co.jp/item/1/202385_10001070/1.1/
三井式温熱治療器のamazonでも癌治療に効果があったと多くの高評価が書かれている 要確認
心臓 癌
癌 熱
癌 熱
などを調べてみると実際受けた患者の感想が書かれている。どれも末期だとか手の施しようのないといわれたとこから生還している。
ちなみに血液性の癌や白血病には高濃度ビタミンC点滴が有効 保険はきかない
日本の医療は米に10年 欧州に20年遅れていると言われている。
なので他の病気に関しても日本の医者の言う事よりもまず欧州がどんな治療をしているか調べてから判断した方がいい。医者はSilrだと思え
欧州では2008年の段階で癌が減っている事が記事になっている。
www.news-medical.net/news/2008/04/10/30/Japanese.aspx
http://hayabusa6.2ch.net/test/read.cgi/cancer/1251284895/
他にもここに詳しく書いてあるぞ!
http://apps.wiki.fc2.com/wiki/その他
プログラムの癌と言えば動的言語のことだろう。それを広めようとする関係者、開発者もまたがんだ。
メーカー製の静的言語フレームワークを使えば誰でも簡単に高度なことができる。
わざわざ出来損ない言語を引っ張りだしてきて、無駄に苦労したり、無駄な苦労を広めたりする輩はほんとうにがんだ。
その苦労は数年後無駄に終わる。動的言語は数年ごとにバージョンアップを繰り返し、今書いているものは
すべて動かなくなる。2007年頃に意図的に起こされた第一次Rubyブーム 1.7のRubyはもう動かない。
互換性の問題で起動できないし、サポート対象外だから脆弱性だらけ 今もRailsやNodejs angluerなどが
意図的にブームが起こされているが、それらも数年後には使えなくなる。負債にしかならない。
IT経営者にとってはそのほが都合いいのだろう。仮に辞められてもその技術で手間がかかりすぎて独立はできない。アプリストアがあるわけでもない。課金プラットフォームがあるわけでもない。 だからIT経営者はいきばのない技術者を酷使し放題だ。動的言語は技術者を自由にさせない鎖付きの言語なのだ
鎖のついてない言語は何か?それはC#だ。C#はシステムを簡単に作れる。管理画面サイドはexeアプリで作り、サーバーサイドはasmxとado.net ORMを使えば一日でWEBアプリケーションが作れてしまう。リファクタが効き、ビルドができエラーは直ぐ見つかりアップデートも自動でソースを書き換えてくれる。C#ができるとUnityからlotRobotスマートフォンタブレットOneWindows医療 業務用アプリまで 様々な分野に進出することができる。Railsではこうはいかない。Webしか作れないし、3年後にはバージョンアップが行われ、その都度のコードの修正に時間を取られる。つきっきりになっていないといけない。他の事が出来なくなる。ビルドできないからすぐバグがわからない。バグ潰しに時間を取られる。動的言語の現場がいつもギスギスしてるのは、バグが探しの疑心暗記がいつのまにか人に向けられていじめみたいなことになっている。
IT派遣事業者にとっても動的言語はいつまでも脆弱性が発生し続け、保守作業がうまれる都合のいい金になる言語だ。
企業が無料で教えるのには彼らだけが儲かるカラクリがあったのだ。今もRuby On RailsRubyJavaScriptNode.jsなど意図的なブームが起こされている。
メーカー製の静的言語やっている身からすると動的言語をやる輩はとても愚かだ。静的言語なら自分で書いたコードは自分の資産になる。
静的言語で書いたコードはリファクタが効くし、コンパイルでバグがすぐわかる。コードを最新のバージョンに自動で書き換えてくれる。
共通ライブラリを他のプロジェクトで使い深い内容で書いても、元のプロジェクトで開いた時にビルドでバグがすぐわかるから、深い内容で共通ライブラリを書く事ができる。
自分用の共通ライブラリを出来上がってくると開発速度があがっていく。無理に20倍速の早さとかメデイアで煽られて複雑に書かなくても、一度書いた物を組み合わせて使い回していけば生産性は普通にあがっていく。
動的言語では共通ライブラリを深い内容を書くのは難しい。バグを発見に時間がかかるから、浅い内容のことしか書けない。生産性があがらない。ファイルの管理に追われて断片化したり バグを探したり バージョン管理に追われたり いつまでも手間が掛かる始末だ。
なぜこんな無駄な言語を使い続けるのか なぜあのブックマークはRubyの時だけ数字がはねあがるのか不思議でしょうがない。Botにブックマークさせてるのではと疑ってしまう。
2007年頃のステマRubyブームで騙された技術者は酷い目にあってたいはんはRubyから去っている。
求人がある訳ではない。アプリストアがあるわけではない。脆弱性は出し続ける。すぐ互換性がなくなる 使う用途が限られている。汎用性がない
加えて他の動的言語にも言える事だか
フレームワークの乱立 CMSの乱立 フレームワーク自体バージョンがあがると別ものになる。フレームワーク自体に脆弱性がありサポートしてくれない。プロジェクトごとにフレームワークを学び直さないといけない
フロントサイドとサーバーサイド 両方 動的言語選択してしまってカオスな状態。スパテッゲテイすぎて再利用は不可、資産は築けない。
こんな安心して生きていけない言語は止めて、iPhoneアプリ、C#アプリの開発をやるべきだ
医者は儲かるからという理由で人の命よりお金になる抗がん剤を優先するのと、Silrが儲かる理由で脆弱性が多い動的言語を推奨するのは同じムジナだろう。