Skip to content

Commit 4f3c272

Browse files
authored
why-gno from gnolang/gno#4226 (#130)
* why-gno from gnolang/gno#4226
1 parent ffba716 commit 4f3c272

File tree

3 files changed

+297
-0
lines changed

3 files changed

+297
-0
lines changed

posts/2025-04-29_why-gno/README.md

Lines changed: 297 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,297 @@
1+
# Gno.land
2+
3+
Tendermint changed the way blockchain developers think about blockchain
4+
consensus algorithms. Gno.land will change the way developers think about
5+
programming.
6+
7+
Gno.land represents paradigm shift in multi-user programming that no other
8+
solution offers. It is not just a smart contract platform and blockchain; it is
9+
the world's first viable language-based multi-user operating system. Its
10+
ultimate goal is to host the world's knowledge base for the new millennium.
11+
12+
## Why Gno.land?
13+
14+
Compare publishing a blog site in Gno.land to all prior smart contract systems.
15+
16+
```go
17+
// Realm: gno.land/r/me/myblog
18+
19+
package gnoblog
20+
21+
import (
22+
"std"
23+
24+
"gno.land/p/demo/blog"
25+
)
26+
27+
var b = &blog.Blog{
28+
Title: "gno.land's blog",
29+
Prefix: "/r/gnoland/blog:",
30+
}
31+
32+
func AddComment(postSlug, comment string) {
33+
crossing()
34+
assertIsCommenter()
35+
assertNotInPause()
36+
37+
caller := std.OriginCaller()
38+
err := b.GetPost(postSlug).AddComment(caller, comment)
39+
checkErr(err)
40+
}
41+
42+
func Render(path string) string {
43+
return b.Render(path)
44+
}
45+
```
46+
47+
You can see the Gno source code that rendered this webpage by clicking
48+
on "\<\/\>Source" on the top right of the webpage.
49+
50+
Q: Why is everything else so complicated?
51+
52+
A: Strangely difficult to answer, but ultimately because our languages,
53+
compilers, interpreters, and programming paradigm is still evolving.
54+
55+
## Brief Evolution of Language
56+
57+
Written human language has only been around for a mere 6000 years, a blip in
58+
our evolutionary history. Like living species our language and writing have
59+
evolved along side us and within us. Adam was not the first homo sapiens on
60+
earth, but he may have been the first with written language, and thereby a new
61+
kind of man.
62+
63+
Programming languages likewise has been evolving rapidly, but only for a
64+
handful of decades; it was in the 1970s when Alan Kay developed Smalltalk, the
65+
first object oriented programming language. In the 1990’s Brendan Eich of
66+
Netscape invented Javascript which forever transformed the World Wide Web; Sun
67+
Microsystem made Java, and industries prospered greatly by these and similar
68+
language technologies.
69+
70+
## Gno vs Previous
71+
72+
Our languages, compilers & interpreters, and programs are today:
73+
- Nondeterministic - randomness is the norm in concurrent programming, but
74+
even Go randomizes map iteration.
75+
- Disk Bound - programs need to be designed to save to disk —> SQL solutions;
76+
NOT native language
77+
- Dependent - running programs are owned by an owner; dependent on
78+
individuals, not self-sustaining
79+
- Ephemeral - running programs are expected to fail; no guarantee of
80+
presence.
81+
- Single User Realm - import of internal libraries are native, but
82+
interactions with external programs are NOT native; generally no `import
83+
“gno.land/r/external/realm”`, but leaky abstractions synthesized ie GRPC
84+
85+
Gno, GnoVM, and Gno.land is in contrast:
86+
- Deterministic - gno routines not yet supported, but even these will be
87+
deterministic.
88+
- Auto Persistent - all changes to instantiated Gno objects in the transaction
89+
are persisted transparently.
90+
- Self Sustaining - every transaction locks $GNOT up for new storage allocated;
91+
CPU gas fees paid in any language.
92+
- Immortal - every Gno object that is referenced (not GC’d) remains forever.
93+
- Multi User Realm - all objects are stored in realm packages (namespaces).
94+
95+
## Gno Language Innovation
96+
97+
All modern popular programming langauges are designed for a single programmer
98+
user. Programming languages support the importing of program libraries natively
99+
for components of the single user's program, but this does not hold true for
100+
interacting with components of another user's (other) program. Gno is an
101+
extension of the Go language for multi-user programming. Gno allows a massive
102+
number of programmers to iteratively and interactively develop a single shared
103+
program such as Gno.land.
104+
105+
The added dimension of the program domain means the language should be extended
106+
to best express the complexities of programming in the inter-realm (inter-user)
107+
domain. In other words, Go is a restricted subset of the Gno language in the
108+
single-user context. (In this analogy client requests for Go web servers don't
109+
count as they run outside of the server program).
110+
111+
Gno is Go plus:
112+
- [`cross(fn)(…)`](https://github.com/gnolang/gno/blob/master/docs/resources/gno-interrealm.md#crossfn-and-crossing-specification)
113+
calls `fn(…)` where fn is another realm.
114+
- `std.CurrentRealm()` and `std.PreviousRealm()` changes upon cross-calls.
115+
- `func fn() { crossing(); … }` signifies that fn is a crossing-function where
116+
std.CurrentRealm() returns the realm in which the function is declared.
117+
[Gno2 proposed syntax](https://github.com/gnolang/gno/issues/4223):
118+
`@fn(…)`, `@func @fn() { … }`. These are like verb (function) modifiers in
119+
[honorifics in Korean and Japanese](https://en.wikipedia.org/wiki/Honorifics_%28linguistics%29)
120+
- While all data is readable by other realms, dot.selector access
121+
across realms get [tainted with 'readonly' attribute](https://github.com/gnolang/gno/blob/master/docs/resources/gno-interrealm.md#readonly-taint-specification).
122+
- [`revive(fn)`](https://github.com/gnolang/gno/blob/master/docs/resources/gno-interrealm.md#panic-and-revivefn)
123+
for Software Transactional Memory (STM).
124+
- Function/method return implies access without readonly taint.
125+
- Inter-realm type conversion limitations to prevent exploits.
126+
- More and refinements to come in Gno2.
127+
128+
These language innovations/extensions allow for safer multi-user application
129+
development where many users are collaboratively programming a single timeless
130+
(immortal) communal program.
131+
132+
## The Logoverse
133+
134+
Ἐν ἀρχῇ ἦν ὁ Λόγος καὶ ὁ Λόγος ἦν πρὸς τὸν Θεόν καὶ Θεὸς ἦν ὁ Λόγος. In the
135+
beginning was the Word (Logos), and the Word was with God, and the Word was
136+
God. - John 1:1
137+
138+
Logos means “word, discourse; reason”, and shares its root with the word
139+
“logic”.
140+
141+
With these elements altogether you can derive a new property:
142+
- Gno expressions become "real" on Gno.land.
143+
- Ethereum comes close but isn't object-oriented and Solidity has no pronouns.
144+
- TBL's WWW, DOM model, HTTP verbs, Plan 9, Ethereum, and FB Meta are all
145+
attempts to arrive at the logoverse.
146+
- Gno.land is the first complete logoverse.
147+
148+
## Adoption Strategy
149+
150+
There are over a million Go developers and growing. Go as a language remains a
151+
popular language for developers, an order of magnitude more than Rust
152+
developers, on par with Javascript developers but growing faster than
153+
Javascript.
154+
155+
![TIOBE 2025](./src/tiobe_2025.png)
156+
![GitHut2 2024](./src/githut2_2024.png)
157+
158+
Gno.land and its associated network of Gno VM chains, and AtomOne if it hosts
159+
it, will become the nexus of human to human, human to machine, and machine to
160+
machine coordination; but only after it finds a self-sustaining organic growth
161+
cycle.
162+
163+
The best way to ensure success and to accelerate adoption is to seed the
164+
initial community with the right community. There are many types of
165+
communities, such as crypto community, ethereum community, student community,
166+
but since Bitcoin has gone mainstream these communities aren't always in
167+
agreement about the purpose of blockchain technology; because they aren't aware
168+
of the history and fabric of the hidden power structures that run the
169+
narrative--both mainstream AND controlled oppositions. They do not feel that
170+
they need something, so their habits are not as obvious to change.
171+
172+
But the "free-thinking" and "conspiracy" and "anti-war" and "anti-Covid19-vax"
173+
and even the "true Christian" communities feel an urgent need for
174+
censorship-proof coordination and communication tools. These communities have
175+
influencers who are kept hidden from the general public; they have suffered
176+
deplatforming, defamations, and even death.
177+
178+
Build tools, connections, and relations with these particular communities and
179+
especially those influencers who are nuanced in their research and speech.
180+
Even those that don't promote crypto will see the benefits uniquely offered by
181+
Gno.land.
182+
183+
## Gno.land License
184+
185+
Anyone can make Gno VM powered chains derived from Gno.land according to the
186+
viral copyleft license terms and strong attribution requirement. The Strong
187+
Attribution clause of the Gno Network GPL license preserves the spirit of the
188+
GNU AGPL license for the blockchain world.
189+
190+
## Tokenomics
191+
192+
$GNOT is the storage lock-up utility token, so Gno.land is to Gno England like
193+
$GNOT is to presence in Gno England, where total storage is kept finite for
194+
very-long-term existential purposes, and value is derived from the Gno
195+
artifacts created by its users, and some new users competing for attention from
196+
many existing users.
197+
198+
Gno.land may migrate to AtomOne ICS once it is support hard-fork upgrades.
199+
There Gno.land would be one ICS shard, and many Gno VM shards may also exist,
200+
each with their own namespace and probably each their own storage token unless
201+
separate treaties are made between the main Gno.land chain (ICS shard) and
202+
other Gno VM shards. Transaction fees for CPU usage may be paid in either $GNOT
203+
or $PHOTON.
204+
205+
## Team
206+
207+
### New Tendermint, LLC
208+
209+
NewTendermint, LLC is the core maintainer of the GnoVM, Tendermint2, and
210+
at present Gno.land.
211+
212+
#### GnoVM & Gno.land Core Team
213+
214+
* Jae Kwon before and after creating Tendermint and Cosmos always had a
215+
passion for programming languages and wrote multiple parsers and
216+
interpreters, and initially also wrote an EVM on top of the framework which
217+
became the Cosmos SDK. Gno.land is the result of two decades of search for
218+
the logoverse.
219+
220+
* Manfred Touron, builder focused on open-source and resilient technologies;
221+
co-founded scaleway (cloud) and berty (p2p messaging), with contributions to
222+
900+ open-source projects.
223+
224+
* Miloš Živković - Senior distributed systems engineer; passion for solving
225+
protocol-level problems in the blockchain space.
226+
227+
* Morgan Bazalgette - Senior Go engineer; bringing the joy of developing Go to
228+
Gno.
229+
230+
* Ray Qin - With over 15 years of experience in software development and
231+
building large-scale networks, I have a deep passion for Go programming
232+
language and blockchain technology.
233+
234+
* Marc Vertes - Senior VM and hardware developer; more than 3 decades of
235+
experience, Co-founder of 3 companies (1 acquired by IBM), author of 34
236+
patents, author of the Yaegi Go interpreter.
237+
238+
* Alexis Colin - Senior Frontend Engineer with 10+ years of experience
239+
building user-focused interfaces and exploring modern tech stacks. Driven to
240+
push forward efficient UX in the blockchain space through clean code and
241+
technical precision. Currently working on gnoweb.
242+
243+
#### Gno Studio Team
244+
245+
* Ìlker Öztürk - Senior software architect; 17 years in building and designing
246+
products, distributed p2p systems, leadership and strategic vision.
247+
248+
* Jerónimo Albi - Experienced full-stack systems engineer with attention on
249+
simplicity and minimalism, focused on Blockchain and Golang development
250+
251+
* Salvatore Mazzarino - Site Reliability Engineer with over 10 years of
252+
experience in building and mantaining high and scalable distribute systems
253+
across different range of platforms. "If it is not monitored, it does not
254+
exist"
255+
256+
* Danny Salman - Vast experience in blockchain developer relations, technical
257+
writing and education, and product, with a background in full-stack
258+
development, engineering, and policy.
259+
260+
* Alan Soares - A Brazilian lost in middle earth. Passionate coder with love
261+
for open-source and software craftsmanship. Taking the web forward for over
262+
16 years.
263+
264+
* Lucio Caetano - Senior Frontend Engineer with 10+ years of experience
265+
building web applications, specializing in web3 and blockchain technologies.
266+
With a background in data analysis, providing data-driven decisions and
267+
reporting with large datasets.
268+
269+
### All in Bits, Inc
270+
271+
Members of All in Bits, Inc also build applications and community on top of
272+
Gno.land.
273+
274+
* Kristov Atlas - Since 2012, I’ve been a crypto security engineer and
275+
researcher focusing on non-custodial wallets, CeFi exchanges, Bitcoin,
276+
Ethereum, and the Cosmos ecosystem.
277+
278+
* Michelle Leech - "Experienced marketing and ecosystem builder skilled at
279+
creating and driving strategic initiatives that foster relationship building
280+
and boost developer advocacy, engagement, education, and product
281+
utilization"
282+
283+
* Lav Leon Hudak - DevRel Engineer with a strong background in blockchain
284+
development, documentation, and education.
285+
286+
* Sean Casey - CFO (Chief Financial Gnome) - 10+ years’ experience in finance,
287+
aircraft leasing, and blockchain. Leads financial strategy, and treasury
288+
operations, ensuring capital discipline, regulatory compliance, and
289+
long-term value creation.
290+
291+
* Jordan Magazine - Experienced General Counsel with over a decade of
292+
practice, specializing in designing frameworks that enable blockchain
293+
ecosystems to operate with clarity and compliance, empowering projects to
294+
scale confidently and with integrity.
295+
296+
* Carolyn Pehrson - Paralegal keeping AIB,Inc and NT,LLC alive. Thinks you
297+
should get a pet mini pig.
104 KB
Loading
95.8 KB
Loading

0 commit comments

Comments
 (0)