「Node.JS」を含む日記 RSS

はてなキーワード: Node.JSとは

2017-09-11

https://anond.hatelabo.jp/20170910205249

まじな話をすると、N予備校プログラミング入門コースやるのがオススメ

https://www.nnn.ed.nico

一日8時間勉強時間があるなら、だいたい一ヶ月で終わる内容。

月額1000円だけどしっかり勉強すれば一ヶ月の無料間中に終わると思う。

もともとN高等学校のノンプログラマーの生徒をWebエンジニアとして就職させるために作られたカリキュラム講師曰く去年はこれで二人エンジニア就職を決めたらしい。

内容も相当親切に説明していて、プログラミングで何か作るだけじゃなくて、就職必要な環境構築やセキュリティまでみっちりやる。

http://qiita.com/sifue/items/7e7c7867b64ce9742aee#%E3%82%B3%E3%83%B3%E3%82%BB%E3%83%97%E3%83%88%E3%82%92%E3%82%82%E3%81%A8%E3%81%AB%E6%A7%8B%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B3%E3%83%BC%E3%82%B9%E3%81%A8%E5%86%85%E5%AE%B9

講師が書いてる入門コースで習うことがまとめ。テキスト教材もあるけど授業も1項目を2時間で説明している。授業は週2の生放送とそのアーカイブがある。

↓みたいなことが学べる

----

Webプログラミング入門コース

Web ブラウザとは (Chrome, デベロッパーコンソール, alert)

はじめてのHTML (VSCode, HTML, Emmet)

さまざまなHTMLタグ (h, p, a, img, ul, tableタグ)

HTMLで作る自己紹介ページ (HTMLタグ組み合わせ, コンテンツ埋め込み)

はじめてのJavaScript (JS, ES6, エラー)

JavaScriptでの計算 (値, 算術演算子, 変数, 代入)

JavaScript論理を扱う (論理値, 論理積, 論理和, 否定, 比較演算子, if)

JavaScriptループ (ループ, for)

JavaScriptコレクション (コレクション, 配列, 添字, undefined)

JavaScript関数 (関数, 関数宣言, 引数, 戻り値, 関数呼び出し, 再帰)

JavaScriptオブジェクト (オブジェクト, モデリング, プロパティ, 要件定義)

はじめてのCSS (CSS, セレクタ, background-color, border)

CSSを使ったプログラミング (transform, id, class)

Webページの企画とデザイン (企画, 要件定義, モックアップ, 16進数カラーコード)

診断機能の開発 (const, let, JSDoc, インタフェース, 正規表現, テストコード)

診断機能組込み (div, 無名関数, アロー関数, ガード句, truthy, falsy)

ツイート機能の開発 (リバースエンジニアリング, URI, URL, URIエンコード)

Linux開発環境構築コース

LinuxというOS (VirtualBox, Vagrant, Ubuntuインストール, OS, CUIの大切さ)

コンピューター構成要素 (ノイマンコンピューター, プロセス, lshw, man, ps, dfの使い方)

ファイル操作 (pwd, ls, cd, mkdir, rm, cp, mv, find, ホストマシンとの共有ディレクトリ)

標準出力 (標準入力標準出力標準エラー出力パイプgrep)

vi (vimtutor)

シェルプログラミング (シバン, echo, read, 変数, if)

通信ネットワーク (パケット, tcpdump, IPアドレス, TCP, ルーター, ping)

サーバークライアント (tmux, nc, telnet)

HTTP通信 (http, https, DNS, hostsファイル, ポートフォワーディング)

通信をするボットの開発 (cron, ログ収集)

GitHubウェブサイトの公開 (GitHub, リポジトリ, fork, commit, 情報モラル)

イシュー管理とWikiによるドキュメント作成 (Issues, Wiki)

GitとGitHub連携 (git, ssh, clone, pull)

GitHubへのpush (init, add, status, インデックス, commit, push, tag)

Gitのブランチ (branch, checkout, merge, gh-pages)

ソーシャルコーディング (コンフリクト、プルリクエスト)

Webアプリ基礎コース

Node.js (Node.js, nodebrew, Linux, REPL, コマンドライン引数, プルリク課題)

集計処理を行うプログラム (集計, 人口動態CSV, Stream, for-of, 連想配列Map, map関数)

アルゴリズムの改善 (アルゴリズム, フィボナッチ数列, 再帰, time, プロファイル, nodegrind, O記法, メモ化)

ライブラリ (ライブラリ, パッケージマネージャー, npm)

Slackボット開発 (slack, mention, bot)

HubotとSlackアダプタ (hubot, yo)

モジュール化された処理 CRUD, オブジェクトライフサイクル, filter)

ボットインタフェースとの連携 (モジュールのつなぎ込み, trim, join)

同期I/Oと非同期I/O (同期I/O, 非同期I/O, ブロッキング)

例外処理 (try, catch, finally, throw)

HTTPサーバー (Web, TCPとUDP, Webサーバーの仕組み, Node.jsイベントループ, リスナー)

ログ (ログ, ログレベル)

HTTPのメソッド (メソッド, GET, POST, PUT, DELETE, CRUDとの対応)

HTMLフォーム (フォームの仕組み, form, input)

テンプレートエンジン (テンプレートエンジン, jade)

HerokuWebサービスを公開 (Webサービスの公開, heroku, dyno, toolbelt, login, create, logs)

認証利用者を制限する (認証, Basic認証, Authorizationヘッダ, ステータスコード)

Cookie を使った秘密匿名掲示板 (Cookie, Set-Cookie, expire)

UI、URI、モジュール設計 (モジュール設計, フォームメソッド制限, リダイレクト, 302)

フォームによる投稿機能の実装 (モジュール性, textarea, 303)

認証された投稿の一覧表示機能 (パスワードの平文管理の問題, 404, テンプレートのeach-in)

データベースへの保存機能の実装 (データベース, PostgreSQL, 主キー)

トラッキングCookieの実装 (トラッキング Cookie, IDの偽装, Cookie の削除)

削除機能の実装 (データベースを利用した削除処理, 認可, サーバーサイドでの認可)

管理者機能の実装 (Web サービス管理責任, 管理者機能の重要性)

デザインの改善 (Bootstrap, レスポンシブデザイン, セキュリティの問題があるサイトを公開しない)

脆弱性 (脆弱性, 脆弱性で生まれる損失, 個人情報保護法, OS コマンド・インジェクション)

XSS脆弱性対策 (XSS, 適切なエスケープ処理, リグレッション)

パスワード脆弱性対策(ハッシュ関数, メッセージダイジェスト, 不正アクセス禁止法, パスワードジェネレーター, 辞書攻撃)

セッション固定化攻撃脆弱性対策 (セッション, セッション固定化攻撃, ハッシュ値による正当性チェック)

より強固なセッション管理 (推測しづらいセッション識別子, 秘密鍵)

CSRF脆弱性対策 (CSRF, ワンタイムトークン)

安全なHerokuへの公開 (脆弱性に対する考え方, HTTPの廃止)

Webアプリ応用コース

Webフレームワーク (Express.js, フレームワーク導入, 簡単なAPI, セキュリティアップデート, Cookie パーサー, ミドルウェア, 外部認証, ロガー)

ExpressのAPI (app, Properties, Request, Response, Router)

GitHubを使った外部認証 (Passport, OAuth)

スティングフレームワーク (Mocha, レッド, グリーン, リファクタリング)

継続的インテグレーション (CircleCI)

クライアントフレームワーク (Webpack, Chrome 以外のブラウザでもES6)

DOM操作フレームワーク (jQuery, jQueryアニメーション, this)

