「Scala」を含む日記 RSS

はてなキーワード: Scalaとは

2020-08-19

ソフトウェア設計についてドヤ顔で語ってくる人

たまたま知り合ったITエンジニアが、押しつけがましく「〜はクソ!」「〜はこうあるべき!」「〜は神!」とか、バカみたいな語り口調で設計熱弁してくる人で。

そういうフレーズ記事に注目してもらうために書くもんであって、口に出すことじゃねーからと思いながら聞いてたんだけど。

で、あまりに聞くに耐えないから、好きなプログラミング言語の話でも聞こうかと思って、何が好きか聞いたらPHPScalaで、いやなんか色々もうひどすぎて関わったこと後悔した。

別にPHPScala言語は悪くないと思うけど。でも、バカみたいな決めつけ口調で他人思想押し付けてくるやつって、どこか歪んでるんだなって。あ〜もう時間返して。

2020-05-21

初心者向け】プログラミング言語人気TOP20簡易解説

概要

プログラミング経験からプログラミング勉強してみたい、でもどのプログラミング言語をやればいいのかわからない」というような悩みを聞くことがあるので、https://redmonk.com/sogrady/2020/02/28/language-rankings-1-20/ に載っている人気の言語TOP 20について、未経験者が最初に学ぶのはどの言語が良いかという観点簡単解説してみます

対象読者はプログラミング経験者なので、なるべく難しい言葉を使わないようにしたつもりです。また、正確性よりもわかりやすさを重視しているので何かしら間違っているかもしれません。ご留意ください。


ランキング

1位 JavaScript

Webブラウザの上で動くプログラミング言語。元々ただの文書しかなかったインターネット世界に、グリグリ動くページを作りたいという欲求により生まれた。JavaScriptのおかげで今のWebページグリグリ動きまくりである

元々HTMLちょちょっといじる為だけのものだったが、どんどん進化を続けて今は一つの超人プログラミング言語である。今ではブラウザ上でなくても普通に動かせる(Node.jsという)ので様々な用途で使われている。

ブラウザ上で動くプログラミング言語基本的JavaScriptしかないので、JavaScriptはすべてのWebプログラマが学ぶ必要があると言っても過言ではない。

ちょっとしたプログラムを書いてすぐブラウザ上で動かせるので楽しい。そういう点ではプログラミング入門に適していると言えるかもしれない。


2位タイ Python

機械学習を始めとしたデータサイエンスの分野で激烈に人気のある言語理由としてはNumPyとかTensorFlowのようなライブラリが充実しているというのが大きく、資産がたくさんあるのでこれからも使われ続けるであろう。

Webも作れるが、日本ではWeb系の求人は少ない気がする。

言語としては、誰が書いても簡潔で読みやすコードになる傾向にあり、小さいプログラムを書くにはいい感じである米国ではプログラミング教育Pythonがよく使われているという話も聞くし、初心者プログラミングを始めるのにはいいのかもしれない。

将来AIデータサイエンスをやってみたいと思うのであればPythonから始めましょう。


2位タイ Java

ランキングでは常に一位に近い順位をつける言語Javaができた当時は色々と革新的だったらしく、組み込み業界からWebまで流行りまくっていた。今でもその名残か使っているところは多い。過去資産プログラマの数が多いのが一番の理由だと思う。AndroidアプリJavaで書く(もしくはKotlin)。

実行速度が速く、また下位互換性がしっかりしているので過去に書かれたコードが新しいマシン上でも動きやすいのが長所短所としては、歴史ある言語下位互換性を保っているため文法が古い感じがする。タイプ量も多くなるし、学習コストJavaScriptPHP, Ruby, Pythonあたりに比べると高い。

