Hacker News new | ask | show | jobs
by SatvikBeri 199 days ago
Do you know of any articles/papers that try to do in-depth analyses of which features are helpful for building big systems?

Most posts I can think of basically say "X language is good" or "Y language is bad", but I'd really be interested in arguments like "feature A is better at accomplishing goal Z than feature B"

2 comments

That's a very good point. My experience is that for large project the architecture also becomes important.

Large project have much code but if you can split out responsibility because your architecture allows this, then you keep your code concise.

One feature Ruby has that helps here is creating Domain Specific Language without yacc or lex. This allows for concise code where its needed.

Not quite the same, but I find "data-oriented programming" to be a very strong method for managing large codebases. By that I mean having data structures that designate the end state that you want, having another set of code that gets you to those end states, and maintaining a pretty clear boundary between the two.

(If you like with "Functional Core, Imperative Shell", this is a way to further divide the Functional Core.)

It works well because it narrows the surface area of a lot of possible bugs: either your configuration is wrong, or your code doing the transformations is wrong.

You kind of describe flow based programming (FBP) whereby data is passed to stateless functionality.

Things like Unix pipes, Node-Red and n8n are inspired by FBP.

I agree with what you describe, also reuse is simpler because code tends to be stateless.

There are languages much better suited for DSLs though.
There are some programming language journals that people like to dismiss as “academic”. But “academic” is what I value here.
There are a lot of programming language journals – are there ones you'd recommend specifically for discussions of tradeoffs between features?