�������R�[�h�Ƃ́H

�u�\�t�g�E�F�A�͍H�Ɛ��i�ł͂Ȃ��v�ARuby�̂܂‚��Ǝ����u��

2009/04/10

�@�\�t�g�E�F�A�͍H�Ɛ��i�ł͂Ȃ��\�\�BRuby�̐��݂̐e�Ƃ��Ă�����܂‚��Ƃ䂫�Ђ뎁��2009�N4��9���AInfoQ��ẪC�x���g�uQCon Tokyo 2009�v�̊�u���ŁA�\�t�g�E�F�A�Ɖ��ł���A���łȂ��̂��A����͂ǂ����������̂��̂ł���̂���Y�قɌ�����B

�R�[�h�Ƃ͐݌v�ł���

�@�u�r���[�e�B�t���R�[�h�v�Ƒ肵����u�����s�����܂‚��Ǝ��́A2007�N�ɋ����҂�1�l�Ƃ��ďo�ł��������������ɏ������G�b�Z�C�ɍ��߂��v�����A���̂悤�Ɍ��B

�@�u���E�Ɋ�������{�̐����Ƃ̃m�E�n�E��K�p���邱�ƂŐ��Y�����グ�邱�Ƃ��ł���ɈႢ�Ȃ��Ƃ������z������܂����A�\�t�g�E�F�A�͍H�Ɛ��i�ł͂Ȃ��B������������𐳂��Ă��������v�B

matz01.jpg Ruby�̍쐬�҂Ńl�b�g���[�N���p�ʐM�������t�F���[�A�y�V�Z�p�������t�F���[�ARuby�A�\�V�G�[�V�����������̂܂‚��Ƃ䂫�Ђ뎁

�@�\�t�g�E�F�A�Y�ƊE�ł́A�悭�G���W�j�A�����\���l����Ȃ��Ƃ������Ƃ�������B�������A�܂‚��Ǝ��́A����͍H�Ɛ��Y�Ɠ������@�_�𓖂Ă͂߂邱�Ƃ��痈�������Ƃ����B�\�t�g�E�F�A�͑�ʐ��Y������̂ł��Ȃ���΁A���i�̑g�ݗ��Ă̂悤�ȍH�����Ȃ����炾�B

�@�u�\�t�g�E�F�A�H��͂��܂������Ȃ���ł��ˁB�Ȃ��Ȃ畔�i�̑g�ݗ��Ăɑ���������̂��A�A�b�v���[�h�Ƃ�DVD�ɏĂ��Ƃ������H�����炢�������݂����A���������悤�Ȃ�����ł��v�B

�@�R�[�h�i�\�t�g�E�F�A�j�������Ƃ����̂́A�g�ݗ��Ă̂��Ƃł͂Ȃ��A�����Ƃł����u�݌v�v�ɑ�������Ƃ����B

�@�u�N���}�����Ƃ��ɁA�܂��`�⋭�x�̐݌v�����܂���ˁB���ꂱ�����\�t�g�E�F�A���ł��B�\�t�g�E�F�A���́A�ŏ�����Ō�܂ōH�Ɛ��i�ł����݌v�ɓ������ł��v�B

�@�݌v�ł���ȏ�A����͐l�ԓI�v�f�������E�l�|�ł����i���ɂȂ肪�����Ƃ����B���Ԃ��������A���}�ȁA���邢�͑ʍ�̃N���}������B���l�Ƀ\�t�g�E�F�A�ɂ��A�l�����������閼�������΁A�����ł��Ȃ���i������Ƃ����B

�v���O���}�̓A�[�e�B�X�g�A�Ƃ����Ӗ��̌��

�@�܂‚��Ǝ��́A�������R�[�h�Ƃ������̂�����Ƃ����B����̓A�[�g�ŁA�u�v���O���}�̓A�[�e�B�X�g���v�ƌ����؂�B����������A�������������͌���������₷���Ƃ������B�\�t�g�E�F�A��肪�X�l�̐l�ԓI�v�f���F�Z�����f�����E�l�|�ł����āA�v���O���}���A�[�e�B�X�g�ł���Ȃ�΁A�D���ɂ�点��A����ɂ�点�Ă����A�Ƃ����b�ɂȂ肪�������炾�B���������������܂‚��Ǝ��͌�����Ƃ����B

�@�u�A�[�e�B�X�g�ł͎d���ɂȂ�Ȃ��Ǝv����������܂���B��҂Ƃ��č�i�ɔ[�����s���Ȃ�����[�i���Ȃ��A�ȂǂƂ����l�����Ă͎d���ɂȂ�܂����ˁB�������A����͌���ł��B���̒��ɂ́g�A�[�g�Ȏd���h�����Ă���l���������񂢂܂��B�Ⴆ�΃R�s�[���C�^�[�́A�[���̐��������钆�ŃN���G�C�e�B�u�Ȏd�������Ă���B�Ȃ��\�t�g�E�F�A�ƊE�ɂ��ꂪ�ł��Ȃ��̂ł��傤���H�v

�R�[�h�͎��p�i�ł���A�ǂݕ��ł�����

�@�A�[�g���ƌ����Ă��v���O�����͏���̂��ړI�ł͂Ȃ��B�u���p�ɋ����ĂȂ�ځB���{�ł͗p�̔��Ƃ����炵���ł����A�ǂ̂��炢�ړI�ɍ��v���‚”����������d�v�v�i�܂‚��Ǝ��j�Ƃ����B���̈Ӗ��ł́A�v���O�����͔��p�قɏ���悤�ȃA�[�g�ł͂Ȃ��B

�@�R�[�h�͓ǂݕ��ł�����Ƃ����B

�@�u�\�t�g�E�F�A�͏������̂ł����āA�ǂނ��Ƃ̏d�v���́A���܂�ӎ����Ă��Ȃ������l�������̂ł͂Ȃ����B�������A�\�t�g�E�F�A�J���ɂ����ăL�[�{�[�h��@���Ă��鎞�Ԃ͒Z���̂ł��B�ނ���l���鎞�ԁA�ǂ�ł��鎞�Ԃ������v�B

�@�ǂނƂ����͎̂������������R�[�h�̃o�O����邽�߂ɓǂލs�ׂł��������A��l���������R�[�h����w�Ԃ��߂ɓǂނ��Ƃ��d�v���Ƃ����B���������ϓ_�ł́A���قǁu�ǂݕ��v�Ɉ�ꂽ�b�܂ꂽ����͂Ȃ��Ƃ܂‚��Ǝ��͋�������B

�@�u���ȏ��̂悤�ȋ��ނɂ͊�{�I�Ȃ��Ƃ���������Ă��Ȃ���ł���ˁBOS�̋��ȏ��Ȃ�X�P�W���[�����O�A�^�C���V�F�A�����O�̂��Ƃ͏����Ă���ł��傤�B�ł��A���\�[�X������Ȃ��Ȃ����Ƃ��ɁA�ǂ������헪���������Ƃ������p�I�Ȃ��Ƃ́A�ǂ��ɂ������ĂȂ��B�Ƃ��낪�r�W�l�X�Ŏg���郌�x����OS���茳�ɂ���΁A����������O�I�Ȓm�������ׂĊw�ׂ�̂ł��v

�@�uLinux�ł�FreeBSD�ł��ǂ߂܂��B���͔��Ɍb�܂ꂽ����ŁA�I�[�v���\�[�X�̂��肪�����Ƃ���ł��BFSF�iFree Software Foundation�j��BSD�n�̐l���������R�ȃ��C�Z���X�Œ񋟂��Ă��ꂽ����ł��B�����A���`���[�h�E�X�g�[���}�������炸�AOSS���[�u�����g���Ȃ��A���ƓI�ȃ\�t�g�E�F�A�����Ȃ�������A���R�ɓǂނ��Ƃ����肳��Ă����ł��傤�BOS�̐��̒m������ɓ���͈̂ꕔ�̌��肳�ꂽ�l�����A�Ƃ����󋵂ɂȂ��Ă����̂ł͂Ȃ����Ǝv����ł���ˁv

�R�[�h�͐l������������

�@�܂‚��Ǝ��́u�R�[�h�͐l�����т��ъ���������v�Ƃ����B���������R�[�h�ɂ���̂́A�Ⴆ�΁g�p���[�̔��h���Ƃ����B

�@�\�t�g�E�F�A�̐��E�ł̓f�[�^�ʂɑ΂��ĕK�v�Ȍv�Z�ʂ��uO(1)�AO(logn)�AO(n)�AO(n�Elogn)�AO(n^2)�v�ƁAO�L�@�Ƃ����I�[�_�[�ŕ\���B�f�[�^�ʂ��������Ƃ��ɁA�v�Z�ʂ͈��iO(1)�j�ł���̂��A�f�[�^�ʂɔ�Ⴕ�đ�����̂��iO(n)�j�A�f�[�^�ʂ�2��ɔ�Ⴕ�đ����Ă��܂��̂��iO(n^2)�j�ł́A�܂������Ӗ����قȂ�B��������肷��̂̓A���S���Y�����B

�@�u�K�؂ȃA���S���Y����I�񂾂�A���‚����肷�邱�ƂŁA�����̍œK���ł���΂�̂Ƃ͌��Ⴂ�A���⌅�E���Ⴂ�Ƃ����Ă������炢�Ɍ������ł���B���������p���[�������‚��Ă����悤�ȃv���O�������A���͔������Ǝv���v�B

�@�A���S���Y���ɂ͕s�”\���”\�ɂ���͂�����Ƃ����B

�@Ruby 1.9�ł́A����܂ł�Ruby 1.8�n�ȑO�ƈقȂ�A������I�u�W�F�N�g��������Ή����Ă���B����͂ق��̎�v�v���O���~���O���ꂪ�����R�[�h�Ƃ���Unicode���̗p���A�e��G���R�[�f�B���O�Ƃ̑��ݕϊ����s���Ă���̂Ƃ͏������f�����قȂ�B�ǂ�����Ruby��������Ă���̂��B

�@�u���Ƃ���Ruby�͍�҂����{�l�Ƃ������Ƃ�US-ASCII�ƃV�t�gJIS�AEUC�����ɑΉ����Ă��܂����B�Ƃ��낪�A����Ƃ��g�c����Ƃ����l���傫�ȃp�b�`�����[�����O���X�g�ɑ����Ă��āA��������Ƃ��łɂ���d�g�݂�UTF-8�ɂ��Ή��ł��܂���A�Ƃ�����ł��B�ɂ킩�ɐM�����Ȃ�������ł����A�p�b�`�𓖂Ă���m���ɓ������v

�@���̌�A���̏C�����x�[�X�ɂ��āA�N���ł���Ǝv���Ă��Ȃ�����CSI�����ƌĂ΂�錻�݂�Ruby�̕������”\�ƂȂ����B����͓��{�̃v���O���}�����N�����R�[�h�̈����ŋ�J���Ă����o��������������Ƃ����B

�\�t�g�E�F�A�̓��ʂ̔��A�O�ʂ̔�

�@�܂‚��Ǝ��́A���傤�ǐl�ԂƓ����悤�ɁA�\�t�g�E�F�A�ɂ����ʂ̔��ƊO�ʂ̔�������̂ł͂Ȃ����Ǝw�E����B

�@���ʂ̔��́A�@�B�ɑ΂���[�������ƒm���Ɋ�Â����R�[�h�ɏh��B����́A�Ⴆ�΃A���S���Y���̃p���[�ł���A�����̐��Y���̂��߂ɂ�����ƃ��W���[���\���ɂȂ��Ă��邱�Ƃ��Ƃ����B

�@����A�O�ʂ̔��Ƃ����̂́A�l�ԁi�v���O���}�j���ǂ������邩�A���̗����Ɋ�Â����R�[�h�ɏh��B�܂‚��Ǝ��́A����͎���ɂ���ĕω�����Ƃ��Ȃ���A�l�ԂɂƂ��Ă̊Ȍ�������������B

�@Perl��Ruby�APython�Ƃ������X�N���v�g����ł́A�L�q�����ɃX�g���[�g�Œ[�I�ɂȂ�BJava��C++�Ƃ���������ł́A�upublic static void main�ȂǁA�R���s���[�^�ɓ`����񑩎��������āA��肽�����Ƃ����̒����瓦���Ă��܂��B�Ȍ����͗͂Ȃ̂ł��v�i�܂‚��Ǝ��j�B����͏����Ƃ������łȂ��A�ǂނƂ��ɂ����l���B

�@�A���S���Y�����������{�⋳�ȏ��ɂ́A�g���s�”\�^������h�ƌĂ΂�鉽����ł��Ȃ��R�[�h��������邱�Ƃ������B�u�����Pascal���ǂ��Ƃ��AAlgol���ǂ��ŏ����Ă���B���ǂ��Ƃ����Ă��A�A���S���Y���������ƋL�q�ł��Ă���B��������A����𗝉��ł��錾������΂��������A�Ƃ������ƂŁA����Ӗ��A���ꂪRuby�̖ڕW�ł��B�l�Ԃ��\�����������Ƃ��X�g���[�g�ɋL�q�ł��錾��ƁA�R���s���[�^�����̌���ł́i���Y���Ɂj5�{�A10�{�̍����t���̂͒������Ȃ��B�������A1��1�‚̖񑩎��ɂ͗��R�������Ė��Ӗ��Ƃ͌����܂��񂪁A���‚����‚����������̂̓V���h�C�̂ł��v�i�܂‚��Ǝ��j

�@�l�Ԃ̂�肽�����Ƃ��Ȍ��ɋL�q�ł���悤�ɂ��邽�߂ɁA�v���O���~���O����̊J���҂Ƃ��āA���ʉ��ł͌����ɂ���΂��Ă���Ƃ����B�u�����̂悤�ɗD��ɁB�ł����ʉ��ł͌����ɁB��J�������т炩���̂͐�����Ȃ��v�i�܂‚��Ǝ��j�B

matz02.jpg �\�t�g�E�F�A�ɂ͓��ʂ̔��ƊO�ʂ̔�������Ƃ����i�������A�������O�ʂƂȂ��Ă���̂͌�A�Łu�@�B�v�̂ق��͓��ʂ̔��j

�u�P�����v�̒�`�͒P������Ȃ�

�@�L�q�̊Ȍ����A�V���v�����͗͂ł���������Ƃ����܂‚��Ǝ������A�V���v�����͌������₷���T�O���Ƃ����B

�@�uRuby�̓V���v������Ȃ��Ǝw�E���ꂽ��A�Ƃ��ɂ͓{�������܂��B���@�͑傫�����A���\�b�h�������B�ł��A�\�t�g�E�F�A�͕��G�Ȃ��̂ł��B�\�t�g�E�F�A���L�q���鐢�E�����G�Ȃ̂ŁA����͔��������������v

�@�u�P�Ȃ�P�����̓S�[���ł͂Ȃ��̂ł��B�l�Ԃ̏����\�t�g�E�F�A���P���ɂȂ邱�Ƃ��S�[���B�i����݌v��������s���j�N�������G���������󂯂�ƁA�i������g���v���O���}�ł���j�l�Ԃ�������Ƃ������G�Ȃ��Ƃ����Ȃ��čςށB�v���O���~���O���ꂪ�P�����ƁA�t�ɐl�Ԃ�����΂�Ȃ��Ƃ����Ȃ��Ȃ�B�l�ԂɃt�H�[�J�X����Ƃ������Ƃł��v

�@�l�ԂɃt�H�[�J�X���邽�߁A�܂‚��Ǝ��͌���݌v���u�B��̐������Ȃ��A1�‚ɂ͌��܂�Ȃ��B�ƂĂ��񗝌n�I�Ȃ��Ɓv���Ƙb���B

���ʂ̔��ɂ��A�����Ɩڂ�

�@Ruby�Ɍ��炸�A�\�[�X�R�[�h���̂��̂ɏh����ʂ̔��ɑ΂���֐S���Ⴂ�̂ł͂Ȃ����B�܂‚��Ǝ��͌����B

�@�u��ЂƂ����͓̂s���̂����悤�ɁA�v���O���}�ɂ͎��Ԃł����Ăق����ƍl���܂��B�R�[�h�����������ǂ����A�A�[�g���ǂ����ȂNJ֐S�������Ă��܂���v

�@�u���ʂ̔��͊O���猩�����A�R�[�h�ɓ��݂��Ă��܂��B�����ɂ����Ɗ֐S�������Ă��炢�����Ǝv���܂��B�\�[�X�R�[�h�̓A�[�g�ŁA��i�Ȃ̂ł��B�H�Ɛ��i�Ƃ��Ĉ�����̂͐S�O�ł��B�v���O���}�݂̂Ȃ���́A���������C�T�������Ďd�������Ă���ł��傤���B�A�[�e�B�X�g�͎��Ԃł͂Ȃ��B�E���獶�֗����Ƃ�����̂ł͂��A�n���I�A�����I�Ɏd��������̂ł��v�B

�@�v���O��������邱�Ƃ́g�y�����h��A�A�[�e�B�X�g�Ƃ��Ă̂������A�����������̂����Y����i���ɋy�ڂ��e�����������Ă�܂Ȃ��A�܂‚��Ǝ��B�ŋ߂́A�J���‹��������L�x�ɂ���b�܂ꂽ����Ȃ̂ɁA�v���O���}�ƌĂ΂��l�������u���ɈÂ��v�i�܂‚��Ǝ��j���Ƃ�J���Ă�����Ƃ����B

�@�܂‚��Ǝ���40�΂𒴂������A���͂̓����オ�u�ŋ߃R�[�h�������Ă��Ȃ��v�Ƃ������Łu���ꂾ���D���������̂�����1��1�x�͕K���R�[�h��G��v���Ƃ��������Ȃ��Ƃ����B�u80�΂ɂȂ��Ă������v���O�����������Ă������v�ƍu������߂��������B

�֘A�����N

�i��IT �������j

�������񂹂��������F

Coding Edge �t�H�[���� �V���L��
��IT���[���}�K�W���@�V������X�^�b�t�̃R���������[���œ͂��܂��i�����j

�L�����A�A�b�v

���ڂ̃e�[�}

�uITmedia �}�[�P�e�B���O�v�V���L��

�u�T�C�g�������v���u���C�u�`���b�g�v�����TOP5�i2025�N5���j
���T�́A�T�C�g�������c�[���ƃ��C�u�`���b�g�̍��������TOP5�����ꂼ��Љ�܂��B

�uEC�v���b�g�t�H�[���v�����TOP10�i2025�N5���j
���T�́AEC�v���b�g�t�H�[�����i�iEC�T�C�g�\�z�c�[���j�̍��������TOP10���Љ�܂��B

�u�p�[�\�i���C�[�[�V�����v���uA�^B�e�X�g�v�c�[�������TOP5�i2025�N5���j
���T�́A�p�[�\�i���C�[�[�V�������i�ƁuA�^B�e�X�g�v�c�[���̍�������؊eTOP5���Љ...