Marko – A declarative, HTML‑based language
Syntax, JS-in-HTML, and “HTML-based” Label
- Some dislike embedding JS expressions directly in markup (evoking bad memories of PHP “spaghetti”), and argue the intro is misleading by calling it “HTML‑based” while relying heavily on JavaScript.
- Others see the example as a normal modern template (similar to JSX or Svelte), not at all like old PHP, and say the OP is really just expressing a generic dislike of mixing logic and markup.
- Marko-specific constructs like
<let/count=0>and<for>are polarizing: some see them as an unnecessary DSL that hurts tooling compatibility; others find the syntax straightforward and readable. - There’s a parallel thread about concise/Pug‑style syntax: some love Marko’s concise mode, others find it too “compressed” and error‑prone, reminiscent of YAML/HAML issues.
Separation of Concerns vs Single-File Components
- One camp prefers strict separation (HTML/CSS/JS in different files; IDs + scripts; or Alpine.js‑style behavior) to keep designers from breaking logic and vice versa.
- The opposing view argues frameworks like JSX/Marko solve the “ID wiring” mess, keep templates type-safe, and better align logic with the DOM it drives.
Performance, SSR, and Proven Use
- Multiple comments highlight Marko’s origins at eBay, decade‑long production use, and strengths: streaming SSR, partial hydration by default, and fine‑grained bundling.
- Marko 6’s move toward “resumability” is noted as focusing heavily on load‑time performance, comparable to or ahead of other SSR‑first frameworks.
Routing and App Structure
- File‑based routing (Marko Run, SvelteKit, Next‑style) is criticized as “fundamentally flawed” for apps needing conditional routes, RBAC metadata, etc.; advocates prefer programmatic route trees with a single source of truth.
- Others argue file‑based routing is fine for website‑like systems and easier for newcomers.
Comparisons to Other Frameworks
- Marko is repeatedly compared to Svelte, Vue, JSX/React, htmx, ColdFusion/JSP, and even jQuery.
- Some think JSX is still the best templating approach because it’s “just JavaScript” and composes arbitrarily; others prefer directive‑based templates (Vue/Svelte) as simpler and more efficient.
- A few see Marko as a significantly better‑designed JSX alternative; others say if you’re choosing a framework solely for JS‑in‑HTML, SvelteKit or similar might be more compelling.
Ecosystem Fatigue and Platform Wishes
- Several express exhaustion with continual new JS frameworks and prefer sticking to “big players” (Angular, React, Vue) or progressive enhancement.
- Others counter that Marko isn’t new, has a solid track record, and that evolution (e.g., JSP → SPA → SSR+resumability hybrids) brings real improvements.
- Some wish instead for richer native HTML (better form controls, HTTP verbs, partial page updates) and efforts like htmx/HTML spec proposals to reduce the need for JS frameworks altogether.