HNHacker News
TopNewBestAskShowJobs

SubjectToChange

709 karma · joined February 9, 2020

submissionscomments
SubjectToChange··on NASA's James Webb Space Telescope faces potential 20% budget cut
I can't imagine there's much overlap.

Just look at the suppliers working on the SLS SRBs and those working on the LGM-35 program, perhaps then you'll see the extent of the overlap. Furthermore, you might want to look into why the space shuttle had the architecture it did, and why space shuttle SRBs were being shipped out of Utah. Large scale SRB manufacturing has been, and continues to be, an enormous problem for the DoD. Hence why wasteful programs like SLS exist.

SubjectToChange··on NASA's James Webb Space Telescope faces potential 20% budget cut
The SLS being a government funded competitor to SpaceX has little hope

SLS was never about being the most practical and/or efficient launcher. It is a pork barrel project, but one with an important role. In particular, it is maintaining vital aerospace industrial capacity. If the US wants things like ICBMs then programs like SLS are a necessary evil.

SubjectToChange··on Practical use of the null garbage collector (2018)
Ariane 501 as well.
SubjectToChange··on Great things about Rust that aren't just performance
>Just from a quick glance: I see he's talking about things like stack overflows and std::bad_alloc.

There are specific scenarios that a major issue, yes. But as the title of the video implies, the problem with exceptions runs far deeper. Imagine being a C++ library author who wants to support as many users as possible, you simply couldn't use exceptions even if you wanted to, and even if most of your users are using exceptions. The end result is that projects that use exceptions have to deal with two different methods of error handling, i.e. they get the worst of both worlds (the binary footprint of exceptions, the overhead of constantly checking error codes, and the mental overhead of dealing with it all).

C++ exceptions are a genuinely useful language feature. But I wish the language and standard library wasn't designed around exceptions. C++ has managed to displace C almost everywhere except embedded and/or kernel programming, and exceptions are a big reason for that.

SubjectToChange··on Great things about Rust that aren't just performance
>...honestly your welcome to implement your own compiler that turns it on by default just like the rust compiler which has no standard because "the compiler is the standard".

The C and C++ standards are quite minimal and whether or not an implementation is "compliant" or not is often a matter of opinion. And unlike other language standards (e.g. Java or Ada) there isn't even a basic conformance test suite for implementations to test against. Hence why Clang had to be explicitly designed for GCC compatibility, particularly for C++.

Merely having a "language standard" guarantees very little. For instance, automated theorem proving languages like Coq (Rocq now, I suppose)/Isabelle/Lean have no official language standard, but they far more defined and rigorous than C or C++ ever could be. A formal standard is a useful broker for proprietary implementations, but it has dubious value for a language centered around an open source implementation.

SubjectToChange··on Fujitsu's Monaka CPU: ARMv9, SVE2, and 3D Stacking
(Apologies for necroing this thread)

Fujitsu actually does sell their A64FX processors. In fact, they are running in one or two European super computers[1][2]. Still, that's not to say that buying them Fujitsu is easy and/or straightforward.

[1]: https://www.hpcwire.com/off-the-wire/fujitsu-selected-to-del...

[2]: https://www.youtube.com/watch?v=yInhWFztvXs

SubjectToChange··on Jupyter Notebooks as E2E Tests
Mathematica notebooks give a glimpse of what Jupyter could be. But I have doubts whether or not Python could ever have something equivalent.
SubjectToChange··on Programming Language Memory Models (2021)
My question: What stops Intel or AMD from providing an opt-in weaker memory model?

Probably for the same reason Intel/AMD doesn't get rid of the rest of the cruft in x86-64, i.e. backwards compatibility. Additionally, there would be issues with Intel/AMD leveraging an optional weak memory model in their chips without compromising the performance of legacy TSO applications. They are probably better off making x86-64 perform best under TSO.

SubjectToChange··on Programming Language Memory Models (2021)
Note that Apple Silicon is TSO.

Apple Silicon supports both Arm's relaxed memory model and Intel's TSO for backwards compatibility. Microsoft is doing the same for Windows on Arm.

