Hacker News new | past | comments | ask | show | jobs | submit | Xeoncross's comments login

It's often the change that happens with experience. Most developers join Go looking for their Laravel, Rails, Next.js, Spring framework. Because it's almost impossible to write something in those languages without a framework.

In Go, the longer you use it, the more you realize "just use the stdlib" actually works for most things. A lot of these projects die because most Go devs either 1) need a mux and use httprouter or gorilla or 2) need a more robust multi-instance setup (go-kit, goa.design, smithy, etc..)

Most big projects just don't use a MVC (or otherwise framework) as it's more work to use, update and understand than just writing your own glue for the libraries you do need.

I might have explained this poorly, but I like to think of Go as a collection of packages where other languages are a collection of frameworks because the packages can't be used together easily and need organization on top to ensure everything works.


> Because it's almost impossible to write something in those languages without a framework

That doesn't sound right to me at all. I've definitely worked on some apps in Ruby that we basically just rack, and a few gems. And good lord, the Java landscape is full of in house architectures.

> I might have explained this poorly, but I like to think of Go as a collection of packages

This is exactly the approach a lot of JS apps took for a long time. That's what MERN(mongo/express/react/node) was about.


Never having worked with Erlang, my mind is telling me this might be an alternative for https://github.com/temporalio (database-backed functions) or AWS Step functions.


They're not the same, exactly, but there are similarities. The actor framework isn't inherently durable workflows, for example. It does similarly distribute work though.


Supervisors give you the durability though.


A different kind of durability than what people mean by "durable workflows", though. Durable workflows require durable storage of their current state; supervisors give you durable computation services. Supervisors don't even guarantee "durable computation"; if a process crashes halfway through processing a request, it's not like the request will be automatically retried or something. (That isn't even a good idea, there's a very good chance the reason why that request crashed one process will crash others.)


You can actually set it up that way though. You set a process to keep the state and a process to do the work. If the process doing the work crashes, the state is preserved.

It’s a deliberate decision but very easy with the BEAM.


That's still not durable; you've set up a single point of failure in whatever is hosting the state process. Durable storage is a fundamentally different problem which you can't solve just by waving some Erlang processes at the problem. You could write a durable storage system in Erlang, although there's not a hugely compelling reason to do so when you can also use any existing one, and writing this sort of system is extremely challenging. Heck, just (fully) understanding Raft or Paxos is extremely challenging, let alone implementing it. Some classes of problems are best solved by a limited number of best-of-breed solutions that all of the other language ecosystems just use, like, durable storage and databases in general, or ffmpeg, or browsers.

(I can also tell you from personal experience Mnesia isn't a "durable storage" solution. Rather the opposite, honestly.)


I need to find the link, but I saw an incredible presentation at Gig City Elixir last year where they’d been running a globally distributed, in memory, medical database with no downtime or data loss for upwards of 5 years. One of the coolest projects I ever saw.

But yes, you do have to determine state and recovery patterns. Depends entirely on the situation but things like making sure your data will survive a process crash is straightforward.


> Zero dependencies

This is something seldom attempted, but I congratulate you. Go is one of a few languages that really is batteries-included. Just about anything you could need is included in the stdlib.


One of the reasons I prefer it over something like Rust for most projects. I don't have to waste time figuring out what third-party library is the defacto standard that I should be using.


It’s a tradeoff. Do you prefer to be stuck with bad built-in file and time APIs, or a robust ecosystem of external crates?

https://fasterthanli.me/articles/i-want-off-mr-golangs-wild-...


So your argument is that an ecosystem of external crates which are created and maintained mostly by individual contributors is on average better than the standard library backed and dogfooded by trillion dollar company and used by other giants of the industry? Can't say I agree.

Not to mention nothing prevents anyone from using or writing their own library only for the parts that need specialization. You're free to do that and many have.

And standard libraries can be versioned and deprecated too.


I actually wouldn’t be surprised, if only because the standard library is so much harder to make backwards-incompatible changes to. I would generally expect that the average quality of the third party libs is lower, but the top 1% is probably better than stdlib.

Eg I don’t find the stdlib logging library particularly great; not bad, but not impressive. Ditto for the stdlib errors package before they added error wrapping


Uh, which ones would you like to compare? C++ std regex vs rust’s regex crate?


The file API is mostly fine. Opening with that is the wrong approach to me; the comparison with Rust doesn't really illustrate any serious issues. All of the complaints could be addressed with better documentation.

The time API, on the other hand, is that bad, and worse. Besides the bizarre monotonic time implementation, there's also the bloated size of the time.Time struct, and the lack of actual "dates" (YYYY-MM-DD) and "times" (HH:MM:SS) that you can do arithmetic on. You can't really roll your own robustly either because time.Time isn't a great foundation to build on and //go:linkname is getting locked down.

Thankfully, build constraints are much better now, since they just use regular boolean operators, e.g.:

    //go:build windows && (i386 || amd64)
I agree that there shouldn't be any _buildtag.go magic, and I think they ought to remove that "feature" entirely in a future version of Go (which can be done so that it doesn't affect older or unversioned code). It seems they added a "unix" build tag too.

