4 ms·
Pedestal – An open source tool set for building web applications in Clojure
- fogus 14y agoWhat's with the back-handed thread title? Lame.
- tadfisher 14y ago> Simple means planning for architectural needs from the ground up. Simple means decoupling your service layers into individual pieces that flow together instead of a single monolithic codebase. Simple is difficult.
- fogus 14y agoWhen I read the quote from the Pedestal site, it echoes to me similar quotes: “Simplicity is the ultimate sophistication.” or “Any darn fool can make something complex; it takes a genius to make something simple.” or “Every solution to every problem is simple. It's the distance between the two where the mystery lies.” or “Simplicity is about subtracting the obvious and adding the meaningful.” or “Simplicity is ultimately a matter of focus.” or maybe even “I would have written a shorter letter, but I did not have the time.” When I read the title of this thread I see none of these. note: the title is now fixed, but I'll keep these quotes here
- VaedaStrike 14y agoI. screwed. up. You have an excellent point.
- VaedaStrike 14y agoI was just trying to take pride in what is declared on the home page. That doing things simply is difficult. Nothing backhanded intended.
- nightwolf 14y agoReally liking the website!
- DennisP 14y agoIt's going to make me sad if the leading Clojure web tools end up integrated with a proprietary database.
- asmala 14y agoThis was discussed the last time this link was posted and it appears Pedestal is in no way integrated with Datomic. That being said, I too got the same first impression when reading the docs.
- rkneufeld 14y agoPedestal ships with absolutely zero dependence on Datomic, and we intend to keep it that way. Datomic is a fantastic tool, but even we understand that it might not always be the right tool for the job. As such, we've built Pedestal with little to no opinion on backing store. - Ryan @ Relevance
- eggsby 14y agoPedestal is still very alpha and I'm not sure that I would use it for any of my projects... yet. For instance, using the example apps provided I couldn't get the chat application to work properly -- if I opened up two windows to the app, only one of them would work at any given moment. I wonder at the real use case for this style of application, the included hello world app was almost 2 megs of javascript resources (this was without minification or advanced google closure compilation) it seems excessive for a small 'your page updates when server sent changes happen', and certainly more expensive than the approach taken by projects like meteor for similar functionality. I think some of the features it offers are a glimpse into the future, tracking the state changes from one moment to a next rather than firing off and forgetting about events, almost like version control for your clientside state. This sounds incredibly useful, but for what I'm not quite sure. What sort of apps need that sort of functionality to the point where the extra ceremony required becomes justified? Another interesting concept is that it is theoretically possible to shift the generation of the app tree deltas to the server and turn the clientside into nothing but a dumb renderer. The thinner the renderer the easier it becomes to target alternate graphical environments. I know the guys at relevance have hinted about the above, it'd certainly be interesting to see. Definitely a project to watch :)
- asmala 14y agoWhile I agree with most of what you're saying, the 2Mb JS file is entirely expected behavior if you don't use advanced compilation, which eliminates unused JS code and would hence cut down the file size to a fraction of what you see.
- ajsharp 14y agoA tool for building "web applications" seems a little far-fetched, given the values and conceptual model pedastal is based on. On services and scalability... > Built with scalability up front rather than an afterthought And > Pedestal gives developers a solid foundation to build highly scalable backend services [emphasis mine] Pedastal seems more like a framework for building enterprise services, not simply "web applications". It's serving a type of use case, for sure. Just not one suited for all web applications. If you're a pre-product-market-fit startup, trying to validate a concept, pedastal isn't for you. But, if you're square, or linkedin, or [insert successful startup here] and you're going to introduce a new service into your existing infrastructure, yea, it should be performant, and then maybe pedastal and the mental model that backs it makes sense. But for an early stage startup, you're not likely to have to solve many of these problems, especially the scaling ones. And doing SOA from the get-go is orders of magnitude more complex than the standard monolithic application. You won't reap any of the benefits from SOA until you have the requirement for some form of scale -- either team scale or product performance scale. The more likely case for an early-stage startup taking the approach pedastal is "peddling" (forgive me, I had to) is that your application architecture will be significantly more complex, making it harder to work on, grow, and hire for. The stuff pedastal is trying to do is for grown-ups, and grown up applications. And in this metaphor, early-stage startups are teenagers. How this looks to me is that relevance has a specific perspective on how to build services. I'd guess that perspective is highly informed on the types of clients they work with. Given the mental model of pedastal, I'd also venture to guess that they don't do much work with early-stage startups. Excuse my presumptiveness on the nature of Relevance's business, but if a consulting shop tried to sell this bill of goods to my early-stage company, I'd probably sound the architecture astronaut alarm and show them the door.
- hueyp 14y ago> Pedastal seems more like a framework for building enterprise services, not simply "web applications". Can you point out where in the docs you got this impression? So far for pedastal services (the backend stuff) all I can see is a replacement for ring and middleware. Once it leaves your handler it is back to whatever you were doing in clojure already. Or am I missing something? Serious question. I've read the docs, but they are pretty light so far. I haven't looked at the sample code yet.