95 comments

[ 3.7 ms ] story [ 156 ms ] thread
It's under the Apache License and the components look pretty good.

I particularly like the Date Picker: http://www.jetbrains.org/ring-ui/date-picker.html

Wow, that is nice. Compact, yet intuitive with minimal clicking to target a specific date.
I would like date pickers to have years on left, then months and then days; that would be more intuitive at least for me because I tend to choose from left to right.
it is oddly missing the day name

    Sun Mon Tue Wed Thu Fri Sat
This is very important for say when you are picking next Wednesday
They're abbreviated and right at the top of the scrolling pane. Saturday and Sunday are also in a different red color.
There are options for custom formatting (they should be documented though)
Didn't like it. It is difficult to select an old year with the mouse. Mobile would be better since you would use the finger.
Why are you being downvoted for expressing an opinion?
I don't know, but it is common in HN.

I'd like to hear someone explaining why it isn't awful to use with a mouse.

I didn't down vote you, but it's pretty trivial to use with a mouse if you just use the scroll wheel. Takes 3 scrolls to get into the 1800s.
It's far too big to be usable on mobile.
On a very superficial test, the date picker is not touch friendly. I also tried the button and it has an obvious flaw of selectable text.
Looks great! But for desktop. Too bad they don't work on mobile very well (I tried them).
I agree. Was super excited to test the header only to realize it's not responsive. Created an issue on youtrack on the same.
It looks like this is Ring UI. It looks like that is React. It also looks like it only runs on NodeJS. So this could be good news if you're willing to use JavaScript (NodeJS) as the server and use or switch to React style, JavaScript dedicated, back-end work. Is this something the Enterprise is willing to do?
It's a UI framework built with React. It has nothing to do with the backend and you can use whatever server language you want.
Enterprises are already moving in this direction.
Facebook is a large geek shop; not how the vast majority of enterprises work or can work for that matter.
I'm not talking about facebook. I've implemented this for Fortune 50 financial firms and telcos. Wall Street Journal is react. Wal-Mart is all in on react and even open sourced their own isomorphic framework. It's being adopted very broadly and very quickly.
I haven't seen such a quick uptake in enterprise, since the late 90s when everyone began using Java and universities took it up as a teaching language.

Enterprise cares predominantly about hireability, and Javascript has been the only language for the web for decades. Everyone who even tangentially has a brush with web technologies knows it, and if your company has a frontend team you already have people at your company who know Javascript well.

I predict Javascript will continue to see growing use serverside, at least until the point ten years from now when WebAssembly is mature enough that people can develop for the frontend as well as the backend in any language.

(comment deleted)
Looks like their site is getting hammered—where is a good place to see the different components in action?
They really need to use a CDN for their assets. Just the docs-app.js file alone is 5mb and it takes forever to load.
(comment deleted)
I hope JetBrains or others launch a Web UI Designer that doesn't make you miss Visual Basic 6.0.
We're trying! (https://anvil.works)

The problem with making a WYSIWYG designer for the web is that it's a Turing tarpit. There are three whole programming languages in there, interacting in weird ways, and programmers use all of them. So your UI designer has to either create something horrible that no human is expected to edit, which doesn't work for dynamic apps (see: Dreamweaver), or you have to constrain what the programmer can do. This means inventing a sensible API that's amenable to WYSIWYG.

We took the latter approach with Anvil - we've cut the Gordian knot of HTML/JS/CSS by implementing a (VB6-like) component model, with a pure Python API. While I am, of course, biased, I think that's probably the closest we can get to what you're wishing for.

Hey, awesome work with Anvil. How difficult it would be, once app is created, to move it to standalone server? Just python and pg.
Thank-you! You'd need a standalone Anvil runtime for that, but it is something we offer. (It's one `docker-compose` command.)