Also, one of my personal gripes is that the standard library exposes no guaranteed way to access the system CSPRNG. Any code can replace (crypto/rand).Reader with another implementation and compromise cryptographic operations. It's a trivial supply-chain attack vector, and even in non-malicious scenarios, it can be done mistakenly and break things all over the place in a subtle but dangerous way. The language developers have so far refused to fix it too.

Then there's log/slog with no TRACE or FATAL levels built-in; yeah, you can roll your own levels, but why should you have to?


Anyone with enough experience in C derived languages large scale preprocessor spaghetti, welcomes _buildtag.extension alternative.

This is actually one of the few things I fully agree with Go designers.


Is the file foo_bar.go (no build tag line) compiled or not?

If your Go version doesn't know of such a build tag as "bar", then foo_bar.go is unconditionally compiled. If Go in a later version adds "bar" as a known build tag, then foo_bar.go becomes conditionally compiled. Better hope you know this is how things work (reality: lots of Go devs don't).

Build tag lines don't have this problem. They always specify compilation conditions, even if the build tag is not already known to the compiler. They also apply to the whole file, the same as _tag in the name; there's no preprocessor spaghetti possible.


I guarantee you it is even worse with preprocessor spaghetti, than build tools.


I think we're talking past each other.

Build constraints with "//go:build" already exist, I'm not making them up or proposing something new: https://pkg.go.dev/go/build#hdr-Build_Constraints

This has nothing to do with preprocessor spaghetti, which is impossible in Go. Either a file is included or it is excluded. Neither with file naming nor "//go:build" can you cause only portions of a file to be compiled.

Really, the _tag.go mechanism is just a very simple kind of build constraint, equivalent to "//go:build tag". The problem is that it relies on a magic list of known build tags, and the contents of that list change over time. Apart from _test.go, which is a little too convenient to give up in my opinion, the rest of the tags could be pushed into build constraints, or at the very least, the list of known build tags could be frozen in its current state.


Build contraints are the version of Go's preprocessor spaghetti, when those conditions get so complex, that one needs pen and paper to understand what is actually included.


Well, then it ought to go the other way. If you create foo_bar.go and bar is not a known build tag, you should get a compiler error.


"robust ecosystem" is a rather optimistic view of the rust situation... I would have said "a bunch of 0.x libraries that do 80% of the work and let you figure you the hard 20% while being slightly incompatible with each other, and that will be painful to glue together because of the rules for traits"


I rather have something that works everywhere there is a full implementation of the platform, instead of whatever third parties decided to support.


Rust has multiple http server and async framework which creates a lot of confusion.


Great example, and more of a horror show than I anticipated.

It would have been interesting if the author had a suggestion on what the Golang team should've / could've done instead, beyond correctly communicating the nature of the breaking change in the Go 1.9 release notes.


Interestingly, Erlang is very batteries included as well. Probably even more so than Go in most cases.


Does Elixir inherit those batteries or is the ecosystem partially disconnected from Erlang?


Elixir inherits it. You can call anything in Erlang directly.


Not strictly true. Some stuff in the Erlang distribution must be included in extra_applications before you can call them.


Still doesn't have half of batteries that Python, Java and .NET include.


.net will even include every version of that battery since the battery factory first prototyped it in 2002


