Ask HN: What is the best language/framework for getting things done on the web?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • JetBrains - Developer Ecosystem Survey 2022
  • SonarLint - Deliver Cleaner and Safer Code - Right in Your IDE of Choice!
  • Scout APM - Less time debugging, more time building
  • WordPress

    WordPress, Git-ified. This repository is just a mirror of the WordPress subversion repository. Please do not send pull requests. Submit pull requests to https://github.com/WordPress/wordpress-develop and patches to https://core.trac.wordpress.org/ instead.

    I suggest you choose a framework based on whatever language you know well, or are willing to learn well.

    I'm assuming you aren't building internal apps in an enterprise environment that would push you toward Java or .Net, but instead public facing sites/apps as an independent developer.

    For Python, the major popular choices are Django[0], a "batteries included" framework, and Flask[1], a more lightweight option.

    For Ruby, the equivalents are Rails[2], and Sinatra[3].

    There are many other options, mostly created with a specific niche or use-case in mind.

    Personally I am most familiar with the broader Python ecosystem, so additional frameworks that come to mind are Pyramid (Lightweight framework that scales up to complex projects as needed), Tornado (async non-blocking), Dash (low-code for ML), Cube (semantic web).

    And of course there are many other languages (eg. Java, PHP, JS, etc.) in which you can create web sites and apps, but sticking to the popular options to start with has advantages in terms of ecosystem, documentation and other learning resources, and so on.

    I'd be remis if I didn't mention one other option that has a lot of bang-for-the-buck if it fits your use case: Most websites (and a lot of web apps) are content-oriented and just a content management system. In which case, starting from an open source CMS and doing a bit of customization will get you to "done" a lot faster. There are plenty of open source CMSs to choose from (most are written in PHP) but the most popular by far is humble WordPress[4]. Check it out if your site is going to have anything like a simple posts and pages organization, and a drafts and publication workflow (personally I am invested enough in Python that even for that sort of site I default to choosing something like Wagtail or another Django-based CMS[5], or Plone[6], which reinforces what I said at the start: make your choice based on the languages and tools you know well).

    [0] https://django.org/

    [1] https://flask.org/

    [2] https://rubyonrails.org/

    [3] http://sinatrarb.org/

    [4] https://wordpress.org/

    [5] https://djangopackages.org/grids/g/cms/

    [6] https://plone.org/

  • Ruby on Rails

    Ruby on Rails

    I suggest you choose a framework based on whatever language you know well, or are willing to learn well.

    I'm assuming you aren't building internal apps in an enterprise environment that would push you toward Java or .Net, but instead public facing sites/apps as an independent developer.

    For Python, the major popular choices are Django[0], a "batteries included" framework, and Flask[1], a more lightweight option.

    For Ruby, the equivalents are Rails[2], and Sinatra[3].

    There are many other options, mostly created with a specific niche or use-case in mind.

    Personally I am most familiar with the broader Python ecosystem, so additional frameworks that come to mind are Pyramid (Lightweight framework that scales up to complex projects as needed), Tornado (async non-blocking), Dash (low-code for ML), Cube (semantic web).

    And of course there are many other languages (eg. Java, PHP, JS, etc.) in which you can create web sites and apps, but sticking to the popular options to start with has advantages in terms of ecosystem, documentation and other learning resources, and so on.

    I'd be remis if I didn't mention one other option that has a lot of bang-for-the-buck if it fits your use case: Most websites (and a lot of web apps) are content-oriented and just a content management system. In which case, starting from an open source CMS and doing a bit of customization will get you to "done" a lot faster. There are plenty of open source CMSs to choose from (most are written in PHP) but the most popular by far is humble WordPress[4]. Check it out if your site is going to have anything like a simple posts and pages organization, and a drafts and publication workflow (personally I am invested enough in Python that even for that sort of site I default to choosing something like Wagtail or another Django-based CMS[5], or Plone[6], which reinforces what I said at the start: make your choice based on the languages and tools you know well).

    [0] https://django.org/

    [1] https://flask.org/

    [2] https://rubyonrails.org/

    [3] http://sinatrarb.org/

    [4] https://wordpress.org/

    [5] https://djangopackages.org/grids/g/cms/

    [6] https://plone.org/

  • JetBrains

    Developer Ecosystem Survey 2022. Take part in the Developer Ecosystem Survey 2022 by JetBrains and get a chance to win a Macbook, a Nvidia graphics card, or other prizes. We’ll create an infographic full of stats, and you’ll get personalized results so you can compare yourself with other developers.

  • Chameleon

    Fast HTML/XML template engine for Python (by malthe)

    My own favorite syntax(es) are TAL, TALES, and METAL (Template Attribute Language, TAL Expression Syntax, and Macro Expansion TAL). There are many implementations in various languages. The OG implementation was in Python as part of the Zope:

    https://pagetemplates.readthedocs.io/en/latest/tal.html

    These days I reach for Chameleon, another Python implementation:

    https://chameleon.readthedocs.io/

    I'm aware of at least five implementations for JS: template-tal, jstal, Distal, DomTal, ZPT-JS.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts