Tabloid - 낚시성 문장으로 코딩하는 프로그래밍 언어
(tabloid.vercel.app)- 타블로이드는 Clickbait(낚시성) 뉴스 헤드라인 문체로 코드를 작성하는 튜링 완전 프로그래밍 언어
- 출력은
YOU WON'T WANT TO MISS구문으로 수행되며, 모든 출력이 자동 대문자화 및 느낌표 추가됨 - 함수 선언은
DISCOVER HOW TO ... WITH, 변수 선언은EXPERTS CLAIM ... TO BE구문 사용 -
루프 구조가 없고, 대신 재귀 호출로 반복을 구현하며, 함수 반환은
SHOCKING DEVELOPMENT로 표현 - 프로그램은 반드시
PLEASE LIKE AND SUBSCRIBE로 끝나며, JavaScript 인터프리터와 Racket 구현체가 존재
Tabloid 언어 개요
- Tabloid는 클릭베이트 뉴스 제목 스타일로 프로그램을 작성하도록 설계된 언어
- 예시 코드에서는
DISCOVER HOW TO fibonacci WITH a, b, n형태로 함수 선언 -
RUMOR HAS IT,WHAT IF,END OF STORY등 문장형 구문 사용
- 예시 코드에서는
- 언어의 모든 출력은
YOU WON'T WANT TO MISS로 시작하며, 자동 대문자 변환과 느낌표 추가가 이루어짐
주요 문법 및 특징
-
함수 선언:
DISCOVER HOW TO ... WITH -
변수 선언/할당:
EXPERTS CLAIM ... TO BE -
조건문:
WHAT IF ... LIES! -
함수 호출:
A OF B, C -
블록 범위:
RUMOR HAS IT으로 시작,END OF STORY로 종료 -
반환문:
SHOCKING DEVELOPMENT -
프로그램 종료:
PLEASE LIKE AND SUBSCRIBE -
불리언 값:
TOTALLY RIGHT(true),COMPLETELY WRONG(false) -
연산자:
PLUS,MINUS,TIMES,DIVIDED BY,MODULO,IS ACTUALLY,BEATS,SMALLER THAN등
언어의 동작 방식
- Tabloid는 JavaScript로 작성된 인터프리터를 통해 실행 가능
- 지원 데이터 타입은 숫자, 문자열, 불리언
- 루프 구문이 없으며, 재귀 호출을 통해 반복 구현
- 온라인 인터프리터 외에도 Racket 구현체와 보조 함수 라이브러리가 존재
개발 배경
- 제작자는 데이터베이스 시스템 과제 회피를 위해 이 언어를 만들었다고 언급
- Tabloid 이전에는 Ink라는 보다 실용적인 언어를 개발한 경험이 있음
표준 키워드 목록
-
DISCOVER HOW TO...WITH: 함수 선언 -
RUMOR HAS IT: 블록 시작 -
A OF B, C: 함수 호출 -
WHAT IF...LIES!: 조건문 -
END OF STORY: 블록 종료 -
EXPERTS CLAIM...TO BE: 변수 선언/할당 -
YOU WON'T WANT TO MISS: 출력 -
LATEST NEWS ON: 사용자 입력 -
TOTALLY RIGHT,COMPLETELY WRONG: 불리언 값 -
AND,OR: 논리 연산 -
PLUS,MINUS,TIMES,DIVIDED BY,MODULO: 산술 연산 -
IS ACTUALLY,BEATS,SMALLER THAN: 비교 연산 -
SHOCKING DEVELOPMENT: 함수 반환 -
PLEASE LIKE AND SUBSCRIBE: 프로그램 종료
Hacker News 의견
-
게시물 제목을 “Will this programming language revolutionize software development? ”로 했으면 더 재밌었을 것 같음
- 에러 메시지가 “YOU WON'T BELIEVE WHAT YOU'LL SEE IN LINE ${line_number} ” 같은 식으로 나오면 좋겠다는 생각을 함
- 커뮤니티의 비클릭베이트 전통을 지키면서도 게시물이 흥행한 점이 인상적이었음
-
이 언어는 예전에도 인기가 있었음
2020년 24578749번 글, 2024년 40964261번 글에서도 화제가 되었음- 몇몇 키워드만으로 이렇게 즐거워질 줄 몰랐음
이런 매크로를 실제 업무에도 써서 프로그래밍을 재미있게 유지해볼까 생각 중임
코드 예시에는 “EXPERTS CLAIM”, “SHOCKING DEVELOPMENT”, “PLEASE LIKE AND SUBSCRIBE” 같은 문구가 반복되어 완전히 뉴스 헤드라인처럼 보임
- 몇몇 키워드만으로 이렇게 즐거워질 줄 몰랐음
-
“And That’s a Good Thing”이라는 제목이 이 상황을 잘 요약하는 듯함
-
“CONSIDERED HARMFUL”을 후위 부정 연산자로 쓰면 어떨까 하는 아이디어를 냄
- 영국식 표현을 빌려 “IN BOOST TO x”는 1 증가, “IN BLOW TO x”는 1 감소로,
“BAN THIS SICK FILTH”는 예외를 던지는 구문으로 쓰면 재밌을 것 같음
“SLAMS”나 “SNUBBED” 같은 단어도 어딘가에 넣으면 좋겠다는 의견임
- 영국식 표현을 빌려 “IN BOOST TO x”는 1 증가, “IN BLOW TO x”는 1 감소로,
-
세부 내용은 GitHub README의 언어 개요에서 볼 수 있음
-
반복문 이름을 “BREAKING NEWS … KEEP READING TO DISCOVER”로 했으면 더 완벽했을 것 같음
-
“BREAKING NEWS! 완벽하게 멍청하면서도 사랑스러움”
팀을 설득해서 코드베이스를 이 언어로 바꿔볼 생각임
“FOLLOW ME to find out how it goes”라고 마무리함- “PLEASE LIKE AND SUBSCRIBE”를 빼먹어서 프로그램이 종료되지 않는다는 농담을 덧붙임
-
이제 이 언어에 어울리는 튜링 완전 동반 언어들만 있으면 됨
“Thunderfoot”은 Tabloid 기사 반박용 영상 스크립트를,
“Fisker”는 Discord나 Steam 커뮤니티용 트롤 포스트를,
“Shitlist”는 GitHub용 awesomelist를 자동 생성하는 언어로 상상함- “.BOT”은 X 가상 머신에서 돌아가는 봇팜 제어 언어로, BitMusk의 후속작이라는 설정을 붙임
-
이 프로젝트는 기분 좋게 황당한 시도라서 오히려 신선하게 느껴짐
-
게시물 제목은 “SHOCKING DEVELOPMENT”였으면 완벽했을 것 같음