As someone that writes Java and Python, I'm unsure what you're referring to here by "batteries" other than 3rd party packages.

Even something as basic as JSON encoding requires an external package in Java.


No doubt that is true, but are there particular batteries you’re thinking of?


GUI, dependency injection, huge collection libraries, dynamic runtime Interoperability, distributed objects, compiler plugins, custom runtime schedulers,... for example.

Some of the above will never be in Go due to how the community and language designers are philosophically against them.


> dependency injection

It's been a while since I played with the furry thing but is that even possible in Golang?


I was speaking about Python, Java and .NET standard libraries.

In Go you can naturally do it, by using the manual constructor approach, however there is no magic auto wiring like you can do with attributes and compiler plugins, plus standard libraries infrastructure for locating services, from those three ecosystems above.


Well, in my head DI at this point requires the magic bits. Otherwise it is (as you say) just constructor args.


Except that there are many ways to do DI, magic is not necessarly required, other than much welcomed development experience.

However Go doesn't like magic, thus that isn't something that will ever happen on the standard library, like on Python, Java, .NET.


I guess we have to disagree here. The key word here is "injection". Dependency initialization, setting, passing, etc. none of these are 'injection'. But yes, Go lacks the necessary metadata mechanisms and per what you are saying it still does.


Injection doesn't mean automatic, or magic.

And if one goes back 20 years, constructor based injection was the norm, the magic only came later thanks to Aspect Oriented Programming, yet another tool that Go will never adopt.


Sure, but I don't recall it being called "injection". Obviously we are in agreement that dependency references are introduced via some mechanism. Also AOP came [after] Java J2EE and Spring. However I will concede that there is a distinction between 'inversion of control' and general DI.



Thankfully, others are more altruistic. I have benefited from many developers freely sharing their ideas in forums, code on github, and leanings on blogs.

Sure Google has stolen it to build an empire that most are complicit with.

Sure OpenAI has stolen it to build products most are supportive of.

Sure evil benefits from good, but that doesn't mean we should neglect to help others just to spite them.


My hope is that there's a middle ground, a way to keep our good deeds for the benefit of other good people, not for the benefit of large corporations that want to leech off of our work.

The law usually lags behind technological advancement, and I'm hoping we're just seeing this in action right now, and that over time, better legal protections will be put into place.


This is such a lovely comment. Well said


Nobles exploiting the labor of the peasants. It's how it has always been and how it will always be.


I don't need to give my intellectual labor away for free in order to be altruistic.


No, but doing do would make you altruistic.


Maybe. But volunteering at a soup kitchen or mowing my neighbor's lawn is definitive.


there's "sharing ideas on forums" and then there's giving all of your source code, public and private, to Microsoft to host, instead of just setting your git remote to user@yourownhost:/path/to/reponame and setting up SSH keys

I appreciate the viewpoint of the GP and it's telling that it is downvoted when it is not spam, it is not abusive, and it is fully in-line with the stated and implicit etiquette of this site. It's just unpopular, so people are down-voting it.

FOSS is kind of culty and it's very apparent in the reaction to opinions like the OP's. If you don't believe what he said about giving up your agency and your fate when you give away your code online, look into what happened to fommil[0]

https://medium.com/@fommil/hide-your-real-name-in-open-sourc...


+1 It's called "Human" resources not "Company" resources for a reason.


Or: it’s called human “resources” not human “beings” for a reason.


I've been seeing content that has some adult vlog or podcast content mixed with a random video game. It seems like very disparate content is being combined. Does this work well? I've never really liked it and wondered why a more interesting video isn't used instead of some tiny portion of a random game.


It’s because there’s a subset of people with a boiled enough attention span that they need something visual to watch (like a speedrun challenge) while listening to a podcast clip. 8 seconds is apparently the upper limit of the attention span now.


It's interesting, because the subconscious ability of the mind to identify discrepancies is incredible (even if we ignore that feeling we get about something).

The feel of counterfeit bills, the color someone choose to wear, the sound that doesn't quite fit.

I think deep-fakes are mostly a danger to people without a lot of source material for their minds to compare against. You could trick me into believing I was taking with Elon, but not my son.


