공백 또는 탭을 들여쓰기는? 에 대한 통계 3.8million Perl 만든 파일에서는 24 년

하나의 영원한 질문에 프로그래밍—는 캐릭터에서 사용하는 프로그램 코드 들여쓰기—탭 또는 공간이 있습니다.

때로는 선택은 없습니다. 예를 들어, Makefile 를 사용해야 합니다. 언어 프로그래밍 go 공식적인 유틸리티 gofmt 는 코드 형식과 이 유틸리티 사용하는 탭을 들여쓰기. B 비전 프로그래밍 언어 Whitespace 탭 및 공백을 대체할 수 없는 각 니다. 하지만 많은 프로그래밍 언어를 강요하지 않습니다 선택할 수 있도록 프로그래머 을 결정하는 문자를 사용합니다.

있는 매우 인기의 의견는 사용자를 들여쓰기. 의 의견은 다음과 같다:그것은 중요하지 않습니다할지 여부를 사용할 가장 중요한 일관성입니다. 면 탭을 사용하여,당신은 항상 필요합니다. 는 경우 사용 공간만 사용 공간을 사용하지 않습니다.

도 있 만화에 이 주제:

(두 사람들이 완전히 동의하지 않는 서로 다른지 여부를 사용하는 탭 나 공백하지만,절대적으로 동의하는 것이 필요 하나만을 사용하):

는 방법은 것이 현실 세계에서? 실제로 사용됩니까?

그것은 쉽게 찾을 수 있습니다. 를 취할 필요가 소스코드의 프로그램,계산 사용되는 어떤 문자와 결과를 볼 수 있습니다.

이 문서의 결과에 대해 약간의 연구 탭의 사용과 공간 에서 세계의 Perl 프로그래밍 언어입니다. 있는 거대한 저장소로 저장하는 Perl 라이브러 CPAN. 다운로드하는 모든 이전 버전의 모든 라이브러리는 지금 CPAN (약 135 만)기로 결정하는 문자를 사용한 압.

당신은 더 읽기 전에,나는 당신을 생각 하는 분도 다고 추정하는 인기를 들여쓰기:

  • Taba
  • 또는 혼합물의 탭이고 공간

?

코드 작성

그래서,과제는 분명합니다. 필요하신 모든 라이브러리에서 CPAN 을 확인하는 데 사용되는 것 들여쓰기.

처음 다운로드해야 하는 전체 CPAN. 이것은 하나의 명령:

time /usr/bin/rsync -av --delete cpan-rsync.perl.org::CPAN /project/CPAN/

3 시간 및 다운로드 CPAN. 그것은 약 27GB.

CPAN 의 컬렉션은 파일에서 조직이 특정 구조입니다. 여기에 snippet:

CPAN/authors/id
├── A
│   ├── AA
│   │   ├── AADLER
│   │   │   ├── CHECKSUMS
│   │   │   ├── Games-LogicPuzzle-0.10.readme
│   │   │   ├── Games-LogicPuzzle-0.10.tar.gz
│   │   │   ├── Games-LogicPuzzle-0.12.readme
│   │   │   ├── Games-LogicPuzzle-0.12.tar.gz

이 예제에서, AADLER 로그인의 저자, Games-LogicPuzzle-0.10.tar.gzGames-LogicPuzzle-0.12.tar.gz 는 출시하였습니다.

지금 CPAN 있는 7 개 이상의 수천에 있는 저자는 새로운 라이브러리에 CPAN. 지 않기 위해서 저장하는 모든 7 개의 수천에 있는 폴더에 동일한 폴더에 추가 준(버전 관리 시스템 git 저장된 데이터에 비슷한 방법으로).

On CPAN,다운로드할 수 있는 라이브러리가 포장되는 다른 등록 아카이브.

로 시작했는데 무엇을 계산의 수는 다른 파일 확장자 폴더에 CPAN/authors/id/. 여기에는 이 스크립트의 결과 그의 작품 . 최고 확장자의 아카이브:

  • .tar.gz 135571
  • .tgz903
  • .지 652
  • .gz612
  • .bz2 243