正しく使えば強力な言語だが、日本のクソSEもどきは全員(自称JavaエンジニアであることがJavaが毛嫌いされる理由の一つになっている[要出典]。いわゆるGAFAJavaをかなりヘビーに使っているので要は玉石混交ということである

Androidアプリ作ってみたいというならJavaからはじめるのはアリ。


4位 PHP

Webページを作るためだけに生み出された言語プログラマの数が非常に多い。日本求人が一番多いのはJavaPHPであろう。

初心者でもとっつきやすく、すぐに動くプログラムを作れるので入門に使われることも多い。学習コストの低さはトップレベルであるしか基本的には古くてダメ言語とみなされており、PHPで作られたWebサービス脆弱性が多いという都市伝説もある。真実は闇の中である

近年のバージョンアップ比較的良い方向に向かっている(と個人的には思う)ので、選択肢としては意外と悪くないかもしれない。


5位 C#

Microsoftが生み出した言語で、.NETというプラットフォームを使ってWebサービスを、Unityというゲームエンジンを使ってゲームを作ることができる。

最近有名なのはUnityで、今やほとんどの3Dソーシャルゲーム(の一部分)はUnityで作られている。そう考えるとC#プログラマ結構いそうだし将来もある程度安泰かもしれない。もちろん.NETも広く使われている。

ただし.NETUnityも触らない人にとっては基本的に縁のない言語である

なんかゲーム作ってみたいかもなーと思う人はC#から始めてもいいんじゃないでしょうか。


6位 C++

C言語に色々な機能を足しまくってできた巨大な迷宮のような言語言語仕様は複雑怪奇だが実行速度は全プログラミング言語中でも最速レベルなので、パフォーマンス重要な開発において使われる。アプリサービスというよりは、それらを作るためのライブラリプラットフォームなどを作るときに使われることが多い。Web系の会社でいうとGoogleなどは主にC++を使っている。

基本的には初心者が触る必要はない。競技プログラミングを極めたいとかならC++からはじめてもいいかもしれない。


7位タイ Ruby

このランキングの中で唯一、日本人によって作られた言語。作者のまつもとさんは世界有名人である。ちなみに島根県出身、在住。

プログラミングを楽しくすることがモットーらしく、確かに書き味は良い。また作者が日本人なこともあってか日本情報が多く、情報収集という点ではとてもやりやすい。

Ruby on RailsというWebサービスを作るためのフレームワーク世界的に大ヒットしたため、必然的Ruby知名度も上昇した。少し前まで日本Webスタートアップは猫も杓子もRuby on Railsといった様相であった。今は少し落ち着いたようだが今も人気は根強く、Webプログラミングスクール等ではだいたいRuby on Railsを教えているとかいないとか。

Webに興味があるのならRubyから始めるのが一番無難選択肢と言える…のか?まあ悪くはないと思う。今でも需要は多い。スクールに行きたいのであれば黙ってスクールカリキュラムに従いRailsをやりましょう。


7位タイ CSS

これは他の言語とは毛色の違う言語である。というかCSSプログラミング言語と呼んでいいのだろうか?

CSSHTMLを装飾するためのものである。字に色をつけたり、背景を変えたり、レイアウトサイズを変えたりするのは基本的CSS役割である

すごく大雑把にいうと、HTMLで表示する内容(文章画像)を定義し、CSSでその見た目を整え、JavaScriptで動きをつける。というのがWebサービスの”見た目”を作るやり方である

なので、Webに興味があるのであればある程度はCSS知識必要である。が、これ単独で学ぶようなものではない。Webサービスを作る時についでに調べて少しずつ覚えていけば良い。


9位タイ TypeScript

TypeScript比較的新しい言語で、JavaScriptさら拡張したものであるMicrosoftによって開発されている。

プログラムにはデータの型(Type)というものがある。例えば「1」や「2」は数値型、「あいうえお」は文字列型といった具合である。大まかに言うと、この「型」に対して厳しい言語は型チェックによりバグの混入を防ぎやすいがプログラムを書くのが大変、というかコード量が多くなる。型が緩い言語サクサクかけるし短く書けるがバグを生みやすプログラマの力量が問われる。ランキングの中だとJavaScript, Python, PHP, Ruby, Perlあたりは緩く、Java, C++, C, Swift, Go, Kotlinあたりは厳しい。

そんな中、世で広く使われているJavaScriptの型チェックが緩すぎるのでもっとちゃんと型をつけたい、そんな要望を叶えるのがTypeScriptである基本的JavaScript理解している人間が使うべき上級者向け言語というのが現状なので、初心者が始めるには適していない。

ただしこの先主流になっていく可能性は大いにあるので、どこかのタイミングで勉強してみても損はしないと思う。


9位タイ C

C言語基本的OSを作るための言語であるOSというのはWindowsとかmacOSとかLinuxといったもので、マシンを動かすための基盤となるソフトウェアであるAndroidスマホにはAndroid(という名のOS), iPhoneにはiOSが載っている。コンピュータ基本的OSがあって初めて動かすことができ、OS提供する機能を使ってブラウザスマホアプリなどを動かせるのである

というわけで、初心者が学んで実用的なものではない。ただしC言語というのは世の中の様々なものの基盤になっており、他言語文法C言語から拝借しているものが多い。例えばC言語をある程度勉強していればJavaPHPなどはなんとなく雰囲気で書けてしまったりする。

そういうわけで、コンピュータサイエンスをこれからちゃんと学んでいきたいという人(大学生とか)はC言語から始めるのもいいと思う。ちなみに筆者は初めて書いた言語はCであるが、意味理解できるまでに2年かかった。才能がないとこうなるので注意。


11Swift

SwiftAppleによって作られたAppleのための言語であるiOSアプリiPhoneアプリと言い換えても良い)を作るためだけに存在している。

言語自体は他と比べて新しいため文法機能イケてる雰囲気があるので基本的はいいのだが、iOSアプリ以外で使っている人は多分世界で5人くらいしかいないと思う。なのでiOSアプリに興味がない人はやめておきましょう。iOSアプリを作りたいあなたは他に選択肢はない。Swiftをやりなさい。


12Objective-C

Swiftが生まれる前はiOSアプリを書くためにObjective-C必要だったため、多くの人がこの言語を使っていた。が、今はSwiftがあるので、古くからあるObjective-Cアプリメンテナンスする時以外に使う機会はない。名前すら覚える必要がないので存在を忘れてしまって構わないが、これだけ順位が高いということは多くの企業がいまだにObjective-Cで開発し続けているということであり、ニッチ需要はこれからも残るのかもしれない。


13位タイ Scala

Scala関数型言語と呼ばれる言語の一つ。Javaの親戚みたいなものなのでJavaとの連携が容易であり、上手く使えば性能も出るしコード量も少ないしバグも少なくて最高、な感じらしい。が、その分難易度が非常に高いので初心者が手を出すものでは絶対にない。どんなに早くても他に二つは言語を覚えてから勉強しましょう。Javaを覚えてからやるのがベター


13位タイ R

R言語データ解析用のプログラミング言語である

正直ほとんど書いたことがないのでよくわからないが、ビッグデータというワード流行りだした頃はデータ解析用途でかなり流行っていた。その後機械学習AIブームが来て、今でも現役で使われてはいるがPythonがどんどん勢力を拡大しているので少し目立たなくなってきた、というのが個人的な印象である。まあプログラミング初心者最初にやるようなものではないことだけは確かである


15位タイ Go

Go言語比較的新しいGoogle製のプログラミング言語で、Googleのように巨大なシステムでの使用目的に作られたものであるしかし実際には様々な企業が利用しており今一番勢いのある言語と言ってもかもしれない。