The key take-away, for me, is that I should "keep my guard up" on any video call about money or other important matters, even if other participants on the call are colleagues, friends, or relatives. There are no guarantees of authenticity anymore. My new motto for video calls is "trust by verify."


*"trust but verify"


What if that source material for young brains gets more and more contaminated with artificial junk?


There’s interesting ambiguity in this comment. I interpret the comment as saying, “I could be tricked by a deepfake of a stranger due to a lack of experience with their ‘true’ behaviors, but would not be tricked so easily when it’s someone I know well.”

Others here seem to be interpreting the statement as, “I could be tricked because I am an older person, while a younger person would not be so easily deceived.”


You could trick me into believing I was taking with Elon, but not my son.

And yet there have been several recent studies that show the younger someone is, the more likely they are to be scammed online.

> In 2021, Gen Xers, Millennials, and Gen Z young adults (ages 18-59) were 34% more likely than older adults (ages 60 and over) to report losing money to fraud,[1] and some types of fraud stood out. Younger adults reported losses to online shopping fraud – which often started with an ad on social media – far more often than any other fraud type, and most said they simply did not get the items they ordered.[2] Younger adults were over four times more likely than older adults to report a loss on an investment scam.[3] Most of these were bogus cryptocurrency investment opportunities.

https://www.ftc.gov/news-events/data-visualizations/data-spo...


i fell victim to such scam this year (first time i got scammed over 40 years). Key factor was that i got link to scam shop not from social ad but from my wife :) she got it from insta ad. So basically my wife scammed me :)


> And yet there have been several recent studies that show the younger someone is, the more likely they are to be scammed online.

I think you are misreading the post. Pretty sure they meant

you could trick me into believing I was talking with Elon, but you could not trick me into believing I was talking with my son

To which I agree personally, though I don't know how universal this is.


Older people are less likely to invest in high risk, high yield.


Older people are less likely to have their entire personas and private lives fully documented on social media.


Younger people really should consider this point.

Personally, I don't use streaming video outside of work and there are no videos of me on youtube or any social media to train a model on even if someone wanted to.

My mother in her 70s doesn't even have a debit card. She thinks the idea is ridiculous and insecure. She writes paper checks and that is it. To put her account number on an electronic device would be completely unthinkable.

While the average older person might be more easily confused by social engineering the attack surface for an electronic scam is so tiny compared to the average younger person.


> She writes paper checks and that is it. To put her account number on an electronic device would be completely unthinkable.

But she's handing a plaintext copy of her account number to everyone she pays with a check..


Only one photo is needed. I've not looked deep into this specific project, but speaking as an early developer of likeness transfer trained algorithms, only one image is needed, and it can even be a crude sketch - but if one's true likeness is captured by an image it can be recreated in full 3D. The catch is an individual's specific facial expressions, such as the real individual has a slightly lopsided smile, or they have smile dimples, or simply their characteristic at rest facial positions are absent, so they don't look like themselves to those that know them.


She writes paper checks and that is it.

As my accountant says: "For every person in your neighborhood committing check fraud, there are ten-thousand people around the world trying to steal your money online."


> You could trick me into believing I was taking with Elon, but not my son.

This was my thought about people in general, until more and more stories came out about the phone scammers pretending to be a grandson/daughter/family-member in need of a wire transfer/money to get them out of trouble. I still find it difficult to believe those are real scams that seem to work. This will probably escalate those even more with more people going to video calls. The panic of a loved one/child will not create a calm enough mind for thinking "hey maybe this is a deepfake" in most parents, atleast from my observations.


> The feel of counterfeit bills, the color someone choose to wear, the sound that doesn't quite fit.

You think there are no counterfeit bills that feel exactly the same as the real thing? Pretty sure you're wrong.


If you ignore the labels here, it's a small group of lawyers giving themselves more power because the large group of politicians can't get their act together and pass well-reasoned and descriptive laws.

So the large body isn't functioning well and the small body doesn't trust it anymore. So if we make the small body (the supreme court) large like the large body (congress) will that actually fix the issue?

Isn't the issue that politicians are corrupt and ignorant of actual expertise in the areas of the laws they pass? How will the Supreme Court overcome this same issue?


