4 ms·
If you click on their username, it takes you to their profile. https://news.ycombinator.com/user?id=simonsarris https://news.ycombinator.com/user?id=simonsarri
by martincmartin 2y ago
If you click on their username, it takes you to their profile.
https://news.ycombinator.com/user?id=simonsarris https://news.ycombinator.com/user?id=simonsarris
which says:
I make GoJS, a powerful canvas-based diagramming library:
http://gojs.net/ http://gojs.net/
Which is not what I think of a graphing (time series, x-y points joined by lines), but otherwise seems relevant to their comment.
- simonsarris 2y agoThank you. I guess I should update that, since GoJS renders to SVG also if that's what you prefer (at a cost to performance of course) Most of us who make such libraries tend to distinguish charting (time series, lines, bars) from graphing (nodes and links). Charting is, in many aspects, a much smaller problem space. Graphing requires a lot more in terms of layouts and interaction tools, grid snapping, guides, undo/redo, copy/paste, grouping, subgraphs, managing user permissions for interactivity, expand/collapse (both subgraphs and tree sections), updating the backing data when the graph is edited, etc.
- seankurtz 2y ago[dead]
- newswasboring 2y agoIt's very surprising to me that there is a market for this. But then again I have spent almost my entire professional programming career writing matlab. How does one even identify such a market? I am so curious, please share your story.
- simonsarris 2y agoThe extremely condensed story of my company (started ~1995 when I was a tiny child, I joined 2010, though now I am part owner) was a bunch of guys in an advanced research division of Digital, trying to make a visual programming language. After Digital went under they kept trying to do this, but no one wanted the language. People however were interested in the graphic tech used to make the language, so they turned that into a library, in the 1990s, called Go++ (Graph Objects for C++). Then JGo (Java), GoDiagram (C#, WinForms and now Avalonia), GoXam (XAML/WPF C#), and GoJS. I began GoJS as a greenfield project starting in 2010-2011 as a new grad by working with these guys who had been thinking about diagrams for years. So it had the advantage of being built from scratch (and using the brand new HTML Canvas surface) but with all the accumulated experience of their wisdom at hand any time there were design questions. In some sense I got really lucky to work on such a "brand new, but charted path" project. Not many new grads get that kind of experience... When we released GoJS I was unsure if anyone would actually pay for JavaScript library. There weren't too many I could find in the space that weren't free (Sencha was one I found while doing research, and funny enough they tried to recruit me, flew me out to CA after I wrote a book about canvas circa 2013). But the problem space really truly is large, and you can save a year or more of development time by buying such a library, so the calculus is very worth it for many companies. Like so many people, what we sell is time, and having thought hard about these problems for so long, from layouts to really mundane undo/redo transactional stuff.
- neeleshs 2y agoThis is very true in my experience as well. This is a key component for any good low/no code platform, process builders, workflow builders , process documentation and so on. And that is just one area. It makes tons of sense to buy/use a library like this rather than build your own (unless that is your business). We use one from antd. Antiquated and hard to automate testing. We are looking for a more modern solution. How compatible is GoJS with web testing tools? Most seem to have trouble with canvas.
- simonsarris 2y agoI would say "fairly annoying", alas! I never bothered to make Selenium etc examples, though I know some customers use it. You can switch to the SVG renderer for testing if you really want to inspect the DOM after doing actions, and some customers do this too. And you can mock events if you want to, we give some basic examples: https://gojs.net/latest/samples/Robot.html https://gojs.net/latest/samples/Robot.html But you have to inspect programmatically one way or another. What is easiest really depends on what, exactly, you want to test. Eg testing your permissions (can a user copy a node with these checkboxes in my app selected) can be done by trying to copy and seeing how many Parts exist before and after, etc.
- neeleshs 2y agoThank you!
- deleted 2y ago[deleted]
- recursivecaveat 2y agoCan I ask how large your library can scale to? We have digraphs in the range of tens to hundreds of thousands of nodes, and every tool I've tried falls over. The layered digraph example from your site seems to hang forever at 10k, but that could just be how the example widget is set up.
- 2y ago
- cess11 2y agoYou can make it a business to build and license a JavaScript calendar widget. Many companies would rather buy such a library than have their developers pick something FOSS or develop on their own.
- deleted 2y ago[deleted]