Show newer

@namark

I'm not sure I understood your last paragraph, but I cannot take you seriously when you state that if you weren't able to read and write because writing was still a craftmanship like it was 5000 years ago, you would appreciate the expert that would read and write your letters "as long as the expert is independent and provides a service fair and square".

How would you know that her service is fair if you couldn't read them yourselves? Asking different experts to read your letters and see if they all say the same? And to read the letter written by an indipendent competitor?

I don"t know.

I'm glad the alphabet was invented.

And I think we lack an alphabet for (and even lack fundamental concepts like ancient civilizations laked the zero).

@lorendias

I don't know.

My rule of thumb is: if it takes more than a month to be fully read and understand a software, it's broken beyond repair.
The more time, the more it's broken.

How broken is ? ? ?

I ported GCC to Jehanne, because I used to share your insight about legacy, isolation, containerization and substitution... but I'm not sure anymore.

@namark

You don't need to convince me about the intrinsic evilness of , but you are missing the point.

Would you like a world where you need to rely on an expert/élite to write or read anything?

That's what billions of people do everyday right now, through automatisms they do not understand (, and so on).

Our craft is not like others, even if most of us are (or pretend to be) still unaware of our power.

We are the scribans of our age.

At times I feel hopeless for the future of our cybernetic world.

Can computing be fixed?

is a great operating system... if you know (its own) C and its (great) userspace tools.

should be simpler (a toy so far, but even if complete it would stay simpler) but even if ignoring the huge amount of work wasted to port before it was turned to yet another weapon of imperialism, it still requires to learn a lot of glibberish.

Why in 2021 I have to explain my daughters what `grep` means? `cat`? `xargs`? `git`?¹

Why we still use cli arguments (argc, argv) instead of a proper and uniform command language pre-parsed by the kernel?

But the problem is deep.

At times, I despair. 😢

Because I see how this lead straight to a terrible dystopia for future generations.
But apparently, nobody care enough.
____

1) Don't get me wrong: I like these software a lot and use them extensively everyday, but they are tools designed to maximize the productivity of an élite of experts, not to empower casual programmers.

Shamar boosted

@valhalla

For sure we have a privilege: being able to code.

It's the privilege of scribans in Ancient Egypt and we should work hard to invent an alphabet that free the rest of the world from our power, as we tend to serve the Pharaons of our age.

We continuosly raise complexity, either accidentally or as an explicit entry barrier to "the market" (think of modern browsers) while we should always keep it so low that literally everybody could read and modify the code.

That's what turned from a quest for to an expression of power and -privilege.

I recognize such privilege but as @jcbrand noticed, it doesn't give anybody any entitlement on my work.

It just give me the will and energy to look for solutions that turn such privilege into a freedom that everybody can use for real (but not without study: even if you want to drive a car you have to study how to drive, and a computer is much more powerful - and socially dangerous - than a car!)

@njoseph @josemanuel @ryan

@vascorsd

They are mutually exclusive in C (and most other languages, afaik) but I've seen at least one language using:

1) non-constants as case expression
2) non-exclusive branches