Congress may be inefficient (by design, basically) but they have one advantage: they're elected. Everyone fantasizes about government by an unelected group of experts, until they wake up one day and find out those unelected experts don't share their values at all -- and there's nothing they can do about it.


This implies the common false dichotomy though that public officials can only be either: elected in toxic, wasteful campaign cycles every 4 years; or completely independent of public oversight. Those aren't the only two mechanisms that exist to develop an administrative apparatus. They are actually two points on a spectrum, and in fact closer to being at either end of the spectrum.

One, quick example: You can have appointed experts who can be recalled by public input but never have to campaign for election. I'm writing this in short minutes with zero research so be assured there are countless possible systems that exist in the infinite space between the two binary options implied by your dilemma.

In other words, being elected to office is not the advantage of congress. The advantage we seek is public accountability. Public elections are a pretty fucking poor proxy for accountability though because we end up with single-issue voters acting out of rage and electing people who are specifically inept at their job.


> Everyone fantasizes about government by an unelected group of experts, until they wake up one day and find out those unelected experts don't share their values at all -- and there's nothing they can do about it.

Does SCOTUS fit into this hypothetical?


No, because they neither make laws nor execute them.


[flagged]


The totally reasonable practice of "I lost the game, so I'm going to flip over the table and pull a gun."


When your opponents are lying, cheating, and breaking their own made up rules (no supreme court nominees during the lame duck session unless nominated by a Republican) your characterization is uncalled for.


Yes, the right have been doing it for a long time and it works. Either make it stop working, or copy the thing that works. Don't just handicap yourself to a guaranteed loss.


Nothing in the rulebook says a {dog,Democrat} can't {play basketball,appoint liberal judges}.


Tell that to Merrick Garland and Mitch McConnell.


But they don't.


The rules are that the executive can appoint judges. Right wing executives take advantage of this rule. Doing the same from the other corner seems reasonable too. The failure to do so means that the Democratic party is incompetent, uninterested in enacting their own alleged policies, or some combination of the two.

Some people say "if you're not cheating, you're not trying" but this is even a level removed. This is a perfectly legal move that they've denied themselves for no material reason.


Appointing people based on party loyalty is always cited as one of the major reason the Soviet Union became a slow-motion train wreck. It's not something America should emulate.

Not to mention that packing the courts could well be interpreted as an open attack against the separation of powers


superficially this argument seems reasonable.. but my limited understanding of the history of the Supreme Court of the United States says that there have been substantially different eras, and substantially different rules in those eras, for this same Federal body. Needless to say, in a "two party" political system, the details of what each of those two parties represents has also changed dramatically.. i.e. what is called conservative has changed quite a lot, many times.. same with "liberal"


[flagged]


The issue is that the "ethics and morals" of the powerful are in reality weapons pointed at working people. If using state power gained through elections to improve the lives of the people who elected you is immoral or unethical, your system of ethics is a farce.


Indeed they have already done so - many left-wing voters are swearing off voting for Biden, over his support for the Gaza genocide. This guarantees a Trump victory.


You may trust the nation's top lawyers more than Congress. But in recent decades those lawyers have been picked for ideological purity in a process that distills what is bad about our political process. As a result I now trust Congress more than the Supreme Court. And not because I trust our broken Congress more than I used to!


> I would trust the nations top lawyers more than most of the congress members we have

If you're referring to the justices, who are approved by those Congress members you don't trust, it is a dramatic stretch to assume they are the nation's best lawyers.


There’s no requirement for them to be a lawyer at all, or have any legal training.


There's no federal constitutional requirement for anyone to have legal training or certification to practice law in the USA.

The requirements to practice law in the federal system are set by the judiciary itself. This dates back to England where getting "called to the bar" meant the judge giving you permission to go to a physical bar separating the spectators from the court.

It wouldn't make sense to mandate judges to be lawyers if they decide who is and isn't a lawyer. That would give the judicial branch control over their own appointments.


The Supreme Court is explicitly subject to not even that.


Also congress is full of lawyers.


This is taking power away from regulator bodies like EPA that enforce the laws and giving it to the courts... taking the enforcement out of the hands of the experts.


How is it "taking the enforcement out of the hands of the experts?" Judges are supposed to be experts on law. That's literally their job. If the parties before them feel that they need expert knowledge to render the right ruling, then they need to take those experts and either depose them or have them testify. Expert witnesses are a thing; this is not some new idea.


