Quark – A software sketchbook for your projects
medium.com
medium.com
to the author: Congrats on building and delivering on what's a pretty significant undertaking.
That being said, Smalltalk has had the capabilities you were looking for, for ages, and the tools are incredibly polished because they've been around for so long. On a related note Glamorous Toolkit https://gtoolkit.com/ takes those capabilities and points them at development itself allowing you to use them to help figure out what your code and data are / are doing.
This is an interesting project, but it's just the beginning of recreating what already exists in Pharo smalltalk. https://pharo.org/
You seem to be assuming that everyone is a javascript developer and wants to work in it.
I was very intersted in smalltalk at first but I had a very hard time to find somehing above the Transcript object example.
Heck even glamourous toolkit doesn't have it's documentation on its website either while I could found Quark's api doc right away.That's sad.
- sketches are effectively extensions installed over quark, much like VS-Code extensions. They come with the same advantages, and drawbacks of being tied down to what the "platform" offers, the platform being Quark. If quark makes opinionated decisions on architecture, you're limited by it
- uncompressing to an in memory file system and using that as the app binary unnecessarily increases RAM/CPU footprint
- each "sketch" is likely to spawn it's own JavaScript node context, at the very least. Maybe even it's own chrome content context, for isolation and security purposes. How exactly does this take the same resource as a single electron app? The likely increase is comparable to [New Chrome Tab + Node context]. It's lower than a whole new electron app, but probably averages 60MB-ish in RAM, and the overhead of 2-3 new precesses
> sketches are effectively extensions installed over quark, much like VS-Code extensions. They come with the same advantages, and drawbacks of being tied down to what the "platform" offers, the platform being Quark. If quark makes opinionated decisions on architecture, you're limited by it
I can see the concern there, but electron's API has been quite stable, at least since the past year. Also, Quark proxys electron's most common API's like creating dialog, notifications e.t.c So maintaining backward compatibility with electron's API is our headache.
> uncompressing to an in memory file system and using that as the app binary unnecessarily increases RAM/CPU footprint
Since Quark is designed for personal/prototyping projects, we are hardly talking in a few files here. Which would hardy take a few kilobytes. I would argue it is as efficient as other online IDE's.
> each "sketch" is likely to spawn it's own JavaScript node context.......
Yes you can compare it to a "new chrome tab". It only takes one process(by default, although you can spawn more) and memory mainly depending upon your DOM code.
As far as "same resource as a single electron app" comment goes. I made that in the context on having multiple electron apps installed on your machine. Even 2 electron apps on your machine could weigh about 600mb. On the other side, Quark with a 100 other sketches on your machine would weigh about 400mb (assuming 1 sketch=~1mb). Given the fact that these sketches have full functionality as of an electron app, I believe this was a reasonable statement to make. Now, I'm not talking about running all those sketches, all at once because that would be a whole different thing.
And to the app's creators: Don't change the name to InDesign.
I don't know what country you're in, but they're in the US, and their lawyers are legally obligated to defend their trademarks against all violations, or they risk losing the trademark. So they will. Trademark use is by category, so you might be able to start a business called Quark Cupcakes, but you're both doing software, so it is a clear violation.
It is really hard to find a good name, and obviously it is your choice to stick with Quark. However, I do expect you'll get a cease and desist letter unless you change the name.
Their strategy works. Yours is unproven.
Just an observation :P
Not necessarily. If the software is more discussed on the net than the man it's named for, then perhaps that would be best?
> Do you want to live in world where you kids google "Socrates" "Beethoven" and some software project shows up on top?
You can bet your ass that if we had internet the way we do today in the early 90's that if you searched for Beethoven the first result would have been the dog movie.
Interestingly, I had an edutainment console called Socrates when I was young and it's very hard to find information on.
Perhaps I’m wrong. Anyway, it’s nicely done.
It also looks like a great environment to teach programming past toy-level environments like MIT Scratch.
We have a ton of dependencies so that you can get out of the box support for most of your projects. With React, Vue , Webpack(+ common loaders), Babel(+common plugins) e.t.c and Quark's internal dependencies, the package still weighs uncompressed ~300mb. Now compare that with an average node_modules folder on your machine. You get the picture. If you still can't justify the dependencies, open a pull request on the git repo and we can debate which dependencies are allowed to stay. :P
> It still doesn’t allow you to easily share your dashboard with other internal users (unless they have the same Quark environment), does it?
You are right there, you cannot share projects built with Quark unless they have Quark installed on your machine. Just the case you have with Node.js or python or any other runtime.
Anyway, what you’ve achieved is really cool. Thanks for sharing.
This sounds like it would prevent the proper use of version control systems like git, which seems like a terrible idea. Is my interpretation correct?
It seems like it would be better to develop with normal files (and the decades of powerful tools that can operate on them), and then bundle into one file for distribution.
The github repo is the website code only (https://quarkjs.io/FAQ/license.html).
Looks like lots of work has gone into the project, but so far it's a black box. Is the goal for this to be a commercial product?
I din't know enough about adobe Air to comment on technical differences, but one thing that strikes me is that electron(as hence Quark) appears to be more popular than Adobe Air.
Why is this being promoted as a feature? Of course you wouldn't want to make a copy of GUI framework for each user's project. That's quite a stretch for a per-project config files advertisement.
I would suggest adding "Show HN" tag, and "JS" somewhere in the title.
I'm not sure what you mean by this comment. But I do think that that's a reasonable thing to say.?