.tar.gz 승와 같은 마진을 결정하는 것이 충분히 계산 사용되는 어떤 문자를 들여만에 있는 라이브러리 포장 습니다.tar.gz

그때 나는 몇 가지 스크립트가 있습니다. 처음에는 나가지 않았고 결국은 분명했에 내가 원하는 것에 대한 데이터를 얻을 수 탭와 공간,그래서 내가기 시스템으로 구성된 여러 구성 요소입니다. 첫째,사전 프로세스 총 135 개의 천 파일과 자료를 넣어에 대한 정보 탭 및 공간으로 데이터베이스입니다. 기대 그것은 긴 것입니다. 고 다음 데이터를 사용하여 데이터베이스에서 주문을 신속하게 데이터를 얻기 위해 다양 형식입니다.

끝에,스크립트 fill_db . 이 스크립트로 가득에서 데이터베이스보다 조금 더 다섯 시간입니다. 그러나 이러한 다섯은 경우 모든 디버깅이다. 첫 번째 스크립트 작동했다. 주요 문제점이 있습니다. 첫 번째 문제가 있었 릴리스 μ-0.01.tar.gz 저자 APEIRON, 그때 문제가 있었으로 파일 t/words_with_ß.dat 에서 릴리스 Lingua-DE-ASCII-0.06BIGJ. 그러나 결국 모든 문제를 해결되었다고 스크립트를 성공적으로 만든 그것을 통해니다.tar.gz 출시하였습니다.

스크립트 모두입니다.tar.gz 파일에서 CPAN. 압축을 풉니다.tar.gz 임시 폴더에 있습니다. 이 발견 에서 이 임시 폴더를 모든 파일의 확장자 .pm, .pl, .t 또는 .pod읽 모두 들여쓰기하고 확인하면 들여쓰기 공간과 또는 탭이 있습니다. 에서 자료가 다른 파일이 있지만 내가 결정해야만 제한되는 파일을 명확하게 관련된 Perl.

의 결과는 이 스크립트 2 데이터베이스의 테이블. 여기에는 데이터의 예:

mysql> select * from releases limit 1;
+------------+--------+---------------------------------------------------------------+------------+
| release_id | author | file_name                                                     | timestamp  |
+------------+--------+---------------------------------------------------------------+------------+
|          1 | RUFF   | /cpan/authors/id/R/RU/RUFF/DJabberd-Authen-Dovecot-0.1.tar.gz | 1359325895 |
+------------+--------+---------------------------------------------------------------+------------+
1 row in set (0.00 sec)

mysql> select * from files where release_id = 1;
+---------+------------+--------------------------------------------------------+------+---------------------+-------------------+
| file_id | release_id | file_name                                              | size | has_space_beginning | has_tab_beginning |
+---------+------------+--------------------------------------------------------+------+---------------------+-------------------+
|       1 |          1 | DJabberd-Authen-Dovecot/lib/DJabberd/Authen/Dovecot.pm | 2047 |                   1 |                 1 |
|       2 |          1 | DJabberd-Authen-Dovecot/t/compiles.t                   |   64 |                   0 |                 0 |
+---------+------------+--------------------------------------------------------+------+---------------------+-------------------+
2 rows in set (0.02 sec)

mysql> mysql> selec(*) from releases;
+----------+
| count(*) |
+----------+
|   135343 |
+----------+
1 row in set (0.04 sec)

mysql> select count(*) from files;
+----------+
| count(*) |
+----------+
|  3828079 |
+----------+
1 row in set (5.71 sec)

단백만,탭,탭 공간,그리고...

총 데이터베이스에서 각각에 대한 파일에서 릴리스가 2 기:

  • 당신이 사용할 공간을 들여쓰기
  • 당신이 사용하는 탭에서 들여쓰기