A recent example is React's Router dom's Switch (but I've seen this before)

I don't like this approach but I was looking for an `if/elif` idiomatic alternative in an if-less language.

@wim_v12e

Voted imperative because computers are things we tell what to do.

But if we are talking about pure functions (no side effect, no change to state and so on) I would let the verb "compute" as implicit and use a name describing what have to be computed instead.

This is my usual naming approach but there are more corner cases that depend on context.

For example, when programming a domain model, specification methods are usually called `IsSatisfiedBy` since the class/interface express the conditions represented.

Similarly in DDD, I name most analysis method as `Analyse` as the interface/class name express the analysis that will be computed.

Shamar boosted

Poll for people who program

In your favourite language, what do you consider a call to a functions/methods/procedures/subroutine to be, in grammatical terms?

Please elaborate, and thanks for boosting.

@vascorsd

to be fair I can think of cases where sequences of `if/else if` cannot be easily subsumed by a `match/case` statement, not even if you evaluate the case selection expressions (as PHP did, as far as I can remember).

I mean something like

switch(true){
case isMonday(): print "Monday ";
case isSunday(): print "Sunday";
case isJune(): print "June ";
default: print "hi! ";
}

would print "Monday June ", but would not (easily) subsume "if/elif" (as far as I can think right now).

Hi, @mjd totally agree.

Given your desires, you might like 's , both as a language and operating system (I do not know if it needs a MMU, though, but to be honest a MMU looks like a quite reasonable hw requirement to me, even just for security reasons).

As for your "free" language of choice, I used to agree more in the past. is likely a good choice because it's possible to study its implementation in a week, but can we say the same about and ?

I used to like both a lot but

- Python is complex and its standard library is huge

- C is quite simple (I have no issue with pointers, more with it's syntax, too arcane for beginners) but its standard includes a crazy standard library

In general we should consider any program that requires more than a month to be completely understood in a month broken by design as locked to a few vendors OR an élite.

Thus how broken are , , , and so on?

Shamar boosted

I'm concerned about a few things with modern development, and this is why my languages of choice right now are lua, python, and C; with Forth and Lisp in the "would like to use more ideas from" area:

Vendor lock-in, and Vendor "OURS. NOT YOURS. YOU MAY NOT USE ANY LONGER. ALSO: NO LONGER SUPPORTED" things. Java, Go, and Rust are all encumbered by being non-free (no, really, they aren't. They're OWNED by a vendor. You can use the language, but it's not OPEN. It's "free and open" the Ajit Pai way: "lie about it.")

Then Javascript is being absorbed by Microsoft; so it's out of the question also... better said here: clarity.kleydints.com/a-post-m )

Ability to be used in smaller environments: Yes, I know, 32GB is the minimum acceptable thing today. That's insane and "what if someone can't afford that?" The poor exist. They should have the same abilities people with some money do. And we ALL should have the same amount of access/abilities as those who make a billion dollars by sitting on their ass and doing nothing while the financial systems give them bonuses for being at the top of the mountain.

But I like my older machines, and there's nothing inherently WRONG with them. The whole "buy a new thing because the old things are useless!" attitude feeds into the whole "crush right to repair" thing, at least I see similarities. Sure, new is neat, but when new becomes old, tossing it makes... environmental waste...

And things like Javascript cross-platform "applications" (which are just Chrome instances in a "sandbox" - but is it a good sandbox? I somehow doubt it, given the vendors... ) and on top of that, the memory footprint... and yes, I've done things like this as well in python, where I'm using the memory that I have to solve an issue, rather than using something less memory intensive... but then I'm doing that to solve an immediate problem, and not releasing that code for others. I.e. I'm "coding for the device I have" not "coding for a wide variety of different devices."

I'm seeing far too many things being developed in the vendor locked languages, and there aren't alternatives.

I'm concerned that at some point we'll lose those tools, or we'll be in a situation where we'll have to deal with NOT having those tools until they're rewritten in another language.

I'd very much like a truely "owned by the people" language that doesn't have the problems of C pointers, which would be able to be used on processors that aren't from this age. i.e. if it works on 6502,z80, and 68000: I'd be happ‪ier. And yes, that means no mmu things. "MMU if you have it, this extension if you do not" would be ok. After all, if you don't HAVE an MMU, you probably aren't looking at needing to manage memory automatically...

Anyway just thoughts, based on seeing yet another project written in JS, Go, or Rust, with no "backwards compatible" vision. I'm worried those will suddenly be removed from us by a hostile vendor.

Because all vendors are hostile.

@EdwardTorvalds@mstdn.io

In 1916 everybody were reading the same propaganda.

Now people read propaganda tailored to their culture, class, psycological bias and to the people surrounding them.

This produces a much stronger cultural hegemony and it was made possible by technology.

A technology designed to reinforce the wealth differences while dividing the poors around identitarian tales.

@JauneBaguette

Nice hack! 😃

Sad it's using (thus spreading) the Mercatore's map that draw the equator at 1/3 of the height, magnifying the rich north of the world and depicting the poorest continents (South Ameica and Africa) way smaller than they are.
It's so biased that US and Canada together look bigger than Africa while they are way smaller!

The Peter's map would have been better (but I have no idea of how it would "play" at the piano).

US imperialism as usual. 🤷‍♂️

Yet, still a nice hack.

@vascorsd

To be honest I was thinking about 4 mandatory spaces (no tab, no different amount of spaces, possibly no more than one way to express a computation).

But I'm also thinking of no `if` only match/switch.

@natecull

A WASM OS sounds like a very dystopic nightmare.

's is another attempt into this direction.

I think the biggest advantage of these systems (far ahead of their times) is that they assume no difference between user and programmer.

Also (afaik) they were all single-user systems and I'm unable to say if the two aspects are related or this characteristic is just derived by the hardware/culture of the time.

On the other hand, I would not say that operating systems belongs to the same family, despite being mostly written in C.

It looks like they actually assume/impose a strong separation between user and programmer even just in their perception of the system.

Maybe the multi-user approach is just a further application of this separation.

Nice thread, @natecull, but is this really about programming languages or more precisely about execution environment (either vìrtual machines or operating systems)?

Shamar boosted

@admin @bob

I learnt about #TempleOS after his death and I was very sad.

I think that TempleOS is probably one of the best #hack, of the most valuable #FreeSoftware we have right now.

On par with #Oberon or #9front.

Davis had a unique perspective, none of us "sane people" could have. I guess we'll find gems everybody overlooked, in his code.

Ultimately, he was a fellow #hacker. He was talking with #God in a weird way.

But all hackers are weird and we really need more hackers like him.

Shamar boosted
Show older
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.