> How is it "taking the enforcement out of the hands of the experts?" Judges are supposed to be experts on law.

Because the laws are about particular things in the real world that have nothing to do with the legal system. They are frequently about scientific matters, for example. What constitutes a threat to public health? What constitutes pollution of a waterway?

When Congress authorizes an agency to maintain, say, clean drinking water, it entrusts scientific experts to determine, based on the most up-to-date evidence, what constitutes a pollutant that is harmful to human health. We do not need Congress to pass a new law every time we get new scientific evidence that a particular chemical (say, PFAS), is harmful.


> Because the laws are about particular things in the real world that have nothing to do with the legal system.

The laws have nothing to do with the legal system? That's a new one.


Thats great and all. But if congress wants that power to be delegated to those agencies, then they should write a law to do so.

Thats all people here want. Whatever power it is that you think that agencies should have, try to pass a law to do that first.


They did do that, every agency exists with a mandate.

SCOTUS just decided that despite the madnates existing, being funded, and being regularly renewed, that's not good enough.

But they haven't defined how specific the mandate and laws must be. They can just, you know, keep shifting the goal posts until they get the desired result.


> that's not good enough.

Then make a law saying that yes this is ok and good enough.

Problem solved.


Because this is not law in terms of billy having stolen a bushel of apples, and the expert is not called on to evaluate the value of the apples in order to determine whether billy is below or above the line for a class 3 misdemeanour.

The statutes regulating agencies are generally broad signposts, giving the agency a mission statement and a direction but leaving it a large latitude to implement it and decide on the details. That latitude has a legal implication since the agency is generally responsible for setting and enforcing standards.

The Chevron Deference is the legal doctrine that since congress delegated its power to the agency as matter and implementation experts, the agency's policy decisions should be deferred to so long as:

- it's legally ambiguous aka congress has not answered the precise issue themselves

- it is a permissible construction of the statute

The entire point of the chevron statute is that it's not up to the judicial branch to set government policy, and if a problem is a legal void then they have no authority, and unless and until congress makes a specific decision the agency does.


The courts are HIGHLY ideologically divided.

Take a look at the recent Murthy verdict and Justice Alito’s dissenting opinion.

The point is to avoid “experts”.


The US is a constitutional republic, not a dictatorship of experts. Go to Singapore if you want that.

What I find funny is how the court is simply asking Congress to do their job - be clear in the intent of how laws should be executed. None of this "well, I'll leave it up to unelected bureaucrats to decide" and people think this is somehow a bad thing.


> "well, I'll leave it up to unelected bureaucrats to decide"

This is not *at all* related to what the Chevron defense is about.


It absolutely is.

"is a legal test for when U.S. federal courts must defer to a government agency's interpretation of a law or statute."

The idea Congress could pass a law "you can't pollute", and then a all of the legal details behind it aren't actually a part of the law, but rather "administrative decisions" by unelected state apparatus is a run-around of the system.

Congress can still pass such laws, and bureaucrats can create rules. The only difference is now the courts can overturn their interpretation.

How is that not a good thing?


Because congress cannot predict which new chemicals will be invited. They cannot act quickly enough to actually adapt to realities of the world today.

Is CO2 a pollutant? Who decides? Congress or scientists? Judges or scientists?

Now do that for every tiny detail of every part of every law.

It is computationally intractable to write laws specifying every possible scenario and exactly how an agency should act.

I don’t think you realize that these laws were passed with the understanding that agencies would fill in these gaps. Congress wanted these agencies to make these decisions at the time these laws creating said agencies were passed.


It looks like the Court may inadvertently cause substantial delays in implementing projects due to the fear it might instill in bureaucrats.


> due to the fear it might instill in bureaucrats

Bureaucrats living in fear that the laws they pass might be held up to scrutiny?

That sounds like a good thing!


But, this decision didn't take those powers from Congress. It took those powers from federal agencies. Congress empowers the agencies, yes. But, Congress also deferred any technical decisioning to the agencies. Those agencies are filled with actual experts who are fully committed to their field. Now, the court just said that those experts aren't the right place to enforce anything but judges are.