각각 두 개의 깃발할 수 있 4 조합:

  • 11—사용되는 공백과 탭을
  • 10—사용 전용 공간
  • 01—만 사용되 탭
  • 00—사용하지 않은 공간이나 탭

첫 세션은 완전히 예상되는 상황을 나누고 싶었습니다.고 무엇을 찾는 인기가 있습니다. 하지만 옵션 00 —"사용하지 않는 어느 쪽도 아 탭나 공백"—는 내가 무슨 생각을 했 하지만 그것 밖에는 이런 일들이 벌어지고 있습니다. "어떻게?" —당신은 물을 것이다. 여기에는 예입니다.

mysql> select releases.release_id, files.file_name, files.size, has_space_beginning, has_tab_beginning from releases join files on releases.release_id = files.release_id and author = 'KOHA';
+------------+---------------------------------------------------+------+---------------------+-------------------+
| release_id | file_name                                         | size | has_space_beginning | has_tab_beginning |
+------------+---------------------------------------------------+------+---------------------+-------------------+
|     118147 | Bundle-KohaSupport-0.31/lib/Bundle/KohaSupport.pm | 2169 |                   0 |                 0 |
|     118147 | Bundle-KohaSupport-0.31/t/Bundle-KohaSupport.t    |  487 |                   0 |                 0 |
|     118147 | Bundle-KohaSupport-0.31/t/pod.t                   |  130 |                   0 |                 0 |
+------------+---------------------------------------------------+------+---------------------+-------------------+
3 rows in set (0.05 sec)

저자 KOHA 릴리스 Bundle-KohaSupport-0.31. 이 릴리즈에 있는 3 개 파일 확장자 목록에서 .pm, .pl, .t.pod. 에 대해 이러한 모든 파일에서 데이터베이스 기록에서 자신의 들여쓰기 아무 공간이 없습니다. 어떻게 이런 일이 있을 수 있습니까?

그는 초등학교입니다. 에서 보면 이 파일에,그들은 단순히 없을 들여쓰기가 있습니다. 예를 들어,파일의 내용을 t/Bundle-KohaSupport.t:

# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl Bundle-KohaSupport.t'

#########################

# change 'tests => 1' to 'tests => last_test_to_print';

use Test::More tests => 1;
BEGIN { use_ok('Bundle::KohaSupport') };

#########################

# Insert your test code below, the Test::More module is use()ed here so read
# its man page ( perldoc Test::More ) for help writing this test script.

그 외에도 세 가지 예기치 않은 상황:

  • 만 사용 공간
  • 만 사용되 탭
  • 사용되는,그리고 공백과 탭을

또한 상황:

  • 를 사용하지 않는 공간을 사용하지 않는 탭

데이터 authors

후 데이터를 처리하는 데이터베이스에서,내가 결정보 에서 각 저자는 그 사용을 위해 패딩.

제가 기대하는 가장 인기 있는 것만을 사용하는 공간의 경우 두 번째 장소로 인기를 것만을 사용하는 탭,그리고 세 번째 장소에서 인기를 동시에 사용하는 탭이 있습니다.

하지만 그것을 밖으로 나는 완전히 잘못입니다.

내가 쓴 스크립트 . 이 스크립트 체크 무엇이 문자를 사용하여 저자는 모든 파일 .pm, .pl, .t, .pod, 에 있는 모든 자료는 지금 on CPAN.

여기에 무슨 일이 있었는지:

$ cat app/data/users.log | perl -nalE 'say if /^##/'
## 00 (nothing) - 50 (0.7%)
## 01 (only tabs) - 51 (0.7%)
## 10 (only spaces) - 1543 (21.9%)
## 11 (both) - 5410 (76.7%)

데이터 절대적으로 같은 내가 예상됩니다!

  • 의 75%이상 저자용 혼합물의 공백과 탭을 들여쓰기.
  • 공백만에 두 번째 장소는 약간 20%이상,
  • 그리고 저자만 사용하는 탭이 보다 적은 퍼센트입니다.
  • 숫자의 저자가 누구를 사용하지 않는 여백은 거의 동일한 수로의 저자들만을 사용합니다.