他のプログラミング言語の良い点や悪い点を参考に設計されており、実行速度の速さと生産性プログラムの書きやすさ、読みやすさ)を両立できるような言語になっている。ただし、機能を増やすのではなく本当に重要機能だけに絞るという思想があるようで、他の言語に慣れていると機能の少なさに不便を感じるかもしれない。

学習コストが低いという点では最初に学ぶ言語として適しているかもしれないが、GoだけでWebサービス等をサクッと作れるのかというと微妙なので、アウトプットを出しにくいというのはあるかもしれない。

二番目や三番目に学ぶ言語としてはオススメ


15位タイ Shell

シェルというのはテレビなんかでハッカー的な人間PCを開いて謎の黒い画面に白い文字を打ち込んだりするアレである説明としては正確ではないがまあ大体そんなもんである。何が言いたいかというと初心者最初に学ぶとかそういうものではない。しかし実際に開発の仕事をやるとシェル知識はあったほうがいいし、シェルに多少詳しくなるとPC上でテキスト操作をしたりファイルをいじったりというのが便利にできるようになる。ただし(通常は)極める必要はない。

Shellと言っても実際にはbash, csh, tcsh, zshなど色々あるのだがそれらをひとまとめにしてShellとなっているようだ。


17PowerShell

PowerShellは上のShellの親戚みたいなもので、ShellがMacLinuxで動くのに対しPowerShellWindowsで動く。そんだけである。あと正直あまり知らない。


18位 Perl

ランキングの中ではかなり昔からある言語で、サーバーと呼ばれるマシンには大体Perlが入っている。そのくらい市民権を得た超有名言語で、C言語C++で書くほどでもない小さなプログラムはとりあえずPerlで書く、というくらいには広く使われていた。インターネット初期はほとんどのWebサイトはPerlで書かれていたとかいないとか。PHPなどの登場はその後である

今でも広く使われてはいるが、RubyPythonPerlの後継的な位置付けであるため、初心者が新しくPerlを学ぶメリットというのはあまり思い浮かばない。何か特定目的があるのであればいいと思う。


19位 Kotlin

Kotlin簡単に言えばBetter JavaであるJavaをもうちょっといい感じに書きたいという気持ちで作られた言語で、Scalaと同じくJavaの親戚のようなものである

ランキングの中ではSwiftと並んでかなり新しい部類。AndroidアプリKotlinで書けるようになったことがきっかけで人気が爆発的に上昇、今ではWebの開発にも使われていたりする。

とは言えまだまだ新参者といった感じで、ドキュメントなどの情報も他の言語に比べると物足りないので初心者には厳しいかもしれない。

言語自体はとてもいい感じなので、もう少しコミュニティ成熟してくれば最初に学ぶ言語選択肢として有力になるかもしれない。


20Haskell

HaskellScalaと同じく関数型言語であるScalaJava的な書き方でも動くの対し、Haskellは「純粋関数型言語」と呼ばれ、ランキング中の他の言語とは一線を画した書き方になる。どう考えても初心者にはオススメしない。少なくとも他に二つは言語マスターしてからやりましょう。


総評

なんとなくWebに興味がありそうならJavaScriptRubyもしくはPHPAndroidアプリに興味があればJavaiPhoneアプリに興味があればSwiftAIデータ分析に興味があればPython3Dゲーム開発に興味があればC#。この辺りをやりましょう。

特に目的がないのであればフィーリングで選んで大丈夫ですが、やめておくべき言語というのはあるのでその辺だけ参考にしてもらえれば。

なお筆者はただのヘボプログラマであり、大好きな記事http://www.mwsoft.jp/column/program_top10.html) の現代版かつより初心者向けなものを書いてみたいと思ってこの記事を書きなぐった次第である。あまり真に受けないよーに。

2020-03-01

MtGプログラミング言語の色

このプログラミング言語MtGだと多分この色の組み合わせだろう。

みたいなのをまとめたら次のようになった(TIOBEのランキングトップ50)。

後半は知らない言語もあって怪しいが、おおよそこのようになると思われる。

※改めて見てみると何箇所か違和感があったので最初の版からちょっとだけ修正した。

順位プログラミング言語色の組み合わせ 内訳
1 Java アブザン 白黒緑
2 C ゴルガリ 黒緑
3 Pythonティムール緑青
4 C++ ジャンド 黒赤緑
5 C#バント 緑白青
6 Visual Basic .NETレズニア 緑白
7 JavaScript ボロス 赤白
8 PHPグルール 赤緑
9 SQL 無色
10Swift 4C(緑欠色) 白青黒赤
11Go ゴルガリ 黒緑
12Assembly language 黒単
13 R ゼット 青赤
14 D グリクシス 青黒赤
15 Ruby 赤単
16 MATLABゼット 青赤
17PL/SQL 無色
18 Delphi/Object Pascal アゾリウス 白青
19 Perlラクドス 黒赤
20Objective-C エスパー 白青黒
21 SAS アゾリウス 白青
22 Visual Basic 緑単
23Dart ジェスカイ 青赤白
24Scratch 白単
25 Scala 5C 白青黒赤緑
26 Groovy ナヤ 赤緑白
27 Transact-SQL 無色
28F# アゾリウス 白青
29 Rust マルドゥ 赤白黒
30 COBOL オルゾフ 白黒
31ABAP アゾリウス 白青
32 Lispシミック緑青
33Kotlin 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 ジェスカイ 青赤白

見返してみるとおおよそ次のルールに従って決めているような気がした。

緑の判定があやふやな気が若干しないでもない…

イメージ
レイヤ初心者向け
浮世離れベンダー
レイヤ、黒魔術
速い、先進
基盤、グル
無色 道具

2020-02-27

偏見に満ち溢れた俺の書いたことのあるプログラミング言語説明

