ヨドバシやビックカメラの紙袋みたいな背景を、プログラミング言語名リストから作成してみた

##はじめに

「プログラミング言語の電気屋さんの紙袋みたいなやつ」と言われて、プログラミング言語リストをランダムで抽出した文字列が必要になったので抽出しました。

そのついでに「WEBページの背景にも使えるのでは？」と思って作成してみました。

##出力結果1

![prog1img.jpg](https://qiita-image-store.s3.amazonaws.com/0/24977/15f0438e-8b94-9d08-dbf5-5650c1008b7b.jpeg)

シックな感じですが、目立たないのでカラフルにしてみました。

##出力結果2↓(背景黒のカラフルバージョン)

![prog2img.jpg](https://qiita-image-store.s3.amazonaws.com/0/24977/11389117-e6db-8ee9-3d68-725228158dd4.jpeg)

※文字列を傾けたり、jsでキラキラ(?)させたい！、と思いましたが、それはやめておきました。

##ソース

prog.txtはwikipediaのプログラミング一覧をコピって余計な文字列を消して作成しました。現在は312言語あるみたいです。

```prog1.php
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
</head>
<body style="background-color:#DDD;">
<h1>プログラミング言語を並べた背景</h1>
<div style="color:#CCC; top:0px; left:0px; position:absolute; z-index:-100; font-weight:bold;">
<?php
define("MAX", 1000);
$data = file("prog.txt", FILE_IGNORE_NEW_LINES);

for($i = 0; $i < MAX; $i++){
  $key = rand(0, count($data));
  echo $data[$key]. " ";
}
?>
</div>
<div id="contents" style="width:200px; height:400px;">
色々なプログラム言語を、背景にしてみました。
SEO的には、まったくよろしくない気がします。
</div>
</body>
</html>
```

```prog2.php
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<style>
  body {
  background-color:#000;
}
  .back {
  color:#CCC;
  top:0px;
  left:0px;
  position:absolute;
  z-index:-100;
  font-weight:bold;
}
.contents{
  width:200px;
  height:400px;
}
</style>
</head>
<body>
<div class="back">
<?php
define("MAX", 1000);
$data = file("prog.txt", FILE_IGNORE_NEW_LINES);

for($i = 0; $i < MAX; $i++){
  $key = rand(0, count($data));
  $r = str_pad(dechex(rand(0, 255)), 2, '0', STR_PAD_LEFT);
  $g = str_pad(dechex(rand(0, 255)), 2, '0', STR_PAD_LEFT);
  $b = str_pad(dechex(rand(0, 255)), 2, '0', STR_PAD_LEFT);
  echo "<span style=\"color:#". $r. $g. $b. "\">". $data[$key]. "</span> ";
}
?>
</div>
<div class="contents">
色々なプログラム言語を、背景にしてみました。
SEO的には、まったくよろしくない気がします。
</div>
</body>
</html>
```

※もうすこしスクリーニングしたほうがいいプログラミング言語名リスト↓

```prog:prog.txt
A
A+
ABAP
ABC
ABCL
ActionScript
ActiveBasic
Ada
Advanced Boolean Expression Language
Agena
AHDL
ALGOL
Alice
ash
APL
AppleScript
as
Atom
AutoIt
AutoLISP
AWK
B
Bash
BASIC
BCPL
Befunge
BF-BASIC'n
Bioera
BLISS
Bluespec
Boo
BrainCrash
Brainfuck
C
C#
C++
C++/CLI
C++/CX
CAL
Caml
Cantata
CAP-X
CASL
Cecil
CFScript
Cg
Chapel
Chef
CHILL
Clipper
Clojure
CLU
Co-array Fortran
COBOL
CoffeeScript
Common Lisp
Component Pascal
Concurrent Clean
Concurrent Prolog
Constraint Handling Rules
CPL
csh
CUDA C/C++
Curl
Curry
Cω
D
Dart
dBase
Delphi
Dylan
ECMAScript
Eiffel
Elixir
Emacs Lisp
Enterprise Generation Language
Erlang
Escapade
Esterel
Euclid
Euphoria
F*
F#
Factor
False
Fantom
Ferite
Ficl
Flavors
FlowDesigner
Forth
FORTRAN
Fortress
FoxPro
GLSL
Go
Groovy
Guarded Horn Clauses
Hack
HAL/S
Hardware Join Java
Haskell
Haxe
HDCaml
HLASM
HLSL
HML
HOLON
HSP
HQ9+
Hydra
HyperTalk
I
Icon
ID
IDL
Inform
InScript
INTERCAL
Io
IPL
ISWIM
J
Java
Jancy
Java FX Script
JavaScript
JHDL
JScript .NET
J#
JSX
Jolie
Julia
K
KEMURI
Kent Recursive Calculator (KRC)
Kuin
KL1
KornShell
Kotlin
L
LabVIEW
Lazy K
Lava
LFE
Limbo
Linda
Linden Scripting Language
Lingo
Lisaac
LISP
LOGO
Lola
LotusScript
Lua
Lucid
Lush
Lustre
M
m4
Malbolge
Mana
Maple
MASM
MATLAB
Mathematica
Max
Mercury
Mesa
MIL/W
Mind
Mindscript
Miranda
Misa
MixJuice
ML
Modula-2
Modula-3
MONAmona
Mops
MQL4
MQL5
MSIL
MyHDL
Napier88
NASM
Nemerle
Nim
Noop
NScripter
O
Oberon
Oberon-2
Object Pascal
Object REXX
Object Tcl (OTcl)
Objective-C
Objective Caml (OCaml)
Occam
Ook!
OpenOffice.org Basic
OPS
Oz
P
Pacbase
PALASM
PARLOG
Pascal
PBASIC
PCN
Perl
PHP
Pic
Piet
Pike
pine
PL/0
PL/I
Planner
pnuts
PostScript
PowerBuilder
PowerShell
Processing
Prograph CPX
Prolog
Pure Data
PureScript
Pxem
Python
Q
QtScript
Quorum
R
R
Racket
REALbasic
REBOL
REXX
RHDL
Ring
RPG
RPL
Ruby
Rust
SAL
SAS
Sather
Scala
Scheme
Scratch
Seed7
Self
SFL
sh
Shakespeare
Short Code
Simula
Simulink
SISAL
SKILL
SLIP
Smalltalk
SMILEBASIC
SNOBOL
SPARK
Squeak
Squirrel
SPSS
Standard ML
Stata
superC
Swift
SystemC
SystemVerilog
t3x
TAL
Telescript
TeX
Text Executive Programming Language
Tcl
tcsh
Tenems
TL/I
Tonyu System
TTS
TTSneo
Turing
TypeScript
Unified Parallel C
Unlambda
UnrealScript
VBScript
Visual Basic
Visual Basic .NET
Visual C .NET
Visual C++ .NET
Visual C# .NET
Visual Studio
Verilog HDL
VHDL
Viscuit
Vala
Whirl
Whitespace
WICS
WMLScript
Wyvern
X10
XQuery
XSLT
zsh
```

##課題

- 知名度が低いプログラミング言語を網羅すると、プログラミング言語の羅列だと認識することができない気がする。（なんとなく、マイナーな言語をあまり切り捨てたくなかった）
- Webの背景にも使えると思ったが、SEO的によろしくないだろう。また、マウスで文字選択されてしまうなどの問題点がある。