의 전체 목록은 모든 저자는 고장에서의 프로 팀이에 있는 파일에 GitHub .

하지만 노트북 jupyter  에 의해 지어진 원형 차트.

그러나 이것의 데이터가 생성 된 모든 버전에는 지금 on CPAN. 이 릴리스 만들었던 지난 24 년입니다. 될 수 있으로 시간 비율 게 변화하고 있는가?

시간

모든 파일에 출시 CPAN,수정시간을 할 때 이 릴리스로 업로드되었 CPAN. 이러한 데이터에 로드되는 데이터베이스입니다. 지금 오래된 CPAN 릴리스 Ioctl-0.5 —그것은 업로드한 CPAN 1995-08-20:

mysql> select author, file_name, from_unixtime(timestamp) from releases where timestamp = (select min(timestamp) from releases);
+--------+----------------------------------------------+--------------------------+
| author | file_name                                    | from_unixtime(timestamp) |
+--------+----------------------------------------------+--------------------------+
| KJALB  | /cpan/authors/id/K/KJ/KJALB/Ioctl-0.5.tar.gz | 1995-08-20 07:26:09      |
+--------+----------------------------------------------+--------------------------+
1 row in set (0.08 sec)

리고 이 일로 가득 차 있었 8 릴리스:

mysql> select * from releases where from_unixtime(timestamp) < '1995-08-21' order by timestamp;
+------------+--------+--------------------------------------------------------------+-----------+
| release_id | author | file_name                                                    | timestamp |
+------------+--------+--------------------------------------------------------------+-----------+
|     112505 | KJALB  | /cpan/authors/id/K/KJ/KJALB/Ioctl-0.5.tar.gz                 | 808903569 |
|      23026 | TYEMQ  | /cpan/authors/id/T/TY/TYEMQ/FileKGlob.tar.gz                 | 808903636 |
|     134031 | WPS    | /cpan/authors/id/W/WP/WPS/Curses-a8.tar.gz                   | 808903647 |
|     112546 | KJALB  | /cpan/authors/id/K/KJ/KJALB/Term-Info-1.0.tar.gz             | 808903748 |
|      70278 | MICB   | /cpan/authors/id/M/MI/MICB/TclTk-b1.tar.gz                   | 808910379 |
|      70274 | MICB   | /cpan/authors/id/M/MI/MICB/Tcl-b1.tar.gz                     | 808910514 |
|      19408 | GBOSS  | /cpan/authors/id/G/GB/GBOSS/perl_archie.1.5.tar.gz           | 808930091 |
|      81551 | JKAST  | /cpan/authors/id/J/JK/JKAST/StatisticsDescriptive-1.1.tar.gz | 808950837 |
+------------+--------+--------------------------------------------------------------+-----------+
8 rows in set (0.06 sec)

결정을 어떻게 유통의 사용하여 다른 문자의 들여쓰기를 위한 시도입니다. 이를 위해 썼 는 스크립트 .

여기에 조각의 데이터 파일을 만든 스크립트:

$ cat app/data/releases_date.csv | head
date,00,01,10,11
1995-08-20,0,1,0,7
1995-08-21,0,0,0,0
1995-08-22,0,0,0,0
1995-08-23,0,0,0,0
1995-08-24,0,0,0,1
1995-08-25,0,0,0,0
1995-08-26,0,0,0,0
1995-08-27,0,0,0,0
1995-08-28,0,0,0,0

Ie 에 대한 각 날짜를 시작으로 1995-08-20 는 방법에 대한 정보를 제공합니다 많은 자료실 무엇이 문자를 사용되었 들여쓰기.

  • 00 —에서 들여쓰기 없는 공간,아무 탭
  • 01 —에서 들여쓰기에만 사용 탭
  • 10 —을 들여쓰기만을 사용 공간
  • 11 —에서 만끽할 수 있는 탭을 사용하고 공간

