2P by neo 7달전 | favorite | 댓글 1개
  • AWK로 구현한 AhoA Git

    • AWK는 단순한 한 줄짜리 스크립트 이상의 기능을 할 수 있음.
    • 이 프로젝트는 Git의 내부 작동 원리와 GNU AWK의 새로운 기능을 탐구하기 위한 장난감 프로젝트임.
    • 오락 및 교육 목적 외에는 유용하지 않을 것으로 의도됨.
  • 시작하기

    • gawk 버전 5.0 이상이 필요하며, pigz를 zlib 압축에 사용함.
    • GNU coreutils가 제공하는 나머지 기능들을 사용함.
    • 대부분의 리눅스 시스템에서 실행 가능하지만, BSD나 Mac에서는 그렇지 않음.
    • 초기화, 파일 추가, 파일 구조 확인 등의 명령어 사용 예시가 제공됨.
  • 기여하기

    • AWK나 Git에 대한 지식 향상에 도움이 되는 모든 입력을 환영함.
  • 할 일 목록

    • init, add/rm, status, commit, reset, branch, switch, config (읽기 전용), ls-files, cat-file 등의 기능 구현 예정.
    • 네트워크 기능은 추가할 계획이 없으므로 clone이나 push 기능은 없음.

GN⁺의 의견

  • 이 프로젝트는 기술적 호기심을 가진 사람들에게 Git과 AWK의 작동 원리를 재미있게 탐구할 수 있는 기회를 제공함.
  • 프로그래밍 언어의 새로운 가능성을 탐색하고자 하는 초급 소프트웨어 엔지니어에게 흥미로운 실험적 프로젝트임.
  • AWK와 Git에 대한 이해를 심화시키고자 하는 사람들에게 유익한 교육적 자료가 될 수 있음.
Hacker News 의견
  • Awk의 매력:

    • Awk은 유닉스 계열 시스템에서 흔히 볼 수 있는 강력한 프로그래밍 언어임.
    • 주로 파이프된 표준 출력(stdout)에서 텍스트 조각을 추출하는 데 사용되는 한 줄짜리 명령어로 쓰임.
    • Awk을 일반적인 스크립팅 언어로 사용할 수 있으며, bash보다 더 나은 면이 많음.
    • Perl이 나오면서 shell, awk, sed의 좋은 기능을 결합하려 했지만, 결국 Perl에 대한 부정적인 인식으로 인해 사람들이 다른 언어로 이동함.
  • The AWK Programming Language, Second Edition:

    • AWK 프로그래밍 언어의 두 번째 판이 2023년 9월에 출시됨.
    • 첫 번째 판은 1988년에 출판되었으며, 온라인에서 접근 가능함.
    • 관련 토론 링크 제공.
  • Awk 코드 개선 제안:

    • 함수의 매개변수와 로컬 변수를 구분하기 위해 GNU Awk에 let 문을 추가하는 패치를 제안했으나, 프로젝트에서 거절됨.
    • 대신 GNU Awk의 이름을 바꾼 포크(fork) 버전을 만들도록 권장받음.
  • Awk의 유용성:

    • 리눅스 명령줄이 최고의 개발 환경이라고 주장할 때, Awk는 종종 그 이유 중 하나로 꼽힘.
    • Awk의 기본만 알아도 많은 작업을 수행할 수 있으며, IDE가 비효율적으로 느껴질 수 있음.
    • Awk를 배우고자 하는 사람들을 위해 Linux Fest Northwest에서 강연을 하고 YouTube에 녹화본을 올림.
  • Awk를 이용한 프로젝트 경험:

    • 매우 제한된 메모리를 가진 라우터에서 Awk를 사용해 웹 기반 위키를 만든 경험이 있음.
    • 라이브러리에 의존할 수 없어 기본적인 것들을 직접 구현하면서 위키 작동 방식과 Awk의 가능성에 대해 배움.
  • Awk의 확장성:

    • Awk에 네트워크 기능을 추가할 계획은 없지만, 다른 디렉토리에 있는 저장소로부터 git clone이나 push가 가능함.
  • GNU 유틸리티의 잠재력:

    • GNU 유틸리티와 프로그램만으로도 성능과 기능 면에서 전문화된 도구들을 능가하는 데이터베이스와 처리 도구를 만들 수 있을 것 같은 생각이 듦.
  • cppawk의 활용:

    • cppawk를 사용하면 #include를 사용할 수 있으며, AWKPATH 없이 파일에 상대적임.
    • cppawk가 없던 시절에 개발된 프로젝트에 적용하면, 전처리된 프로그램을 단일 파일로 "빌드"할 수 있음.
  • Awk의 다양한 활용 예:

    • sed-chess와 awk-raycaster와 같은 프로젝트가 Awk의 다양한 활용 가능성을 보여줌.
  • Awk와 관련된 재미있는 사실:

    • "Aho"는 일본어로 바보를 의미하는 단어임.