1つにつき3行で書いた、言語の話は炎上しがちだから匿名で。

C言語:

現代だと電子機器プログラミングで使うよ!

Linuxとかサーバープログラムの内部で使われることが多いけど、

自分で手を加えることは少ないか安心して!

C++:

実行速度が超高速なのと複雑怪奇な構文が特徴だよ!

ゲームプログラミング動画編集ソフトといった高いパフォーマンス

求められるシステムで使われるイメージがあるから最初は近づかなくても良さそうだね!

C#:

Unityゲーム作る時に使うよ!

比較的書きやすくて勉強になるからオススメ出来るけど、

Microsoft にズブズブな印象が強いのがちょっと気になっちゃうね!

Java:

Androidアプリとかサーバーアプリ作るのに使えるよ!

勉強やすくて個人的には良いと思うけど、

現代だったら他の言語のほうが書きやすくてオススメかな??

Scala:

Javaの強化版で、サーバーアプリ作るのに使えるよ!

関数型っていう意味不明概念が混ざってるから

最初は近づかないほうが懸命だと思うよ!

Kotlin:

Javaの強化版で、Androidアプリとかサーバーアプリ作るのに使うよ!

もしAndroidアプリを作るなら最初にこれを学ぶと良いか???

とにかく書きやすいし書いて気持ちが良いし、名前可愛いね!

Objective-C:

iosアプリを作るのに使えるよ!

今はもっと書きやす言語があるから学ばなくても良いけど、

iosアプリ作ってる時にどうしても触らなきゃいけないときが来るんだよね...。

Swift:

iosアプリを作るのに使うよ!

もしもiosアプリ作りたいんだったら実質これしか選択肢は無いか覚悟してね?

書きやすい方だから身構えなくても大丈夫だけど、Macが無いと書けないから気をつけて!

PHP:

サーバーアプリ作るのに使えるよ!

個人的にはあんまりきじゃないかなって思うけど、

PHPお仕事はいっぱいあるからこれが出来ると飯が食えて嬉しいね

Ruby:

サーバーアプリ作るのに使えるよ!

学びやすいし物を作る時のスピードも早いから、

最初に学ぶ言語としては結構いかもしれないね

Python:

サーバーアプリとか人工知能(笑)とか作るのに使えるよ!

個人的には本当に好きじゃないけど、仕事人口も多いのが特徴だね!

おっぱいと語感が似ててなんだか幸せになってきたね!

JavaScript:

webアプリサーバーアプリを作るのに使えるよ!

環境を整えたり流行を追ったりするのがちょっとだけ面倒くさいけど、

webアプリ選択肢が他に無いから仕方なく使ってるよ!

Go:

サーバーアプリを作るのに使うよ!

Googleで開発された言語で、書いてるとドーパミンが出るよ!

僕が大好きな言語なんだけど残念ながら仕事は少ないね、本当に残念だ。

Lua:

ほとんど見かけないのに何故かたまに書かざるを得ない事がある言語だよ!

既存アプリケーションのプラグインを書く時に強制されたりするかな?

言語自体は単純だから、使う時が来たら覚えるぐらいでいいと思うよ!

Perl:

遥か昔に広く利用されていた言語だよ!

今学んでも古い会社しか使いみちが無いから、

令和に新しく学ぶ必要はないかもね!

BASIC:

プログラミング初心者が触りがちなイメージがあるよ!

きっと今でもどこかの世界では使われてるんだろうけど、

令和だったら他の言語も学びやす環境が整ってるから学ばなくて良いかもね!

Haskell:

正直に言うと何に使われてるのかイマイチからないんだ、ごめんね。

関数言語っていう(僕にとっては)難しい概念で、

自分を更に高めたくなったら調べてみるのも良いかもね?

2020-01-25

プログラミング言語別・かけ声

パーリラ パリラ パーリラ フワフワ みたいなやつ

(一気飲みを奨励するものではありません。お酒20歳になってから

Perl

パーアル パール パール フワフワ パーアル パール スクリプト

COBOL

コーボル コボル コーボル フワフワ コーボル コボル コーボル 構造

Ruby

ルービイ ルビー ルービイ フワフワ ルービイ ルビー オンレイル

Lisp

リースプ リスプ リースプ フワフワ リースプ リスプ 丸カッコ

Scala

スーカラ スカラ スーカラ フワフワ スーカラ スカラ 暗黙の

SQL

エースキュ エスキュ エースキュ エルエル エースキュ エスキュ 行ロック

Rust

ラースト ラスト ラースト フワフワ ラースト ラスト 所有権

JavaScript

ジャーバス ジャバス ジャーバス クリプト ジャーバス ジャバス webpack

最初に戻る)

2019-10-31

Web業界に戻りたいけど戻りたくない

Webはこれからも続くだろうし、なにより作ってて楽しいからWeb業界に戻りたい

でも、戻った先の同僚がPHP最高!とかRails最高!とかScala最高!みたいなこと言ってたら目も当てられないから戻りたくない気持ちもある

2019-08-13

Java凋落してる感じは全く無いな

KotlinScalaはイケイケだし、それらを使うにもJava知識はあったほうがいいし

RubyPythonと比べてもまだ有力

2019-06-21

Javaをメインで書いているわけではないけど

別にJava良くないか

なんならRubyより静的言語だという点で優れているような。

最近Go流行っているが、それならJavaだって同様に良さそうな気がする。

Java批判すべき点ってなんなんだろう。

- 記述冗長

- nullがたまにうざい

- なんか重厚な感じがする

- 重厚アーキテクチャ流行りすぎた?

- ORMとかが重厚なのが多かった

- ビルドツールが洗練されていない時代があった