다음 쓴 jupyter 노트북  그린 그래프. 차트에 표시의 절대 수 릴리스의 유형으로 들여쓰기 와 비율의 총 수의 출시에 이 day:

그래프 거의 9 천 일입니다. 그것은 분명 있는 추세이지만,그래프가 시끄럽고 그것은 나쁜 당신이 모든 것을 볼 수 있습니다. 대신하기 때문의 일이었어 그룹을 놓습니다.:

하지만 놀라운 추세이다. 수도 자료만 사용하는 탭이나 no 들여쓰기는 거의 변경되지 않은,그러나의 비율로 자료만 사용하는 공간 지속적으로 성장하고 이러한 성장으로 인해의 비율 릴리스의 혼합물을 사용하는 탭이 있습니다.

이유는"공백만". 가설 수 1

나는 데이터는 나는 하나의 가설을 이유를 줄 수 릴리스 는 사용하고 문제의 탭이 있습니다. 내 생각에 대한 Perl 라이브러리 모듈::설치 . 만약 작성할 때 라이브러리 사용하여 모듈::설치,CPAN 릴리스 포함된 파일에서 이 라이브러리입니다. 고 이러한 파일에서 사용 혼합물의 공백과 탭을 표시합니다. 예를 들어 여기에서 파일을 모듈::설치 릴리스 Devel-PeekPoke-0.04:

mysql> select * from files where release_id = 284 and file_name like '%inc/Module/Install%';
+---------+------------+----------------------------------------------------+-------+---------------------+-------------------+
| file_id | release_id | file_name                                          | size  | has_space_beginning | has_tab_beginning |
+---------+------------+----------------------------------------------------+-------+---------------------+-------------------+
|   10328 |        284 | Devel-PeekPoke-0.04/inc/Module/Install.pm          | 12381 |                   1 |                 1 |
|   10329 |        284 | Devel-PeekPoke-0.04/inc/Module/Install/Metadata.pm | 18111 |                   1 |                 1 |
|   10330 |        284 | Devel-PeekPoke-0.04/inc/Module/Install/Fetch.pm    |  2455 |                   1 |                 1 |
|   10331 |        284 | Devel-PeekPoke-0.04/inc/Module/Install/Makefile.pm | 12063 |                   1 |                 1 |
|   10332 |        284 | Devel-PeekPoke-0.04/inc/Module/Install/Base.pm     |  1127 |                   0 |                 1 |
|   10333 |        284 | Devel-PeekPoke-0.04/inc/Module/Install/WriteAll.pm |  1278 |                   0 |                 1 |
|   10334 |        284 | Devel-PeekPoke-0.04/inc/Module/Install/Win32.pm    |  1795 |                   1 |                 1 |
|   10335 |        284 | Devel-PeekPoke-0.04/inc/Module/Install/Can.pm      |  3183 |                   1 |                 1 |
+---------+------------+----------------------------------------------------+-------+---------------------+-------------------+
8 rows in set (0.03 sec)

내 것이라는 가설 개발자가 사용하는 공간을 들여쓰기는 하지만 때문에는 사실에서 릴리스 모듈::설치된 기록에서 통계,공백과 탭을 표시합니다. 모듈::설치 강철을 덜 을 사용하는(거의 모든 종류의 Dist::질라,Dist::Milla,Minilla),따라서 모듈::설치를 제공 중단 왜곡.

이 가설을 확인해야 합니다. 먼저 결정하는 경우 모듈::설치하고 사용이 덜 적습니다. 내 일정. 각 지점의 수 출에 대한 달 사용되는 모듈::설치합니다. 당신이 볼 수있는 부분의 가정이 올바른 참으로,모듈::설치하철 이용 적습니다.

