�����́uPerl�v�uPython�v�uRuby�v�FThe Rational Edge�i1/2 �y�[�W�j

The Rational Edge���F�{�e�́A�����g���Ă��钆�ōł��l�C�̍���3�‚̃v���O���~���O����ɂ‚��ĉ������B�_�C�i�~�b�N�����Perl�APython�A������Ruby���B����炪���p����Ă��闝�R�͉����H �ǂ̂悤�ȋ��ʓ_������A���ꂼ��ǂ������j�[�N�Ȃ̂��낤���H

» 2007�N08��28�� 12��00�� ���J
[Gary Pollice�i���[�`�F�X�^�[�H�|�������Ɩ��w�����j�C��IT]

�@�v���O���~���O��@�́A�����̑������\�t�g�E�F�A�J���ƊE�ɑ��𓥂ݓ��ꂽ�Ƃ�����傫�ȕω��𐋂��Ă����B�J���c�[�������łȂ��A���G�Ȗ��ɑ΂���\�����[�V�����𖾎����邽�߂ɗ��p���錾����ω������B

ALT �{�L���́AIBM developerWorks����A�b�g�}�[�N�E�A�C�e�B�������𓾂Ė|��A�]�ڂ������̂ł��B

�@�����A�\�t�g�E�F�A�̊J�����d���ɂ���l�X�͕����̌������g����B�ʏ�A�ނ�ɂ͕K�������̃v���O���~���O����ŃA�v���P�[�V�������J�������o��������B�����̃A�v���P�[�V��������������ɓ�����A�u�_�C�i�~�b�N����v�ƌĂ΂��N���X�̌��ꂪ�D��I�ɑI�΂��悤�ɂȂ����ߒ��������[���̂ŁA�����ł�������Ă������B

�@�{�e�͂��̃^�C�v�̌���ɂ‚��āA�Ȃ��l�C�������̂����l���A�����̂���Perl�APython�A������Ruby�𒆐S�ɁA��Ȏd�l��e����̈Ⴂ�������‚������ł���悤���Ă����B

�_�C�i�~�b�N����Ƃ͉����H

�@�Z�p�I�ɂ́A���s���ɋ@�\�̏C�����”\�Ȃ��̂��_�C�i�~�b�N����Ƃ����B�ǂ��������Ƃ��Ƃ����ƁA���̋@�\��񎦂����ŏ����̌����1�‚ł���LISP���l����΂悢�BLISP�̎�Ȏd�l��1�‚��A���߂��f�[�^�Ƃ��Ĉ�������̂��BLISP�̃v���O�����́A�e�L�X�g�t�@�C������LISP�̖��ߕ���ǂݏo���A����炪�I���W�i���̃v���O�����̈ꕔ�ł��������̂悤�Ɏ��s����B�v���O�����͐V�����������������ō쐬���A���������̏�Ŏ��s���邱�Ƃ��ł���B�Ⴆ�΁APerl�̃v���O������Perl�̃R�[�h���܂܂ꂽ�e�L�X�g�t�@�C����ǂݍ��ނ��Ƃ��ł���B�����āA�I���W�i���̃v���O�����̈ꕔ�Ƃ��ăv���O���}�����������̂悤�ɁA�t�@�C���̒��̃R�[�h�����s���邱�Ƃ��ł���BLISP�͊֐��^�v���O���~���O�����1�‚����A���ꂪ�_�C�i�~�b�N����ɕK�v�ȏ����ł͂Ȃ��B�I�u�W�F�N�g�w���▽�ߌ^�Ƃ������ق��̃v���O���~���O����p���_�C�����̗p���鑽���̌�����_�C�i�~�b�N���ꂾ�B

�@�_�C�i�~�b�N����́A�v���O���������Ȃ�R���p�N�g�ɏ����鍂�x�ȍ\���ɂȂ��Ă���ꍇ�������B�‚܂�A�v���O���}�[�͔��ɕ��G�ōI���ȃv���O�������J�����邽�߂ɑ�ʂ̃\�[�X�R�[�h�������K�v���Ȃ��B�m��1�n


�m��1�n�M�҂�1994�N�ɎQ�������uUSENIX Symposium on Very High Level Languages�v�ɂ́A�_�C�i�~�b�N����Ɋւ���_����������o���ꂽ�B


�@�����̐l�́A���ۂɂ̓_�C�i�~�b�N����ł���ɂ�������炸�A�X�N���v�e�B���O����Ƃ������t���g���B�_�C�i�~�b�N����̑������A��̓I�ȖړI�̂��߂ɑf���������钆���K�͂̃X�N���v�g���������߂Ɏg����̂����̗��R���B�������݂́A�����̌��ꂪ���G�Ȗ{�ԃV�X�e���̊J���Ɏg���邱�Ƃ������Ȃ��Ă����B

����̗��s

�@Tiobe Software�ł́A�v���O���~���O����Ɋւ���w�W�𖈌����\���Ă���B�m��2�n�����̎w�W����́A�����̗v���Ɋ�Â����v���O���~���O����̗��s�������Ă���B���̎w�W�͍ł��l�C�̍������̂ł͂Ȃ��A���ۂ́A�\�t�g�E�F�A���������߂ɍł��p�ɂɗ��p����錾��������Ă���B�����A��������e����ɑ΂���\�t�g�E�F�A�J���R�~���j�e�B�[�̊֐S�x�����������Ă���̂��B�m��3�n


�m��2�nhttp://www.tiobe.com/�ɂ́A�C���f�b�N�X�̌v�Z���@��A�i�t���V�X�e���̏ڍׂɊւ����񂪂���B

�m��3�n�����ł����\�t�g�E�F�A�R�~���j�e�B�[�́A�v���O�����������Ă݂����Ƃ����l���܂߁A���Ȃ�L���͈͂��܂߂Ă���B


�@2007�N6���̎w�W�ł́A���10��ނ̒��Ƀ_�C�i�~�b�N���ꂪ5��ރ����N�C�������B����͑����̓ǎ҂ɂƂ��ċ�����������Ȃ��B����5�‚̌���Ƃ́APHP�APerl�APython�AJavaScript�A������Ruby���B�����̌���͂�������قȂ�ڕW���f���ēo�ꂵ�Ă����B�����āA���Ԃ������Ď��؂���Ă��������̗D�ꂽ�T�O�̂悤�ɂ����̌�����g���𐋂��A�����̂ق��̖ڕW�ɑΉ�����悤�ɂȂ����B���ہA�_�C�i�~�b�N���ꂪ�K���Ă��鑽���̃A�v���P�[�V�����ł́A����_���ގ��_�̕����d�������BJava�AC�AC++�A�����āiVisual�jBasic�Ƃ����ATiobe�̎w�W�ɂ�����4�‚̌���������ꍇ�A���ʂ��Ă����̓I�Ȗ��ɉ����đI���̐���𔻒f����ɂ́A����ɂӂ��킵�����R������B�������A�_�C�i�~�b�N����̑����ł͓������Ƃ����Ă͂܂�Ȃ��Ȃ�B�I���͌l�I�Țn�D�i�������j��A�g�D���̊����A�v���P�[�V�����ł��łɗ��p����Ă���ȂǁA����̗��p�v���ɂ�邱�Ƃ������B

�@�{�e�̎c��̕����ł́A�����̂���3�‚̌���ɋ��ʂ���d�l�ɂ‚��Đ������A�X�̃��j�[�N�Ȏd�l�ɂ‚��Ă��������BPerl�APython�A������Ruby��I�񂾗��R�́A�ȒP�ɂ����ƁA��������M�҂��l�I�ɃR�[�h���������o�������邽�߂��B1990�N���Perl�ő�ʂ̃R�[�h�������A�ߔN��Ruby�ł��Ȃ菑���Ă���BPython��I�񂾂̂́APerl�̂悤�ɗ��j�������APerl�Ől�C�𓾂�Ruby�ɂ����ڂ����悤�ɂȂ����Ǝv����d�l�������‚����ڂ���ȂǁA�����2�‚�⊮���邩�炾�B

�@������3�‚̌����O��I�ɐ�������‚���͂Ȃ��A�e����̊��G�����‚���ł���������΂Ǝv���Ă���B���܂������΁A�����̌���̏ڍׂ�A����炪�ǂ̂悤�ɖ��������y�ɂ��Ă���邩�������Ɗw�т����Ȃ邱�Ƃ��낤�B

�@�ł͖{��Ɉڂ낤�B

�ǂ̌���ɂ�����ړI

�@����݌v�̃N���X��1�Šw�Ԃ̂��A�ǂ̌�����ړI�������Đ݌v����Ƃ������Ƃ��B�u�ʔ������Łv�V����������J������l���������Ƃ͂��邪�A����f�U�C�i�[�̑唼�́A���@�������Ă������J�����Ă���B

�@����f�U�C�i�[���V����������J������Ƃ��ɂ��肪���ȓ��@�͈ȉ���3�‚��B

�@1�–ڂ̓��@�́A�����̌���œ���̖��������ł��Ȃ����ƁB�Z�p�̕ω���A��{�I�Ȍv�Z������@����уp���_�C���̐i���ɂ��A�����͏�ɐV�����ۑ�ɒ��ʂ��Ă���B����́A�����̉ۑ�Ɍ��ʓI�ɑΉ����邽�߂ɐi������K�v������B�����̌���ŃT�|�[�g�ł��Ȃ��V�������̂��o�Ă���ƁA�v���O���}�[�͐V�����Z�p���@�ɂ���Ă����̖����������ׂ��V������@��T�����߁A�V��������̊J���ɗ��邱�Ƃ������B���̍D�ႪSmalltalk�̊J�����BSmalltalk�́A�r�b�g�}�b�v��ʏ�ł̃O���t�B�J���A�v���P�[�V�����J���̂��߂̖L�x�ȋ@�\��񋟂��邾���łȂ��A�I�u�W�F�N�g�w���p���_�C�����T�|�[�g����ړI�ł��݌v���ꂽ�B

�@�V����������J������ۂɈ�ʓI�ȓ��@��2�–ڂ́A�����̌��ꂪ�•������A��剻���߂����Ƃ������̂��B�v���O���}�[�́u�R�[�h���ɂ����v�Ƃ������t���g���B����́A��������悤�ɁA�R�[�h�����񂾂�ɂ����n�߂邱�Ƃ��Ӗ�����B�����́A���t�@�N�^�����O�e�N�j�b�N��f�U�C���p�^�[���Ȃǂ̊e��v�Z��@���g���ăR�[�h���ɂ����������A�v���P�[�V��������폜����B����ɂ����l�̕��Q������B����́A�V�����Z�p��p���_�C���ɑΏ�����V�@�\���lj�����ď��X�ɐi������B�V�@�\�����̌���̂ق��̕����Ƃ��܂�u����Ȃ��v�ꍇ�A���̌���͂ɂ����n�߂�B�����āA���鎞�_�ɂȂ�Ɠ��̗ǂ��v���O���}�[���o�Ă��āA���̌���͐V�������̂ƌ������鎞�������Ă���Ƃ��锻�f�������iPerl�́A�•������‚‚��錾��Ɏ���đ������킯�ł͂Ȃ����Ased��awk�Ȃǂ̕����̌���̋@�\�ƁAC�X�^�C���̑����̎���shell�X�N���v�g��g�ݍ��킹�Ă���j�B

�@�V����������J�����闝�R��3�–ڂ͍ł������͂Ɍ�����B�����ɂł��邩��J������A�Ƃ������̂��B�����āA���̂悤�Ȍ���͊e���̃��j�[�N�Ȑ��E�ςƃv���O�����J����@�𔽉f���Ă���B����͒m�I���l�̂���ڕW�����A�ʏ�͂���Ō���{�̗̂��֐������܂邱�Ƃ͂Ȃ��B���̃J�e�S���ɕ��ނ���錾��́A���̑唼�����̖ڂ����邱�Ƃ͂Ȃ��B�������A�{�e�ŏڂ����������Ruby�̔��[�́A���̓��@�ɂ���đ����̐������t���B

�@�����Ō������Ă���3�‚̌���̖ړI�͂��ꂼ�ꉽ�Ȃ̂��낤���H�m��4�n�܂��APerl��3�‚̒��ōł��Â��A1987�N�ɓo�ꂵ�Ă���BPerl�𐶂ݏo����Larry Wall���́AUNISYS�̃v���O���}�[�������B������C�ŏ����ꂽ�v���O�����ƈꏏ��UNIX�p�v���O������sed�Aawk�A������sh�Ȃǂ̌�����g���Ă��܂��܂ȍ�Ƃ����Ȃ��Ă����B�����͌�������ꂱ���芷���邱�Ƃɂ��痧���A�����̌��ꂪ���Ă������Ƃɉ����A����ȏ�̂��Ƃ��ł���1�‚̌�����J�����邱�Ƃɂ����B�����ɂ́A�v���O���}�[�ɂƂ��Ă͓������ɍł����ʓI�ł���Ȃ���A�ȒP�Ȃ��Ƃ��ȒP�ɂł��錾��ɂ���Ƃ������O���������BPerl���ŏ��ɗ��p���ꂽ��Ƃ̑����̓e�L�X�g������V�X�e���^�p�֘A�������B


�m��4�n�������͂��߂Ƃ���e��_�C�i�~�b�N����Ɋւ�����ւ̃����N�́AWikipedia�̃_�C�i�~�b�N����֘A�y�[�W�ihttp://en.Wikipedia.org/Wiki/Dynamic_language�j�ɗp�ӂ���Ă���B


�@Perl��Web �A�v���P�[�V�����p��CGI�X�N���v�g�������ۂɍł��D�܂�錾��ɂȂ��Ă����A�l�b�g���[�N�A�v���P�[�V������f�[�^�x�[�X�������v���O���}�[�̔M�S�Ȏx���𓾂��B�ŐV�o�[�W������Perl�̓I�u�W�F�N�g��N���[�W�����͂��߂Ƃ��鑽���̍��x�Ȍ���R���Z�v�g���T�|�[�g���Ă���B���̐i���ɂ��A�i�M�҂̎����Ƃ��āj1�‚̃v���O���~���O�V�X�e���Ƃ��Ă͂��ꂢ�ɂ܂Ƃ܂�Ȃ��A���Ȃ��K�͂Ȍ��ꂪ�a�������i�������APerl�t�@���ɂ͂��̈ӌ��Ɉ٘_�����邾�낤�j�B

�@Python�́APerl��2�N��ɓo�ꂵ���B������J������Guido van Rossum���́APerl�Ɠ����悤�ɁA�ȒP�ȍ�Ƃ��ȒP�ɂł���̂ɓ����Ƃ��T�|�[�g�ł���A�Ƃ��������]��ł����B������van Rossum���́A����̑��x��\���͂����ǂ݂₷���ƃI�u�W�F�N�g�w���̕���I�񂾁BPython���ق��̑����̃_�C�i�~�b�N������x�����Ƃ͂Ȃ����Avan Rossum���͓ǂ݂₷���ƕ�����₷����Python�v���O�����ő�̓����ɂ����������B�ǂ݂₷������������Python�̓�����1�‚��A�R�[�h�͖����̂Ȃ��悤����������Ƃ����v�����B�Ⴆ�΁A���L�̃R�[�h�ɂ��鎟��2�‚̗�͈قȂ���̂��B

if x == y :        if x == y :
 print 'hello'       print 'hello'
 print 'world'     print 'world'
�@�@Python�R�[�h��2�‚̗�

�@�����ł́Ax=y�̏ꍇ�͂ǂ���̗��1�s�ڂɁuhello�v�A������2�s�ڂɁuworld�v���v�����g����B����A����x=y�łȂ��ꍇ�́A�ŏ��̗�͉����v�����g�����A2�Ԗڂ́uworld�v��1�s���v�����g����B���́u�d�l�v�̓~�X�������₷���Ƃ����̂��M�҂̌����ł���A���ꂪPython���g���Ă��܂�v���O���~���O�����Ȃ��傫�ȗ��R��1�‚��B

�@Python�͂���܂łɐi���𐋂��A�l�b�g���[�N�A�}���`���f�B�A�A�f�[�^�x�[�X�A�����ăV�X�e���v���O���~���O�A�v���P�[�V�����ɏ]�����鑽���̊J���҂ɐ^����ɑI�΂�錾��ɂȂ����BPython�͂܂��A�R���|�[�l���g���m���‚Ȃ��������ʂ����D�ꂽ����ł�����BPerl���l�APython��C�Ȃǂ̂ق��̌���Ƃ̂��Ƃ肪�”\�ɂȂ��Ă���Bvan Rossum���͌���Google�ɍݐЂ��Ă���A�����ŁAGoogle���֐S�����‰��p����ł̗��֐������Ɍ����APython�̊J�����p�����Ă���B

�@Ruby�͂����ʼn�����Ă���3�‚̒��ł��ł��ォ��o�ꂵ�Ă����B������J�������̂́u�܂‚��Ƃ䂫�Ђ�v���i���{�s�O�AMatz�j�ŁA1993�N�ɓ�����̊J�����J�n���A1995�N�ɂ���������[�X�����B�m��5�n����Ӗ��ARuby�͑O�q��3�–ڂ̓��@���炻�̃X�^�[�g��؂��Ă���B�‚܂�A�܂‚��Ǝ��ɂ͈ȑO���猾����f�U�C���������Ƃ�����]���������̂��B������Perl��Python�Ɋւ���m�����L�x�����A�������uPerl��苭�͂ŁAPython���I�u�W�F�N�g�w���̋����v�Ɗ����錾�ꂪ�~�����ƍl���Ă����B������Ruby�ɂ‚��Ă��A������v���O���~���O���₳�����y�������錾��ɂ������A�Ƙb���Ă����B���������ȊO�́ARuby�͗\�z�ǂ���̓���������A�Ƃ����ӌ��������B�g�������R�}���h�̓K�؂ȕ��@�́A�ʏ�͐������邱�Ƃ��ł���B����́A�u�����ŏ��̖@���v�ƌĂ΂�Ă���B


�m��5�n�uProgramming Ruby�v�i��2��Pragmatic Programmers�j���ł̏������A2004�N���AISBN0974514055


�@Ruby�͏����ȃI�u�W�F�N�g�w�����ꂾ�B����́ARuby�ł͂��ׂĂ̂��̂��I�u�W�F�N�g���A�Ƃ����Ӗ����B20�N�ȏソ���Ă��܂������A�M�҂͂��܂ɂȂ��āASmalltalk�̃v���O���~���O�R�~���j�e�B�[�����ꂾ�����̌���ɔM�����Ă������R��������悤�ɂȂ����B�M�҂͂���܂ŁASmalltalk��{���ɗ������邱�Ƃ͂ł��Ȃ������B����́A���̕��@���i�M�҂ɂƂ��āj���Ȃ��߂��Ă������炾�B�������ARuby��Smalltalk�̂悤�ɂ�����͏�����^���ɂ���B�����A�M�҂����܂́u������v�悤�ɂȂ�A�y�����Ɗ����Ă���B


�m�|������n�������ARuby��Smalltalk�̂悤�ɂ�����͏�����^���ɂ���B�����A�M�҂����܂́u������v�悤�ɂȂ�A�y�����Ɗ����Ă���B��Ruby�͕��ʂ̐l�Ԍ�����Smalltalk�̂悤�Ȃ��̂ŁA����Ȃ玄�ł��������邱�Ƃ��ł��A�������낳��������B


�@Ruby�͑����̐l�X�ɂƂ��āA�葁���X�N���v�g���������߂̌���Ƃ���Perl��Python�Ɏ���đ������B�������ŋ߂ɂȂ�ƁARuby�͊����x�̍����A�v���P�[�V�����̎����ɗ��p�����悤�ɂȂ�AWeb�x�[�X�̃A�v���P�[�V�����J���Ő^����ɑI�΂�錾��Ƃ��āA�uRails�vWeb�A�v���P�[�V�����t���[�����[�N�ƈꏏ�ɑ����̑g�D�ɍ̗p����Ă���B�m��6�n


�m��6�n�����Ruby on Rails���ڂ����������B


�@�@�@�@�@�@ 1|2 ���̃y�[�W��

Copyright © ITmedia, Inc. All Rights Reserved.

'; e_dlv.innerHTML = html; adRequest({position:dlv_pos,dom:true}); }else if(ad_type === 'gam'){ var html = '
'; e_dlv.innerHTML = html; refreshGam('InArtSpecialLink'); }else if(ad_type === 'logly'){ var html = '
'; e_dlv.innerHTML = html; loglySet(g_id); }else if(ad_type === 'google'){ var html = '
'; e_dlv.innerHTML = html; googletag.cmd.push(function(){ var slot8 = googletag.defineSlot('/43042345/nlab_artinsert_RT',[[336,280],[300,250],'fluid'],'div-gpt-ad-1551176482959-0').addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.enableServices(); googletag.display('div-gpt-ad-1551176482959-0'); googletag.pubads().refresh([slot8]); }); } }; var insert_ok = function(_target,_str){ var clearfix = d.createElement('div'); clearfix.className = 'colBoxClear'; if(ad_float_fix){ e_body.insertBefore(e_dlv,_target); e_body.insertBefore(clearfix,_target.nextElementSibling); }else{ e_body.insertBefore(e_dlv,_target); } set_dlv(); }; var insert_ng = function(_str){ e_dlv.style.display = 'none'; }; var main = function(){ var e_nodes = e_body.childNodes; // BODY �����q�v�f var e_tags = []; // BODY �����^�O var p_num = []; // BODY ���� P �^�O�ʒu var p_target_num; // �g�}����ʒu var o_float = {}; // ��荞�ݗv�f var o_this = {}; // �A�N�e�B�u�^�O var o_next = {}; // �A�N�e�B�u�^�O�̎��̃^�O var flag_insert = 0; // �}���t���O // ��荞�ݗv�f�`�F�b�N var check_float = function(_e){ var e = 0; if(_e.id.match(/^col\d{3}(l|r)$/)){ e = _e; } return e; }; // �v�f�� Y ���W�ƍ����̍��v�l var get_element_y = function(_e){ var ey = 0; var eh = _e.offsetHeight; while(_e){ ey += _e.offsetTop; _e = _e.offsetParent; } return ey + eh; }; var check_ptag = function(_e){ var e = 0; if(_e.tagName && _e.tagName === 'P'){ e = _e; } return e; }; var try_insert = function(){ p_target_num = Math.floor(p_num.length / 2) - 1; if(p_target_num >= _maxrange) p_target_num = _maxrange; if(dis_con) p_target_num = 0; for(var i = p_num[p_target_num]; i < e_tags.length; i++){ o_this.e = check_ptag(e_tags[i]); if(o_this.e){ o_next.e = check_ptag(e_tags[i + 1]); if(o_next.e){ if(!o_float.e || check_float(e_tags[i - 1])){ o_float.e = check_float(e_tags[i - 1]); o_float.n = i - 1; } if(o_float.e && o_float.n < i + 1){ o_float.y = get_element_y(o_float.e); o_this.y = get_element_y(o_this.e); set_line(o_float.y,'red'); set_line(o_this.y,'blue'); if(o_float.y < o_this.y){ flag_insert = 1; insert_ok(o_next.e,_threshold + ' �p���ȏ��荞�݂���'); break; } }else{ flag_insert = 1; insert_ok(o_next.e,_threshold + ' �p���ȏ��荞�݂Ȃ�'); break; } } }else{ o_float = {}; } } if(!flag_insert){ insert_ng('�}���ʒu�Ȃ�'); } }; // �S�q�v�f����^�O�̂ݔz��ɓ���� for(var i = 0; i < e_nodes.length; i++){ if(e_nodes[i].tagName){ e_tags.push(e_nodes[i]); } } // �S�^�O���� P �^�O�ʒu��z��ɓ���� for(var i = 0; i < e_tags.length; i++){ if(e_tags[i].tagName === 'P') p_num.push(i); // �ŏ��̉�荞�ݗv�f���i�[ if(!o_float.e){ o_float.e = check_float(e_tags[i]); o_float.y = get_element_y(o_float.e); o_float.n = i; } } if(p_num.length >= _threshold){ try_insert(); }else{ insert_ng('P �^�O ' + _threshold + ' �ȉ�'); } }; if(e_body){ main(); }else{ insert_ng('�L���{���Ȃ�'); } })(document,4,5);

���ڂ̃e�[�}

���Ȃ��ɂ������߂̋L��PR