Comments (1)
Personally, I am not fond of using DSLs to solve this particular problem. I think they:
- Introduce a learning barrier. You no longer need to know only Rust, but the DSL too and all its quirks.
- Reinvent the wheel. View code is rarely a simple declarative tree. Most of the time, there is complex logic involved. You may need to conditionally show something, build a list out of some values in your state, etc. This either forces these DSLs to implement their own programming language, or allow embedding parts of native code.
- Feel like magic. You no longer see the actual code, which makes it harder to reason about.
- Solve a non-existent problem. Boring code and low-maintenance boilerplate are not worthy of a complex abstraction.
- Hide actual issues. Instead of focusing on building simple APIs in the programming language of the library, the focus shifts towards building an abstraction to actually avoid writing in that language. Rust is great! Why avoid writing it? Is something verbose? Create helper functions! Is there duplication of concerns? Use traits or build your own widgets!
a declarative way for defining pieces of UI is much nicer
Could you maybe elaborate a bit on this? Why do you think it's nicer? What do you think we can improve when we compare our current approach with the vgtk
approach?
from iced.
Related Issues (20)
- Panic with widget::text_editor when pressing multiple key at the same time. HOT 1
- nix shell in DEPENDENCIES.md does not work with wayland
- Dynamic Buttons in version 0.12 HOT 1
- The button cannot display Chinese HOT 4
- Examples just exit after 341c9a3 HOT 2
- Graphical bug in Skia version on text fields when updating the value. HOT 1
- Very high CPU usage in text_editor
- Running `trunk serve` on examples results in blank web pages
- window::open_events() function subscribes to close events HOT 1
- Crash on Wayland when calling iced::exit() HOT 3
- Font Fallback Issue HOT 3
- "close" simply closes the window and does not stop the program HOT 12
- Scrollable will take all of the space of a Column sometime
- Editor widget does not handle '.'/'del' key on numeric keypad correctly. HOT 1
- Panic location should be exposed HOT 4
- Update the documents HOT 1
- `iced-winit` pulls `wasm-bindgen-futures` when targeting non-wasm target
- Nothing gets rendered using `webgl`
- slider have more latency than few months ago HOT 1
- Window transparency does not work under Windows
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 iced.