지 사용의 모듈::설치에 영향을 미치의 활용에 공백이나 탭이고 공간 들여쓰기. 을 찾기 위해,나는 두 그래픽입니다. 은 수의 다른 유형의 패딩 릴리스 개월입니다. 첫 번째 차트만 릴리스을 사용하는 모듈::설치에 두 번째 차트만 자료는 사용되지 않습니다.

여기에 당신이 볼 수 있는 실제로 사용하는 경우,당신은 라이브러리 모듈::설치하고,가장 자주 사용되는 라이브러리 그것은 혼합물의 탭이고 공간이 있습니다.

그리고 여기에 차트를 표시하는 단지 사람들 릴리스을 사용하지 않는 모듈::설치합니다. 당신이 비교하는 경우 일정으로 스케줄에 적용되는 모든 자료를,그런 차이가 있지만 아무것도 변경합니다.

그것은 가설이 잘못된 것입니다. 는 경우 해당 사용하여 모듈::설치하고,다음 릴리스 종종 빠진 그룹 "탭이고 공간에"하지만하지 않는 경우 계정에 대한 모든 버전을 사용하는 모듈::설치,당신은 여전히 트렌드 의 비율로 자료만 사용하는 탭으로 들여쓰기에 증가 비용 비율의의 자료에 사용되는 의 혼합물 탭도 있습니다.

이유는"공백만". 가설 수 2

왜 같은 성장수의 자료만 사용하는 탭? 도 있 초과 active 저자,생산은 많은 자료와 저자가 있는 효과에 모두 통계는?

나는 그것을 밖으로 확인하십시오. 그린 그래프로 표시하는 공유의 릴리스 만 사용 공간으로 첫 번째의 편지 저자의 이름입니다. 는 경우 실제로 일 저자가를 통해 큰 기여를 전체 통계는 종류의 줄을 매우 급격하게 갔습니다. 차트에서 나는 보았다,모든 라인은 플러스 마이너스도. 그래서 확인이 가설,지 을 얻을 수 있었다.

이유는"공백만". 설 번호 3

그래프 표시하는 시간에 더 많은 자료는 만 공간을 들여쓰기가 있습니다. 그 이유는 성장의 비용으 릴리스의 혼합물 는 공백과 탭을 표시합니다.

내가 첫째로 가정했다는 이로 인해 발생하는 사실에 출시하기 전에 적극적으로 포함 코드 라이브러리 모듈::설치하는 사용 혼합물의 공백과 탭을,이 라이브러리 사용 작고,따라서의 비율 릴리스의 혼합물을 사용하는 탭 과 격차 줄어듭니다. 는 부분은 진리이지만,경우에도 우리에서 제거 검토는 모든 자료를 사용하는 모듈::설치하고,전반적인 추세는 변경되지 않습니다— 여전히,공유의 자료에서는 이러한 기능의 차이는 성장의 비용 공유 릴리스 사용 혼합물의 공백과 탭을 표시합니다.

나의 가정은 두 번째는 영향에의 통계 소수의 매우 활성화 합니다. I couldn't find 확인이 가설입니다.

세 번째 가설은 저자가 나타나 더 편리한 텍스트 편집기 과 IDE 쉽게 사용하는 그리스만 공간이 아닌 혼합물의 공백과 탭을 표시합니다. 하지만,불행히도,아이디어를 테스트하는 방법 이 가설입니다. 데이터 거짓말에 CPAN 정보가 없는 것에 대해 편집기를 만드는 데 사용합니다. 에서 릴리스 날짜를 위한 인기 있는 편집자/IDE:

  • Emacs —1985
  • vim —1991
  • IntelliJ IDEA —januaray2001
  • Eclipse —November2001
  • Sublime Text 월 2008
  • Atom 월 2014
  • VS Code 월 2015

데이터 2019

이전에 그는 시간이 더 많은 자료는 공간과 혼합하지 탭을 가진 공간이 있습니다. 그래서 나는 결정하의 분포를 보면 어떤 종류의 여백 사용 작가에 의해서만 계정에서의 그들의 릴리스 2019.

데이터에서의 결과를 실행하는 스크립트 :

$ cat app/data/users_2019.log | perl -nalE 'say if /^##/'
## 00 (nothing) - 12 (1.4%)
## 01 (only tabs) - 9 (1.0%)
## 10 (only spaces) - 355 (41.2%)
## 11 (both) - 486 (56.4%)

면 우리는 비교를 위한 데이터 2019 년과 데이터를 제공한 모든 년 동안,우리는 비율의 저자들만 사용하는 탭을 변경하지 않지만,의 비율 저자만 사용할 공간을 극적으로 증가했다.

원본 이를 위해 파이 차트:

에 영향을 미치는 요인 데이터의 유효성

의 형성에 대한 숫자와 그래프 모두 사용됩니다.tar.gz 릴리스 에 CPAN 에 이 글을 쓰는 시점에서 외 릴리스 Perl 프로그래밍 언어입니다.

CPAN 를 삭제할 수 있습니다 릴리스 데이터에 다음과 같은 이 문서 원격 릴리스 참여하지 않았다. 그것은 불분명하는 방법을 많이 변화한 경우의 데이터 을 고려한 캐릭터 패딩의 이미 제거 출시하였습니다. 그것은 가능한 데이터는 많이 변경. 거기에 아카이브 backpan  저장하는 모든 릴리스 이 CPAN. 그래서 이론을 가능성이 있 변환 모든 숫자에 따라 출시되는지에 CPAN.

두 번째는 점에 영향을 미치는 데이터의 정확도가 뭔가를 하였으로 계정을 기호 들여쓰기만 자료가 포장되었습니다.tar.gz 아카이브입니다. 다른 형식 아카이브가 사용되지 않습니다. 대부분의 자료니다.tar.gz 그래서 그것은 이러한 가정입니다. 계산하면 데이터에 대한 모든 아카이브 데이터 이 확실하게 변경합니다. 가정은 변경 될 것 보다 몇 퍼센트입니다.

소스 코드

의 전체 세트 스크립트를 사용된 데이터를 수집하는 데이터 자체 고 jupyter 노트북을 사용할 수 있는 모든 저장소에서습니다.

코드 서면—그것은 단지 아주 멀리에서 완벽합니다. 모두 쓰여진 기록과 아이디어를 가능한 한 빨리 결과를 얻을 만들지 않는 완벽한 코드입니다.

요약

에 이 글을 쓰는 시점의 저장소 펄 CPAN 라이브러리,거기에 약 135 천 출시하였습니다. 첫 번째 출시되었다고 24 년 전(1995-08-20). 이러한 자료는 약 4 만 파일 확장 .pm, .pl, .t.pod.

만약 우리가 고려를 위한 데이터 모든 시간,그 밝혀지는 76.7%%의 저자에 여백을 사용 혼합물의 공백과 탭을, 21.9%에서 사용되는 들여쓰기,공간과 0.7%—만의 탭이 있습니다.

그러나 우리는 것을 고려한다면 데이터에 대해서만 2019,그것은 더 많은 저자만 사용할 공간 들여쓰기,하지만 여전히 대부분의 조합을 사용 탭 및 공간(56.4%—탭을 사용하여와 공간,공간 41.2%—만 간격,1.0%만 탭).

고 보면서 그래프의 백분율의 변화를 사용하여 다른 형태의 들여쓰기,당신이 볼 수 있는 공유의 만 사용 공간은 성장하고 이 공유에서 성장의 비용 공유하는 사람들의 혼합물을 사용하여 탭을 위한 공간 들여쓰기가 있습니다.

그것은 알려지지 않은 이유는 비율이 증가하고 있다. 그것은이 때문이라는 사실을 저자 사용상 편리한 텍스트 편집기는 쉽고 안전을 설치 는 사용자를 들여쓰기.

다른 기사