Choice of tech stack for discourse if started in 2020

AI-generated summary

The discussion revolves around the tech stack choice for Discourse if the project were to start in 2020. hbm initiates the conversation, wondering if alternative choices like Node.js, Go, React, or Vue.js would be more suitable. codinghorror responds, stating that while speculation is interesting, the focus is on iterating and improving the current Ember.js framework to meet performance requirements.

ashishprajapati shares their experience working with Discourse and other projects, highlighting the speed and performance of Discourse. They emphasize that the choice of programming language matters less than the community and execution. ashishprajapati also notes that changing the language would render existing plugins incompatible.

ChrisBeach humorously comments that optimizing the current tech stack is more important than changing it. hbm clarifies that their question was not meant to suggest or doubt the current choices, but rather to understand the pros and cons.

ashishprajapati agrees with hbm, and END_SKY shares their personal preference for React.js or Vue.js due to their lower learning curve. Finally, JammyDodger suggests that the topic may be outdated.

Discourse is built on Rails and Ember, great choices supporting the success of Discourse. However, the choice was made in 2012, I wonder how may the choices be different if the project is started in 2020 ? I wonder what’s the view of discourse dev team on alternative choices:

  • will the faster frameworks/lang like node/go benefit the target use case.
  • will other lighter frontend frameworks (react/vue) or even no front-end framework work better or equally well for discourse ?

I don’t know the value of speculation like this, it is a bit like asking “what if clouds were made of delicious cotton candy, and rain was tasty lemonade” .. :wink:

That being said we will continue to iterate on Ember.js to keep it within the performance parameters we require, that’s the main thing I care about! There has been a ton of progress in this area, too! :raising_hands:

I like the fact that your are sharing your suggestions to discourse dev team. :slight_smile:

( My Opinion )
I am working on discourse since last 3 years (Rails & Ember Js) and I was also working on some other projects built in Angular/React etc. I also worked a lot on Canvas LMS ( Rails & React Js. ).

I find the speed & performance of Discourse much better compare to other different big products including lots of open source. Discourse is very fast, so smooth like silk, and robust. The real time events are the magical part of Discourse.

It’s really doesn’t matter a lot now that in which programming language it’s developed. The extraordinary part is that, how intelligently it is developed & everything integrated. It’s the community, who is working day and night to make it better each day.

It’s always best option to improve & optimise what we have.

Just think:
If Discourse is human then Ember.js is it’s blood. But yeah, you can say Ember.js is “A+” type of blood and rest other languages are similar others i.e B, O, AB etc. Conclusion is that, you can give good diet and healthy life to Discourse ( considered as a human ) to keep the blood healthy :wink: in place of changing the whole blood with new type i.e B+. It will not gonna work.

Also, we have bulk of plugins developed in Ember.js for discourse they will also stop working if we will do change the language etc. ( Discourse is in Ember.js afterall )

Please share your thoughts about what’s lacking in it then it will help discourse team to make it better.

Pleas let us know if you saw any criteria before thinking of different language.

We don’t need cars. We need faster horses.

Thanks @codinghorror @ashishprajapati for sharing insights. My question wasn’t meant as suggestion or doubt on choices, but wondered what’s the pro/con you see now in this stage of the project.

I fully echo that choice of framework/language ultimately matters much less than the community and execution.

Thank @hbm for your thoughts and ideas :slight_smile: Yes, I agree.

For developers, Ember.js is too heavy and difficult to learn, with many outdated examples and content.

Personally, I lean towards React.js or Vue.js due to their low learning curve.

I think this topic may be a little outdated four years on…