This is by Edward Tufte. If you haven't had the chance to check out Edward Tufte's other works, in particular, the Visual Display of Quantitative Information [1] then I highly suggest you do. Every time I see a horrible graphic in a research paper, I redirect authors to [1]. It ought to be a must-read for anyone wanting to create a graph. Seriously, if you intend to display information, read that book. It'll open your eyes to make you see the immense amount of waste of space and clutter that people introduce.
It's basically an ode to clear, cutter-less, data visualization. Check out this timetable [2] (horizontal lines: stations, vertical lines: hours, diagonal lines: trains), and your mind will be blown. It's compact, it gives you all the information you need, it can be navigated by your grandma (or your granddaughter) and it likely shows more information than most digital or paper-based system you have ever met, in a smaller format.
That said, I think it is possible my refusal to do cheeky ppt slides with smart art and fill them with graphs of real data instead has stunted my career growth into management.
One problem with both of these takes on powerpoint is they assume it will be presented in person. That's less often the case now. People present more often via teams or zoom and so a lot of the ideas (don't expect people to read and listen simultaneously) are not accurate anymore (half your viewers are audio only, more people get copies of the slides than make the original presentation). Remote vs in person are totally different beasts.
They are effectively unregulated. Most drivers have no clue how to adjust them, and the "modders" replace them randomly with whatever they find is the brightest/coolest. Yeah, you _could_ fine them and claim that the cars are unroadworthy until fixed, but if a rule is not enforced, is it a rule? So, yeah, effectively unregulated, too.
I bicycle a lot and I tell other cyclist that they need to adjust their lights all the time. At least they seem to take feedback. Somehow, drivers think that they, in their multi-ton metal boxes are a band apart, and tend to take zero criticism from anyone outside of their metal boxes.
No, one is actually unregulated, and the other is imperfectly regulated.
> Somehow, drivers think that they, in their multi-ton metal boxes are a band apart, and tend to take zero criticism from anyone outside of their metal boxes.
I can't imagine, with such a homogenising, negative attitude towards a group comprising millions of people, why they might not listen to you.
Publishing in Academia is a scam. Nowadays everyone puts their papers also on arxiv.org so at least we can read each other's papers for free. While of course still paying the fees to these publishers who are doing nothing but messing up the PDF (I have to fight them to fix the mistakes they add every time a paper is published), while claiming to do a value-add, which happens to add value to nobody but their own pockets. It's a scam through and through.
Of course one has to examine why this system is still in place. And it's mostly to do with policies in universities, where certain journals/conferences are valued more, and changing that is hard, because e.g. Springer happens to own the name. So we all pay millions to Springer, for the use of this name (that we, together, made great, not Springer), and in return, they charge us the privilege of reading the papers that we reviewed, edited, and wrote. It's insane, but it can't be changed as long as universities refuse to change.
So the hard truth is, it's not Springer/IEEE/Nature/etc, it's ultimately, us.
Relatively soon after starting work on my PhD, one of my more-experienced colleagues explained the affect of "impact factor" on academic publishing. Back then I was young and naive, and assumed that at least impact factor itself would be some kind of open system based on freely-available data.
Many years later, I read up on this and discovered Web of Science/Clarivate :(
How is it possible that scientists and academics are gated from the most important metrics based on their own output and by which they measure themselves and are measured by those who fund them?
No it is not. There's nothing in the capitalist model that mandates academic community to maintain a zero-valued-add gatekeepers. It's just an extremely lazy dunk, which happens each time somebody discusses any rent-seeker setup - somebody comes out of the woodwork and proclaims "oh, it's because of capitalism!". In a very very very dumb sense it is - like the reason of crime is that people are breathing. If they didn't they'd be dead, and there were no possibility of them to be criminal. It is this level of lazy and useless logic. Yes, capitalism allows rent-seekers to exist. But it in no way mandates their existence - a model without rent-seekers is as compatible - I would say even more compatible - with capitalism as one with them. Just don't make this kind of lazy dunks anymore, it really adds nothing to the problem.
To avoid the rent seeking you need a state that will enforce laws that prohibit the rent seeking process and revert it when it has formed. This is not compatible with free market capitalism in abstract (being against the freedom of capitalist agents), and in practice it cannot be done because the capitalists will use political power to stop it.
It is one pissible solution - just as one possible solution for theft is abolishing private property. If there's no property, nobody could steal anything. But it's not the only solution. There are many other ways - such as not employing the services of rent seekers, for example - that do not require government involvement. In some markets, this solution is blocked - usually by, guess what, goverment regulations - but as far as I can see, no goverment forces academia to elevate Elseveir to its pedestal.
In this case, it seems close to a prisoner's dilemma.
That would make the researchers the prisoners and Springer the jailer in this analogy.
All researchers are incentivized to defect to the jailer(s)/private publishers until they know that there is a critical mass of prisoners willing to make a prison break/switch to open access journals.
Honestly, you have an idealized view on capitalism.
It's still the most productive system humanity has ever used at scale, but capitalism favors monopolies, cartels and every other anti-competitive behavior you can think of.
That's why we have regulations against such behavior.
Even if - as it turns out- these regulations can still be weaponized by bad acteurs to ultimately strengthen their hold on markets
Yes, and my point was that the capitalistic ideal does not mean fair competition.
Because capitalism inherently favours anti-competitive behavior. If it didn't, we wouldn't have had to pass legislation to outlaw it.
Quoting "not real capitalism" as am argument is at the same level as saying "we just didn't try real socialism yet". That's technically true, too. And we likely never will.
If you truly believe that capitalism is the best way to "live in free and democratic countries", then you should welcome what Elsevier and others are doing, because that is a direct consequence of their "freedom" to pursue profits.
No I should not. That's like saying if I support free speech, I must welcome lying and insulting others. Supporting free speech means allowing people to speak without being persecuted, but that does not mean I must value all speech equally. Both myself and the society still can pass value judgement and value different kinds of speech differently. Same with business conduct - the fact that this conduct is not explicitly criminal does not in any way mean everybody should "welcome" it. There is a wide area between criminal conduct and welcome conduct, and the society and the culture has appropriate means to regulate it. If the academic institutions and the scientists would not value publication is Elsevier journals so much, and would not buy their subscriptions, Elsevier would not exist. It is not because Elsevier is doing something criminal, it is because people decided to behave in ways that allow Elsevier to rent-seek. They can change this behavior, and they absolutely do not need to join the Communist party for that or welcome Elsevier. Those aren't the only choices.
> people decided to behave in ways that allow Elsevier to rent-seek
Your liberal ideology results in a confusion about what it means to rent-seek. This is possible only if people have no way to escape the rent. Elsevier and other companies do this by restricting the freedom of readers, since the publisher has a monopoly of access to scientific publications. It is not a matter of user behavior, since scientists cannot choose to ignore published research. The only other option available is breaking the law.
No, scientists in general don't choose the journals they publish on. They publish in the journals that accept the kind of research they do and frequently there is no open access option. Even if there is, your paper may not be accepted there, so you need to apply to the next available option.
Journals are not some natural resource that is only found in certain places but not others. People create journals. With current technology, a barrier for establishing a journal is quite low. Nothing prevents people in academia from creating journals and from making them open access. If they prefer the easier option - using existing structure with gatekeepers and rent seekers - it's certainly not capitalism's fault.
> If they prefer the easier option - using existing structure with gatekeepers and rent seekers - it's certainly not capitalism's fault.
You must be joking. Academics already have huge amounts of work just to stay afloat in their fields. Now you're accusing them of not using their precious time to create new journals, so capitalism can save face. It is just nonsense like all nonsense coming from people who subscribe to capitalist ideology.
I never said it's the best, it's actually pretty bad at it (and if you re-read what I've written, you'd see that I consider Capitalism to be a form of totalitarianism). It's just arguably miles ahead of the alternatives that currently exist…
If you truly considered capitalism a form of totalitarianism, you wouldn't be advocating for it, nor suggesting that people who love democracy would be interested in such a system.
Maybe it seems nonsensical because you didn't make the effort to make sense of it? You are interpreting my comment literally in the opposite way of what I'm saying which kinda baffles me because in reality we are (mostly at least) in agreement on the topic!
As an academic, I agree with almost everything you say -- but I wouldn't blame policies in universities. As much as I hate all the bureaucracy, I can't blame it here.
Academics are periodically called upon to pass judgment on other academics. It's an unsavory part of our job, but given that there are fewer jobs, less grant funding, etc. than the number of strong applications, it's a necessary evil.
To the best we can, we try to evaluate their research record directly. But it is maddeningly difficult to evaluate work even slightly out of your field, and so journals serve as a signaling mechanism.
And here I agree again with what you say: we are paying millions to Springer, Elsevier, etc. for the use of their names. ("Ooh, this person published in Inventiones Mathematicae!") Which we we made great.
As much as I despise this system, if you believe that universities can change this, at the level of policy, I am very curious to hear what you propose.
> As much as I despise this system, if you believe that universities can change this, at the level of policy, I am very curious to hear what you propose.
MIT did not renew their contract with Elsevier in 2020, a major reason being their inequitable profit model, and refusal to honor open access agreements. They have a postmortem saying the loss had little impact to their researchers.
How about that for a policy change?
> we are paying millions to Springer, Elsevier, etc. for the use of their names.
As an academic researcher, you are (or your institution is) paying them millions in publication and subscription fees so you can keep your job. Publish or perish.
>MIT did not renew their contract with Elsevier in 2020, a major reason being their inequitable profit model, and refusal to honor open access agreements. They have a postmortem saying the loss had little impact to their researchers.
This "fact" about MIT cancelling the Elsevier subscription is often cited but in isolation, it's misleading because it makes seem like MIT students and faculty don't even need Elsevier articles. That's not true.
MIT in providing some other access methods to the same Elsevier articles for their researchers -- at the cost of some extra inconvenient steps -- is actually proving the opposite of the anti-publisher stance: The Elsevier publisher's articles are still valuable to us.
It's the subscription they cancelled and not the articles.
> It's the subscription they cancelled and not the articles.
Correct. Before the UC system also cancelled their subscription with Elsevier they reported paying $11 million annually.
> The Elsevier publisher's articles are still valuable to us.
Yes, but not $11 million/year with a 3 year lock-in. UC reported (at the time of ending the contract) that they have a perpetual license to ~95% of relevant work on Elsevier, so that $11 million/year went to access 5% of Elsevier's library.
What we do see is publishers shifting to open access (OA), which appears to result in lower Uni costs, but shifts the expense burden to researchers. Researchers in the UC system are now asked to use grant funding to help pay OA APC fees.
> As an academic researcher, you are (or your institution is) paying them millions in publication and subscription fees so you can keep your job. Publish or perish.
This ultimately sounds contradictory to your comment about MIT. It seems that by not renewing the Elsevier contract a university would have more funding for jobs?
Could you explain the contradiction you are seeing further?
Cost cutting and increased personnel funding are not related. Just because MIT library is saving millions by cutting a publisher agreement doesn't mean those savings will be directed towards increased staff.
In what way? I meant freely accessible journals, of course
(making journals, or "journals", of their own, would probably cost much less than the subscriptions they're currently paying)
Sounds like a coordination problem? Couldn't university departments sign pledges that they'll stop using those journals if N peer institutions in their country do too?
> which happens to add value to nobody but their own pockets.
While publishers as they exist now are not necessary for this, the publishing process does typically incorporate peer review which has significant value. I agree that things need to change, but I don't think it's true that zero value is added by publishers.
> does typically incorporate peer review which has significant value.
Significant value which is given gratis by said peers, which journals use to boost their reputability and, by association, their profits. Publishers are profiting off of free labor from subject matter experts. Even more disappointing is this free labor is viewed as a right of passage. Don't forget that the author spent hundreds to thousands of dollars to access these unpaid peers.
Publishers are increasingly well-known as scammy. It's why MIT ended their Elsevier contract, and why many other R1s are following suit.
Also don't get me started on the dubious quality of peer review in todays "Publish or Perish" climate.
I agree that the value is primarily given by the peers. However, someone needs to coordinate the process. That said, while I can understand viewing it as free labor, it is often (indirectly) part of the job description of faculty members.
In many fields, particularly those that rely on conferences over journals, peer review is organized by others, not the publisher. So here they are truly doing nothing but hosting the papers behind their pay wall.
Peer review and editing is done free by academics. Publishers "facilitate" this by having horrible unusable sofware platforms from the 90's for this. These are actually worse than nothing, as review would be a lot easier to organize and conduct via e-mail.
Publishers don't add value, they subtract it.
People probably have hard time undersanding this because the system is so absurd and so obvious racket they don't think such can exist.
I am an academic who spends a nontrivial amount of time reviewing papers. My experience has been that the platforms used for submitting reviews are perfectly fine. Often outdated, sure, but I've never really found this to be a significant barrier. I would personally find it more challenging to manage reviews via email.
For reviewers they are usually least bad, but still bad. For example Manuscript Central still requires pop-ups and can be more or less impossible to use with mobile devices. It also has separate login for all journals and password rules that makes it very common for people (including me) to have to reset the password every time they need to log in.
For editors they tend to be a lot worse. E.g. with Editorial Manager adding reviewers is really painful and the search is totally useless. The process to add and be added as a reviewer takes multiple messages in a quite confusing process. Decision letters are sent with bizarre template hacks that are really easy to mess up.
Some submission systems still require formatting of images etc to some arcane formats like tiff and eps. Or to have figures and captions as separate pages. These cause significant work for submitters and are a disaster to review.
Compared to typical enterprise systems they could be even worse, but I'd say still worse than average in that class too.
Don't know if these are a significant barrier. For me they have been and I've resigned as an editor due to the unusability. But I find that they easily cause enough loss in time and nerves of authors, reviewers and editors to be of negative value.
I will admit that MC is pretty annoying. Particularly the issue of having separate login/passwords for all journals. I haven't been in the position of Editor at this point, so I can't speak from that perspective.
I haven't yet run into submissions systems as arcane as those you mention in terms of format requirements, but that does indeed sound very messy and I hope I never see it.
It could enable to have a decentralised web of trust of reviewers. In the same vein it is used to verify identities, you can use it to assess the reliability of a reviewer. A reviewer could sign another reviewer's key with the confidence it has about their reviewing.
The publisher does often assist with coordinating the peer review process which is a nontrivial task. I'm not saying this in itself necessitates everything else surrounding the publishing ecosystem, but I don't think it's accurate to say the publisher does not contribute.
In my editor experience the assistance is minimal at best. Editors (almost all upaid) assess suitability of manuscripts, find the reviewers and handle all communication.
Yes, we should use LLMs to translate human requirements that are ambiguous and have a lot of hidden assumptions (e.g. that football matches should preferably be at times when people are not working & awake [3]), and use them to create formal requirements, e.g. generating SMT [1] or ASP [2] queries. Then the formal methods tool, e.g. Z3/cvc5 or clingo can solve these now formal queries. Then we can translate back the solution to human language via the LLM. This does not solve some problems, e.g. the LLM not correctly guessing the implicit requirements. But it does go around a bunch of issues.
We do need to pump up the jam when it comes to formal methods tools, though. And academia is still rife with quantum and AI buzzword generators if you wanna get funding. Formal methods doesn't get enough funding from Academia. Amazon has put a bunch of money into it (hiring all good talent :sadface:), and Microsoft is funding both Z3 and Lean4. Industry is ahead of the game, again. This is purely failure of Academic leadership, nothing else.
> Yes, we should use LLMs to translate human requirements that are ambiguous and have a lot of hidden assumptions (e.g. that football matches should preferably be at times when people are not working & awake [3]), and use them to create formal requirements
Why would an LLM trained on human language patterns be good at this? If anything, I would expect it to follow the same pattern that humans do.
It doesn't need to be good at solving the problem. It only needs to be good at translating the problem of "If the unknown x is divided by 3 it has the same value as if I subtracted 9 from it" into "x/3 == x-9 && x is an Real number". The formal method tool will do the rest.
Note that if the LLM gets the implicit assumptions wrong, the solution will be unsatisfactory, and the query can be refined. This is exactly what happens with actual human experts, as per the anecdote I shared in [3]. So the LLM can replace some of the human-in-the-loop that makes it so hard to use formal methods tools. Humans are good at explaining the problem in human language, but have difficulty formulating them in ways that a formal tool can deal with. Humans, i.e. consultants, help with formalizing them in e.g. SMT. We could skip some of that, and make formal methods tools much more accessible.
The problem is not that writing input for formal method tools is tricky syntactically. The problem is that it is hard to produce the actual semantic content of the input. Humans don't need help with that, especially not the kind of human that is capable of authoring that content. It's much more technical than stuff like "Make me a website with a blue background" or some crap like that. The potential for an LLM to mistranslate the English input is probably unacceptable.
Correction, Lean4 [1] is sponsored by Amazon, the lead developer, Leonardo de Moura is at AWS now [2]. He was previously at Microsoft Research [3]. Meeting him is a real ride, I only had the chance to talk with him once.
I mean, I wish. I have met these so-called giants of the field when I was at conference (they had a yearly big-brains meeting the same time, same place). I bet they talk about classic stuff because otherwise they wouldn't get funding. Quantum mechanics and using quantum computers for quantum problems actually would have convinced me. But who cares about me. What they need this is this thing called MONEY and that doesn't come with intellectually interesting problems -- it comes with overinflated claims over things that the committee understands. So classical problems it is. Can't blame them playing the game, but at the same time, I wonder how they look into the mirror at night.
To be fair, this is what academics in basically every field do.
If you prove a useless result about an exotic construction in your niche topology, you mention that recently topology has been successfully applied i.e. in data science. If you study some pathological convergencs properties if unheard of stochastic processes, you cite Black-Scholes equation and remind the reader of its importance in finance.
Random k-SAT is useless. I won a number of awards at SAT competitions over the years -- not in random k-SAT, they don't even run that track anymore [1] And I'm pretty damned certain whatever that paper is saying, could be fixed with classical algorithms, if anyone cared about random k-SAT. But nobody does, for a good reason. I could go on ranting about quantum, but I'll stick to the one thing I actually know about, SAT solving.
I think there are some really cool things out there, if you wanna dump research money into. For example SMT, model counting, symbolic execution, automated invariant finding, CHC, BMC, function synthesis, programming language research.
Academia will one day wake up, and realize that they've been awarding tenure to people who have done nothing but a quantum buzzword generator, while the people working hard at important topics are left behind. Like the dude (Victor Ambros) who recently got the Nobel only to be previously declined tenure at Harvard. Big fail.
By the way, if you truly care about NP-optimization, e.g. MaxSAT algorithms, there's a lot of good work being done, just check out [1]. It's fun, and useful. You could make >$1B just by slightly improving global logistics via such algorithms. Yes, scalability can be an issue, but it only takes some work to cut the problems into chunks, and do local optimization at each level, rather than total global optimization. Yes, it won't be a global optimum, but likely significantly better than what's out there right now. They already use these algorithms for e.g. train and bus schedule optimization.
I fell in love with optimisation problems but haven’t played with them in a while…
What are some books to read more about non-linear optimisation that’s also non-machine learning (I’ve dabbled a lot with metaheuristics and genetic algorithms) but haven’t implemented a SAT solver (only played with what Prolog gives you)
Cadence is a good one. There are also bus/train schedule optimization startups/companies. AWS is also hiring in this field, a lot, but I wouldn't recommend it. Even though many people there are very good, and I respect some of the individual people there very much.
Geoff Hinton was denied an academic position at the University of Sussex's CS department where he had done postdoc work (That department is now 'famous' for consciousness studies and integrated information theory https://osf.io/preprints/psyarxiv/zsr78. I bet they are kicking themselves now ...)
> "Academia will one day wake up, and realize that"
Charlie Munger famously said, "Show me the incentive and I'll show you the outcome" ...
> Geoff Hinton was denied an academic position at the University of Sussex's CS department
These kind of anecdotes are fairly common I believe. Understanding anyone's academic potential is enormously difficult, and the competition is fierce. Hindsight is 20/20 and whatnot.
Other than cryptography, is there any real-world value in solving random problem instances of NP-complete problems (at least when average case approaches worst case, based on the parameterization of the problem)? Presumably these are instances that do not have any underlying mathematical structure as a truly random problem instance is Kolmogorov-maximal, and thus even if you solve the problem via brute-force, the result still isn't useful for any predictive purpose.
Other than cryptography? Like, you see a use-case for it there? Please do educate me! IMO there's nothing there. It's a barren landscape. The desert is more alive.
Haha, I was more so meaning that cryptography depends on the actual existence of hard problem instances, which appears to be the case but hasn’t been conclusively proved.
I'm curious, which solver did you work on? And yeah, I've been working on formally verifying bitblasting in Lean (https://github.com/leanprover/lean4/pulls?q=+is%3Apr+author%...), and it's genius --- the algorithms, the reductions, the heuristics, it's all so deep.
Search And Rescue (SAR) is sometimes VERY political. We build long-range RC airplanes to help find boats in distress at sea on the Mediterranean [1]. As you might expect, we could do 10x better, with less resources, if the powers that be wouldn't make it impossible to e.g. launch from an island and return to an island. So we launch from a boat, because it's not national territory and they can't make it impossible.
Shameless Plug: If you wanna join, let us know. We definitely would benefit from better on&off-board image recognition. But there are many, less buzzword-y, challenges as well: designing, building & testing airplanes, training pilots, delivering planes & batteries (challenging due to Watt-Hour restrictions), remote issue debugging, etc.
In case it needs to be spelled out, the problem is Europe has a maritime duty to rescue [1]. Once rescued, it has a duty to consider asylum and take care of the migrants/refugees [2]. Essentially, once SAR identifies a migrant vessel in distress, the closest country is forced to admit them.
The duty to rescue means "a state cannot legally prohibit its vessels from rescuing persons at sea." This technically covers search. But some Mediterranean governments have taken the view that if they don't see the migrant vessel sink they don't have a duty to rescue.
Rafts leaving Libya are incapable of reaching Italy on their own and are scuttled when they see a ship that could rescue them.
The expected value of this gamble is higher when search efforts are high. Migrants would not take this gamble if they were sure it would not work, right?
Honestly, I'm very excited about zig. Lean and mean, and it's written by someone who isn't sitting in an ivory tower, not caring about actual usability. It wasn't designed by a team of PhDs (like, e.g. Haskell), while it's clearly inspired by very useful ideas in e.g. Rust, Haskell, etc. I think it'll be very exciting to write code in zig.
Similarly excited about Zig. While its memory safety guarantees may not be as comprehensive as Rust's, I hope we'll one day see Zig in the Linux Kernel. I suspect the old-time kernel C programmers may have an easier time with Zig than Rust.
Once zig compiles Linux there are basically 3 compilers that can do so gcc, clang (llvm) and zig (less and less llvm).
I expect there to be good tools to port C code to zig (much hard for C->Rust), especially with the advancements in LLMs lately. I would not be surprised if that would result in a zig-linux code base in the coming 5 years. Sure the C based kernel may be the hot bed for innovation for years to come.
I'm willing to cop the slack from the Zig brigade for this take, but I'll get excited for Zig again when I'm allowed to turn `zig fmt` off in e.g. vim or VS Code.
It leaves me with a sour taste in my mouth when stylistic preferences are made mandatory; it is disrespectful of the coders for whom the language is a tool. It can also be a canary for deeper issues around community engagement and openness to different viewpoints (a problem for Zig, e.g. [0]).
A business with code uniformity requirements is more than capable of running a linter, and for my weekend projects, I don't give one toss about anyone's stylistic preferences but my own. Either Zig is a language for grown-ups, or it isn't. And if I'm going to be forced to code a certain way, why not just use Rust and get free memory safety out of it too?
2. Personally I'm happy Zig has a BDFL. Even though that #16270 issue has some controversy, it's clear Zig has a consistent direction and goal. It's not design-by-committee and doesn't get stalled for years on the tiniest of issues while the community bikesheds for eternity.
Can I? How? There is no setting I can see in e.g. VS Code to disable format-on-save. (Not trying to sound snarky here, I'm legitimately open to advice on this.)
> it's clear Zig has a consistent direction and goal. It's not design-by-committee and doesn't get stalled for years on the tiniest of issues while the community bikesheds for eternity.
Anyone can have direction. 'There, towards the copse of stinging nettles!' The tricky part is figuring out a good direction, which sometimes requires pauses and stakeholder engagement. You know, that thing that the 'move fast and break things' crowd loves to deride as 'bikeshedding'. :)
In as far as Zig's direction appears to be 'we will rewrite LLVM, but better-er!', I do worry. I'd hate for Zig to end up like Elm.
editor.formatOnSave will control it for all files. You can also use editor.defaultFormatter to change which formatter is used. You can set these for all languages or for specific languages[1].
Regarding competing with LLVM: I'm happy to see others try. Cranelift is a nice example of finding a niche that LLVM isn't filling, and I'm glad people didn't prematurely give up simply because LLVM already exists. Zig's goal is definitely ambitious, and there are risks. But in principle I'm happy to see someone pursuing these lofty goals because that's what ultimately creates incremental progress in the industry. If Zig fails... well, I'd still be happy they at least tried.
> editor.formatOnSave will control it for all files. You can also use editor.defaultFormatter to change which formatter is used. You can set these for all languages or for specific languages[1].
Ah, I see. The Zig module silently overrides the user's editor.formatOnSave setting by default; this is what I was missing. I need to specifically override Zig's override:
"[zig]": {
"editor.formatOnSave": false
},
Thank you!
> Regarding competing with LLVM
In theory, I have no problem with this either, but in practice, this is a big gamble for Zig as a whole. A language lives and dies on perceptions, and currently Zig's killer feature is that it is an easy slot-in incremental replacement for existing C/C++ codebases. This plan intends to break that by default. (I realise AK has walked that back somewhat, it will remain an option, etc - but considering this whole thread is people telling me formatting must be strictly mandated, surely you'll grant the power of defaults and the risk in breaking them.)
Ultimately, I am open to being proven wrong, but I've seen some of the same patterns in Zig that have broken other newlangs. Killer features that go under-appreciated by the leadership, a focus on purity at the expense of practicality, 'trust the plan', etc. My fear would be that the hype tide will go out, as it always does, and Zig will be left without any obvious niche, somewhere mid-LLVM-rewrite. But hey, we'll see. I wish AK the best of luck with it.
The primary justification for "you can have any color as long as it's black" approach to coding style & formatting is precisely that the language is a tool, not an art project. Having a single standard well-defined style does wonders to prevent bikeshedding when teams adopt the tool, which is why this approach is increasingly popular (e.g. Black in Python).
And I don't think you can meaningfully compare this to constraints imposed by Rust, which aren't about where to place a curly brace etc, but about not being able to (easily) model some data structures and algorithms. You could argue that both represent a form of tax on your freedom as a developer, but even if so, it's an orders of magnitude difference.
> The primary justification for "you can have any color as long as it's black" approach to coding style & formatting is precisely that the language is a tool, not an art project. Having a single standard well-defined style does wonders to prevent bikeshedding when teams adopt the tool, which is why this approach is increasingly popular (e.g. Black in Python).
I have no problem with standards. There are times where standards are useful. The thing about standards is that they can also be ignored where appropriate. It's notable no one is seriously pushing for Black to be made mandatory for Python, for extremely obvious and sensible reasons. Also, 'increasingly popular' is doing some heavily lifting in that argument. The vast, vast, vast (vast!) majority of Python code will never ever use Black, and that is fine.
A language, as we agree, is a tool, and it is a poor tool indeed that refuses to lend itself for use in creative ways.
> And I don't think you can meaningfully compare this to constraints imposed by Rust, which aren't about where to place a curly brace etc, but about not being able to (easily) model some data structures and algorithms. You could argue that both represent a form of tax on your freedom as a developer, but even if so, it's an orders of magnitude difference.
Very different - Rust's constraints actually serve a purpose beyond merely enforcing stylistic conformity. If I am to take on the added cognitive load of coding a certain way, I might as well actually get something out of it.
It's not like the Zig compiler will refuse to compile unformatted code, either.
And the vast majority of Python code was written before Black was a thing. However, once it appeared, it spread through the ecosystem very quickly. At this point I wouldn't be surprised if most people using Black don't even know that they do so simply because they write their Python in VSCode, which suggests Black (and will install it for you) if you try to do Format Document or enable format-on-save.
> It's not like the Zig compiler will refuse to compile unformatted code, either.
I mean... the use of tabs or LF+CR / CR line endings was a compiler error, last I checked. So, yes, it is exactly like that. And this was a deliberate choice to introduce friction for people who don't hew to the author's stylistic preferences.
> However, once it appeared, it spread through the ecosystem very quickly.
Uh huh, sure, a trendy hipster linter that appeared in 2019 is now so standard that Python code is nigh unthinkable without it. We marvel in the museums at what Python used to look like! There will definitely not be another trendy hipster linter in a couple of years with totally different opinions! :P
You're implying I'm not a grown up, but characterising a language created in 2016 - current version zero point something something - as immature is 'extreme' to you? C'mon now.
Zig is immature. That's not some conclusive judgment against its utility now and forever, it is simply a function of the amount of times the Earth has orbited the Sun since its creation.
Given how Zig is positioning itself vis-a-vis C, Rust, etc., it is somewhat baffling to me how little respect it seems to have for the opinions and capabilities of its end users.
People who want their hands held have better choices than Zig, and people who want the freedom to code how they wish... also have better choices than Zig. I think Zig is onto something, but hype cycles always fade, and if Zig hasn't matured by that point, there won't be any obvious niche for it to occupy.
Formatting is a very weird thing to get hung up on, particularly when a language like Go is reaching mainstream (if it already isn't there). It's fine not to like the chosen formatting or the decisions made upstream but that comes with the territory. It just means that languages like Go, Zig, and others following this trend are probably not for you and that's okay.
> how little respect it seems to have for the opinions and capabilities of its end users
I think you misunderstand the objective here. As I understand it, it means that all code written in the language looks the same. This significantly improves readability and as we all (should) know, code is read much more than it is written. It's not about deducing the capabilities of the end users but more about reducing the cognitive load while having to read or write in the language itself.
If you still decide to write in one of these formatting-defined languages, it would probably be best to keep the repository and/or project private to avoid the barrage of "ran fmt on the code" pull requests sure to crop up. It would save all parties from a lot of frustration.
I have no problem with style guides or linters. I have a problem with a compiler that deliberately emits compiler errors on the use of \t, just as an example, because the author likes to throw Lego bricks under your feet if you refuse to obey his stylistic preferences.
I could explain where style guides can become a problem - usually in extremely low level code, emulation, legacy interop, etc. - and therefore need to be relaxed or ignored, but this would divert us onto a discussion of stylistic preferences, and that's not my chief concern here. My concern is the contempt for people's different needs and use cases, including edge cases, which is indicative of immaturity.
> If you still decide to write in one of these formatting-defined languages, it would probably be best to keep the repository and/or project private to avoid the barrage of "ran fmt on the code" pull requests sure to crop up. It would save all parties from a lot of frustration.
That's a rather patronising comment. I feel no frustration closing low effort PRs, and I'm honestly somewhat amused by this idea of living in terror of a 'barrage' of "I linted your code for you!"s.
You characterized Zig as "not a language for grown-ups" because it enforces a consistent syntax. I was expressing the opposite opinion. You seem to be objecting to a whole bunch of things that I didn't say. I'm just a guy who likes consistent code formatting and good faith arguments.
Coming from Python, and now mostly developing in Go, the uniform style in Go has really helped me familiarize myself with new codebases, especially in contrast with Python's variety of styles.
If you wanna do it in a flexible way that is very easy to use and essentially the future of ZK, use Powdr [1]. Just write your code in rust nostd and be done with it. It's a compiler, basically. Once you use it, you'll never go back to hand-massaging polynomials. It'd be like writing assembly. Sure, some can do it, and it can be fun, but why do it if there are compilers out there to do the heavy lifting for you? :)
You sound like you are routinely doing zero knowledge proofs. To me it sounds like a very niche thing. What kind of application area needs knowledge proofs on the regular? Finance?
How about verification speed? The article mentions that avoiding trusted setup would result is sliver verification speed. Could it also increase proof size?
Exactly. See Sidney Dekker's Field Guide to Understanding Human Error. The posters do (almost) nothing -- other than covering the backside of those who put them up, and doing safety theatre. Looks good, does nothing for safety.
The same author, Sidney Dekker, has a very good book about how to deal with someone like this whistleblower. It's called "Just Culture". Well worth a read. Spolier: It's not to silence them, not this way. You can silence the person by, you know, actually doing something useful. But that requires actual change, and more importantly, a change in attitude. And you need to convince the crowds that you are doing better by NOT putting up posters. You'll be surprised how many people really think the posters help.
It's basically an ode to clear, cutter-less, data visualization. Check out this timetable [2] (horizontal lines: stations, vertical lines: hours, diagonal lines: trains), and your mind will be blown. It's compact, it gives you all the information you need, it can be navigated by your grandma (or your granddaughter) and it likely shows more information than most digital or paper-based system you have ever met, in a smaller format.
[1] https://www.edwardtufte.com/book/the-visual-display-of-quant... [2] https://miro.medium.com/v2/resize:fit:1400/format:webp/0*8zW...