- 故に環境構築が大変だった

- tomcat + jar みたいなのがだるかった?

- strutsがしんどかった

- 未だにstruts脆弱性が見つかったりするところ

- xml地獄からアノテーション化したりいろいろと模索していた

- なんかJava案件地雷が多かったとか?

- ちょっと昔には「俺たちイケてるプログラマ」はみんなRailsに移っていった流れがあった?

- Effective Javaよいが、そもそもそういうtips意識せずにそう書けるような言語仕様になってほしかった気もする

- 非同期処理やスレッド処理がやや難しかたか、あるいは言語側でのサポートが薄かったか(?)

言語仕様的な批判と、エコシステム的な批判に分けられそうなきがするな。

関数型言語の関心はScalaClojureに全フリしてもらって、Javaシンプル機能を持つGo方向性なModan Javaになっていってくれれば良さそうな気も。

httpサーブレットとかそのへんが微妙だったかもしかしてGoみたいにnet/httpライブラリが標準であればそれをベースにすることでオレオレフレームワークの乱立を避けることができるか、と思ったけどJAX-RSとかがあるな。

Goだって冗長記述必要言語だが、好かれているし、Javaも悪くない言語な気がするんだよな。

まあ何でもいいが。

ロジカルに考えているようで結局なところ雰囲気的なところに左右されているエンジニア多い気がする。

まあわいも、人気な言語に乗っておいて高単価を得られたほうがいいのでそうするが。今の所Goが肌にあっているんだよな・・。3年ぐらい使って熟練度上がってきたし、さほど悩まずにコーディングすることができる。

PHPの人が好きな、あるいはRubyのmethod_missingなど活かしたテクコードは、書いているやつは気持ちいかもしれないがわいは明示的にinterfaceがわかるコードが書かれていたほうが好きだ。型で振る舞いがわかったり制御されていないと分かりづらくない?複数プロジェクトを掛け持ちするから、読むときに前提知識が少なく読めるコードがいい。

まあJavaもリフレクションでテクいことができる気がするな。

Goがいい。誰が書いてもだいたい同じコードになるから、誰かに作業を振ったとしてもレビューやすい。

まあこれからJavaを書く気はしないが、GoAPI書いているマンから見ると、JAX-RSとかでゴリゴリAPI書いていくの全然悪くないんじゃないかと思うのであった。

最悪別にGeneric入らなくてもいいかもな。別にそんなに困ってない。はいってくれるなら、はいってくれたほうがいいが。sliceに対してmap, each, filter, existsなどのメソッドが生えることになるイメージかな。まあそれは欲しくなるけどな・・・

Scalaもいいんだが、たまにイキったコードを書くと分かりづらくなる時がある。イケてるコードを書こうと思ったとき結構パワーを使う言語だ。なんかモナドってジェネリックを更に強くしたやつだとも捉えられるような気がするな。ゴリゴリ関数型で書こうと思った場合プロジェクト全体に影響がある話なのでアーキテクチャ設計に力がいる気がする。

年をとると大事にするポイントが変わってくるな。昔はスーパープログラマになりたくて関数型言語とかやっていたが、今はいかに効率よく仕事をする=金を稼ぎ自由を得るかを重視している。職業プログラマとなったわけだ。仕様固めたりリリースしたり不具合対応したり運用したり、フリーランスなら税金計算したり、金儲けの方法考えたり忙しいんじゃ。今は結局スーパープログラマとは何か悩ましいよ。「プログラマとして」キチガイレベルにすごい人間というのはまだ見たことがないかもしれない。コーディングが早い?バグ修正が早い?パフォーマンスやばいコードを書ける?設計が優れている?

わいのレベルが低くて、高い人間凄さに気づけていないのかもしれないな。

2019-05-28

id:naoya , id:miyagawa 召喚呪文!!!!!!!!!!!!

システムリニューアルに関する技術発表を行います

はてなブックマークシステムの抜本的なリニューアルに関する技術的な側面について、 2019年6月末に開催される ScalaMatsuri 2019 にて 『いかにして我々は10ものPerlプロダクトをScalaリプレースたか』 という題目で、はてなブックマーク開発チーム アプリケーションエンジニアid:tanishiking24 が発表します。ご興味のある方は参加をご検討ください。

https://bookmark.hatenastaff.com/entry/2019/05/28/141208

id:naoya , id:miyagawa 久々にはてな村黄泉がえりして一言感想でもくださいな

適当発言

最近特定技術への拘りがなくなってきた。

最近レバレッジが効く言語フレームワークを好きになるようになってきた。

もう言語何でもいいわ。やっぱ静的言語がいいのと十分に熟練度がついてきたのでAPI開発ではGolang使って開発するのは良い。PHP(Laravel)、Ruby(Rails)はやはり生産性が高いので良い。ScalaMonad Transformerを使ってモナドスタック解決していく程度あれでやっていき、あまり悩まないような構成になっていればサクサクやっていけそう。

実はJavaが一番いいんじゃないか…。Springガッツリやったこと無いけど、トランザクションとかもいい感じに効いてくれそうだし、そこそこ生産性高そうだし。

知らんけど。

なんでもいいや。

2019-02-16

Rubyオワコンなら何をやればいいのか?

PythonScala

それともGolang

Kotlinって選択肢もある

逆にPHPとかJavaもありなのか?

2019-02-14

PHPプログラマが思う雑な各言語イメージ

[PHP]

なんかバカにされる。

WordPressがあるからしぶとく残ってる。

[Java]

Sler大量生産されたおっさんが使ってるやつ。

見た目が汚くて2ちゃんねる好きそう。

[Python]

機械学習用のやつ。

北米だとスクリプト言語デファクトなんでしょ?

[Ruby]

