4 ms·
Only obliquely related: I was hoping Nim would be the kind of language that preferred libraries over frameworks. We have way too many frameworks and not enough
by hliyan 6y ago
Only obliquely related: I was hoping Nim would be the kind of language that preferred libraries over frameworks.
We have way too many frameworks and not enough libraries. A library comes with an API. A framework must arrive with its own architecture, a vocabulary to describe that architecture, tooling, a plugin ecosystem, configurations and a lot of best practices and recommendations. Are we paying too much for that initial, one-time effort of bootstrapping an app and stitching a bunch of libraries together into an app?
- sergiotapia 6y agoCute notion, terrible in practice. You end up in a MeteorJS situation where nobody knows what the hell to use, and new users? Good luck. You're toast. This killed MeteorJS. For Nim to succeed, it needs a killer framework like this. It needs to let developers build value for the companies they work for. I really hope Nim does grow tremendously, it's a great language.
- atemerev 6y agoWell, React was pretty successful... While being a library.
- matthiaswh 6y agoI don't know if this is a good example. While React tries to bill itself as a library, and there are arguments to be made for it being a library, there are equally compelling arguments as to why it is a framework. If anything, this example does more to prove the distinction is semantic and trivial than anything.
- jgwil2 6y agoThis is correct; React is a framework.
- sergiotapia 6y agoAnother cute notion but React is a framework in practice.
- hliyan 6y agoPlease consider disagreeing with other people's "notions" in a direct, but civil manner. To call another person's idea "cute" is to demean his/her intelligence.
- jgwil2 6y agoHow many people are developing commercial software without a framework? Software needs architecture, tooling, best practices and the rest. Taking the library approach just results in ad hoc frameworks emerging over time.
- ddevault 6y agoVirtually all C programmers, for one. Most Go programmers, too.
- ies7 6y agoIf I have a bunch of libraries that I always use (or at least 80% of them) to start a new project, isn't that a framework?
- alexbanks 6y agoBy definition, no. In practice, maybe.
- wffurr 6y agoA framework is not a collection of libraries. You are still writing the top level code that glues all the libraries together. A framework is that top level code, and it provides extension points or a pluggable system for the parts the framework author anticipated you needing to customize. Works great within the boundaries, but gets very difficult once you want to step outside the framework author's preconceived notions about what one would want to do with their framework. With the library approach, you have to invent some of your own conventions for routing and such at the top level, but you have a full understanding of it and can more easily extend it to handle new use cases. Most projects outgrow a framework, at which point they tend to invent their own but it's a huge amount of technical debt to handle.
- Ericson2314 6y agoAt work we make and use https://github.com/obsidiansystems/obelisk https://github.com/obsidiansystems/obelisk . While they're are certain framework-y things going on (we recommend our build system, our `ob` swift army knife command, etc.) nothing is obligatory and all the functionality is in separately libraries, and put effort to "bud off" ideas into separate repos etc. I bring this is up as I think it's a good example of firstly absolutely not compromising on the end developer experience to compete with the monolithic framework, but secondly trying to beat them without stooping to their dirty tricks wherever possible.
- andybak 6y agoJust because too few people say this when the topic comes up: I prefer frameworks At least for something like this. I want an opinionated framework that comes with a structure, an architecture and a philosophy. I want the right decisions to already have been made and I would like there to be one obvious place to put everything and one obvious way to do things. I want to focus on my application and not be tempted to do lots of bike-shedding. I want to pick up someone else's project and instantly know where everything is likely to be.
- matthiaswh 6y agoNim has a growing number of libraries that handle many of the features provided here. This is one of the first major attempts at a large, comprehensive web framework in Nim. It's not a signal of any sort of shift in the Nim ecosystem. Nor does the existence of one does not prevent or defer the existence of the other.