AJAX (jQuery.ajax, クロスドメイン, 同一生成元ポリシー, x-requested-by, CORS)

WebSocket (WebSocket, WebSocketの状態遷移, Socket.io)

RDBとSQL (DDL, DCL, CREATE, DROP, INSERT, DELETE, UPDATE, WHERE)

データモデリング (リレーショナルモデル, 正規化)

テーブルの結合 (外部結合, 内部結合, 片側外部結合, JOIN ON)

インデックス (インデックス, 複合インデックス, Bツリー)

集計とソート (SUM, COUNT, ORDER BY, GROUP BY)

「予定調整くん」の設計 (要件定義、用語集、データモデル、URL設計モジュール設計、MVC)

認証とRouterモジュールの実装 (Mocha, supertest, passport-stub, モックテスト)

予定とユーザーの保存 (セキュリティ要件, UUID, 複合主キー)

予定とユーザーの一覧の表示 (非同期処理, Promise, then)

出欠とコメントの表示 (入れ子の連想配列, Promise.all, 子どもからデータを消す)

出欠とコメント更新 (Promiseチェイン, リファクタリング)

予定の編集と削除 (要件の衝突, 関数再利用)

デザインの改善 (this, グローバルオブジェクト)

セキュリティ対策と公開 (X-Frame-Options, Heroku環境変数)

2017-08-14

web系の専門用語多すぎ問題