プログラミングスクール大量生産された若者が使う。

日本スタートアップが使いたがる。

[Golang]

Gopherかわいい

日本だと9割がメルカリで使われてる。

[Perl]

90年代ベンチャーがよく使ってた。

はてなが見限った。

[C++]

おれには使いどころがわからない。

職質されて裁判した人が得意な言語

[C#]

WindowsとかUnityで使うやつ。

[Scala]

色んな言語上位互換というかハイブリッド

はてな採用した。アドテクが多い気がする。

[HTML]

初心者プログラミング言語だと勘違いするやつ。

簡単って言われるけどブロック要素とインライン要素の違いも知らない人が多い。

[JavaScript]

フロントエンドだと必須トレンドコロコロ変わる。

Javaと同じだと思われるネタは飽きた。

[Swift]

iOSで開発するやつ。

そういえばstoryboardしか使えない人が入ってきて役員が怒ってた。

[Kotlin]

名前の響きがかわいい

Android用かと思ったら結構サーバサイドでも使われてる。

[なでしこ]

日本語でコーディングできるネタ要員。

初心者英語からわかりづらいと文句言ったときに先輩から得意げに紹介されるやつ。

2019-02-02

Scalaやっとけば良かった

意外と仕事あるじゃん。悔しい。

でもダメだ、俺はもう仕事ができない。

2019-01-11

Elixerだとかなんだとかちょっと調べた感じ

JavaScala程なんでも出来るようになるわけでもなし、

Rubyより処理を短く簡潔に書けるようになるわけでもなし、

Java程型チェックが厳しくできる訳でもない

ってことでオビ=短・タスキナガーシ感たっぷりなんだが…

移行するメリットあんのか…?

2019-01-01

NEC勤務のid:nekora=id:sbedit1234=斉藤辰也は職場通報されたらアウツ

id:nekora本名が「斉藤辰也」なのは御本人が自らWEB上で明かしてる事なので今更言う事では無いですね

https://www.vector.co.jp/vpack/browse/person/an012343.html

そして有志の追跡の結果、NEC関連会社の 「NEC情報システムズ」(現在NECソリューションイノベータ)に勤務してる事も確定済み

http://megalodon.jp/2016-0206-1409-40/anond.hatelabo.jp/20160206070808

http://www.j-tokkyo.com/2009/G06F/JP2009-122755.shtml

さて最近では作者のヘイトスピーチきっかけでアニメ化が土壇場で中止になったラノベ作品もあったわけで、世間ではヘイトスピーチ社会的立場を失わせるに十分足りる行為であると周知されてきましたね?

そんな中でid:nekora=斉藤辰也はid:sbedit1234というヘイトスピーチ専用アカウントを持っているわけで

http://b.hatena.ne.jp/sbedit1234/

タグ

すべて

Apple社のやりくち (2)

Perl終了のお知らせ (1)

RubyからJavaへ (1)

ScalaからJavaへ (3)

meetoo (2)

あとで読む (3)

うらやまけしからん (1)

おそロシア (30)

おまいう (3)

これは便利 (1)

ころしあえー (6)

しってた (2)

とび職 (1)

はてサ (68)

ぱよぱよちーん (64)

またGMOか (1)

またNPOか (1)

またオリンパスか (1)

またカスラジか (6)

またサカ豚か (5)

またヒューマンライツ (1)

またフェミニストか (131)

またフジTVか (1)

またベンチャー企業か (1)

またリテラか (14)

また三田佳子の息子か (1)

また人文系 (1)

また人文系か (33)

また内田樹か (1)

また化学物質過敏症か (4)

また半原発か (1)

また反ワクチンか (3)

また反原発か (108)

また反差別か (1)

また国連か (1)

また国連人権理事会か (1)

また大阪か (43)

また寝屋川か (3)

また弁護士会か (1)

また日本特殊論か (5)

また朝日か (1)

また朝日新聞か (38)

また東京新聞か (4)

また構築主義か (5)

また権力勾配か (1)

また沖縄タイムスか (1)

また無職 (1)

また無職か (18)

また現代アートか (5)

また琉球新報か (1)

また癲癇か (1)

また相対的貧困率か (3)

また社会構築主義か (2)

また福岡か (18)

また総務省か (1)

また群馬病院か (1)

まなざし村 (7)

やりがい搾取 (1)

アウトサイダーアート (1)

アスペは檻へ (1)

アダ地区 (4)

アナルマン (1)

アベニクシー (25)

アベノセイダーズ (4)

アベノミクス (46)

アメリカ人 (17)

アル中 (2)

イスラム教 (1)

イスラム教徒 (113)

イタリア人 (3)

インド人 (20)

オカルト (1)

オランダ人 (1)

オリエンタリズム (1)

オージー (8)

カザフスタン人 (1)

カナダ人 (3)

カルト (1)

ガラパゴス (1)

キリスト教徒 (6)

ギリシャ人 (1)

クレーマー (1)

グンマー (3)

ゲーム脳の恐怖 (14)

コンゴ人 (2)

ゴドウィンの法則 (2)

ゴルゴムのしわざ (49)

サカタク (1)

サブカル (1)

シリア人 (1)

シンガポール人 (1)

スイス人 (1)

スウェーデン (2)

スペイン人 (1)

スラックティビズム (20)

スラップ訴訟 (1)

ダーウィン賞 (10)

チバラギ (1)

チャリカス (4)

チンポ騎士団 (9)

テスト研究所 (1)

デマ (1)

デンマーク人 (1)

ドイツ人 (10)

ネット乞食 (9)

ネパール人 (1)

パチンカス (8)

パーキンソンの凡俗法 (1)

ヒンズー教徒 (2)

フィリピン人 (2)

フェイクニュース (4)

フランス人 (13)

ブラジル人 (1)

ブラック滝沢 (1)

プロレタリア科学 (1)

プロ市民 (1)

ヘイトクライム (2)

ベトナム人 (1)

ホモ (1)

マイノリティ憑依 (21)

マッドサイエンティス (1)

マルタ人 (1)

ミャンマー人 (5)

メキシコ人 (1)

モンゴル人 (2)

ヤクの毛刈り (1)

ユダヤ人 (21)

ユダヤ人のやりくち (17)

ユダ公 (1)

リベラル (2)

ルイセンコ (1)

三国人 (1)

不都合な真実 (33)

中国 (3)

中国シンパ (2)

中国人 (224)

中村淳彦 (3)

主語が巨大 (14)

九州 (1)

九州人 (5)

京都府民 (8)

人権大国 (9)

人権派 (1)

人種差別 (4)

体の歪みは心の歪み (2)

何だ男か (1)

修羅の国 (29)

修羅の門 (1)

全体主義者 (2)

公務員 (1)

共産主義 (101)

共産主義者 (4)

共産党 (5)

兵庫県民 (10)

内政干渉 (1)

出羽守 (3)

北杜市民 (1)

北欧 (23)

北海道民 (4)

千葉県民 (7)

卑怯者 (1)

南米人 (12)

反知性主義 (5)

同性愛者 (6)

名古屋県民 (1)

嘘松 (21)

四月馬鹿 (1)

国士 (1)

国賊 (12)

国辱 (1)

外人 (4)

大分県民 (3)

大東建託 (1)

大田区民 (1)

天才あらわる (9)

奇祭 (1)

奈良県民 (1)

女 (50)

女には向かない職業 (1)

子宮思考 (1)

安倍政権 (17)

安部政権 (1)

宮城県民 (2)

富山県民 (1)

小池陸 (1)

山形県民 (3)

岐阜県民 (4)

岡山県民 (2)

岩手県民 (1)

島根県民 (1)

左派 (254)

左派政権 (97)

差別 (16)

広島県民 (1)

強姦魔 (10)

徳島県民 (1)

思想統制 (38)

怠け者 (5)

怠け鬱 (2)

恨の精神 (2)

悪の帝国 (2)

悪人 (1)

愚行権 (1)

愛知県民 (1)

我儘者 (1)

放射脳 (34)

教条主義者 (1)

文化の盗用 (2)

文化帝国主義 (3)

日本 (1)

日本の恥 (14)

日本人 (32)

日本相撲協会 (1)

明るい農村 (1)

朝鮮人 (637)

東北人 (5)

松戸菜園 (1)

栃木県民 (2)

検閲 (1)

欧州 (1)

欧米先進国 (118)

武装難民 (1)

歴史修正主義 (49)

死ぬ死ぬ詐欺 (1)

殺しあえー (1)

毎日新聞社 (1)

民主党 (17)

民意 (12)

民族自決 (1)

民進党 (17)

氷山の一角 (1)

沖縄県民 (31)

法務省 (1)

法政大学 (1)

海野隆太 (5)

滋賀県民 (3)

漁民 (1)

無職 (33)

無防備マン (12)

熊本県民 (1)

犯罪者 (2)

犯罪自慢 (1)

独裁政治 (1)

大人 (4)

甘え (2)

田舎者 (1)

男 (2)

発達障害者は檻へ (10)

白人イタコ (1)

白猫黒猫 (1)

百姓 (1)

監視社会 (1)

社会主義 (3)

社会党 (1)

社民党 (2)

福岡県民 (1)

福島県民 (1)

秋田県民 (1)

立憲民主党 (1)

米兵 (1)

細田均 (1)

統失 (1)

総会屋2.0 (1)

群馬県民 (1)

自己責任 (11)

自称人権派 (1)

自称鬱 (1)

自転車置き場の屋根 (1)

芸術無罪 (2)

茨城県民 (1)

薬物依存 (1)

表現規制 (34)

裁判官日本を滅ぼす (14)

西日本 (1)

言論封殺 (38)

言論統制 (3)

詐欺師 (2)

詐病 (1)

議論が深まっ太郎 (1)

豚まんじゅう (24)

豪州人 (3)

貧困ビジネス (1)

貧困ポルノ (1)

超昂天使 (1)

農民 (2)

迷惑 (1)

釣果 (1)

関西人 (27)

障害者 (1)

難民 (1)

静岡県民 (6)

韓国企業 (5)

馬鹿 (2)

高知県民 (9)

鬼畜米英 (198)

鹿児島県民 (4)

黒人 (89)

グンマー (1)

サカタク (1)

このタグだけでももお腹いっぱいって感じですな。

NECは「あらゆる企業活動の場面において、すべての人の基本的人権尊重し。また、人種信条性別、年齢、社会的身分門地国籍民族宗教または障害の有無等の理由による差別個人尊厳を傷つける行為を行わない」そうですけど、上記のような社員存在することはNEC的には 有 り なんでしょうかね??????

企業として言ってることとやってる事違くないですかね??????

斉藤辰也という本名を自ら紐つけてるid:nekoraアカのほうでも、最近では障碍者執拗に狙った記事を投下していますけど、これNECさんは認めているんですかね???

http://nekora.hatenablog.com/entry/2018/06/16/213000

https://www.nec-solutioninnovators.co.jp/csr/inquiry.html

こっから上記斉藤辰也さんの行いについて問い合わせたら、斉藤辰也さん一発アウトで社会的に退場になるんじゃないですか????????

2018-12-18

anond:20181218134730

エスカレーター

ラテン語で「e=(ここから)外に」「scala=梯子(でよじのぼる)」「tor=するもの」。

直訳すると「上の階によじのぼるもの」といった感じか。

エレベーター

ラテン語で「e=(ここから)外に」「levare=持ちあげる」「tor=するもの」。

直訳すると「上の階に持ち上げるもの」といった感じか。

scalaは「梯子」という意味

scaleスケール)は「目盛り」や「ものさし」の意味、また「音階」という意味もある。

