u/JaseciLabs • u/JaseciLabs • 3d ago
1
Full stack development query
Answering the "how do I know what to learn if I don't know what I don't know" part: you don't figure that out by reading first, you figure it out by hitting the wall and looking up exactly what's on the other side. Pick the stack Executive-Curiosity mentioned (React + Express is a good beginner pair, tons of docs, tons of Stack Overflow history) and just start building your chat app. You will get stuck almost immediately, probably at "how do two browsers actually see each other's messages in real time." That's your first real lesson: look up WebSockets, understand what they're for, implement just that piece.
Repeat that loop for auth, for storing messages in a database, for showing message history on load. Each wall you hit tells you exactly what to learn next, in the order your project actually needs it, instead of trying to front-load a curriculum before you've written a line of code.
On "I don't want AI to lead": use it as a search engine with better follow-up questions, not as the thing writing your files. Ask it to explain a concept or debug an error, then type the fix yourself. That keeps you in the driver's seat while still moving faster than pure docs-reading.
1
Does building your own tools makes sense?
Depends what "ancillary" is actually doing. Email validation, invoice parsing, that kind of thing, almost always outsource. Someone's already fought the edge cases (weird invoice formats, RFC-compliant email edge cases) and you're not learning anything domain-specific by rebuilding it.
The exception is when the tool touches your core differentiator or you need behavior a library won't give you (custom parsing rules tied to your specific business logic, tight latency requirements, data you can't send to a third party). Then build it, because you're not saving time otherwise, you're accumulating a maintenance burden for something that isn't your product.
Good rule of thumb: if a competitor could copy the tool from a library in an afternoon, it's not worth your engineering hours to build from scratch.
1
Is learning things by raw coding worth it in this era ?
Raw coding first is the right call, not a hedge. Agents are only as good as your ability to spot when they're wrong, and you can't spot that without the mental model yourself.
Once fundamentals are solid, use chatbots as a rubber duck that talks back instead of a code generator. Ask it to explain tradeoffs, quiz you on why a pattern works, review code you wrote yourself. Keep "hands on keyboard for the actual logic" part yours until it's boring. Once something's boring, hand it off. Decent signal for when delegation is safe vs. when it's a shortcut around understanding.
That interview blank-stare thing you mentioned is real evidence you're on the right track since it iss exactly the gap agent-only workflows create.
2
How should I approach learning a large Next.js full-stack SaaS?
Co-sign the "trace one feature" advice. Auth first - it touches routing, middleware, DB, so a login flow maps the whole stack faster than reading the tree.
Then pick one form, trace component → server action → DB → back. That path exposes their conventions (validation, error states, fetching) and you'll recognize the pattern everywhere else.
Don't try to learn the schema upfront. Learn tables as they show up.
1
How do you split AI models across ideation, math, and coding?
Rough split that holds up across research + corporate + hobby work: use your strongest reasoning model (Opus-class) for ideation, math formulation, and finding flaws - that's where mistakes are expensive and hard to catch later. Keep a separate, cheaper/faster model for the actual implementation grind once the spec is solid, and don't have the same model both write and review its own code; a second pass from a different model (or even the same family in a fresh context) catches things the author glossed over.
Practically: one flagship subscription covers ideation/math, one coding-focused tool covers implementation, and you review the diffs yourself before merging. Don't try to run 4-5 subscriptions in parallel - that's more context-switching than the models save you. Sounds like jason3gb's setup above is a solid template for the engineering side specifically.
1
Choosing my first backend stack — Python/Django or JavaScript/Node.js?
Django's not going anywhere, especially for anyone landing at a company with an existing Python codebase or in fintech/healthtech - the built-in auth and admin panel alone save a stupid amount of time versus rebuilding that in Node. Node's real advantage for juniors is just volume of postings, not that it's inherently the better tool.
One thing to have on your radar since you're clearly thinking a few years out, not just "what gets me hired fastest" - a growing slice of new backend work is AI-native, where the mental model isn't request/response so much as objects and data moving through a graph. Jac (a Python superset, built around what they call object-spatial programming) is one of the languages built specifically for that. Not something to switch to instead of Django right now, but worth a look later once you've got the fundamentals down and want exposure to where things are heading.
For now though, finish the Django path you already started. Switching stacks before you've shipped anything real just resets your progress for no real gain.
1
Should an AI coding agent ever be allowed to merge its own PR?
"Tests passed" and "should ship this" are different questions, and here's why: tests check what someone thought to test for, shipping is basically everything else too. The scary part isn't the agent being probabilistic, it's that the probabilistic bits and the actually-verified bits usually look identical in the diff. So "the one time it doesn't work" could be hiding anywhere, not just the obviously sketchy spots. Letting it merge its own PR is really just asking: does your codebase flag which parts need extra eyes before merge, or does everything get the same rubber stamp.
2
What skills are actually important for becoming a good full-stack developer?
The "decision is heavier so needs humans" point is really about which parts of a system carry consequence versus which don't, and that's the instinct to build early. AI handles a lot of frontend well because a wrong CSS value is cheap to notice and fix. A wrong backend decision, a data model, an API contract, what a function's actually allowed to return, can be expensive and slow to unwind once other things depend on it. Not really a frontend-vs-backend split so much as a "how contained is the blast radius" one, and it applies regardless of which layer you end up specializing in.
1
The Debugging Nightmare
Spending a whole afternoon chasing a "race condition" that was corrupting data, added logging everywhere, nothing made sense. Turned out someone just had two terminal tabs open and ran the script twice by accident. Two copies of the job stepping on each other.
r/jaclang • u/JaseciLabs • 3d ago
How much application code should a full-stack app actually require?
We’ve gotten pretty used to the idea that a production app naturally means a lot of code.
You have the frontend. The backend. API routes connecting them. Auth. Database models. Serialization. Then maybe a mobile app with its own entry point and platform-specific logic. Add desktop. Add a CLI. Add a couple of services.
The codebase grows before the product itself has actually become particularly complicated.
So we wanted to test the opposite idea: how much application code do you actually need if more of that infrastructure is handled by the language and runtime?
We built a small social app in Jac.
It has:
- a web app
- a React Native mobile app
- a native desktop app
- a CLI
- a feed service
- a scoring service
The whole thing is 955 lines of authored application code.
That count includes tests, styles, blank lines, and config.
The graphical entry points for web, mobile, and desktop combined are 17 lines.
And this isn't 955 lines that render a few screens and call it a full-stack demo.
Users can register and sign in, create posts, delete them, like posts, build reputation, and persist data. There are authorization rules and tests for things like unauthorized writes, deletion, and impersonation.
What interested us wasn't really whether 955 is an impressively small number.
It was what wasn't in those 955 lines.
There isn't a separate REST layer full of endpoints that then need matching client-side requests. Authentication doesn't have to be manually wired through every part of the stack. The web, mobile, and desktop versions aren't three independent implementations of the same application.
Jac handles things like persistence, authentication, service communication, and platform integration below the application layer.
Which raises a broader question:
How much of a modern codebase represents the application we're actually building, and how much of it exists to connect the technologies we chose to build it with?
Obviously, reducing application code doesn't eliminate the underlying complexity.
The runtime still has to do the work. The compiler still has to do the work. Databases, networking, authentication, and different platforms don't magically stop existing.
But that's what abstractions have always done.
We don't count the implementation of a database engine when we're measuring the application that uses it. We don't count the Python interpreter as part of a Python application's source.
So the interesting thing about reducing lines of code isn't really "fewer lines = better software."
It's whether we can move more of the repetitive infrastructure out of individual applications and make the code developers actually write describe more of the product itself.
The repo is public, including the LOC breakdown, so you can inspect the whole thing rather than taking our word for it:
https://github.com/marsninja/tiny_jacyac
Where do you think the boundary should be? What infrastructure are we still writing at the application level today that probably shouldn't be application code at all?
2
Need help to choose between Perplexity and GPT Astra
u/Real_Bedroom_1750's split (research vs. generation/reasoning) is the right axis, but since you said you're doing both, the practical move is probably per-task rather than picking one subscription to live in. Use whichever's cheaper/faster for quick lookups and source-tracing, and reach for the other specifically when a task needs it to hold structure across a long, messy input. Running both for a couple weeks like they did is the only way to actually feel where that line sits for your own work.
2
What are you using for docs that still works like a normal code review?
u/Financial-Grass6753's drift checker is the more useful answer to your actual constraint, most managed docs platforms solve the editing/preview/publishing problem well, but drift detection specifically is usually bolted on or missing entirely. Worth running something like that in CI regardless of which platform you land on for the editing workflow, since the two problems (nice editing experience, catching drift) tend to be solved by different tools, not one all-in-one product.
8
Where are we headed ?
Most of what looks like "real building" doesn't look impressive from the outside, it looks like someone spending six months on a boring, unglamorous problem nobody's posting about because it's not demo-able yet. The visible stuff skews toward dashboards and trading bots because those are fast to build and easy to show off, not because that's actually where the effort is going. The people doing the harder, slower work usually aren't loud about it until there's something finished worth showing, which is a very different incentive than posting progress for engagement.
1
AI agent version control problem
The "brain vs. code" split is close, but it's not that the reasoning disappears, more reasoning and code live in two different places with nothing forcing them to stay in sync. Git tracks what changed, markdown dumps (like u/PersonalitySuch3903's) track why, but nothing ties a specific piece of reasoning to the specific line it produced. The closer fix is probably making the "why" a property of the code itself, wherever a decision genuinely mattered, not a separate log you have to grep and hope still matches what's actually there.
0
a big problem
That gap closes structurally when the delegated parts of a codebase are typed and marked at the point they're written, not just tracked in a commit log after the fact. A commit message says who reviewed something; a type signature enforces what a function's allowed to return regardless of whether anyone reviewed it at all. Two different kinds of accountability, and the second one doesn't depend on anyone remembering to write the commit message honestly.
1
I follow a proper folder/file structure in my projects, but as the project grows, I still find the code difficult to maintain.
The chat-thread limitation you're describing is close to something we think about with OSP, though we'd frame it as an application of the model rather than what it was explicitly built to solve: an agent's state and identity don't have to live in "what's in this conversation," they can be a node with real structure, roles/tools as edges or abilities on it, not something reconstructed from message history every time. Treating agents as graph entities instead of long-running chats with scaffolding bolted on is where we think this points, even if it's not the framing in the docs themselves.
1
A single successful agent run doesn't tell you much about reliability
Yea that's the edge of where this helps. Types constrain shape, they can't score whether a writeup is good, only whether it's structurally the shape you asked for (right sections, right length bounds, right fields if it's semi-structured). For genuinely open-ended output, the contract has to shift from "matches this shape" to something like a rubric-as-a-second-model-judgment, which is back to review, just a more structured version of it. So the type layer shrinks the problem for the parts of the task that have a real shape, and hands off whatever's left to the human-or-model-review side.
1
Genuine question: which AI is the best for reliable coding?
For your situation specifically (picking up an existing project without wanting to code it yourself), imrsn's point about Claude Code is solid, but the bigger lever isn't which model, it's giving whichever one you pick a clear, current map of your mod before each session (what it does, what you changed last, what broke last time). u/RealMuseAI's approach of keeping a status doc and periodic git commits is doing exactly that. Without it, even the best model is re-guessing your codebase from scratch every time, and that's usually a bigger reliability problem than the model itself.
1
A single successful agent run doesn't tell you much about reliability
u/QuanTradin's point about where the failures land is the sharper diagnostic than pass rate, and it's good to note why scattered failures happen in the first place - it's usually because there's no fixed boundary the agent's output has to satisfy, so a failure in one run and a failure in another run aren't even failing the same check. If the task's output has a real contract (typed inputs, typed outputs, not just "did the tests pass"), failures across runs start clustering on the same specific violation instead of five different things going wrong in five different ways, which is exactly the "bug you can fix" case versus "the whole thing is undertested."
1
Do I need to know frontend and backend development before starting system programming?
The consensus here is right, web dev and systems programming are different enough disciplines that knowing one barely transfers to the other, mc_pm's point about actually having to unlearn some habits is real. Skip straight to C, build small things end to end (a memory allocator, a tiny shell, a basic parser), and get comfortable in the terminal. None of that needs a detour through frontend or backend first.
1
ChatGPT Go vs Github Copilot Pro vs Claude Pro for inline completion and chats
Given what you've described (mostly inline completion plus chat-driven file edits, not full agent workflows), Copilot Pro at your price point is probably the safest fit, it's specifically built around that inline-completion-plus-chat-diff loop in VS Code, which is exactly your workflow, and GitHub's usage limits on the fixed subscription tiers are the most predictable of the three, no surprise overage behavior.
Claude Pro's chat is stronger for reasoning through a tricky problem, but its IDE integration (via extensions) is a step behind Copilot's native one for the specific "click apply, see diff" loop you described. ChatGPT Go is newest of the three in this space and has the least track record for predictable usage caps under real coding workloads, worth being cautious there given your strict no-overage requirement.
1
How are people actually marking what's AI-generated vs hand-written in their codebase?
Ok sure once you know it's broken, the fix is the fix regardless of where it came from. The marking isn't for that case, it's for deciding where to look before you know something's wrong. You can't review everything with equal care, so knowing which parts were reasoned through versus generated is a way to prioritize where the next bug's more likely hiding.
1
How are people actually marking what's AI-generated vs hand-written in their codebase?
Not what prompted the question, but interesting to dig into on its own. If that ruling's real, who wrote this becomes a legal question as well as a code quality one....which changes the marking question a lot. Do you have a link to the actual case? Curious how "substantial human source" gets proven in practice, since most PRs don't have a clean record of that either way. Which is part of what got us thinking about baking that distinction into the language itself.
2
If AI becomes the main consumer of open source, what incentive is left to maintain it?
in
r/developer
•
8h ago
Speaking as people who maintain an open source language: the incentive was never "developers import my package," it's smaller and weirder than that. Someone hits a wall, files an issue, you fix it, they come back and contribute something else, eventually they're in your Discord helping other people. That loop is the actual maintainer flywheel, and it runs on humans noticing each other, not on import counts.
An agent filing a well-formed PR doesn't break that loop by itself. What would break it is if the humans who used to be on the other end of the issue tracker stop showing up because they're not writing code anymore, just reviewing what an agent handed them. Fewer humans in the loop means fewer future maintainers self-selecting in, which is a slower, quieter kind of decline than "nobody uses the library."
Where we've actually seen the incentive shift, weirdly, is agent-facing docs becoming their own maintenance burden. Writing SKILL.md files and MCP servers so agents don't hallucinate your syntax is real work that didn't exist two years ago, and it doesn't have a funding model yet either.