はてなキーワード: sedとは
日経xTECHの元記事を読んでもCOBOLの特徴があんまり伝わってこない感じだし、かといってそれをディスってもしょうがないので、書いてみた。
https://anond.hatelabo.jp/20190205192741
COBOLは本質的にはDSLなんだけど、一見汎用プログラミング言語に見えてしまってRubyやPythonなんかと比較するのが誤解のもとではあると思う。今の人でも知ってそうなCOBOLに似ている言語はたぶんSQLで、データを処理するための専用言語。ただ、SQLは頑張ればすごく複雑なこともできるパワフルな言語で、だからこそ現代でも生き延びているわけだけど、COBOLはわりとシンプルなデータ処理を想定している感じ。
SQLだけでアプリケーションを作れないのは触ったことある人なら誰でもわかると思う。普通はJavaやRubyで全体の流れを記述してデータベース入出力をSQLで書く。COBOLもそんな感じで、全体の流れをJCLやShellスクリプト、あるいはJP1のような運用管理ソフトで書く。SQLの1個の処理に相当するのがCOBOLのコンパイル単位で、それごとにソースファイルが分割される。ひとつのソースファイルに2個以上の処理を書くこともできるけど普通はしない。ここまで理解すると古いCOBOLに1ファイル内のすべての処理に影響するグローバル変数しかないのや、今のCOBOLにコンパイル単位をまたぐ真のグローバル変数がないのも、それほどクリティカルではないことがわかると思う。もし、本当に複数の処理にまたがる値が必要なら、データベースに格納してしまえばいいんだし。
で、SQLでいうところのデータベースに相当するのがCOBOLではデータファイル。sedやawkでテキストファイルやCSVファイルを行ごとに処理するのとちょっと似てるけど、COBOLの場合は固定長ファイルという点が違う。改行文字は入ってなくて、たとえば150バイトごとに次のレコードみたいな形式。これの1レコードごとに何月何日何時に〇〇という商品を□□円で売ったとか書いてあるのが典型的なデータの内容。それを集計して今日は〇〇が何個売れて売上がどれだけあったとか、出金合計がいくらで入金合計がいくらで、みたいな財務諸表を作ったり。SQLと同じように税率なんかが書いてあるマスタデータと、日々の売り上げが書いてあるトランザクションデータがあって、突き合わせたりということもする。こういう集計処理だからUIはなくて、夜中に自動起動するようなバッチプログラムが主な使われ方。(混乱するから余談だけど、今のCOBOLはSQLを使って普通のRDBにもアクセスできる。ただ使い方としては、RDB→ファイル処理→ファイル処理→ファイル処理→ファイル処理→ファイル処理→RDBみたいに、最初と最後だけみたいなのが普通)
入出力がファイルだから今の感覚で考えるとアクセスは遅い。でもメリットもあって、1回に1行しかメモリに乗せないからどんな巨大なデータでも時間さえかければ処理できる。それこそ国民ひとりひとりの年金データとかね。あと、途中でバグや不正データで止まってもデータを失うのは最小限で済むので復旧が比較的楽だったり。
データベースの話に戻ると、テーブル定義はどこに書いてあるかというとデータファイル側ではなくてCOBOLプログラム側、というのがSQLと一番違うところかも。つまり、このデータファイルの構造はこれこれこうなっていると想定して読みます、とソースコードに自分で書く。当然実際のデータ構造がそれと違ってたらおかしくなる。
まあそんな感じで80年代くらいに会計処理をする目的だったら悪い言語ではなかったので、銀行や官公庁とか、電力水道ガスといったライフラインを扱う大企業がこぞって導入して今に至る感じ。普通の大企業は途中でSunとかに置き換えてその後Linuxやクラウドにさらに置き換えたりしたけど、最初に作ったシステムが大きければ大きいほど、重要であれば重要であるほど現代的な環境に置き換えられないというのが今の課題。
IT業界は日本社会の縮図となっているんだよ - こうして僕らは腐る
http://www.byosoku100.com/entry/2018/01/13/212749
ITを学んでIT企業に就職して、この国のIT企業はきっとCIAか何かによって弱体化を図られたとしか考えられないと思いました。
自分でロジック組んだり、アルゴリズムを考えたりする仕事をさせてくれている会社もありますが、会社の規模がでかくなればなるほどそういう仕事は下流に任せる感が強い。まずこの構造が弱体化の出発点。
多重下請構造は、製造業日本ならではの伝統、下流=低賃金が根強い。背広を着た人がその伝統文化を売り捌く。文化が短納期、安請け合いを生み、短納期、安請け合いにより、品質が下がり、雇用も安く済まされ、弱いSEしか集まらず、国際競争力はなくなる。この下請け構造文化を持ち込んだのは、他ならぬ製造業文化を固持してきたメーカー系ベンダーのように思えます。メーカー系ベンダーはCIAだからなんだかのスパイ行為に加担したのでしょうか?
実はそんなメーカー系ベンダーにもいたのですが、ぽっと出の強いSEもいます。ところが強さが仇となり、全容を把握している神扱いで一段上に据えられます。そして多忙を極め、ロジックやアルゴリズムをひねり出す知的生産力は、仕様書、指示書と呼ばれるエクセル方眼紙に図形や文書を書き殴る作業力へと変貌します。
指示は全て自社フォーマットの図面に書け!その図面、審査、承認を課長に貰え!え?予算の都合、本部長承認が必要?本部長いつ来るの?1週間後だって!?リスケだ!工数再見積もりだー…これは仕事ですか?それとも茶番ですか?こうして強いSEは弱体化します。強いSEほど自分の置かれた立場や環境に順応しようとする意識が強く、仕事ができる人間になるためにはお上に楯突かず、弱体化を受け入れようと考えます。
エクセルのvlookupを使うために、学生時代に関数型言語を学んだわけじゃないのに…と就職して思うようになったunix文化を学んだ強いSEが、思考停止している情シスによって管理しきれないものは全てセキュリティホールみたいな会社にいたら、「あいつはセキュリティを脅かす不良社員」のレッテルを貼られ、朝から晩までvlookup,vlookup...(いやそのエクセル脆弱性情報とパッチ出ているけど、いやお上のお達しを待て!的な茶番劇)せめてgrep,awk,sedくらい使わせてやれって、残業がなくなってボスも最近社長の思いつきで始めた健康経営者として表彰されるかもしれんよ?思いつきだから明日あるか分からんけど…。いつまでこんな寸劇をやればいいのやら。学んだことは活かせません。茶番寸劇の中心にはやはりこの国のIT業界を弱体化させ国際競争力を低下させるスパイが潜んでいるとしかおもえません。
ここで、IT業界に蔓延る日本の国際競争力をいちぢるしく低下させているスパイの特徴を述べておきます。
スパイの目的である国際競争力の低下にダイレクトにアプローチするスパイ中のスパイです。こいつがいたら即辞めないと国や社会のためにも良くないです。
・「よく分からないものはセキュリティの都合使えません」と思考停止している人
お前はそのツールのコミッターでそのツールの脆弱性を分かってそんな事を言っているのか?と、せめて同僚がツールの有用性を知りつつ使いたいっていうならそれなりのセキュリティ的可用性を示すのが情シスの仕事じゃねーのかと?まぁこの場合スパイなのでそんな調査は死んでもやりませんが…
スパイの常套プロパガンダです。明らかにおかしな言動なのでスパイの中では未熟者なのかもしれません。
そのままでは通用しないけど、出発点であるべき。でなければその空白を埋めるコストをどうしろと?そんな言葉をマジで吐く人間は出発点にすら立たせて貰えていない場合が多い。ただ言葉を吐くスパイは、スパイが故に企業内の立場は上のほうにいるかもしれません。出発点に立っていなかろうが
よく考えてみてください。遵法精神のあるスパイがいると思いますか?そもそもこのスパイが蔓延る構造は日本社会に根深く浸透しているので、法律を取り締まる側もうまく騙されていると考える方が自然です。労基法、下請法、派遣法…機能しないのも当然です。
https://anond.hatelabo.jp/20170706235735
勝手に具体的に考えてみる。
マウスで目的の部分をさっと選択できて、さっと切り貼りできる。EmacsやViは1ストローク余計にかかって使いづらい。他のエディタなら大抵OK。
WriteMonkyなど
lorem ipsum(ロレム・イプサム、略してリプサム lipsum ともいう)とは、出版、ウェブデザイン、グラフィックデザインなどの諸分野において使用されている典型的なダミーテキスト。書籍やウェブページや広告などのデザインのプロトタイプを制作したり顧客にプレゼンテーションしたりする際に、まだ正式な文章の出来上がっていないテキスト部分の書体(フォント)、タイポグラフィ、レイアウトなどといった視覚的なデザインを調整したりわかりやすく見せるために用いられる。
「lorem ipsum」は様々なバリエーションがあるが、もっとも一般的なテキストは以下の通りである。
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
http://cpg.hatenablog.com/entry/2016/06/30/193755
プログラミング言語は、200種類以上存在していると言われていますが、その亜種や野良プログラミング言語を含めれば、星の数ほどあります。たとえば今回紹介しませんが、ベーシックという言語だけでも、ファミリーベーシック、プチコン(3DSのベーシック)、べーしっ君などがあります。
今回はその中から厳選に厳選を重ねて厳選した、プログラミング言語を5つ、徹底解説します。
Perlは歴史的に古く、sedやawkといった歴史として語られる以前のプログラミング言語のいいとこどりをした、とても、素晴らしい言語だ。
モンスト以前のmixiや、みんな大好きはてブ、はてなブログは、Perlで作られています。
学習する際は、歴史が古い分、Perl4の本も、たまに図書館に残っているため、気を付けなければなりません。
よく勘違いされるのが、「PerlとPearlって似てるんでしょ?」。違います。
何が違うかといいますと、文法から用途までほぼ全てが違います。
Pearlとは真珠のことだ。あと、バンドメンにとっては楽器。それと、譲れない願いからPEARLのCDを買った人も、いるんではないでしょうか。
https://www.infoq.com/jp/news/2014/06/perl520
Webサービスを開発したい場合、真っ先にお勧めしたいのがPerlだ。
Perlの特徴として、[[TMTOWTDI]]があります。あとPerlを生み出したLarryは、プログラマの3台美徳として、 "Laziness, Impatience and Hubris"というすばらしい考え方があります。
https://en.wikiquote.org/wiki/Talk:Larry_Wall
皆さんはAIをご存知ですか?
PerlとAI(Artificial Intelligence)でググッテても、わかるように、2000年台前半からすでに話題に上がっており、最近流行のディープラニングでも、Perl6を使った話があるようだ。
http://ai.neocities.org/P6AI_FAQ.html
https://itunes.apple.com/jp/app/perl-programming-language/id486217730
だんだん書くのが疲れてまいりました。
http://blogs.perl.org/users/lestrrat/2013/09/perlmotion-perl-for-ios.html
それとYAPCは去年で一区切りしましたが今年も、YAP(achimon)C::Asia Hachioji 2016 mid in Shinagawa あります!!!!!!1
元々私はVimを使っていて、数年前にVimに触れて以来ずっとVimを使ってきた。
しかし職場にはVimがなく、メモ帳を使うことを強制されているのだが、
案外メモ帳でも困らないことに気付いた。
そんなこんなでメモ帳も(言うほど)辛くない。
でも、FreeBSDとか使ってたらコマンドとかはむしろLinuxよりMacのが使いやすいかもよ?FreeBSD使いがMacを好むかどうかは知らんが。
UbuntuやらRedHatはすべてLinuxのお仲間なので。
これはお互いに言える事なので、そりゃ、お前はそう思うんだろうな、ってだけで。。。
まぁやりゃできるのだが、めんどくさいを極めた結果としてコマンドライン使ってるのに、調べるのはもっとめんどくさい。あと変なエラーが出ると大変なのでPCライトユーザにはまったくおすすめしない。
何が言いたいのか全く分からん。
Windowsのコマンドはよくわからんが、最近は情報が多いので特に…あと下手にコマンドいじるよりはフリーウェアを探してくれば良いと思う。
(あんたが言うシェル環境ってのはちょっとしたことを命令するだけの話なのな?)
えーと、どこを見ればいいのかも分からん。単に、BSDコマンドはGNUコマンドと違うところがあってワカンネ、ってこと?何が不満?どこが違うかご存知?sedとか?
Linuxは慣れてるディストリビューションならCUIだけで十分。慣れてない奴はめんどくさい。
CUIだけで十分、って、シェルをCUI以外から使うことがあるのか。。。?まったくもって意味が分からん。
Linux使いなら自分で変えろよ。。。標準で比べる意味が分からん。
これらまとめろよ。。。
おまえ、いったいなにやってんの?
だから、使いやすいとか使いにくいとか関係なくて、圧倒的なシェアを取ってしまってるからそれを使わざるを得ないだけ。
そういう話だと思うけど?
適材適所
perl そこそこの文書処理に
Java わりと何でもいけるが、わりと平均的にめんどくさい
JSP メモリ64K制限さえなければすばらしかったが、Java展開されたときのPrintfにサイズに制限があるので、小さいHTML向け
PHP Perl的に使う人大杉、あくまでも、HTML埋め込み言語として使うと最適print("HTMLほげほげ")とかみると悲しくなる
C/C++ 速度が必用なときに。まぁ、今では巨大トランザクションサーバーとか、CGの世界とか
速度マニアで正規表現マニアな人はlex/yacc/bison (BNFな人はANTLRらしい。最近知った)。
って感じか? 用途と違う道具を選んで、道具がどうのこうの言う前に、適切な道具を選べばいんじゃねーかと。
プログラマーは道具の善し悪しを語るんじゃない、道具を使いこなす自分の腕の善し悪しをかたらなくっちゃーだめなんだーーーーーーーー
とか、増田るあたり、俺もまだまだ、若いなぁって安心するけど・・・そろそろ、大人にならなくちゃと思う。