Live data from Hacker News

Conrod – A Rust GUI Library

blog.piston.rs

51–60 of 76 posts

Re: Conrod – A Rust GUI Library

#51

Does anyone has the same thought with me? The complexity of Rust is close to C++ and around equal to Java.And as many people's tought, if you don't advocate to use the GC, are there any reason to use a language which is no-simple and not faster than C++????

Linear types!

Technically, affine.

Re: Conrod – A Rust GUI Library

#52
post #30

I have mixed feelings about this. On one hand, I'm enthused that Rust, arguably the only serious contender to C++'s throne, is gaining traction. On the other hand, I'm scared that respectable projects like Qt (~6M lines of C++, man-millenia of work!) will be considered "obsolete" by the coming generation and another cyle of wheel reinvention will begin, tossing away man-centuries worth of polished, working code on th…

[deleted]

Re: Conrod – A Rust GUI Library

#54
post #30

I have mixed feelings about this. On one hand, I'm enthused that Rust, arguably the only serious contender to C++'s throne, is gaining traction. On the other hand, I'm scared that respectable projects like Qt (~6M lines of C++, man-millenia of work!) will be considered "obsolete" by the coming generation and another cyle of wheel reinvention will begin, tossing away man-centuries worth of polished, working code on th…

It feels pretty grand to consider the prospect of no longer having to debug crashes due to expired QTreeViewItem pointers, or spending time counseling junior team members to check for expired weak pointers.

Qt is excellent for its epoch, but if you've read the source you will know that we should not treat it as sacrosanct. Algebraic types and explicit lifetime declarations and macro syntax extensions could all do wonders for it.

Re: Conrod – A Rust GUI Library

#55

Is there any plan to abstract away the need to handle drawing the widgets yourself, and provide layout functionality?

- re layout: yes, at the moment there's a widget_matrix which can help with positioning, but I'm also keen to add slightly more friendly functionality into the ui_context: i.e. uic.add_widget(direction, padding, |position|{ /* widget::draw... */ }) or something along these lines. I'm totally open to other suggestions and inspiration too :) - re draw: this function is actually the only instance of code required for the widget (hence the "immediate-mode"ness), so I'm not too sure what else could be abstracted away (other than some args)!

Re: Conrod – A Rust GUI Library

#56

I had to look up what "immediate mode" means -- http://sol.gfxile.net/imgui/ discussion at http://lambda-the-ultimate.org/node/4561 Add to https://github.com/rust-lang/rust/wiki/Community-libraries#g... ?

Here's a link to Casey Muratori's presentation on imgui. Important context, IMO, since this is the genesis of imgui as an easily-identifiable "pattern" that many others have run with in various languages/environments. https://mollyrocket.com/861

Yes! this is one of the first links that introduced me to the more promising side of imgui - Conrod probably wouldn't have taken this direction without this intro.

Re: Conrod – A Rust GUI Library

#57
post #36
post #30

I have mixed feelings about this. On one hand, I'm enthused that Rust, arguably the only serious contender to C++'s throne, is gaining traction. On the other hand, I'm scared that respectable projects like Qt (~6M lines of C++, man-millenia of work!) will be considered "obsolete" by the coming generation and another cyle of wheel reinvention will begin, tossing away man-centuries worth of polished, working code on th…

GCC stagnated until it received competition froom LLVM (clang). something similar seems to have happened to C++ the language itself, and i think viability of competing languages has played a large role.

Interest in development of C++ has never been more vigorous. Representatives from more companies than ever before are getting involved in C++ standardization and giving talks: see http://cppcon.org for details. There are now numerous study groups involved in standardization, each focusing on a specific feature targeted for C++17. Scroll down to the bottom of this page for details: https://isocpp.org/std/the-committee.

C++11 and C++14 have done a lot to enable users to write clean, efficient code. I probably would not be using C++ today if I were forced to write in C++03 style. I am still not convinced that C++ has gotten any easier to learn over time. But for those who know how to use it well, no language ranks better in allowing users to write clean, efficient, and portable code.

Re: Conrod – A Rust GUI Library

#58
post #22

Is there any project in Rust that is deployed even in dev environments?

There are two production deployments of Rust (that we know about): * http://labs.opendns.com/2013/10/04/zeromq-helping-us-block-m... * http://skylight.io : the gem you install to monitor your app is written in Rust.

Ty Steve :-)

Re: Conrod – A Rust GUI Library

#59
post #27

Isn't using immediate mode going to make implementing more complex widgets like multi-line text-edits with selection and style, and more importantly tree controls with collapsed/expanded persistent state that lazily load children (or only display items that are visible in the active view area) more difficult?

I was wary of this when we had first started the project. Originally I had planned to just go ahead and start a classic retained UI - the idea of trying to structure a widget lib without widget structs/classes sounded incredibly painful... however after watching some vids and actually having a go myself I'm realising just how wrong I was. A handy breakthrough in my case was to use Rust's algebraic data type to store…

[deleted]

Re: Conrod – A Rust GUI Library

#60
post #27

Isn't using immediate mode going to make implementing more complex widgets like multi-line text-edits with selection and style, and more importantly tree controls with collapsed/expanded persistent state that lazily load children (or only display items that are visible in the active view area) more difficult?

Why would it? You're not constantly trashing your application state, are you?

For really simple apps, no.

But more complicated ones, with resizable widgets/layouts, selection changes, scroll view positions and widgets which display a lot of data, or layering/parenting of widgets make things a lot more complicated.

Post reply on HN