These could easily by Donald Trump's experts soon. And if so, will you hold true to this line of reasoning?


These judges need to face election like most judges, and we need more. I agree.


>Personally, I would trust the nations top lawyers more than most of the congress members we have. However, it doesn't take much imagination to see the new issues that could arise)

Good luck with this.

At least these corrupt politicians come to face the music every four years.


> because the large group of politicians can't get their act together and pass well-reasoned and descriptive laws

How do you figure? This ruling says that Congress must be domain experts in every area, and agencies must merely implement the specific policies that Congress dictates.

Is that even possible? For anyone? Sure, Congress is dysfunctional but so what? This new regime is unworkable, and it doesn't matter if it's dysfunctional politicians or "top lawyers".


People on this thread are talking as if this decision stops Congress delegating powers to the executive, or the executive drafting laws for Congress to pass. It clearly does neither.

It's actually constitutionally entirely reasonable to demand that lawmakers are the people who make law, because there's no specific reason to assume that the volume of laws should naturally drown the people responsible for them. But even if you do assume that, nothing in this judgement would restrict the volume of laws passed in any way. It's just not about that at all.


The "volume of laws" required to regulate a complex modern society is far greater than that required for the US 200+ years ago. Thats why successful nations use rule-making agencies to regulate commerce, environmental protection, workplace safety, etc. Expecting the legislature to do it all is just not going to scale - which I suspect is the objective. The people behind these decisions want an overloaded, ineffectual legal system because that creates the best conditions for unrestricted accumulation of wealth and power.


I think you're missing the ideological motivation. It's all about ensuring a healthier system of checks and balances. When courts are forced to defer to unelected bureaucrats, they serve basically no purpose - yet our entire legal system is supposed to be predicated on checks and balances at all levels. By returning the ability of courts to hear and legally judge the merits of law, at their discretion, you help maintain an overall healthier system of checks and balances.

It all comes down to centralization vs decentralization. In a completely decentralized system you will never have an amazing outcome, because there will always be plenty of people doing stupid things - this includes judges. Yet you will also never have a horrible system, for basically the same reason - there will always be plenty of people doing 'smart' things. By contrast, centralized systems can yield a complete utopia under the oversight of socially motivated, intelligent, and highly capable leadership. Yet they can also yield the most unimaginably horrific dystopias under self centered, foolish, and incapable leadership.

So which does one prefer? In the end I suspect this is one of those issues where we all think other people think the same, but they most certainly do not. I personally could not imagine anything other than a system decentralized, to its greatest extremes, in every way imaginable. Because if I look at the political types of modern times "socially motivated, intelligent, and highly capable" are not generally the first words that come to mind.


> The "volume of laws" required to regulate a complex modern society is far greater than that required for the US 200+ years ago.

I'm not going to get into debating this directly, but please be aware that arguments about the complexity of society are ideological in nature. It's not a simple factual matter on which there's widespread agreement. Many conservatives don't even agree with the premise that society has such a thing as complexity, or if it did that there's a higher level today than in the past.


Excellent. Deregulate then. That's the desired effect of this anyway.


The desired effect is to break the federal government so states that want to e.g. pollute the environment and leave the poor uneducated can do so without interference.


Congress people are supposed to hire and listen to domain experts in the field they legislate on.


Congress could hire their own experts instead of having them work for the president.


But that means they would never be done with any law. Rather than creating the EPA in the 70’s and funding and authorizing it to do its thing, every session of congress would have to consider every topic that comes before the EPA every year.

It’s unworkable. And that is the goal.


but that’s better than an unelected group answering to the president coming up with rules on their own.


This might be a cynical view of things, but I think it's planned, rather than a happenstance result of dysfunction. Gosh gee Willikers, the fellers in congress just can't get anything done ¯\_(ツ)_/¯

It's no coincidence that Republicans simultaneously obstruct congress AND have a well-oiled machine to get their political allies on the bench. The playbook is like this:

- The Federalist Society establishes a pipeline of ideologically consistent judges. From law school to the supreme court.

- Congress blocks anything and everything on the legislative, so that any actual new change to the laws of the land come from new interpretations by the courts.

- This bloc in the lower courts works to bubble up good cases when they come, to get them before the higher courts.