(The reason for this is that our client and server are deeply integrated. This is what lets us, eg, return a live database view from server code into client code with a simple function call, with full autocomplete. But it does mean we can't do a one-click "export as a Flask app".)

I understand. Thank you for explaining.
Is there a blog post out there on the reasoning behind choosing Python instead of JavaScript for that component model + API? Just seems odd to add a 4th language to the mix.
I'm just guessing but by using Python, they can go with a more robust module system, and there's a semantic break between Anvil's Language and its output.

If they used Javascript, you might be confused because they'd process your Javascript into other Javascript before it's used on the site, and you can edit it. That's a bit confusing isn't it?

Knowing to begin with that the input language is a whole separate thing, is less confusing.

Spot on!

If we used JS, it would be very difficult to maintain the firm layer of abstraction that gets us out of the Turing Tarpit.

Also, to a first approximation, people don't learn JS on its own. You only learn it if you're already learning traditional front-end development. That's a journey we explicitly want to save people from - so we didn't want to use a language that only web devs know.

Python is a lot easier to pick up for non-Pythonistas than JS is for non-web developers.

Perhaps we should write that blog post...

I really miss VB 6. RIP
GitHub repo: https://github.com/JetBrains/ring-ui

It's only linked in the comments; also - they're dogfooding issues in their own YouTrack thing. It looks like JetBrains does this for all their open source projects. Can anyone with some experience compare against GitHub's issues?

We use Youtrack at our company. It's a fully fledged issue tracker with a lot of features, e.g. custom fields, top notch search, batch operations, keyboard shortcuts, agile boards, workflows via own DSL, reports and statistics etc.
We use YouTrack on my team. It's incredibly flexible, extremely fast, and has a very powerful command palette built in for keyboard navigation and issue management.

It's not perfect, but it hits more of the marks I'd want than anything else I've tried.

JetBrains is kinda crushing it. I've spent the last two days looking into Kotlin. I didn't realize not only that Kotlin can compile to JS but also that you can interact with say React from it. So you can build a full stack app in it, without ever touching JS. (I think that the JS compilation is still technically in beta but w/e).

https://github.com/Kotlin/kotlin-fullstack-sample

Combined with the fact that you can use Quasar for Erlang style processes, I think that I found my next web language.

I guess you could achieve this with Scala too but I could never get over the compilation times. Also the Kotlin integration seems somewhat more straightforward.

I also like that the company that makes my IDE also makes the ORM (https://github.com/JetBrains/Exposed) and web framework (https://github.com/Kotlin/ktor). Idk how good these are but I imagine pretty decent.

Actually the javascript target has been fully supported since version 1.1.

For example here is a single page app written with kotlin: https://github.com/rnentjes/simple-password-manager

You might be right, I was certain I read somewhere that some things might still change.
How efficient is the conversion performance-wise and code-length wise? Can I finally get rid of GWT if I want to develop web apps with JVM tooling? Is the debug mapping between JS variables and JVM variables better than with GWT and super dev mode? Is it easy to use Kotlin with ReactVR/Native?
With the 1.1.4 version they have added a dead code eliminator which really helps with the resulting javascript length. In the example above the resulting javascript file is 440 KB (zipped 113 KB). Which is not bad if you take into account that the included libraries are more than 2MB (the standard library and static html builders being the biggest ones).

I haven't measured runtime performance, but I haven't noticed anything being slower than plain javascript yet. A clean compile in this example takes ~8 second, incremental compiles takes 3-4 seconds.

The jvm doesn't play a role when targeting javascript so I am not sure what you mean with JVM variables and I don't know much about GWT. But you can debug the resulting javascript from intellij and step through the kotlin sources if you want.

I don't know how easy it is to integrate with react.

Buying my first Mac in over 10 years to learn iOS development is on my bucket list. I also wanted to use it to play with .Net Core on a Unix environment. I'll gladly give JetBrains more money than I do now for Resharper to use Rider (cross platform C# IDE) and all of their other tools.
Rider Release Candidate is still free atm too!
I really hope they nail it with Rider. I am so sick of Visual Studio. It just gets slower and slower. I have a 20 core machine, with 128gb of RAM and it constantly seizes up for seconds at a time, various components crash randomly, and things sometimes work and sometimes not: Go To Definition for example, or pressing F2 to rename. Whatever it is that suggests I add a missing using sometimes decides it can't do that and instead prefixes the unknown type with the fully qualified name (so it has the namespace, it prefixes the type I wrote, but it can't suggest adding the using). Debugging has been broken too, where sometimes it can't even show me what my local variables are never mind other vars, and it is also much slower than it was. And god help you if you have a large code file in your project. The moment you've opened it once, that's it everything starts falling apart and slowing to a crawl. If I copy a file in a .NETCore project then I have to close the solution and re-open it for the compiler to see it. Et cetera, et cetera.

It's obvious that things that shouldn't do a lot of work, do in fact do work. Like if I press Ctrl+C on some selected text. I simply expect it to put the text into the clipboard. But sometimes it will stall, put a dialog on the screen telling me it's doing some formatting and I need to wait! What the hell is it formatting?

Every member of my team is sick of it and it's negatively affecting our productivity, so if Rider is good then bye bye Visual Studio.

Thank you for this. I have been using VS 2017 primarily for last 6 months as I enter the .net world and thought many of these complaints were me / my substandard machine.
Your experience with VS and your desires for Rider reflect my own. Correct me if I'm wrong, but isn't Visual Studio still a 32 bit application? That would definitely limit the utility of those 128GB.
I tend to have a number of solutions open. But mostly I was just trying to convey that my setup isn't to blame (fastest possible ram, large amounts of it, super fast cpu, all off SSDs too).

Obviously a 32bit app could run a number of sub app domains, so it can still make use of more than 2gb. I think ultimately though is it's not the resource that's the issue, it's the buggyness of the system. It just feels unfinished, and it seems there's some lazy decisions made in implementation ... the formatting error on Ctrl-C sounds like it's doing too much work; other things like if I try to download a publicly available nuget package, through the god awful UI, I have the source setup as nuget.com - it then pops up a dialog asking for my credentials to my company nuget server! If I cancel it, guess what, it fails to get the package from the web.

I have a strong suspicion that it's talking to the net too often generally (I have a slow broadband connection, so I see areas that are clearly doing too many round trips).

I feel it seemed to really start going downhill when Roslyn became the compiler (which I assume is running most of the tooling). I don't know if that's anything to do with it, but I assume they had to rewrite a lot of the core components when Roslyn came along.

2015 wasn't great, 2017 is really bad. Waiting several years for them to finish the project properly is taking its toll on my confidence in a product I've used in one form or another since 1994

louthy, I'm from the VS team. Sorry to hear that you are running into this. Can you Help -> Send Feedback - Report a Problem (don't worry about the contents), and point me to the resulting feedback? I'll dig into your performance data and make sure we've got bugs/fixes for the things you are running into.

Dave twitter.com/davkean

I am not sure if you can use the coroutines in javascript, but if you can you don't need React at all
I meant Quasar for backend. But I think that coroutines are possible in JS with generators.
what is the relationship between a concurrency primitive like coroutines and a view library like react?
You can use coroutines with Kotlin JS. Your sentence doesn't really make sense to me though since coroutines and React have very little to do with each other.
JetBrains is everything that Embarcadero aspired to be. It's perhaps the only for-profit organization I'm happy to give money to.
I was until their recent insistance to copy Adobe design and removing "distracting" colors in their UI.

Also since their new licence scheme it seems releases quality can be hit or miss.

They've always had issues with release quality in my opinion. My tactic is to use the upgraded version side-by-side with the old version, until I feel confident there aren't showstopping bugs... then delete the old version.
If clojure/script didn't exist, I'd be doing the same thing! Kotlin is a great language!
I was coincidentally looking at Ktor yesterday. I quickly ran into pages which are linked from the Getting Started guide (such at http://ktor.io/Features) which don't exist. Doesn't give the best first impression, but I gather it's a very new framework so I'm sure it'll be corrected soon...
We are sorry for broken links, we just recently migrated from GitHub wiki pages to own site and indeed some links could've migrated incorrectly. Thanks for the heads up, we will fix it :)
They really do put out some great stuff - ReSharper is tremendously useful for .NET developers, YouTrack is one of the best (if lesser-known) issue trackers out there, and DataGrip is a fantastic database management tool (especially for Postgres, since pgAdmin 3 doesn't support newer versions and pgAdmin 4 is a major step backwards).
There is a pgAdmin 3 fork by BigSQL that supports new postgres versions. I can't say how it compares to DataGrip, but compared to pgAdmin 4 it's a godsend.

https://www.openscg.com/bigsql/pgadmin3/

Oh, neat - I hadn't heard about that.

I don't think I can go back from DataGrip, though. Too many nice things I've gotten used to (query tabs, multi-format result exports, etc).

DataGrip is awesome. Only complaint is the subscription model.

The nice thing about DataGrip as opposed to PG tools listed above is SQLServer support. (Sometimes you don't get to pick the database you'll be working with).

Love data grip and I also use it for SQL Server. Im happy to pay the sub for it as I am webstorm and soon gogland. Hope they release a clojure IDE soon.
If you hit "next page" on the Table component enough times it throws an error and the component becomes unresponsive.

It looks like the example data isn't correctly set up.

http://www.jetbrains.org/ring-ui/table.html

You don't even need to click "next page"; just select the last button and watch the table fail to respond.
fixed, thanks ;)
(comment deleted)
I browsed the components : is a slider missing? I need those, good ones ( min, max, step, scale ).
This great! I'm sad that _none_ of these components were built with accessibility in mind.
That seems like a fair comment, I wonder why you're being downvoted?
Because it's neither constructive nor fair. The comment is merely "true".

Yes, the released components do not cover a use case that they were not designed or intended to cover.

Yes, if your use case is exactly that, you will find these components less useful as you'll have to modify them.

Yet all of that is trite, and completely unfair criticism to wager against someone on the very first day of their components release.

if enough people call out the lack of accessibility in UI libraries, it brings that requirement into the cultural norm.

The commenter is merely trying to push this into the cultural norm. I concur with such sentiments.

I think there are better times to do this than the initial version 0 release of an open source production.

Taking the chance to "call out" its "lack", is essentially shaming people for doing social good (open source), and not going far enough in someone's opinion.

You can think what you want. The people who downvoted me for simply asking why the parent was downvoted can think what they want. The mods can think what they want. It doesn't justify anyone for downvoting the parent's comment which was his view or mine for calling out the unjustified downvoting. This is where the mods should step in, find out who was downvoting both the parent and me; and remove their ability to downvote for a time.
Tacking on accessibility at the end is very difficult (most of the time it's quicker to rewrite). By not considering it from the beginning it means these components will never be usable by people with access needs.

Also it is possible to call out a critical oversight in the design of a product while not shaming them for releasing it.

This great! I'm sad that _none_ of these components were built with accessibility in mind.
This almost looks like something able to replace ExtJs…
Can't say I'm a fan of their buttons, but the date picker is refreshing.
Palantir's blueprint is also a great UI kit for react. I'm surprised nobody brought it up.
Am I missing something or do most of these not consider accessibility? Or is that up to you to when you use them?
Too bad it doesn't work with npm 5..?
(comment deleted)
More ways to make checkboxes. As if react bootstrap.. Did not already reinvinted the square wheel. And how many megabytes do my browser have to parse before being able to draw the checkbox?