-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
163 lines (151 loc) · 9.5 KB
/
Copy pathindex.html
File metadata and controls
163 lines (151 loc) · 9.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>CuffScript — Language Introduction</title>
<meta name="description"
content="CuffScript is a lightweight, human-friendly programming language designed to make programming feel as easy as a game, as light as a feather, and as fast as a flash." />
<!-- Open Graph -->
<meta property="og:type" content="website" />
<meta property="og:title" content="CuffScript — A Human-Friendly Programming Language" />
<meta property="og:description"
content="A lightweight, human-friendly programming language designed to make programming feel as easy as a game, as light as a feather, and as fast as a flash." />
<meta property="og:url" content="https://cuffscript.pages.dev/" />
<meta property="og:image" content="https://cuffscript.pages.dev/og-image.png" />
<meta property="og:image:alt" content="CuffScript — A Human-Friendly Programming Language" />
<meta property="og:site_name" content="CuffScript" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="CuffScript — A Human-Friendly Programming Language" />
<meta name="twitter:description"
content="A lightweight, human-friendly programming language designed to make programming feel as easy as a game, as light as a feather, and as fast as a flash." />
<meta name="twitter:image" content="https://cuffscript.pages.dev/og-image.png" />
<meta name="twitter:image:alt" content="CuffScript — A Human-Friendly Programming Language" />
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
</head>
<body>
<div class="app-shell">
<div id="site-header-root"></div>
<main class="home-main">
<section class="home-hero">
<span class="home-kicker">A human-friendly programming language</span>
<img class="home-logo" src="/favicon.svg" alt="CuffScript Logo" />
<h1>CuffScript</h1>
<p class="home-slogan">
“As easy as a game, as light as a feather, and as fast as a flash.”
</p>
<p class="home-tagline">
CuffScript는 특정 문법 하나를 잘 만드는 것보다, 프로그래밍이라는 경험 자체를
덜 무섭게 만드는 것을 목표로 만들어진 언어입니다. 설치도, 설정도 없이 이
페이지에서 바로 첫 줄을 실행해 볼 수 있습니다.
</p>
<div class="home-cta">
<a class="btn btn-primary btn-lg" href="/ide/">IDE에서 실행해보기</a>
<a class="btn btn-lg" href="/guide/">언어 가이드 보기</a>
</div>
</section>
<section class="home-story">
<h2>왜 CuffScript인가</h2>
<p>
처음 프로그래밍을 배우기 시작한 사람이 가장 먼저 마주하는 벽은 대개 논리가
아니라 <strong>낯선 기호와 엄격한 규칙</strong>입니다. 세미콜론을 하나
빠뜨렸다는 이유로, 괄호의 짝이 하나 어긋났다는 이유로 알 수 없는 에러 메시지와
마주하고 나면, 문제는 "내가 논리적으로 생각하지 못해서"가 아니라 "이 언어의
규칙을 아직 외우지 못해서"인데도 전자로 오해하기 쉽습니다.
</p>
<p>
CuffScript는 그 첫 벽을 낮추자는 생각에서 출발했습니다. <code>set</code>,
<code>change</code>, <code>do:</code>, <code>end</code> 처럼 사람이 실제로
쓰는 말에 가까운 키워드를 쓰고, 잘못된 부분이 있으면 프로그램 전체가 알 수 없이
종료되는 대신 어디가 왜 잘못됐는지 이야기해 주는 것 — 이런 선택 하나하나가 모여
"내가 지금 뭘 하고 있는지 이해할 수 있는" 경험을 만듭니다. 그렇다고 표현력을
희생하지는 않습니다. 함수, 비동기 실행, 정규식 기반 패턴 매칭까지 — 작은
자동화 스크립트나 게임 로직을 만들기에 부족함이 없는 실제 작동하는 언어입니다.
</p>
<p>
이름의 "Cuff"는 소맷단이라는 뜻입니다. 손목에 가볍게 채워 언제든 편하게 쓸 수
있는 도구처럼, 부담 없이 걸치고 바로 무언가를 만들어 볼 수 있는 언어이길
바라는 마음을 담았습니다.
</p>
</section>
<section class="home-features">
<h2>CuffScript를 이루는 세 가지 원칙</h2>
<div class="feature-grid">
<div class="feature-card">
<div class="feature-icon" id="icon-game"></div>
<h3>게임처럼 쉽게</h3>
<p>
실수해도 게임의 재시작 버튼처럼 다시 시도할 방법이 있습니다.
<code>or_else</code>로 실패를 회복하고, 에러는 어디서 무엇이
잘못됐는지를 구체적으로 알려줍니다. 배우는 과정에서 좌절할 이유를
하나씩 줄이는 것이 CuffScript의 첫 번째 원칙입니다.
</p>
</div>
<div class="feature-card">
<div class="feature-icon" id="icon-feather"></div>
<h3>깃털처럼 가볍게</h3>
<p>
설치할 컴파일러도, 관리할 패키지도, 외워야 할 표준 라이브러리 목록도
없습니다. 브라우저 탭 하나, 그리고 몇 개의 단순한 개념만으로 충분히
쓸모 있는 것을 만들 수 있도록 언어의 크기 자체를 작게 유지합니다.
</p>
</div>
<div class="feature-card">
<div class="feature-icon" id="icon-flash"></div>
<h3>섬광처럼 빠르게</h3>
<p>
머릿속에 떠오른 생각을 코드로 옮기고, 바로 그 자리에서 결과를 확인하는
흐름의 속도를 중요하게 여깁니다. 빌드도, 배포도 없이 — 쓰고, 실행하고,
바로 다음 생각으로 넘어갈 수 있습니다.
</p>
</div>
</div>
</section>
<section class="home-showcase">
<p class="home-showcase-caption">피보나치 수열 예제 — 실제 문법은 가이드에서 차근차근 다룹니다.</p>
<pre><code class="language-cuff">set returnable function fib(n) do:
if n <= 1 do: return n end
return fib(n - 1) + fib(n - 2)
end
print(f"fib(10) = {fib(10)}")</code></pre>
</section>
<section class="home-audience">
<h2>이런 분들에게 어울리는 언어입니다</h2>
<ul class="home-audience-list">
<li>
<strong>프로그래밍을 처음 시작하는 사람</strong> — 낯선 기호보다 논리
자체에 먼저 익숙해지고 싶은 분.
</li>
<li>
<strong>정규식이 늘 무서웠던 사람</strong> — <code>\d</code>,
<code>\w</code> 대신 <code>[num]</code>, <code>[word]</code>처럼 읽을 수
있는 이름으로 패턴을 다뤄보고 싶은 분.
</li>
<li>
<strong>아이디어를 빠르게 실험해 보고 싶은 사람</strong> — 프로젝트를
세팅하는 시간 없이, 떠오른 생각을 바로 실행해 확인하고 싶은 분.
</li>
<li>
<strong>작은 도구를 만들고 싶거나 프로그래밍을 배우고 싶은 사람</strong> — 거창한
프레임워크 없이도 시작할 수 있는 언어를 찾는 분.
</li>
</ul>
</section>
<section class="home-band">
<h2>지금 바로 첫 줄을 실행해 보세요</h2>
<p>예제 10개가 준비되어 있어, 기초 문법부터 모듈까지 순서대로 따라가 볼 수 있습니다.</p>
<div class="home-cta">
<a class="btn btn-primary btn-lg" href="/ide/">IDE 열기</a>
</div>
</section>
</main>
<footer class="site-footer">
<span>CuffScript is open source, licensed under Apache-2.0.</span>
<a href="https://github.com/cuffscript/cuffscript" target="_blank" rel="noreferrer">GitHub</a>
<a href="https://www.npmjs.com/package/cuffscript-wasm" target="_blank" rel="noreferrer">npm</a>
<a href="/guide/">가이드</a>
</footer>
</div>
<script type="module" src="/src/home.ts"></script>
</body>
</html>