「Scala」を含む日記 RSS

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

2021-01-04

弟がプログラミングスクールに通おうとしたのを全力で止めた話

正月実家に帰ると、今年28歳になる9歳下の弟が会社をやめてプログラミングスクールに通うと言い出したので全力で止めた。

エンジニアになりたいのならカリキュラムは全部俺が組むし、わからないことがあったらいつでも相談にのるし、なんなら仕事の紹介だってするから

まずは会社をやめるな、そしてスクールには金を払うな、と伝えた。

その後、転職をするのであれば適切な情報を伝えねばと考え、いろいろな会話をしたので、書いてみたいと思う。

まずIT業界リードしているGAFA求人情報を見せた。

例えばこれ。[ https://www.amazon.jobs/jp/jobs/1353081/software-development-engineer-full-time-class-of-2022 ]

プログラミング言語最低一つに"精通していること"というのがあるが、スクールレベルではそこまではいけないし、かなりの高いレベルであることを伝えた。

オブジェクト指向デザインデータ構造アルゴリズムデザイン計算量解析等に対する基礎知識」も基礎とはいえ、ある程度実務経験がないと身につかないものだとも伝えた。

そして、このポジションAmazonの中ではかなりジュニアレベルポジションであり、もっと上が狙えるはずだということも伝えた。

ただ、弟はといえば、これだけできて、かつ時価総額世界一会社入社して、年収は740万円~というのにもやや驚いていたようだ。

スクール営業には短期間で年収1000万円も夢じゃないというようなことを言われていたようで、期待より低かったらしい。

次に、闇を見せた。

まずIT業界実態説明するために「IT土方」、「新3K」といった単語を紹介して、ぐぐらせた。

そういう環境普通に存在していて、かなりの確率で巻き込まれることになることを伝えた。

さらに、google:エンジニア 平均年収 などと検索させて、日本の平均的なIT業界報酬の肌感覚のようなものを伝えた。

私の15年以上のIT業界での経験から学歴や、コネ、その他の特別な才能があったりして、優良企業に運よく入社できたような場合を除き、普通経験の浅いエンジニアの方々はおおむね200~300万円台の年収になるとも伝えた。

きついうえに、低報酬という職場がにかなりの確率エンカウントするだろう事実は、弟には衝撃的だったようだ。

もちろん、弟に関していえば、俺がその地雷を避けるアドバイス提供できるし、いい会社を紹介することもできる。

だけど、コネ入社のようなことはできないので、しっかりと俺が組んだカリキュラムにそって勉強してくれれば不可能ではないと思う、と伝えた。

だけど、弟はIT業界への転職あきらめた。リスクに見合わないと判断し、今の仕事を続ける決心をしたようだ。

彼はすでに500万円近い年収を受け取っており、同年代にしては優秀な方だと思う。大学時代から付き合っている彼女もいて、結婚も考えているらしい。

今回の話をうけて、私はプログラミングスクールが極めて悪質な存在である確信を持った。

彼らは、欲しいと言われるものを売っているだけのつもりなのだろうが、彼らが奪っているのはお金だけではない。

今回もし俺か弟かどちらかが実家に帰らず、正月に会話をする機会がなかったら、彼は多くのものを失っていた可能性がある。

もしこの読者にプログラミングスクールに通おうとされている方がいるのであれば、9分9厘やめておいた方がいい。

成功する確率は高くないし、それを隠してサービスを売るようなやつに金を落す必要はない。

まずは、知り合いのエンジニア相談してみるといい。知り合いにいなければTwitterでもいい。

そして、もし読者の中にプログラミングスクール運営に携わっている人がいて、もし「年収千万夢じゃない」とかぬかしていたんだとしたら、恥を知れ。

お前のせいで壊れたかもしれない人生があるかもしれないことを忘れるな。

2020-11-21

ソースコード品質を保つために真に効果的な手段は3つしか無い

  1. バージョン管理システムを使う
  2. 静的型付け言語およびlintを使う
  3. テスト駆動開発をする

どんなに優れたツール設計思想などがあっても、使う奴がダメだと全く無意味。弊社もWebアプリを作ってて、RESTだのFluxアーキテクチャだのいろいろ導入を試みたが、ほとんど無駄に終わった。

どんなクソ組織でも効果があると確信持って言えるのは上の3つだけ。1つ目は初歩的すぎると思われるかも知れないが、筆者の想定するダメ組織ダメプログラマというのは、このレベルの連中を含む。

とにかく最低限の品質保証強制する仕組み以外は無意味

静的型付け言語サーバーサイドならJavaC#フロントエンドならTypeScript)を使わせれば、少なくともコンパイル時に分かるエラー修正させられる。

というか、ダメプログラマに動的型付けの言語は触らせてはいけない。必ずそのプロジェクト半年後には保守できなくなる。

テスト強制的に書かせるし、テストのないクラスや、通らないテストあったらコミットできないようにする(それは容易にできる)。

番外編: ものすごくマイナー言語を使う

もう一つの方法は、そもそも優秀なエンジニアしか参加できないようにすること。たとえば、ScalaHaskellErlangCommon Lispなどで書かれていれば必然的にそれが分かるエンジニアしか開発できないし、こういう言語自主的学習しているエンジニアは優秀である可能性が高い。

2020-11-05

最近ウェブ系は以前よりもPHPが目に付く気がする

以前とかあいまい表現使っちゃったし自分の見てる範囲問題かもしれないが、Go やら Scala やら Clojure やら Rust やらweb系に強い静的型付け言語があるなかで、型を重視してみたいな文脈PHP使ってます見たいなのをちょろちょろ見るようになった。

別に型がどうのという話でなくてもそれなりに技術スタックPHPがいまだに根強い。

PHPの動向は追ってないし追う気もないんだが、それなりに時代に合わせた言語機能進化をしてるってことなんだろうな。

2020-10-23

anond:20201022213743

scalaなら関数ライブラリcatsにおける型クラス定義がtraitとその多重継承の利用例として良いと思う

2020-10-22

anond:20201022213743

さぁ?オレはScala嫌いだから知らんよ。

まぁ、でも多分こんな目的では?という予想はあるよ。

・もともとは C++ は多重継承ができて、カオスになった。

Java単一継承となり、振る舞いの規約として Interface が生まれ、具象化が不要な始祖クラスとして抽象クラス発明された。おかげで、言語官僚化した。

RubyScala では、Interface に振る舞いが記載できるようになって、Mix-In という方法で振る舞いを継承できるようにした。その継承に優劣をつけれるようにすることで、C++Java の出来なかったことを解消しようとした。

・今のところ、単一継承を行うクラスベース継承を行う言語でこれ以上の解答を用意できた言語はない。今のはやりは Rust のような後付の継承を良しとするプロトタイプベース継承時代のはやりである

こんな感じなんじゃねーの?Ruby が好きだからRuby 史観で書いたけど。つまりトレイトって「振る舞い」が記載できる Interface のことだと思うよ。

anond:20201022213305

ScalaのTraitは何のためにあるのか教えてくれ

anond:20201022212544

うーん、2005年ぐらいか

Scala とか出てきたけど、デザインパターン言語レベルで組み込まれたのは、これぐらいじゃない?JavaJavascript も機能に組み込んだけど。

2020-09-21

anond:20200921021752

Goが出てきたし、Laravelころころ変わるし、ScalaやればいいのかJavaやればいいのかC#やればいいのかわからないし、バックエンドバックエンドでいろいろあってどうすればいいかからない

2020-09-19

anond:20200919104238

Kotlinが好きです ScalaやRustをやってみたいと思いながらやれていません Linux上で動く小さなツールを作る時は仕方なくPythonを書いてます 型ヒントつけて

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程型チェックが厳しくできる訳でもない

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

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

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