Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Next steps? We are all stuck at "Go"! #52

Closed
ramezrafla opened this issue Sep 12, 2022 · 7 comments
Closed

Next steps? We are all stuck at "Go"! #52

ramezrafla opened this issue Sep 12, 2022 · 7 comments

Comments

@ramezrafla
Copy link

Hey @billywhizz

Great project. I stumbled here (like many others) from the results on TechEmpower. As I look at your code, I see your genius at work. The challenge for many of us is to use Just in production. I understand you are doing this for fun, but the lack of documentation in your code (in addition to API docs) makes it hard for us to contribute. For example, to use Postgres in production, we need a solid API. We also need MariaDB, Mongo etc.

My summary is that you have created an (1) opinionated framework, that (2) gets around some of V8's notorious weaknesses (threads, garbage collection etc.), using (3) optimized C-libraries when available. What you have done is ideal for web services. We get native - like performance while being coder-friendly in JS. The weakness of NodeJS is what spurred people to look at Go, Rust, drogon etc.

This is a huge deal.

I know it's not as fun as coding, but you need to empower the community to help you, otherwise this amazing project will stay stuck in your "todos".

As a community, we need:

  1. Docs for the modules / C-wrappers - so we can build our own
  2. Docs for your "blessed modules" - so we can build our own
  3. API docs and example starter projects - so we can start working
  4. (Optional) Support for "imports" so we can use popular libraries like lodash etc. out-of-the-box

Once you do this, this project will fly and overnight dozens of developers will be contributing amazing modules to get this project to production-quality.

@frank-dspeed
Copy link

@ramezrafla would you want to help me to embedded a new Component System that replaces WASI and WASM ? and makes Imports Obsolute i am working on that at a bigger scale directly in chromium and v8 as also nodeJS

Just JS is already the implementation that comes most near to that goal but first of all let me enlighten you about the documentation and the current state.

@ramezrafla
Copy link
Author

Hello @frank-dspeed
Thank you for pinging me. I am struggling to see the value-add of that new system.

  1. WASM is meant as a way to get native-like code into JS. Namely transpiled native C++. WASM has no garbage collector (GC) built-in and has better support for typed variables. Useful for AI (OpenCV) and gaming (e.g. Unity) ...

  2. Just-JS is able to provide us with native-like speeds on our API servers instead of NodeJS / PHP. It does this by being opinionated, light, worker-focused (vs. threads which increases GC overhead). Most applications are IO-limited so JustJS optimizes the 30-50% which are not IO. So in essence, any further optimization is going to hit diminishing returns (you invest more than you get back). At ~90% of native we are more than happy with its performance.

  3. Any other improvements will relate to architecture (e.g. using Postgres which is the fastest open-source SQL DB at the moment, proper indexing, caching / redis etc) and improvements to V8. In other words we are hitting the theoretical limit at the moment. Just is even faster than some C++ framework.

@billywhizz
Copy link
Contributor

billywhizz commented Sep 16, 2022

hi @ramezrafla. i have got your DM and seen the above. apologies - am very busy with work right now but I will catch up with everything and get back to you over the weekend.

glad you were able to figure out the postgres issue - i think should be easy enough to add scram support - to date i just did what was required for techempower - there's quite a lot of functionality missing.

@ramezrafla
Copy link
Author

Thanks for the detailed write up on the internal implementation of Just. Still going through the nitty gritty. I still don't see the benefits. We are at 90% of the best framework. We have a large code-base (porting from Node etc.). We already have integrations with critical elements (a few missing).

From a business or development perspective, not sure why another framework or addition is needed. Sorry. Maybe I don't see it.

@ramezrafla
Copy link
Author

hi @ramezrafla. i have got your DM and seen the above. apologies - am very busy with work right now but I will catch up with everything and get back to you over the weekend.

Thanks so much @billywhizz
Looking forward! We are preparing what is needed to use in production. Would love to contribute as well.

glad you were able to figure out the postgres issue - i think should be easy enough to add scram support - to date i just did what was required for techempower - there's quite a lot of functionality missing.

The PG interface is very well-written. It's a great starting point for the community. We just need some guidance, will go a lot faster.

@lemanschik
Copy link

lemanschik commented Dec 8, 2022

@ramezrafla i am trying to writing a book about the core principles and terminologies and all that so we can build up a community on the right fundamentals i identified many educational issues around the committee members of core infrastructure projects like nodejs and w3c cloudflare microsoft and so on.

would love to get input and even examples written in the easy simple terminologie distinguished.

so maybe create a issue about your pg experience and just: so that i can see what your problems where and how we can improve the communication with the world.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants