8月はチャレンジの月!
いろんな言語でHello Worldをやってみます。
開発環境はMacをベースにしています。
言語について
Webアプリケーションを作ってみたい、という時には大きく次を選択する必要が出てくると思います。
- 開発言語
- フレームワーク
- データベース
開発言語
Webアプリケーションを動かす環境ってどんな環境でしょうか。
ロリポップ、heroku、GAEなど無料orなるべくお金のかからない環境で動かしたいところです。
そんな環境で動く言語といえば何でしょうか?環境とサポート言語を見てみましょう。
言語 | ロリポップ | Heroku | GAE |
---|---|---|---|
Ruby | ○ | ○ | × |
Python | ○ | ○ | ○ |
PHP | ○ | ○ | ○ |
Perl | ○ | × | × |
Java | × | ○ | ○ |
Go | × | ○ | ○ |
Node.js | × | ○ | × |
ロリポップ
http://lolipop.jp/manual/hp/cgi/
Heroku
https://www.heroku.com/features
以下個人的な意見。
とりあえずWebアプリケーションをつくろうとするのであれば、選択できる言語は
PHP,Ruby,Pythonの3択になると思います。
正直Perlはオワコンだと個人的には思っているので、今あらためて0からやるのであれば、あえてPerlを選ぶ選択肢はないかなと考えています。
Goはプラットフォームに依存する部分が大きいので、Googleと運命を共にする覚悟がない限り避けておいたほうが無難かと思います。
Javaはパフォーマンスを求めるとかサーバまわりも自分で構築するようなフェーズに入ってから選択しても遅くはないかなと思います。
Nodeはよくわかりません(キッパリ)。
フレームワーク
開発言語に依存しますが、ログインやDB操作など一般的な処理は自前で作るよりもフレームワークをベースにしたほうが安全で簡単です。
選ぶ基準とかメジャーどころありますが、まずは一旦置いておきます。
データベース
大体MySQLかPostgreSQLの2択です。GAEもMySQLっぽいのありますがお値段そこそこするような気がします。
言語 | ロリポップ | Heroku | GAE |
---|---|---|---|
MySQL | ○ | × | × |
Postgresql | × | ○ | × |
PHP
動作環境
$ php -v PHP 5.5.24 (cli) (built: May 19 2015 10:10:05) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
hello.php
<?php echo "Hello World!"; echo "\n";
Terminal実行結果
$ php hello.php Hello World!
Java
動作環境
$ java -version java version "1.8.0_51" Java(TM) SE Runtime Environment (build 1.8.0_51-b16) Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)
Hello.java
クラス名とファイル名は大文字・小文字含めてあわせておく必要があります。
public class Hello { public static void main(String[] args) { System.out.println("Hello World!"); } }
コンパイル
javac Hello.java
Terminal実行結果
$ java Hello Hello World!
Ruby
動作環境
$ ruby -v ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]
hello.rb
puts 'Hello World!'
Terminal実行結果
$ ruby hello.rb Hello World!
Python
動作環境
$ python -V Python 2.7.10
hello.py
print "Hello World!"
Terminal実行結果
$ python hello.py Hello World!
Perl
動作環境
$ perl -v This is perl 5, version 18, subversion 2 (v5.18.2) built for darwin-thread-multi-2level (with 2 registered patches, see perl -V for more detail) Copyright 1987-2013, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl". If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page.
hello.pl
#!/usr/bin/perl print "Hello World!"; print "\n";
Terminal実行結果
$ perl hello.pl Hello World!