vectorに対するscalar(スカラー)は「量を増大・減少させる大きさ」。

まり梯子から「段階的な変化」を意味するようになった。

ちなみにエスカレーターという言葉からエスカレート(徐々に激しくなる)」という動詞が生まれた。逆ではない。

levareは、「軽い」という意味のlevisに由来する。

たとえば「levitation(レビテーション)」は「空中浮揚」という意味

「relief(リリーフ)」は「苦痛を軽減する=救済」という意味

「relief(レリーフ)」だと「浮き彫り」という意味

「leverage(レバレッジ)」はテコで持ち上げる。

いずれも「軽い」「重さを取り除く」結果として「上がる」という意味だ。

というわけで「階段」はスカラからエスカレーター、「浮遊」はレヴァーレからエレベーターと覚えればいい。

2018-11-05

最近一緒に働いてるフリーランスエンジニア夫婦

当方クソ田舎Web系のIT土方

最近フリーエンジニア夫婦と一緒に仕事してんだけど、

契約的には月単位時間契約で、基本は奥さんの方メインだけど夫婦分散させて1人月って感じ。

リモートSlackGitベース仕事を一緒に進めてる。

この前ちょっと飲み行ったとき話したんだけどうちとは別に似たような月縛りの案件をもう1件やってるっぽくて、