門外漢からするとこんな風に聞こえてる。(所々適当に書いてるし書いてる内容は嘘デタラメ

「gulpでbowerしてsassgruntビルドすれば、cssストリーミング形式でデタッチされるから便利だよ。それにgulpはCoffeScriptとかtypescriptみたいな流行りのサードパーティも従来のJSみたいに変換してくれるしウォータフォールじゃなくてアジャイル的なプロジェクトでも使いやすい。スクラッチから書かなくてもいい感じにアジャストしてくれるよ。あと、OSSとしてgit上に上がってるんだけど、DLなんかもAWS連携させてWebGLTensorflowやらchainerやらと組み合わせればブラウザDQNとかA3CとかDCGANも動かせるスクリプトリリースされてた、バックエンドではDNNを走らせてフロントで表示する分をNode.jsカスタマイズしたりタスクランナープロセスマネージメントできるからもはやjstensorflowを含めたpythonラッパーみたいな感じで使えて便利。最近ではbluemixがBitcoinマインングをサポートしていてブラウザ上でウォレットからマイニングセットアップまでできるんだってブロックチェーンの仕組みを拡張して社内のタスクマネージャーとかNAS上のデータ分散してサーバーに保存できるみたいなこともあるんだって。」

どうしてweb系は専門用語肥大化するんだ。

2017-06-17

Web系に入社して3年目 人生相談

うちの会社Web系なんだから当然っちゃ当然なんだけど、案件の8割くらいはCMS案件なのよね。

それもWordPress脆弱性出しすぎとかで保守しにくいってことでもうちょいマイナーCMSが中心。

プログラマーとして入社してから今まで、デザイナーが渡してきたHTMLファイルCMSテンプレートとして構築する、

っていう作業社会人生活の半分以上を占めていて、業務としてはPHP簡単プログラミングすらあんまり経験ない気がする。

CMSテンプレートもif文とかループとかあるからこれもプログラミングといえばプログラミングなんだけど、

Web系っていうともっとPythonとかNode.jsとかVueみたいなキャピキャピした技術に触れるもんだと思ってたよ。

給料は安いけど割りかし残業も少なくて何かとヌル会社から今のところやめるつもりは特にないんだけど、

ディレクターとの調整とかExcel方眼紙仕様書(多分一般的SEが作るのよりはかなり簡潔なもの、勿論UMLとかはない)書いたり見積もりしたり操作マニュアル書いたりっていう経験はあっても

下流工程を生きるプログラマーとして例えば5年後10年後、技術的なキャリアとして「HTMLファイルをよくわからんCMSテンプレートとして当て込むだけのことを長年やってきたおじさん」

誕生したとして、果たして生きていけるのか心配になってきた。

僕は生きていけるのでしょうか。転職した方がいいんでしょうか。教えてください。

2017-02-17

今、スタバでルネラジを聴きながらコレを書いてます

さっき、テックブログRSSと一緒にホットエントリRSSを外して、アプリを削除したよ。何年の付き合いだろう?サービス開始からから・・・悲しくなるから確認せずに行くよ。

最初ダイアリーに書いて、反応なんて全然なくて、広告コメントばかりだったな。いまでもはてなの知り合いはいないんじゃないかな。

ネットコミュ障なんだ。Twitterとか色々やってるけどやりとりする相手なんて誰もいないよ。

僕は君になにもできなかったね。本当に君の事が好きだったのかな?本当に村民になりたかったのかな?多分、違う。本当はブクマされて、スターつけられて、承認欲求を満たしたかったんだ。

意識高い系を笑えないよね。何年も異性にお金を注ぎ込む人を笑えないね。僕もずっとホットエントリを見て、色んなものを買ったりしたんだ。

====

どうしてこうなったか?聞きたくもないだろうけど、最後から言わせてくれよ。

初めて君を見たとき天国に見えたよ。最新の技術トレンドがここにあってさ。自分理想郷はここなんだって技術力をつけて、認められる人間になって、ここの住人になる事が幸せなんだって思ったんだ。

そうやってさ、次々流れてくるトレンドに耳だけが年増になっていって、それを知らない周りの人たちをバカにしてたな。

でもさ、肝心の技術力は全然つかなくてさ、大学生になれば、就職すれば、東京に出れば、新しいマシンがあれば、お金があれば、時間があれば、やる気があればって制約条件がなくなる度に新しい言い訳を考えてたな。

結局、生半可な知識じゃ参加できないってチンケなプライドのせいで勉強会に参加せず、ブログも書かず、なれたのは一番軽蔑するExcelとにらめっこしてるSIer。おいおい、Web系のベンチャーテックブログ書くんじゃなかったのかよ(笑)

耳年増で、周りをバカにしてたクセに仕事全然できない自分とのギャップ10年耐えてきたけど、年末休職したんだ。自律神経失調症

眠れるんだよ?ごはん食べられるんだよ?ただ、会社の人みんなが怖くなってさ、朝だるくってさ、すげー疲れてさ。苦しくて。仕方ないから受け入れて。っていうか、甘やかして。つまるところ、ズル休みなんだよ。

時間が出来たから、ずっと積ん読になってた技術に正面きって立ち向かってみたんだ。すぐ投げ出したね。理由は分からないけどただ苦痛だった。

作りたいものなんかなかったし。多分、技術を使いこなしてスゴいって言われたかったんだね。

部屋にはPerlRoRSQLitejQuerynode.jsAWSHaskellHadoopDockerRaspberry Pi、R、Reactのホコリを被った本がある。彼らはブックオフ行きかな。

最近時間はあるからさ、はてブばっかやってたんだ。見るのがホットエントリから新着エントリーになったな。いつもみたいに100文字制限ギリギリコメントだけじゃなくて、10文字くらいの一言コメントも書くようになったんだ。その10文字コメントのうちひとつ100スターくらいもらえてさ。

そのとき分かったんだ、これはずっと片思いなんだって。叶わない恋なんだって自分が住める世界じゃないんだっておかしいよね、小学校の頃のプロ野球選手の夢だって中学生の頃の小説家の夢だって高校の頃のパンクロックスターの夢だってすぐ諦められたのに、この夢は35歳の今だって諦めきれないんだ。

応用情報取った時も、ネスペ取ったときも、オラクルブロンズ取った時もLPIC 2取った時も全く達成感なかったよ。コレ取るのに何年かかってんだってさ。村民は1ヶ月あれば取れるぞ。同期のアイツだって3ヶ月で取ってるぞ。何が言えるんだってさ。

銃・病原菌・鉄読んだ時もそうだった。で、お前はそこから何かアウトプット出来るのか?ってさ。読むだけなら幼女でも出来るんですけどwって。

伝わる?伝わらないだろうな。みんな高IQですぐに色んな技術理解出来るじゃない?すごいよ。自分二浪駅弁大学しか行けないくらいのバカで、リアルでもネットでも知り合いを作れないコミュ障自己承認全然出来ないんだ。

ADHDって言葉を知った時、これだーって思ったけど違ったね。IT勉強してても過集中が全然ないんだ。

話が逸れたね。認知療法してて、気づいたんだよ。何をしてても自分を認められないんだよ。はてなに受け入れられる事を成し遂げられてないからね。

から自分を認めるために、君のことを自分から切り離さなきゃいけない。自分世界を作らないと。一方的なっちゃうけど、さようなら勝手だけど、今にも泣きそうだよ。

これからどうしようかな。匿名で好きな事書けるのはココだけなんだ。自信のない間違ってるかもしれない事を書いてもいいのはココだけなんだよね。ここなら見たくないコメントを見なくてすむんだ。

新聞も取ってないかチラシの裏にも書けないよ。

でも、前に進まなきゃ。夢の世界への憧れは終わりだ。目の前の現実世界適応しなきゃ。また逃げ戻ってくるかもしれないけど、いまはさようならしなきゃ。

最後に何か残せるとしたら・・・スタバハチミツ、あれ何に使うと思う?あれ、ワッフルを食べるときに使うんだよ。

・・・スベったね。

さようなら。このエントリも2時間すれば次のページ行きだ。そうすると、誰かの目にも触れなくなる。単なるはてな磁気データになる。

最後ブコメとかつくんじゃないかって浅はかな期待を持ちながらこの内容を登録するボタンを押します。じゃあね。

P.S. 認知療法について書いてくれたこの増田には本当に感謝しています。まだまだ自分について書く事が苦しいけど、正しい道を向いてると信じています

http://anond.hatelabo.jp/20150213215921

2017-01-24

http://anond.hatelabo.jp/20170124092641

まずサーバーサイドとクライアントサイドの区別が付くようになろう

javascriptnode.jsで動かすつもりだったという話なら、すまない

2017-01-19

http://anond.hatelabo.jp/20170119222536

Visual studio codeでnode.js+reactやってサービスなんか作ってそれをポートフォリオにしたらいいんじゃね?IDE関係ないけど。

もしくはプログラマとして優秀なら普通にObjective-cSwiftやればいいんじゃない

まだObjective-Cで書かれたコードたくさんあるしモバイルアプリエンジニアが足りてなさすぎるからすぐ仕事見つかると思う。

なんかアプリ作って公開してそれをポートフォリオとして持っていけばいいと思う。

2016-12-30

2020年に振り返る2016年Web開発

後輩「先輩、このシステム僕が引き継ぐ事になりました。よろしくお願いします」

先輩「そうかそうか、やっと肩の荷がおりるな」

後輩「これ2016年に作ったシステムなんですよね。僕その頃まだ入社してないんで、最初の方から教えてもらっていいですか」

先輩「よしわかった。環境構築から順を追って説明する」

先輩「まずはじめにnode.jsを入れる」

後輩「あ〜昔流行ったサーバーサイドでJavascript使えるやつですよね。このシステムnodeで動いてたんですね」

先輩「いや、nodeは使ってない」

後輩「え?」

先輩「nodeに付属しているnpmというパッケージマネージャーを使ってる」

後輩「なんでまたそんな回りくどいことを・・・

先輩「当時はnpmが一番メジャーだったんだよ。今主流のN3(N3 is Not Npm)はまだ無かったしな」

先輩「よしnode入れたな。じゃあnpm installだ」

後輩「えい!・・・先輩、なんかエラー出ました・・・

先輩「printFizzBuzzというパッケージが404みたいだな」

後輩「何に使うんですかそのライブラリ

先輩「知らん。依存してるライブラリ依存してるライブラリ依存してるライブラリかなんかだろう」

後輩「バタフライエフェクトってやつですね」

先輩「思い出した。これは昔話題になったやつだ。printFizzBuzzは何かの特許抵触していて非公開になったらしい。

  npm installで落とすのは諦めて、ローカルに残ってるやつで何とかするしかないな」

後輩「それ使って大丈夫ですかね。法的に」

先輩「仕方ないだろ」

先輩「ようやく諸々揃ってBabelやReactやWebpackを使えるようになった」

後輩「それ何ですか?」

先輩「まずBabelだが、これはES2015をES5にコンパイルするツールだ」

後輩「え、なんでダウングレードするんですか?」

先輩「古いブラウザで当時の最新機能を使うにはこうする必要があったんだ」

後輩「なるほど。ではReactは?」

先輩「これは今で言うWeb Componentsみたいなものだな。あと仮想DOM

後輩「Babelじゃダメだったんですか?」

先輩「ダメだったんだよ」

後輩「で、最後Webpackは?」

先輩「リソースモジュール管理して最適化するツールだ」

後輩「最適化サーバー仕事じゃないんですか?」

先輩「当時はモジュールが標準対応してなかったり、http/2もあまり普及してなくてサーバー馬鹿だったんだよ」

後輩「へ〜大変ですね」

後輩「いつの間にかこんな時間ですね。今日まだ1行もコード書いてないですよ」

先輩「一度準備してしまえば、そこから先が楽になるんだ」

後輩「今となっては余計な苦労が増えてるような気がしますけどね〜」

先輩「当時はこれが最善の選択だったんだよ」

後輩「そうなんですね」

2016-09-22

低学歴Webプログラマーは何のプログラミング言語を覚えればいいの?

Node.jsってクソなんでしょ?

socket.ioとか使い物にならないらしいじゃん。

npmでインストールアンインストールできるだけの知識さえあればいいんでしょ。

じゃあNode.js覚える必要ないよね。

つうかNode.js使うならVert.xのほうがいいし。



golangを使えばいいの?

でもさほとんどの企業golang必要

5ページほどの静的サイトを作るのにgolang使ってる人もいるそうだけどPHPじゃダメなの?

コストかけてまでgolang使うメリットてあるの?

経営者から見たらエンジニア自己満足なだけで無駄に金払ってるようなものじゃない?

Webサイト運用している企業ってどんくらいあるのよ?

本当にgolang使わないとダメなの?

は?scala

結局、大企業なんて基本的にAラン大卒ネット界で知名度のある限られた人しか入社できないんだからgolangscalaも覚えるだけ無駄なんだよ。

個人利用以外で使い道がないから。

結局利用できる人が多いPHPWebサイトを作ればいいよね。

CLIツールだったらgolangpythonでいいでしょ。

javaとかcでCLIツール作るやつとか池沼でしょ。

人生限られた時間しかないんだから最善の選択をしていきたいよね。

2016-09-19

http://anond.hatelabo.jp/20160919184519

自分が知っている言語だと、「param == 0」は前提にならないと思うのですが、想定している言語を教えて頂いても構わないでしょうか?

自分の知っている言語では論理積論理和評価優先順位は同じ物ばかりで、上げられている条件分に関しては

if ((param==0 && 判定(param2)) || !param3) {~}

等価になると思われます

そのため、仮にparamが0以外だったとしても、!param3がtrue評価されるような値の場合は条件を満たすと思われるのですが。(実際node.jsのv5.11.0で試した所そのようになりました。)

2016-08-10

PHPNode.js

setTimeout(function(){},60000);

みたいの出来ましたっけ?

2016-07-06

http://anond.hatelabo.jp/20160706104109

JS批判の内容が古い。

最新のNode.jsChromeFirefoxEdgeなどはクラス普通に使えるし、IEとかもbabel使えばいい。

今後に期待じゃなくて、今現在の段階で十分他言語に劣らない。

コンピュータ言語言語ごとの特徴を俺が教えてやる(異論は認める

コンピュータ言語って世の中に山ほどあるけれど、それぞれの言語ごとに特徴がある(特徴のない言語は廃れていく)。

まり言語に詳しくない人相手に、俺の考えるそれぞれの言語の特徴を書いてみようと思う。

なお、取り上げるのはある程度広く使われている言語に限りたいと思う。

TL;DR

言語概要
C言語高速動作するバイナリ生成を目的としたコンパイル言語。だいたいどんな環境でも使えるがバグやす
C++マニアック言語、高速、習得大変
Javaサーバで高速かつ安定に動作するコンパイル言語、大規模でよく使われる
C#主にWindowsクライアント用のバイナリ生成に使われるコンパイル言語
Perl広く使われていたが今は若干時代遅れのスプリクト言語。汚い
PythonPerlにかわって主流になりつつあるスクリプト言語。綺麗
PHPWeb開発にフォーカスされたスクリプト言語一世を風靡した。
Rubyとても綺麗なスクリプト言語
JavaScriptブラウザで実行出来る唯一の言語言語自体はいまいちだが、ブラウザ事情需要あり
Goサーバサイドで安全かつ高速動作するバイナリ生成を目的としたコンパイル言語

詳細

C言語

メモリに直接アクセスして書き換えるといったコンピュータ機械語に近い言語構文を持つため、高速な処理が可能言語

コンパイラ歴史も古く環境も整っており、組み込み系などを含むほぼ全ての環境で利用可能な万能言語

一方で、メモリの確保や解放といった基本的なことも自前で処理する必要があるため、コーディング効率が良くなく、多種多様バグを生みやすい側面も持つ。

ある程度以上のエンジニアであれば常識として知っておきたい言語だが、初めて覚える言語としてはあまり適当ではない。

C++

C言語オブジェクト指向を導入した言語C++言語とはあまり呼ばれず、しーぷらすぷらす、もしくは略してしーぷらぷら、しーたすたす、などと呼ばれる。

C言語の速度を維持したままオブジェクト指向テンプレートなどの効率的記述可能にしようとした意気は真っ当だったのだが、

当時最先端だった色々な技術思想を叩き込んだおかげで、あり得ないほど複雑化した言語としても有名。

C++理解しています」という人はほぼ初級者で、本当に理解していくほど「C++には自信がありません」となっていく。

速度を追求する分野では良く使われている。完全に理解するのは難しいとしても、テンプレートくらいまでは理解しておくと仕事上なんとかなる…かもしれない。

Java

サーバサイドで安全コードを実行する目的でよく使われる言語。長い歴史を持っており、比較的高速に動作する。

当時は画期的だった「バーチャルマシン」や「ガベージコレクション」という機構を備え、CやC++でよく問題になるメモリ解放忘れというバグを生まず、

サーバサイドなどで何千時間動作するソフトウェアに適した言語として受け入れられた。

必然的エンタープライズ用途で利用されることが多く、各種ツールなども豊富人海戦術がしやす言語という側面も出てきた。

一方でブラウザHello Worldを出すだけでも大変な労力を必要とするので、スタートアップなどではあまり使われない。

ガラケーアプリや(ちょっと違うが)Androidなど、クライアントサイドでも使われることがある。

プログラミング言語最初Javaを覚えるという人は結構多いが、仕事としてJavaを使うのは大抵SI系の業務になり、なかなか辛い労働を強いられる可能性が高い。

C#

クライアントサイドで安全コードを実行する目的でよく使われる言語。こちらも比較的高速に動作する。

元々はWindowsクライアント用の言語であり、Javaとは違ってクライアント向きのAPIが多数ある。

マイクロソフトが開発した言語ということもあり、マイクロソフトの優れた開発環境が利用出来るので開発効率は非常に高い。

Unityなどでも利用可能であるが、基本的にはクライアントの実行形式ファイルを生成する目的が大きく、サーバサイドではあまり使われない。

自作ゲーム開発をしたいのであればうってつけの言語。初めて覚える言語としても十分に良いだろうが、C#を使う仕事は近年無くなりつつある。

Perl

ほぼ全てのLinuxディストリビューションに含まれており、ツールや様々な用途で使われていた。

上に紹介したC、C++JavaC#のようなコンパイル言語とは違い、(少し語弊はあるが)1行ずつ実行してエラーがあれば止まるスクリプト言語である

ちょっと開発してすぐに実行ということが出来るのと、コマンドラインでワンラインコードを読み込ませてちょっとした処理が出来るなど応用範囲の広い言語である

20年近く前にWebCGIが普及した時には、ほぼどのようなサーバ環境でも実行可能だったこともあり、Perlを使うことが極めて多かった。

しかし、主に読みづらい言語仕様のせいで、近年新規ではほとんど使われなくなった。既存コードもどんどん別の言語に置き換えられていることが多い。

日本大手Web企業の一部が使っているので、そこに就職するために覚えるのもアリっちゃアリだけど、今からPerlをわざわざ覚えるのは強くオススメしない。

Python

後発のスプリクト言語。こちらもほぼ全てのLinuxディストリビューションに含まれており、それゆえに広く使われている。

インデントまで言語仕様規定することで、誰が書いても読みやすコードになるように考えられている言語である

Perlの代わりに使われることが増えていて、周辺ツールなども充実しており、小規模から大規模までカバーする勢いがある。

ただ、Python2とPython3のバージョン間での非互換性があまり綺麗に設計されていなかったため、そこで混乱を招いていたこともあった。

最近だとマシンラーニング系のライブラリPythonが使われていたり、海外ではPerlに代わる言語として受け入れられつつある。

最初に覚える言語としては良い選択肢だろう。

PHP

Web開発に特化したスクリプト言語CGIの代わりに使われ始め、一世を風靡した。

以前CGIWebに何かを表示するには比較的大変な労力を割かなければいけなかったのが、PHPを使うと誰でも即座にWeb開発が出来たので爆発的に普及した。

またphp.net豊富ドキュメントスニペットのおかげもあり、開発初期の効率が大変に良い言語である

残念なことに、言語API設計がいけていない点が多く、一部の人から蛇蝎の如く嫌われている。

今でも根強い人気があり、海外でも小規模プロジェクト最初の開発にPHPを選ぶのは比較的よくある選択肢であるようだ。

Webアプリを開発をしたいという明確な目的を持つ人が、最初に学ぶ言語としてPHPを選ぶのは理にかなっていると思う。

なおこの言語を本気でディスってる人は大体視野の狭いエンジニアであることが多いので、地雷エンジニアを見分けるのにも役立つ。

Ruby

綺麗なスクリプト言語日本発で世界的に普及している数少ないIT技術の一つ。

言語仕様が美しく、それゆえにファンが多い。Ruby on RailsというWebフレームワークの登場で、Webアプリでの採用例も一気に増えている。

基本的には他のスクリプト言語と同じくサーバサイドでのプログラミングに用いられることがほとんどである

スクリプト言語で何かを作成するのであれば、Rubyを選んでおけばそう失敗することはない万能言語

サーバサイドで何かすることに興味を持っているならば、最初に覚える言語としてはとてもオススメ出来る。

一方で、なぜかRuby採用するWeb側のフレームワーク(具体的にはprototype.jsCoffeeScriptはいつもクソなので、そちらは深入りしないのが吉。

JavaScript

ブラウザで動くスプリクト言語ブラウザ戦争が勃発していた18年前、奇跡のようなめぐり合わせでベンダー間の合意が取れ実装された言語

言語としてはプロトタイプベースオブジェクト指向という少しめずらしい形式を取っているが、実際にはあまりその特徴は利用されていない。

言語仕様イマイチで、大変バグを生みやす言語であり、また関数スタックが深くなる特性もあり、あまり積極的に使うべき言語ではないが

ブラウザで動く言語現在これしかないので、大きなシェアを持っている。

一部の物好きがサーバサイドでこの言語を使おうと(主にnode.jsで)四苦八苦している(とはいえ、1つの言語Webサーバが完結するのは大きなメリットだ)。

ブラウザで動く唯一の言語のくせにとにかく書くのが面倒ということもあり、多数のAltJSと呼ばれるJavaScriptに変換される別言語を生み出されている。

まあJavaScript本体人が手で書く言語ではない…というのがECMAScript5までの印象だったが、新しい規格が順次導入されており、今後に期待。

Web業界で生きていくならば、好むと好まざるとにかかわらず覚えなければいけない言語である

最初に覚える言語としては、ブラウザ上でゲームなども作れるし、node.jsサーバサイドもできるしで、意外とオススメだったりする。

GO

C、C++Javaと同じでコンパイル言語サーバサイドで高速かつ安定なバイナリを出力することを目的とされ設計されたGoogle発の言語

その目的においてはかなり高性能を誇るので、特に速度を要求されるサーバサイドでのプロジェクトでは導入が進んでいる。

それ以外の目的ではあまりこの言語採用するメリットはないが、ニッチ用途ピンポイントで抑えており、これから広く利用されることも期待される。

コミュニティも活発であり、初めて言語を覚える人が参入すれば喜ばれるだろう。言語としても美しい言語なので、サーバ系のプログラムに興味があればオススメである

まとめ

繰り返しだけれど、それぞれの言語ごとに特徴があり、特徴のない言語は廃れていく。

ここに挙げた言語は何らかの特徴があり、何らかの用途必要なので生き残っている。

その背景を知った上で、ここにある言語は全部ある程度読み書きが出来るようになると素晴らしいと思う。

2016-05-21

React.js界隈の人に聞きたい

**誰かみんなの主張のまとめを作ってくれないですか?** (まあそれこそお前がやれよって話かもしれないので、誰もやってくれなかったら私がしますが。。)

最近JQueryはもはや不要でReactさえあればOK,みたいな記事をよく見ますね。

論旨としては、どうせトランスパイラ使ってるんだからもっと便利な書き方しようぜ!ってことなんだと思います。(virtual DOMがメインだ!という話もあったけど、じゃあ何でReactなの?というのは聞きたいかな。メジャーから?)

ただちょっと個人的違和感が拭えないので聞きたいです。

ちなみに私は昔coffeeとbackbone.jsか何かで業務用のページ(SPAではなかったような気がする)を作るお仕事をしたことがありますが、フロントエンドエンジニアというわけではないです。どちらかというとサーバー管理とかのほうがよく知っていると思いますが、Javascriptもそれなりには書くくらいの感じの人です。Reactは不幸にして一度も触ったことがないので、以下の文章はすべてコードサンプルをみたうえでの感想です。

そもそも世の中にそんなにSPAがあるのか

まずこれ。正直そんなにたくさん動的にがりがり書き換えているページをあんまり見ない気がするんですよね。その上正直そういうウェブページ、あったとしても大体使いづらいです。

世の中のページが全部FBならいいのかもしれませんが、具体的にはどんなところで使ってるんでしょう。業務ページとかですか?あと、なぜSPAにしなければいけないのかもよくわからないです。画面遷移するのだめなの?という感じで。

JSXを使うことに抵抗ないんですか?

トランスコンパイラを使うのって、結局「将来的には全部ES6になるのだから、今のうちからES6で書いておけば将来のメンテナンスコストとかも減ってうれしいよね!」っていうことなんだと思います

こういう例、JS以外にもいろいろあって、例えばboostAndroidのsupport library, Pythonのfrom __future__ importなどなどあると思うんですが、どれもやっぱり将来的なコストを見据えて、非標準のライブラリ記法を使いましょう、ってことですよね。

でもJSXってそういうのじゃないじゃないですか。いわばsupport libraryを使うのとmonoで全部書くのと、位の違いがあるように見えます(そこまでは違わないかw)。そういう考察を一切入れずに、「どうせトランスパイラ使ってるんだから拡張記法使っちゃおうぜ!!」っていうのはかなり危ういように見えます

そもそも、JSって結構独特な言語ですよね。もちろん今はnode.jsとかあるわけですけど、まあやっぱりスクリプト言語の標準の座ってPythonRubyですよ。世の大多数の人はそっちのが使いやすいとおもってるんでしょう。ということでそもそもトランスパイラ通すんだったらもっと普通言語から変えるようなソフトウェア流行ってもいいんじゃないかなあとか思いますけど、そういうのがないのも謎です。dartとかどうなってるんですかね。(まtypescriptとか一種それだという話もあるか)

五年後のビジョンがありますか?

五年、十年あとにReact.jsって流行ってるんでしょうか。例えば五年前はcoffee script結構流行ってましたけど、たしかもうサポート打ち切りとかになっちゃったんですよね。もちろん営利企業がバックなので、そこまで急になくなるかはわからないですけど、五年したらみんなまた別のライブラリがすごい!!みたいに言ってるんじゃないでしょうか。

まあだからこれはフロントエンドエンジニア業界全体の問題なのかもしれませんが、そういう将来的な保守コストをどう考えているのかが気になります特にもし業務ページであるなら、せいぜいがなるべく枯れたライブラリ(≒JQuery)と、テンプレートエンジンあるいはフォーマットストリングでも使ってpure ES6で書いたほうがいいんじゃないでしょうか。そうすると結局SPAにはしないですよね。

まあこれを突き詰めるとじゃあetaxもactivexで、銀行システムcobolで、マシンはpc98で、、、とかなっちゃうかもしれないんで、難しいところではあるとは思いますが、、、

とりあえずこんなところで、有識者の皆さんよろしくお願いします。

追記

React.jsでした。angularと混ざりました。。あと特に喧嘩売ってるつもりとかは全くないですがそう見えたらごめんね。

id:murishinai 主張は単純で、せいぜいES6+トランスコンパイラ(+JQuery)とかでいいんじゃね、遷移はサーバー側でやったほうが楽じゃない?という感じです。

id:wordi virtual domが最大のメリット、ってのはよく見る意見ですね。例えば実際どんな場面で(どのくらいの規模のプログラムで)domの改変コストが効いてくるのか、みたいな実例を教えてくださると助かります。(もちろんFBとかはそうでしょうけど、もっとなんだろう、身近な例でお願いしたいです。)なんかReactががりがり(かつユーザー目線から見て有効的に)使われている例がイメージ出来ないのが問題な気がしてきました。

id:logic ええっと、それはそうなんですけど、なんだろう。標準のもので、少なくとも今後10年はあるだろうと言うもの(たとえばES6+フォーマットストリング)があるのにも関わらず、今後5年持つかもわからないライブラリを全面に押し出すの、ちょっと怖く見えるなあという気持ちです。

id:erukiti 具体的に頭の悪い点をご教授くださるとたいへんありがたいです。小規模だとそもそもvirtual domメリットもなさそうですし、ES6標準でええんちゃうのんという気がしてならないのですが。

id:manaten もちろんFBGMailJQueryだけで作るのは不可能だと思います。だからFBはReactを、GはAngularを作ったのでしょうが、逆にそんなに気軽に使うようなものにも思えないのですよね。それこそ何百ブクマも付くのやべえなあ、と。(ところで私にはReactよりAngularJSのほうがずっと気持ちよく見えます

トランスパイラですねごめんなさいw

SPAが使いづらいってのは言いすぎかな。正確には、「ページ遷移型のUIに比べて、SPAであることのメリットが明らかに生きているページって少なくないですか?」ということです。もちろんFBとかGとかtwとかは例外だと思いますけど、DOM1000個とか10000個とかいじくり回しているページばっかあるようには思えない。もちろんどーーしてもSPAじゃなきゃダメなんだっていうならこの手のライブラリを使うといいとは思うんですが、どっちかというとニッチ需要じゃないでしょうか。

あとなんか保守点検に関する意識ちょっと違うのかなっていうコメント散見されたんですけど、うーん、一発書いて書きっぱなしっていう案件そんなにあるんですかね?ちょっとそこがよくわかんないです。一度書いてもやっぱりn年先、さらもっと言えば自分がその職場からいなくなった後のことまで考えてプログラム書くべきだと思うんです。そうすると、例えば数年後のプログラマにとってのReactは今のprototype.jsになってるかもしれない。そういうリスクが怖いです。勉強すればいいじゃんっていう意見もそうなんですが、なんでしょう、どちらかと言うと保守を気にしているので、そっちじゃないです。まあ幸いにして私は人の書いたJSをいじくり回した経験はないので、ただの推測なんですが。

それともしかしたら「枯れた技術」あるは「標準化」という意識あんまりないのかなとも思いました。まあ確かに「Web世界日進月歩!」ってことなのかもしれないんですが…。別のページのブコメとか見ても、「枯れた技術を使う」=「不勉強」みたいなのがあって、不思議です。。

あとcoffeeのころ、っていうコメントありましたが、あの頃はみんな夢がありましたよね。AltJS世界を救う!みたいな。翻って今はどうか。それを思うと、やっぱり何でもかんでもReactじゃ、という意見には違和感を感じるんですよ。

増田に書いたのは単にみんなが見てくれるというだけの理由です。そもそも今諸般の事情お仕事としてのエンジニアはしていないですし。ほんとに純粋質問だと思ってもらえればうれしいです。

まあ長くなってきたので私のブログにまとめ直してもいいのですけど。

そういえばモバイルという話も出ていましたが、先日のandroid instant appsって、アレ「HTMLモバイル向けに軽快なリッチUI作るの無理だからやめような」ってことかと思ったんですが、どうでしょうか。もちろん今現在必要ですけど~。

2016-03-31

あのMicrosoftbashねえ。

昨年まではLinux界隈を露骨に毛嫌いしてて、node.jsとかアレとかコレには見向きもしなかったMicrosoftが。

何があったんだろう。アップル市場を食いつぶされてて焦ってきたのかねえ?

しかし、無駄なあがきだろう。

アップルMacにはWindowsインストールできるが、普通PCOSXインストールする事は不可能ライセンス的にも許されていない。

から結局、一般PCを買うよりは、Macを買った方がずっと合理的なんだよね。

それに、特にWebデベロッパーは、Mac以外の合理的選択肢は無い。

なぜかMicrosoftはmodern.ieというサイトIEEdge仮想マシンを配布しているようだけど

アップルSafariOSXiOS限定にしているからね。

完全にこれアップル戦略勝ちだねえ。

2016-02-14

おじさんたちへ。どうか知識(技術)に偏見を持たないで欲しい

知識に対して偏見もつおじさんが多くてうんざりしている。

いわく

組み込みと比べるとWebおもちゃ

工学より数学をやればいい」

フロントってインフラと比べてちゃらちゃらしているね」

設計実装より上だ」

クラウドよりオンプレ

「型付き言語に比べて型なし言語はまともに書けない」

等々上げればきりがない。

こういう人達共通しているのは、知識の根っこにある方が上だと思っていることだ。

プリミティブなことをやれば数学公式のごとく、下流にあるすべてを把握できると思っている。

もうやめませんか、そういうのは。

知識がツリーになっていることは純然たる事実だ。新しく見える知識でも昔の知識をちょっと変えたものだったりするのは確かだ。

ハードがなければWebは動かないし、

数学の知識がなければ工学問題はまともに解けないし、

インフラがなければフロント提供できないし、

設計しないと実装はめちゃくちゃになるし、

オンプレの知識がないとクラウドは怯弱になるし、

型なし言語不都合なくアプリケーションを書くのは難しい、

だけど、そんなのは当たり前の話なのだ。それぞれの知識はレイヤーで重なっていて、それぞれの役目を果たしている。

知識のツリーというは一種生態系なのだシマウマライオンに食べられるが、動物的にライオンのほうが優れているということはない(←(`・ω・´)お前それサバンナでも同じ事言えんの?)。

生態系と違うのはそれがものすごいスピードで起こるということ。だから時間が経てば今ある最上位のレイヤーの上にも更にレイヤーがどんどん重なっていく。

javascriptがいい例だと思う。

昔はブラウザでさえまともに動かせなかったが、node.jsやbowerやgrunt,gulpができて、javascriptというレイヤーの上に積み重なっていった好例だと思う。

まりそういうことなのだ。あるレイヤーで満足してしまうと、いつの間にか最上位のレイヤーはるか上の方にあって浦島太郎になっていたりする。

今の話題についていけずに、若者をひがんだりする。今お前らがやっていることはワシが育てたと言いたくなる。かっこ悪い大人の完成。

でもそれはしょうがない面もある。

おじさん達が若い奴らと一緒に知識を追いかけるのは無理があるからだ。走り続けるのには体力がいる。背負わなければならないものも増えてくる。

生物として、自分がやっていることが無意味だと言われないように、追い抜かれないように、必死なのだ

から知識のツリーを優劣と混同して、たとえ追いぬかれても自分存在価値を示せるように攻撃を行うのだと思う。本来は全く逆なのに。

(※すべてのおじさんがこうだとは言いません。最後から安々と追い抜いていくすごいおじさんは確かに存在します。)

話を元に戻す。新しい知識の話を聞いたらどうか偏見を持たないで聞いてほしい。それはもう自分ではどうしようもなく、手が届かないかもしれないけど。

少なくともそれは優劣の問題ではない。別のレイヤー次元の話なのだ

そしてもし自分が持っている知識のさらに上にあるレイヤーの話をされたら喜ぶべきなのだ

どんなレイヤーの知識も一つ下のレイヤー依存していることは確かなのだから

---ーー

同じように最新の技術他人の都合も知らずに押し売りする人もある種の偏見を持っていると思う。

2015-11-12

[]Node.jsイベントリスナーが呼ばれません

下記のようなファイルを用意してOKボタンを押下してもgettxt.jsのOnOKが呼ばれません。

誰か教えて下さい。

gettxt.js

var http = require('http')

,fs = require('fs');

http.createServer(function (req, res) {

fs.readFile('./HTMLPage.html', 'UTF-8', function(err, data) {

res.writeHead(200, {'Content-Type': 'text/html'});//text/plainから変更

res.end(data); // 「Hello, world!」から変更

});

}).listen(8124);

function OnOK(){

var text = document.getElementById("text").value;

// textを使って何か処理を行う

}

HTMLPage.html

※<>は全角にしてます

<head>

script src="gettxt.js"></script

</head>

body

<input type="text" id="text" size=50></input>

<button onClick=javascript:OnOK() >OK</button>

<div id="log"></div>

</body

2015-09-16

Node.js 早く廃れろ

Javascript 使いたくねーんだよ

言語仕様がクソなせいで糞な企業開発者がクソなライブラリができあがって

それを使わざるを得ない状況が耐えられん

おかげで糞なフレームワークビルドツールができては消えてるし、もっとマシな世界になってほしい

2015-04-01

プログラムの癌(Runy)をなくすには

プログラムの癌(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でも癌治療効果があったと多くの高評価が書かれている 要確認

http://goo.gl/qrq7gj

6万円で買える42度の遠赤外線ダイエットサウナ

http://goo.gl/JMtOS3

これらのキーワード検索してみればわかる。

心臓 癌

癌 熱

癌 三井式温熱治療

癌 ダイエットサウナ 

それからブログ検索

ハイパーサーミア

癌 熱

などを調べてみると実際受けた患者感想が書かれている。どれも末期だとか手の施しようのないといわれたとこから生還している。

ちなみに血液性の癌や白血病には高濃度ビタミンC点滴が有効 保険はきかない

これらの治療動物にも有効

日本医療は米に10年 欧州に20年遅れていると言われている。

なので他の病気に関しても日本医者の言う事よりもまず欧州がどんな治療をしているか調べてから判断した方がいい。医者はSilrだと思え

欧州では2008年の段階で癌が減っている事が記事になっている。

www.news-medical.net/news/2008/04/10/30/Japanese.aspx

2ch ハイパーサーミアスレ

http://hayabusa6.2ch.net/test/read.cgi/cancer/1251284895/

他にもここに詳しく書いてあるぞ!

http://apps.wiki.fc2.com/wiki/その他

プログラムの癌と言えば動的言語のことだろう。それを広めようとする関係者開発者もまたがんだ。

メーカー製の静的言語フレームワークを使えば誰でも簡単に高度なことができる。

わざわざ出来損ない言語を引っ張りだしてきて、無駄に苦労したり、無駄な苦労を広めたりする輩はほんとうにがんだ。

その苦労は数年後無駄に終わる。動的言語は数年ごとにバージョンアップを繰り返し、今書いているもの

すべて動かなくなる。2007年頃に意図的に起こされた第一次Rubyブーム 1.7のRubyはもう動かない。

互換性の問題で起動できないし、サポート対象外から脆弱性だらけ 今もRailsNodejs angluerなどが

意図的ブームが起こされているが、それらも数年後には使えなくなる。負債しかならない。

IT経営者にとってはそのほが都合いいのだろう。仮に辞められてもその技術で手間がかかりすぎて独立はできない。アプリストアがあるわけでもない。課金プラットフォームがあるわけでもない。 だからIT経営者はいきばのない技術者酷使し放題だ。動的言語技術者自由にさせない鎖付きの言語なのだ

>鎖付きの言語

鎖のついてない言語は何か?それはC#だ。C#システムを簡単に作れる。管理画面サイドはexeアプリで作り、サーバーサイドはasmxとado.net ORMを使えば一日でWEBアプリケーションが作れてしまう。リファクタが効き、ビルドができエラーは直ぐ見つかりアップデート自動ソースを書き換えてくれる。C#ができるとUnityからlot Robot スマートフォン タブレット One Windows 医療 業務用アプリまで 様々な分野に進出することができる。Railsではこうはいかない。Webしか作れないし、3年後にはバージョンアップが行われ、その都度のコード修正時間を取られる。つきっきりになっていないといけない。他の事が出来なくなる。ビルドできないからすぐバグがわからない。バグ潰しに時間を取られる。動的言語現場がいつもギスギスしてるのは、バグが探しの疑心暗記がいつのまにか人に向けられていじめみたいなことになっている。

IT派遣事業者にとっても動的言語はいつまでも脆弱性が発生し続け、保守作業がうまれる都合のいい金になる言語だ。

企業無料で教えるのには彼らだけが儲かるカラクリがあったのだ。今もRuby On Rails Ruby JavaScript Node.jsなど意図的ブームが起こされている。

メーカー製の静的言語やっている身からすると動的言語をやる輩はとても愚かだ。静的言語なら自分で書いたコード自分資産になる。

静的言語で書いたコードリファクタが効くし、コンパイルバグがすぐわかる。コードを最新のバージョン自動で書き換えてくれる。

共通ライブラリを他のプロジェクトで使い深い内容で書いても、元のプロジェクトで開いた時にビルドバグがすぐわかるから、深い内容で共通ライブラリを書く事ができる。

自分用の共通ライブラリを出来上がってくると開発速度があがっていく。無理に20倍速の早さとかメデイアで煽られて複雑に書かなくても、一度書いた物を組み合わせて使い回していけば生産性普通にあがっていく。

動的言語では共通ライブラリを深い内容を書くのは難しい。バグ発見時間がかかるから、浅い内容のことしか書けない。生産性があがらない。ファイル管理に追われて断片化したり バグを探したり バージョン管理に追われたり いつまでも手間が掛かる始末だ。

なぜこんな無駄言語を使い続けるのか なぜあのブックマークRubyの時だけ数字がはねあがるのか不思議しょうがない。Botブックマークさせてるのではと疑ってしまう。

2007年頃のステマRubyブームで騙された技術者は酷い目にあってたいはんはRubyから去っている。

求人がある訳ではない。アプリストアがあるわけではない。脆弱性は出し続ける。すぐ互換性がなくなる 使う用途が限られている。汎用性がない

加えて他の動的言語にも言える事だか

フレームワークの乱立 CMSの乱立 フレームワーク自体バージョンがあがると別ものになる。フレームワーク自体脆弱性がありサポートしてくれない。プロジェクトごとにフレームワークを学び直さないといけない

フロントサイドとサーバーサイド 両方 動的言語選択してしまってカオスな状態。スパテッゲテイすぎて再利用は不可、資産は築けない。

これが動的言語真実だ。

こんな安心して生きていけない言語は止めて、iPhoneアプリC#アプリの開発をやるべきだ

医者は儲かるからという理由で人の命よりお金になる抗がん剤を優先するのと、Silrが儲かる理由脆弱性が多い動的言語を推奨するのは同じムジナだろう。

2015-03-02

3年前、おれがSIerの片隅で、何者でもなかった頃

いや、まだ何者でもないし、僕の名前なんて誰も知らないだろうというか個人的には一生裏方のエンジニアで十分と思っているのだけど(だから匿名)、ただ単にこのタイトルかっこいーなーと思っただけだ。あと匿名である以上、この内容を信じるも信じないも読者の自由だ。

サンフランシスコベイエリアに来て2年半。まだそれだけしか経ってないのか。ずいぶん長い時間が経っているような気がする。普段のこちらの会社事業売却でレイオフしたり転職したりパフォーマンス不足でクビになったりしない限りは至って毎日同じような天気で同じような生活リズムで働き続けているものだが、その割にずいぶんといろんなことがあった気がする。約5年勤めた巨大SIer退職する決意をしたのがちょうど3年ほど前。いま自分がこのエリアで働いているというのが少し驚きだ。

退職するまでは仕事は忙しいながらもそれなりに充実していた。プロジェクトが変わるごとにいろんな人と出会いながらいろんなシステムを作った。出版系、公共系、銀行系、社内システム、ユーテリティ系、プロジェクト規模も数十人から数百人まで。他の会社ではなかなか出来ない経験をしていたと思う。でも、どこか自分のやりたいことと違っていて、年次が上がるごとに焦りも増しつつあった。

研究室研究プロトタイプアプリケーションを書きまくっていた時は本当に楽しかった。研究理論を考えるよりも手を動かしてコードを書いて思い通りにアプリを動かす方が楽しかった。仕事をするならプログラムを書く仕事をしたいと漠然と思っていた。それでもSIer新卒入社してすぐに転職しなかったのは、いろんなステークホルダーと調整して仕様を決めていったり、クライアントから隠れた要求を引き出すような仕事も実際に始めてみると楽しかたからだった。今でも自分仕事の進め方はSIerでの5年間がベースになっているのは間違いなく、そしてそれはシリコンバレーであっても今のところ大きな武器になっていると感じる。ちなみに、SIer入社したのは他に内定が無かったからだ。。

当時は20台後半。プログラミング仕事にするにしても長く続けるなら将来的にはベイエリアで働くのが良かろう。ただ、いきなり現地の会社ビザサポート付きで採用してもらうのはほぼ不可能なので、語学学校コミュニティカレッジインターン現地採用というフローが遠回りながらも最も現実的なようだ。いずれにせよ、準備だけはしておかなければなるまい、ということで週末はとにかく盲目的にプログラミング勉強を続けた。WiMax契約して家の近所の図書館に閉館までこもりそこが閉まるとWiFiが使えるからふね屋に移動し、という具合にラップトップを持ち運んでうろうろしていた(自宅では集中力が続かないタイプ)。iOSを触ったり、気になったオライリーの本を読んだり、蟻本を読んだりとにかく闇雲に色んな技術に触れていたが、最もよく触れていたのはJavaScriptだった気がする。仕事では業務系Webアプリケーションが多かったので、Web関連だとJavaScriptが良かろう。また「なぜ関数プログラミング重要か」という論文JavaScript写経してみて楽しかったとかそういった理由だ。当時はまさかこれほどNode.jsが使われるようになるとは思ってもみなかったし、当時読んでいた本の著者と同じ会社で働くことになるとは夢にも思わなかった。

でも、結果的にその努力自分の身を助けることになった。偶然、ベイエリア会社日本人エンジニアがH1Bサポート付きのエンジニア募集をしていたのだった。その時点では自分なんかがいきなり飛び込める世界ではないと思っていて、最初自分コードに何かしらアドバイスをもらえればいいと思ってメールを送ったのを覚えている。そこからダメもとで受けてみたところ、コーディングインタビューの手応えがわりと良くてオファーをもらうことができた。

その会社ではちょうど2年働かせてもらった。自分のような特にオープンソース活動もしておらず英語も上手くない日本人にチャンスを与えて本当にたくさんの経験をさせてくれ、人生でかけがえのない時間を過ごさせてもらい本当に感謝している。今は転職してそこそこ名の知れた会社コンシューマ向けのWebサイトJavaScriptで開発している。

こういったケースはすごい稀でたまたまめちゃくちゃ運が良くて今の自分があるんだろうけど、でも万に一つのチャンスを逃さないように努力を続けることはたぶん大事で、おそらくそれが無ければ転職することも不可能だっただろう。週末にプログラミング勉強をするという習慣は今も続いている(むしろ東京よりも娯楽も友達も少ないこちらでは週末は他にやることがない)。勉強したいことリストの増える速度が完全に消化速度を上回っているのだけれど、何も勉強したくなくなった時がプログラミング仕事にするのをやめるときなんだろうなと最近は思っている。

2014-12-31

1年の締めとして一人ハッカソンした

去年の今頃は「今年こそはすごいWebサービス作るぞ!!!!!!!!!!!」って意気込んでたのに

なんかもう今日が最終日。

ということでこの12月から何か作ろうと考えていて、丁度年末からということで作った。


Amazon購入金額分析

前にAmazonの購入金額合計を出すブックマークレット流行ったけど、それとほぼ同じ。

Amazonの今までの合計金額と、書籍とかPCとかカテゴリごとの合計金額出してグラフにする。

適当Twitter投稿して終わり。


年末だしTwitterで「2014年Kindle購入金額内訳は...でした」とか投稿すれば

みんなつられてアクセスするはず!宣伝しなくても勝手に大ブーム間違いなし!!!!!!!!

最終日に目標達成大勝利!!!!!!!!!


って思ってたけど

投稿してもだれもアクセスしてくれない。待っても待ってもアクセス0。

e?嘘でしょ???って思ったら

EC2セキュリティグループの設定変更忘れてた。

よーし今度こそアクセス過多間違いなし!!!!!


のはずだったけど今度はrobots.txt見に来るクソbotしかアクセスしてくれない。

虚しさ半端ない

というかTwitterURLつぶやくと即効でどこぞやのクローラー巡回してくるんですね。


構成自体クライアントサーバサイド共にjsEC2上でnode.js

D3.jsグラフ画像svgからどうにかしてpngにしないとTwitter投稿出来ないのが微妙に面倒だった

投稿時にクライアント側でbase64canvaspngにしても良かったけど

結局サーバサイドのphantomjsやらせた。

商品カテゴリ取得するためにはProduct Advertising API使うしかなくて

コレが毎秒1商品しか取得できない厳しい制限付き。

重複なしで600商品購入してたらなら10分かかる。

redis上にキャッシュしておいたりwebsocket適当に進捗伝えたりした。


今回得た経験値としては


あたり。


今年は残念ながら目標不達成だったけど、いい最終日の過ごし方になったと思う。

お疲れ様でした。

2014-10-23

http://anond.hatelabo.jp/20141023114211

やってきた言語PHPPythonRailsJavaScriptNode.JSObjective-CJavaあたりだろうか

これだけでウソだとわかる親切な釣り

29歳Webエンジニア年収が1000万円を超えた

23歳でWeb業界に入り6年目、ついに年収が1000万円を超えた。

30歳までに年収1000万円を超えるのが1つの目標だった。

他の高給な仕事に比べれば大した額では無いが、エンジニアとしてはブラックという程には悪くはない数字だと思っている。

もちろん残業なんて殆ど無い。

目標を達成できた事は素直に嬉しいし、今のところ満足している。


大学卒業後は東京ベンチャー企業エンジニアとして新卒入社

初年度の年収わずか350万円だった。それを思えばここまで結構頑張ったと思う。

基本的にはずっとWeb畑を歩いてきたが、時代の移り変わりで今はiPhoneAndroid案件によっては書いている。

やってきた言語PHPPythonRailsJavaScriptNode.JSObjective-CJavaあたりだろうか。

もともとコードを書くことは好きだったので、案件に応じてなんでもやった。


会社ではマネジメント業務をそろそろやれと打診されているが、まだ技術現場にいたいので断っている。

6年目ともなると決まって難しい案件が回されてくるが、今のところは役職も無いヒラのエンジニアだ。


ITブラックだとか、Web薄給だとか、巷では色々と言われているが、ああいうのは殆ど嘘みたいな物だと思っている。

極端に酷いサンプルが、ゴシップ的に取り上げられているだけだろう。



慎ましやかに生きる分には、実際に業界にいる身としては今のところ悪くはない。

コンピュータの事が好きなら、学生はこの業界へ入っておいでよ。

2014-10-06

http://anond.hatelabo.jp/20141006192437

NoSQLNode.jsについては、限られた目的に特化した仕組みなのに、対象外の分野で使おうとして文句言ってる人が多い

ってばっちゃが言ってた

ログイン ユーザー登録
ようこそ ゲスト さん