1
Counted B-Trees (2017) (www.chiark.greenend.org.uk)
submitted 2 years ago* (last edited 2 years ago) by lysdexic@programming.dev to c/data_structures@programming.dev
1
16
1
1
44
39
1
1
13
wxWidgets 3.2.5 Released (www.wxwidgets.org)
3
12
[-] lysdexic@programming.dev 8 points 2 years ago

So how fucked am I for starting to learn cpp as my first language, or is this a later down the road thing to worry about?

I don't see why you should be concerned, except that no professional software developer is limited to use one specific programming language.

Even if you pay attention to the disaster prophets in the crowd, which are mainly comprised of fanboys implicitly and explicitly promoting their pet language/frameworks, C++ dominates all aspects of the computing ecosystem, which means that in the very least the whole world needs to maintain existing C++ projects to continue to work. See COBOL for reference.

[-] lysdexic@programming.dev 9 points 2 years ago

From the whole blog post, the thing that caught my eye was the side remark regarding SPAs vs MPAs. It was one of those things that people don't tend to think about it but once someone touches on the subject, the problem become obvious. It seems that modern javascript frameworks focus on SPAs and try to shoehorn the concept everywhere, even when it clearly does not fit. Things reached a point where rewriting browser history to get that SPA to look like a MPA is now a basic feature of multiple pages, and it rarely works well.

Perhaps it's too extreme to claim that MPAs are the future, but indeed there are a ton of webapps that are SPAs piling on complexity just to masquerade as MPAs.

[-] lysdexic@programming.dev 8 points 2 years ago

Perhaps I'm being dense and coffee hasn't kicked in yet, but I fail to see where is this new computing paradigm that's mentioned in the title.

From their inception, computers have been used to plug in sensors, collect their values, and use them to compute stuff and things. For decades each and every single consumer-grade laptop has adaptive active cooling, which means spinning fans and throttling down CPUs when sensors report values over a threshold. One of the most basic aspects of programming is checking if a memory allocation was successful, and otherwise handle an out-of-memory scenario. Updating app states when network connections go up or down is also a very basic feature. Concepts like retries, jitter, exponential back off have become basic features provided by dedicated modules. From the start Docker provided support for health checks, which is basically am endpoint designed to be probed periodically. There are also canary tests to check if services are reachable and usable.

These exist for decades. This stuff has been done in production software since the 90s.

Where's the novelty?

[-] lysdexic@programming.dev 9 points 2 years ago

To start Europe should have secure phones made in EU.

Doesn't switching instant messaging services count as a start? Switching hardware is far harder than switching software.

Also, local messaging systems also determine where your traffic goes and who controls that data. If you have a french messaging service with data centers in france routing traffic between people in France, you are in a far better shape.

[-] lysdexic@programming.dev 9 points 2 years ago* (last edited 2 years ago)

you meant that the focus of the change wasn’t GH

They are dropping Mercurial and focusing on Git. Incidentally, they happen to host the Git project on GitHub. GitHub is used for hosting, and they don't even use basic features such as pull requests.

Again, this is really not about GitHub at all.

[-] lysdexic@programming.dev 9 points 2 years ago

What really helped me get better as a software engineer was going out of my way to progressively learn as many software design patterns as I could and iterate over pet projects to refactor them to apply them in practice. It helped me write cleaner code that's far easier to maintain and extend, it helped me be far more efficient at onboarding onto projects, it helped me greatly improve my skills as a software architect.

[-] lysdexic@programming.dev 9 points 2 years ago

I feel like so much effort is spent trying to solve problems that just aren’t problems.

I don't think your belief has any merit.

The popularity of tools such as Lombok and JVM languages such as Kotlin demonstrate the pressing need to eliminate the need for boilerplate code in Java to do basic things.

It matters nothing if an IDE can generate all the getters and setters you wish. The problem is the need to generate all those getters and setters for a very mundane and recurrent usecase. All this boilerplate code adds to the cognitive load and maintenance needs of all projects, and contribute to the introduction of bugs.

I can count on the fingers of one hand the number of times I’ve actually needed to write a hash or equals method.

That's fine. Other people write code and are able to assess their own needs, and the verdict is that not having to write boilerplate code beats having to write it.

If your personal experience was shared by many, Lombok or Kotlin would not be popular.

[-] lysdexic@programming.dev 9 points 2 years ago

I like this bit because it really is a common answer whenever someone complains about how maddening/inefficient some tooling is nowadays.

I don't think this is a valid take. What we see in these vague complains about levels of abstraction is actually an entirely different problem: people complaining that they don't understand things, and they feel the cognitive load of specific aspects is too much for them to handle.

If the existing layers of abstraction were actually a problem and they solved nothing, and if removing them would solve everything, it would be trivial to remove them and replace them with the simpler solutions these critics idealize.

Except that never happens. Why is that, exactly?

[-] lysdexic@programming.dev 8 points 2 years ago* (last edited 2 years ago)

Honestly, a similar tool should rethink the design to be more intuitive, orthogonal and have fewer concepts that cover all use-cases.

With regards to Git I'm a victim of Stockholm syndrome, thus it's hard for me to see where are all those alleged unintuitive design choices.

This analysis is rendered even more difficult as these criticisms of Git are depicted in vague terms without mentioning a single concrete example.

To make matters worse, these accusations become even less credible given the fact that all other Git competitors seem to copy Git's user interface almost verbatim. This means Git must be doing something right.

So given this issue, is there any concrete example of where Git is lacking in the UI department?

[-] lysdexic@programming.dev 8 points 2 years ago

You’re right that that’s extremely unambiguous, but I still don’t love the idea that users don’t get to decide what’s in $HOME, like, maybe we could call it “$STORAGE_FOR_RANDOM_BULLSHIT” instead?

That's basically what $HOME is is used for in UNIX: a place for applications to store user-specific files, including user data and user files.

https://www.linfo.org/home_directory.html

If anything in computing conventions implies “user space” it’s a global variable named HOME. And it makes sense that there should be a $STORAGE_FOR_RANDOM_BULLSHIT location too - but maybe not the same place?

UNIX, and afterwards Unix-like OSes, were designed as multi-user operating systems that supported individual user accounts. Each user needs to store it's data, and there's a convenient place to store it: it's $HOME directory. That's how things have been designed and have been working for close to half a century.

Some newer specs such as Freedesktop's directory specification build upon the UNIX standard and Unix-like tradition, but the truth of the matter is that there aren't that many reasons to break away from this practice.

[-] lysdexic@programming.dev 9 points 2 years ago

A more apt description would be "Fossil Versus Git, according to Fossil."

[-] lysdexic@programming.dev 8 points 3 years ago

Java 11 LTS

view more: ‹ prev next ›

lysdexic

0 post score
0 comment score
joined 3 years ago
MODERATOR OF