んでそれとは別に月に数回くらいは1日で捌けるくらいのちょっとした仕事もちょこちょこ舞い込んでるみたいだから

福利厚生がない分手取り収入正社員ベースで考えると引かれる額は多いんだろうけどそれでも世帯収入はそれなりにあると思われた。

二人とも見た目も話した感じも普通のお父さんお母さんって感じなんだけど、

奥さんの方は低レイヤの部分が得意で、旦那さんはWeb全般JavaScalaかに強くて、

互いに互いの弱いところをサポートしながら生活してるみたい。

なんか素敵な生き方だなぁって思った。

僕もこういうパートナーを見つけたら幸せになれるのかな。

どこ探せばおるねん

2018-10-29

はてなブックマーク

攻撃されてるのか、つながらなくてつまらない

あと、Scalaに書き換えてるのかなんなのか知らないけど、機能削りまくりにするのはちょっとどうなの?

2018-09-20

https://anond.hatelabo.jp/20180920122108

男「まぁね、SQL使えるから

カレー吹いた。

発音が変だっただけで本当は

男「まぁね、Scala使えるから

と言ったのでは。

2018-09-18

あ、機能がいっぱいある最強っぽい言語が使いたい!っていうならScalaがいんじゃね

2018-08-12

なぜSQLけがこの世界で未だに職人芸じみているのか

1.リファレンス無料で読めないか

標準SQL仕様書は有料である。このご時世ありえん。

たとえばC#など.NET系のリファレンスMSDNで読むことができる。

RubyだってHaskellだってScalaだって公式サイトガイドぐらい置いてある。

そもそも標準SQLサイトは有料ですら見つけるのが難しい。

2.実装ごとに仕様が違いすぎるから

OracleDB2MySQLPostgreSQLSQLite、AccessなどSQL実装されたDBMSは様々にあるが、どれを取っても仕様が違う。

皆が標準SQLに従っていてその上で適当増設している程度ならよいが、もはや誰も標準SQLに従う気が無い。

この点でCコンパイラ多様性のようなものとはわけが違う。

根幹的に必要機能があったりなかったりするから、あるDBMSで書けるようになったからと言ってSQLを覚えたとは言えない。

これと上記1とのせいで、何かググった時に特定DBMSしか解決法にならないものが大量に出てくる。

3.最適化人間任せだから

最近プログラミング言語は大抵、雑に書いたってコンパイラ適当最適化してくれる。

同じ結果を生むような二つのコードは、よほど下手くそに書かない限りは同じような実行速度になる。

SQLオプティマイザが最適化はするが、ほぼ同じような二つのコードで速度が全く変わったりする。

そのため実行計画というオプティマイザの中間言語のようなものを読んであげて、

より速い中間言語が生成されるようSQLチューニングし直さなければならない。

これでは何をやっているのかわからない。

有名なサイトでは、初心者必死で書いたような可愛らしいSQLを「それでは遅すぎるんじゃ」とけちょんけちょんにけなし、

なんかシンプルなのだけれどよくわからない文法を一杯使って実行速度を高めたのを「正解」としていたりする。

しかもその文法、ググってもろくな解説が無かったり、特定DBMS依存してたりと使えないオチ

4.スタイルガイドがないか

上手い人はSQLを綺麗に書く。だけど、その綺麗さの基準が人によって違う。

エディタが単なるメモ帳しかないようなDBMSも多いから、インデント文字数さえ個々人に任される。

インデントは2文字か4文字か。SELECTで改行するかしないかカンマは列の後ろか、前か。

いろいろなサイトに色々なことが書いてあったけれど、全部違うこと言ってた。

まり各々綺麗に書ければいいやということであり、読むほうも宗教が違ってもまあ綺麗なら読めるから困りはしない。

困るのは初心者である

何かの解決法をググるたびに違うスタイルからどう書いていいのかわからない。

結局なんかいろいろな上手い人のスタイルをツギハギした新たなスタイルが世に誕生してしまうのだ。

最後

だけど、そんな職人芸じみたSQL世界が私は好きです

2018-06-29

はてなブックマークをまともにするには

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