- Every time there is a Republican in the executive, they appoint as many judges as they possibly can from this ideological bloc [1]. This ensures that a good case, when it comes, has a clear path from the bottom (local) courts to the top (supreme) court. The merits of appointees do not matter in the selection process - only a pledge of ideological fealty.

This project has been actively working for decades to change policy. There is nothing like this on the other side of the aisle. These are lifetime appointments. You cannot win on "good faith" against tactics like this. "Good faith" is insisting that the Judicial is "not political," it's not stepping down when it's politically opportune to do so.

[1] "At the 2018 Federalist Society gala, Orrin Hatch, the former Republican senator from Utah, declared, to the crowd’s delight, “Some have accused President Trump of outsourcing his judicial selection process to the Federalist Society. I say, ‘Damn right!’” https://www.nytimes.com/2020/05/20/opinion/trump-judges-fede...


Simple, no-fuss self-hosted server software should really be Rust, or Go / C++ if needed.

All three of them allow you embed the UI assets (media, JS, CSS) into the binary and all three work great with key/value stores (badger, leveldb, rocksdb, etc..) or SQLite.

There is no install. No setup. No packages to download first. Just a simple binary that respects OS signals, has crazy good throughput, and uses so little memory that your router can run it.

Please, consider moving your JVM/Node.js/Electron project to one of these as a chance to jump into really performant software.

(There are also a lot of RSS servers written in Rust/Go/C on Github: https://github.com/search?q=rss+host+language%3AGo+language%...)


This one is written in Go. The front end in Svelte is built into static files and served by Go. The docker container just makes it easy to build but they do distribute a single static binary


Node.js / PHP / dotnet / JVM projects can be bundled to a single binary file.

Sure, the binaries are bigger, and they cannot run on routers, but you can easily run many of them simultaneously on RaspberryPi, which is usually the bare minimum HW people use to self-host.

Performance wise, difference should be negligible for most use cases, and allows people to write software in the language that's most suited for them and the project.


> Performance wise, difference should be negligible for most use cases

I think you mean unnoticeable (or similar); the difference in performance (memory usage and CPU cycles) is certainly not negligible.


    int sum = 0;
    for (int i = 0; i < n; ++i)
        sum += x[i];
Pretty much looks the same in all C-like languages. I've written that in Java, Go, TypeScript, PHP, etc...

On the other hand, that second 'clever' example always looks different for every stupid language. It's std::accumulate in C++, streams in Java, list comprehension in python, etc...

Clear is better than clever.


One man's clever is another man's clear.

https://web.archive.org/web/20180619022832/http://webdocs.cs...

"The instructions corresponding to a conventional language might be expressed something like the following:

Select an apple from the box. If it is good, set it aside in some place reserved for the good apples; if it is not good, discard it. Select a second apple; if it is good put it in the reserved place, and if it is not good discard it. ... Continue in this manner examining each apple in turn until all of the good apples have been selected. In summary, then, examine the apples one at a time starting with the first one we pick up and finishing with the last one in the box until we have selected and set aside all of the good apples. On the other hand the instructions corresponding to an array language could be stated simply as “Select all of the good apples from the box.” Of course, the apples would still have to be examined individually, but the apple-by-apple details could be left to the helper.

Conventional programming languages may be considered then “one-apple-at-a-time” languages with machine languages being a very primitive form, whereas array languages may be considered “all-the-apples-at-once” languages. In two of the following three sections we shall consider the array languages APL and its “modern dialect” J with an intervening section giving a short discussion of the array language Nial which was influenced by APL."


> Pretty much looks the same in all C-like languages

Because it’s ancient; that doesn’t necessarily make it better or clearer. Look at it like you’ve never seen it before. It has an entire line of boilerplate smack bang in the middle. Sure, your brain filters it out because you’re used to it, but it’s still fugly. And it’s prone to typos/copypaste errors like all boilerplate.


Yes, but it's also not going anywhere.

I don't consider replacing a common loop convention with what amounts to a randomly-generated sentence or two of syntax and letters in each language to be an improvement.


Just the '++i' instead of 'i++' brought my reading that code to a halt and I had to start deciphering if it actually changes the operation of the loop.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: