Comments (3)
I believe that switching to a stack machine is short-sighted and a big mistake:
The AST format could open up new possibilities for software, some of which are observable in Lispy languages like Scheme (I won't list them here). Instead, we're looking at locking the software world back into this 1960's model for another 50 years out of a misguided concern for optimization over power.
It's like foregoing the arch because it's more work to craft, and instead coming up with a REALLY efficient way to fit square blocks together. Congratulations, we can build better pyramids, but will never grasp the concept of a cathedral.
To really grasp my point, I BEG you all to watch the following two videos in full and think hard about what Alan Kay & Douglass Crockford have to say about new ideas, building complex structures, and leaving something better for the next generation:
https://www.youtube.com/watch?v=PSGEjv3Tqo0
As Alan Kay states, what is simpler: something that's easier to process, but for which the software written on top of it is massive; or one that takes a bit more overhead, but allows for powerful new ways to model software and reduce complexity?
I believe that an AST model is a major start in inventing "the arch" that's been missing in software, and with something that will proliferate the whole web ... how short-sighted it would be to give that up in favor of "optimizing" the old thing.
Imagine if instead of JavaScript, the language of the web had been Java? Lambdas would not be mainstream; new ways of doing OOP would not be thought of; and all the amazing libraries that have been written because of the ad-hoc object modeling that JavaScript offers. Probably one of the messiest and inefficient languages ever written, yet one of the most powerful ever given. C'mon, let's do it a step more by making it binary, homoiconic, and self-modifying.
...and if you're brave enough, think about how Christopher Alexander's philosophy of "unfolding wholeness" applies so much more to an AST than to the stack-machines of the 1960's:
Thanks.
from design.
the biggest concerns would be
- changes in the s-expression format (since evm2wasm is based on s-expr)
- level 1 compression. Being able to dedupe the AST for compression is really nice, would there be an equivant here?
- metering injection should not be affected (besides any possible changes to the AST) since control flow won't change much here
from design.
Just an fyi, more detailed discussion is on the wasm design repo at WebAssembly/design#736.
from design.
Related Issues (20)
- Enviroment abstraction for eWASM code execution
- Generic buffer API
- Inlined metering HOT 6
- Update to Constantinople/Petersburg HOT 1
- Equivalence, invertable transformation, and size optimization of Wasm binaries HOT 4
- Serenity async proposal (discussion) HOT 4
- Async vs sync interface HOT 2
- Linear storage design HOT 4
- System/standard library for bignumbers HOT 19
- Eth 2.0 Phase 2 with "precompiles" proposal HOT 1
- wasm256 - Wasm with native i256 HOT 1
- how to test the gas costs
- opcode gas
- Shared memory between instances HOT 1
- "Stack too deep" in EWASM
- Provide kecccak256 host function HOT 3
- JVM pros/cons clarification
- Update EEI for London hardfork
- IP OGS HOT 1
- ewasm status HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from design.