I wonder if there is a correlation between the side someone takes in "tabs vs. spaces" and the side they take in "dynamic linking vs. static linking." The results of the following poll ought to give some answer. Boost if you're curious to get an accurate answer.

Which pair of sides are you on? If you don't feel strongly about one of the wars, just go with what you're leaning toward.

@philipwhite As much as I dislike Go's syntax, I love their solution to the code style debates. There is a single canonical format and the compiler ships with a formatter as well.

Boom, codebases are now consistent.

@philipwhite @xj9

@philipwhite Saying you have to choose static OR dynamic linking is like saying you have to choose cheese OR burger

@sjb I disagree. See, static and dynamic linking both have their uses, but not so with cheese and burger. Cheese is good by itself, and burgers are great, but I NEVER put them together.

@philipwhite LOL.

My cheeseburgers occur when a program sends code to a compiler to make a new DLL on the fly that is then loaded in, but the rest of the program is normally statically linked.

The other one is when the Win32 API only contains half of the %^&* OpenGL API, and I have to load the remaining half using an extension mechanism (DLLs again).

@philipwhite One size doesn't fit all:

• static for self-contained binaries, usually low-level: firmware, kernels (OS, devices')

• dynamic for the more volatile software, where it's way too difficult to ensure correctness from the start, and one has and can afford to resort to the updates

• spaces for indentation and separation of words (…)

• tabs for splitting the fields in a tabular data, possibly containing strings with spaces

To recap: the problem is not the existence, but the misuse.

@amiloradovsky good bottom line I think. It's orthogonal to the holy wars themselves, however. Static linking people disagree with point two, and tab people disagree with point three. The disagreement is in how constructs should properly be used.

In my understanding:
"Tabs vs spaces" is about indentation.
"Static linking vs dynamic linking" is about whether the problems dynamic linking intends to solve are not actually solved by dynamic linking, whether they are solved better by static linking, or whether dynamic linking brings more problems than it is worth. (I'm putting this in a way that puts dynamic linking linking on trial because I think that's what the debate is about. It was indisputably useful back when memory was more scarce, but now the jury has come back out).

I'm personally a tabs and static linking person, and I see you are clearly a spaces and static linking person, at least by the above definition of the debates.

@philipwhite Well, I'm definitely not a "memory is cheap these days" person, and I indeed wouldn't use tabs for indentation, just like I wouldn't statically link a GUI client for an Internet service to get 50 Mo binary consuming tens of G's when running.

@philipwhite Interesting results. It looks like there isn't a strong correlation one way or another and I think the reason why dynamic and spaces won out is because that's the most common in mainstream languages.

@jbauer @philipwhite Isn't dynamic/static somewhat independent of the language, or is that only the case for C/C++?

@sjb @philipwhite It is independent of the language for the most part except that some environments or languages strongly encourage doing things one way or another.

Go, for example, *strongly* encourages static linking and Haskell links to Haskell libraries statically by default.

In most operating systems though, dynamic linking is the preferred way to distribute packages and in super popular languages like C++, dynamic is the default.

@jbauer @philipwhite I like the idea of static linking + deduplicating filesystem.

Every executable contains everything it needs, but the filing system combines all redundant copies.

Sign in to participate in the conversation
Functional Café

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!