SubjectToChange··on Mathics 7.0 – Open-source alternative to Mathematica
“My computer” is not “my work computer”.
SubjectToChange··on Mathics 7.0 – Open-source alternative to Mathematica
?

I’m not going to pay thousands for a commercial license

SubjectToChange··on Mathics 7.0 – Open-source alternative to Mathematica
The numeric capabilities of Mathematica are far, far closer to Matlab's than the symbolic capabilities of Matlab are to Mathematica's.
SubjectToChange··on Mathics 7.0 – Open-source alternative to Mathematica
It isn't that simple. Yes, Mathematica has emphasized symbolic computation since day 1, but it has also had numerical capabilities like NIntegrate since day 1 too. There's no good reason why the symbolic capabilities of Mathematica should necessarily hurt its numerical performance. In particular, Mathematica and Matlab often use the exact same libraries for many numerical operations, e.g. Intel's MKL for many matrix operations or SuiteSparse for sparse matrices. Any inefficiencies in calling out to those libraries between Matlab and/or Mathematica are usually down to a few tweaks.

In the vast majority (90% or more) of cases the performance between Matlab and Mathematica is identical or within the margin of error. And where performance does differ substantially, Matlab isn't always coming out on top. So the question then becomes whether or not your work depends on those particular use cases. In my eyes, the Wolfram Language is fundamentally superior to Matlab. And even if Mathematica/WL lags behind Matlab is some numerical aspects, Wolfram Research will have a far easier time fix or improving that deficiency than MathWorks will have improving the poverty of symbolic computation in Matlab.

Of course, the factors in practical use cases are quite a bit more complex than what I've said above. If you're working at an engineering firm that's already knee-deep in Simulink and various Matlab Toolboxes, then the choice has been already been made for you. And sometimes it's not a question of performance but one of feature parity, e.g. Compile in the Wolfram Language vs Matlab Compiler/Runtime. Also, the complexity of the Wolfram Language is not a benefit for users looking to simply write code and get a result ASAP.

SubjectToChange··on Mathics 7.0 – Open-source alternative to Mathematica
Mathematica is freely available on the Raspberry Pi[1] and most universities have site-wide licenses. The "Home & Hobby" licenses aren't even that expensive, only $195/year for a subscription or $390 for a perpetual license (and only $175 for renewals)[2]. And honestly, for those who are interested in tinkering but can't afford those prices, cracked copies are neither hard to find nor hard to install.

Personally I am quite fond of Mathematica (well, the "Wolfram Language") and I'm happy to pay for the hobby license price. Not only do I think I'm getting my money's worth, but I think supporting mathematical software is a "good cause" to put money behind. Moreover, I've never understood why people like amateur photographers will often spend more on tools like Adobe CC than many programmers (amateur or otherwise) spend on their tools period. Or why someone would spend $20-40+/month on various subscription services only to balk at $200-$400 licensing fees. Then again, I spend more time in Mathematica than I do in almost any other program installed on my computer.

However there is still an important place for (F)OSS mathematical software. As comprehensive as Mathematica usually is, it still has some significant shortcomings in advanced mathematics. In particular, I have a hard time believing it will ever fulfill those more "niche" areas of mathematics for two reasons. First and foremost, the ROI drops off a cliff for more advanced and/or esoteric fields. Second of all, the Wolfram Language already has 6000+ built in functions, so adding hundreds more to comprehensively support of something like Group Theory just doesn't make sense. Sure, they could be supported via packages, but that comes at the cost of performance (no first class support in the kernel) and usability (users have to go out of their way to use it).

Therefore, (F)OSS software like GAP, M2, and PARI/GP serve an important role in "rounding out" the gaps in the wolfram language. In my case, I contribute to FOSS projects an equal amount to whatever I spend on my Mathematica license. Or when monetary contributions to a project are not so straight forward, I try and contribute my time and skills improving them.

To be frank, I don't care much for projects trying to replicate Mathematica's functionality. Of course people are still going to develop and improve them, which at the very least puts some pressure on Wolfram Research to constantly improve basic functionality, but it will probably take one or two decades for said projects to replicate what Mathematica/WL is today.

[1]: https://www.wolfram.com/raspberry-pi/ [2]: https://www.wolfram.com/mathematica/pricing/home-hobby/

SubjectToChange··on SQLite does not do checksums
Major corporations are not paying exorbitant licensing fees to have checksumming enabled by default. In fact, for enterprises running things like vSAN, ECC DRAM, etc, database checksumming is probably nothing more than additional overhead.

Database defaults in general are a touchy topic. Whatever set of defaults are chosen will be suboptimal for almost any serious user. A far more serious issue is figuring out the actual behavior of a database in different configurations. For instance, Oracle's SERIALIZABLE transaction isolation level only offers snapshoot isolation.

SubjectToChange··on Why Safety Profiles Failed
const can be cast away, auto can have some really nasty behavior, constexpr doesn't have to do anything, inline can be ignored, [[nodiscard]] can be discarded, exceptions can be thrown in noexcept functions, etc. Almost everything in C++ can be bypassed in one way or another.
SubjectToChange··on Why Safety Profiles Failed
Yes, absolutely. But it is still easier and more practical for those codebases to write new functionality in a Safe C++ dialect than it would be to use Rust.
SubjectToChange··on Why Safety Profiles Failed
>Why would someone use this new proposed C++-with-Rust-annotations in place of just Rust?

Simply making C++ compilers compatible with one another is a constant struggle. Making Rust work well with existing C++ code is even more difficult. Thus, it is far easier to make something like Clang understand and compile C++-specific annotations alongside legacy C++ code than making rustc understand C++ types. Moreover, teams of C++ programmers will have an easier time writing annotated C++ than they would learning an entirely new language. And it's important to recognize how deeply entrenched C++ is in many areas, especially when you consider things like OpenMP, OpenACC, CUDA, HIP/ROCm, Kokkos, etc etc etc.

SubjectToChange··on Why Safety Profiles Failed
>...I hope the committee ends up making the right call here.

WG21 hasn't been able to solve the restrict type qualifier, or make a better alternative, in over twenty years. IMO, hoping that WG21 adequately solves Safe C++ is nothing more than wishful thinking, to put it charitably.

SubjectToChange··on Why Safety Profiles Failed
Things like web browsers will continue to have millions of lines of C++ code regardless of how successful Rust becomes. It would be a huge improvement for everyone if such projects had a tractable path towards memory safety
SubjectToChange··on Why Safety Profiles Failed
At this point I'm wondering if the purpose of safety profiles is simply to serve as a distraction. In other words, safety profiles are just something people can point to when the topic of memory safety comes up, that’s it. The objectives of the initiative always seemed hopelessly optimistic, if not absurd. In particular, I don't understand why littering a codebase with auto, const, constexpr, inline, [[nodiscard]], noexcept, etc is wonderful, yet lifetime annotations are somehow an intolerable tyranny.
SubjectToChange··on Ultra fast key value store (in C btw)
>dude, trust me
SubjectToChange··on Why and how we’re migrating many of our servers from Linux to the BSDs
Look, I simply highlighted a major user of btrfs. Sorry if you have some complex emotions about them. But for some reason, I doubt you'd say the same thing when someone mentions Netflix using FreeBSD.

>(a) You do not know how or where Facebook use BTRFS

Their engineering team has posted a few of their use cases.

>(c) Facebook probably employ the guy who invented BTRFS and an army of kernel developers on top of that .... how much in-house support do you have for BTRFS ?

Uh, about as much as any other file system? Those changes and improvements are upstreamed to the kernel anyway. It's not like Facebook has some sort of special version of btrfs they are using.

>As far as I am concerned, the fact that they STILL have not fixed RAID5 in BTRFS says everythng you need to know.

