Dependencies won’t update themselves since they are locked to their versions. If the developer manually triggers an update, and the dependencies aren’t compatible, either the code wouldn’t compile or it’s behave weird. In both cases, what’s the advantage of separating out the fetch-dependencies part?
The cycle of violence that has marred the region for decades is so unfortunate.
It escapes my mind how decision makers (on both sides) have failed to value the human cost in the past. Irrespective of the history, the current situation is not very complex: it's a one sided war where Israel is the occupier (responsible for a lot of inhumane actions), and Palestinians, represented by Hamas, are resisting by whatever means necessary (no matter inhumane e.g the Oct 7th attack). The cycle continues.
Peace is usually in the hands of the more powerful, the one who has more, and can give more. In this conflict, at present, it's Israel. Some other day, in some other place, it'll be another entity. The only way for peace to happen is 1) either the powerful decides that it want's peace and offers what it takes to achieve that, or 2) the powerful completely eliminates the other side (akin to a genocide). I don't think (2) has ever worked, or will ever work. Even if it did, I hope no human with even slightest of morals would ever think of it as a viable solution.
In the last two decades: ~15,000 including children, ~1,700 Israelis, ~13,000 Palestinians, have lost their lives [1]. Each of these lives was equally valuable.
I don't even know why I am writing this, knowing full well I may be attacked. I guess, I just hope that somewhere, slowly, seeds of peace will be planted and people will start moving towards a world which is more peaceful.
People never talk about the cycle of violence when Russia invades Georgia. Nobody talks about the importance of restraint when it comes to Zelensky's aid package.
>>> Irrespective of the history, the current situation is not very complex: it's a one sided war where Israel is the occupier (responsible for a lot of inhumane actions), and Palestinians, represented by Hamas, are resisting by whatever means necessary (no matter inhumane e.g the Oct 7th attack).
I don't believe this for a second. It gets repeated a lot. I've grown very skeptical and mistrustful of political arguments that begin with "It's simple...". Having grown up in a country who's situation is often compared with Israel/Palestine (although thankfully on a far smaller scale) I can tell you it's never simple. It's not simple to the people who live there and it's utterly impenetrable to those who don't. Most of the trouble is caused by people who insist that it's simple.
>>> Peace is usually in the hands of the more powerful, the one who has more, and can give more
What makes you say this? Nothing I have seen makes me think that this is true. A few hundred people can keep a country in a state of chaos for years no matter what everyone else wants.
If Israel stops bombing, occupying, and displacing Palestinians in the past ~70y, you will have peace, if Palestinians stops however, they cease to exist, and in 50 years or so, the international community will make a museum and a memorial that one day some indigenous people lived there..
> Israel cleared out of Gaza in 2005. That's just a fact.
And before that? You realize that most people in Gaza are actually refugees since when there were displaced from their homelands across Palestine back in 1948? And the ones refused they got massacred -Tantura (1) Deir Yassin (2). And who do you think controls water, electricity, food, resources that’s going in/out of Gaza?
> removing Jews from Palestine is just more genocide. I'm not down with that.
It isn’t what you or me are down to, it what’s the United Nations (incl Israel) have agreed to, and to have a separate states per 1967 borders (1) even Hamas agreed to that (2), did Israel stopped doing what they were doing since they set foot in the country? No, in fact, it’s much worse, Gaza is an open air prison now that in 2021 -and before- they marched to the borders peacefully to say that we are still here (5) and slowly dying, they got shot on sight, west bank is still under a martial law that will gets you years in prison for social media likes, and Jerusalem is under and full control of Israel police.
It's a nice idea. I'm going to dig a little deeper in the design and developer experience choices.
That being said, I am a little curious -- what is the intended use case here? The reason I am asking is because I've been doing lots of web-development, with Go as a primary backend lang, for the last 9 years but never have I seriously felt the need to do serve the UI from Go. I guess there is some advantage reducing n (number of tools/languages in a stack) - but is there any other motivation behind it?
The imagined use-case for Pushup is the same niche that Rails, Django, and Flask apps occupy, which is a wide range but broadly I would describe as page-oriented, HTML-first, server-side frontends.
I started Pushup because I asked myself, I like programming in Go and think (like you) it's great for web backends - but what is holding it back from being a great full-stack web dev language or environment? net/http is a great building block, and html/template is solid, but I felt more was needed. Like opinionated project directory structure, for one. But also the world has changed since 2006 when Rails and Django debuted.
Obviously, we live in a world in which React and the SPA is seemingly dominant, but projects like htmx have recently shown that you can achieve modern UI/UX in the browser on a server-side app, which less JavaScript. BTW, more and more JavaScript frameworks, like Remix, are (re-)discovering the value of SSR.
I was also motivated to give an old-school mod_php feel of, just add a file and you automatically get a URL route. That's a nice developer experience but also good for long-term project maintenance.
Finally I was struck by this essay[1] about the demise of the "mildly dynamic" site. There is a wide diversity of types of sites and apps, from quick experiments and prototypes, small-to-medium sites of many kinds. But also since it's Go, I think it could scale up on performance to large-scale sites, and as a static binary, be nicely suited to edge apps like fly.io.
First off @paulsmith, thanks for creating Pushup! I've been meaning to learn Go, and in particular in web context...and I've always been a fan of the "mildly dynamic" approach to web sites, web apps. So, I will certainly dive in. Secondly, thank you for sharing that article that inspired you. I kept nodding along so much while reading that article, it was like i was a bobblehead! I don't code much over the last decade or more, but when i do (for web anyway), i almost always employ php in the "mildly dynamic" method...Because its easy and solves needs that come up. Thanks again!!
I have to be honest, I don't like the aesthetics. I know that's a trivial point, but if you're working in something for a living it matters. The suggestions elsewhere of using "<?go ?>" or similar look better to my eyes. I'd also be concerned that by the time there are enough features in it to support more complex sites, the learning curve will be enough that you may as well use Go directly. I could easily be wrong about that, and I know others will see value, so YMMV as we say.
That isn't to say I have any negative comment about your project on its own terms and merits, just that it isn't for me.
However I do thank you for the link to the "mildly dynamic" page. In addition to Go I also do C#, Node, Python, and others. Those others include PHP (on and off since PHP 3). For serious stuff I'm usually managed (or persuaded) into using anything other than PHP, but on the odd times I do use it the feeling is quite different from the rest and hard to explain. It feels like that linked page comes closest to explaining it for me, so cheers!
As the author of the above article I saw Pushup the other day and thought it looked interesting. If people are being inspired to bring back this sort of approach to webdev that makes me happy. Good stuff!
It's still a hard rule of mine that a website must work without JS and use progressive enhancement - I won't accept less in my own work. A lot of "modern" web frameworks get automatically disqualified when I evaluate them for this reason.