As far as I know, the issue with RAID5 in btrfs is highly complex and it would take quite a bit of dedicated effort to make it work. I suppose it's a architectural shortcoming of btrfs. But then again, it's RAID5, a/k/a something only shoestring hobbyists really care about. Hence why no one is bothering to make it work in btrfs.

At the end of the day, btrfs is perfectly fine for home users and workstations. ZFS beats it out on servers, that's fine. Traditional filesystems are not the end-all be-all of storage anymore. No one has made a better ZFS because the industry has moved on to things Ceph, vSAN, AzureHCI, etc.

SubjectToChange··on Type-erased generic functions for C: A modest non-proposal
The problem with ISO C standardization is dealing with absolutely impoverished implementations. Said implementations either object to anything moderately complex or can't be trusted to do it right.
SubjectToChange··on Type-erased generic functions for C: A modest non-proposal
Rust ain't gonna displace C any time soon. For C++, you might have a better argument.

Incrementally replacing C code with Rust is far, far easier than C++. For instance, passing null-terminated strings to Rust code is quite straightforward, whereas a std::string absolutely is not.

C will live for a very long time, but C++ will live even longer. Maybe that sounds absurd, but the fact is that every major C compiler is written in C++, and the rest of the toolchain is moving that direction if it isn't already there.

SubjectToChange··on Type-erased generic functions for C: A modest non-proposal
so yes, c things are being ported to rust, but in situations they would have been ported to cpp.

Not quite. I doubt librsvg would have been ported to C++ if Rust didn't exist. Nor do I believe that C++ would have been allowed into the Linux kernel as readily as Rust currently is, e.g. Android's binder.

Sure, Rust is a small language, but it is making consistent progress and it is only becoming more of a viable C replacement. Of course, C isn't going anywhere and the vast majority of C code is not going to be rewritten in Rust. However, that is normal in the lifecycle of programming languages, i.e. codebases are not usually rewritten, they simply become obsolete and are replaced. Just like Java didn't need to replace every line COBOL to become the enterprise language of choice, Rust doesn't need to replace C everywhere to become the preferred systems programming language.

SubjectToChange··on Why and how we’re migrating many of our servers from Linux to the BSDs
Facebook (well, Meta, I guess) is famously a big user and developer of btrfs. It seems to work just fine for them.
SubjectToChange··on The perils of transition to 64-bit time_t
I think we should start putting details of the ABI in ELF

That basically implies name mangling in some form or another, i.e. good luck trying to convince C programmers of such a thing.

SubjectToChange··on Porting systemd to musl Libc-powered Linux
How is musl special when it comes to interposing malloc? As far as I’m aware, (dynamically) swapping out malloc implementations is a messy business no matter what. Most libc implementations only “support” the behavior in the sense that they won’t stop users from “swimming in the deep end”, so to speak.
SubjectToChange··on Porting systemd to musl Libc-powered Linux
As strange as it might sound, that’s basically what happened.

I mean, let’s assume that Red Hat leadership initiated the systemd project, then we are immediately confronted by a number of problems. First of all, if Red Hat planned to ship systemd with the launch of RHEL 7 in 2014, then why did development on systemd only begin in early 2010? It seems rather irresponsible to intentionally delay development of the new init system for your flagship product, particularly when you’ll be supporting it for the next 15+ years.

Second of all, why would Red Hat hand the systemd project to Lennart Poettering, a developer who was primarily responsible for PulseAudio? Moreover, Poettering was already notorious for being an outspoken member of the Linux community. So why would Red Hat management go so far out of their way to choose such a divisive figure lead their project?

Also, why would Red Hat management seek to imitate launchd of all things? Why not SMF or some other “enterprise” solution instead?

Last of all, upstart development was primarily funded by Canonical and it had proven itself on RHEL 6. Therefore, replacing upstart with systemd meant shifting the maintenance burden back onto Red Hat in one of the very few areas it could actually save on it.

Now, if you still have your doubts than here it is from the man himself: https://web.archive.org/web/20181108025744/https://thenewsta...

Again, what Poettering accomplished with systemd is astounding.

← PreviousPage 2 of 12Next →