You are viewing archived messages.
Go here to search the history.

Mariano Guerra 2024-07-01 09:50:53

Programming languages resources

This page is a collection of my favorite resources for people getting started writing programming languages.

Mariano Guerra 2024-07-02 08:50:06

Breaking Silos by Gilad Bracha

Experiment: AI assisted summary edited by me to pique your interest (let me know what you think):

  • Modern applications are siloed and have difficulty cooperating with each other.
  • This was not always the case, exemplified by the Apple Newton, a mobile device released nearly 30 years ago.
  • Apps on the Newton were written in NewtonScript, a prototype-based language.
  • Newton applications had a flexible top-level view, enabling app compositionality where entire apps could be nested within others.
  • Objects in NewtonScript (called frames) inherited properties from both their prototype and their parent, facilitating UI use.
  • This inheritance allowed an app to function as a widget inside another app, enabling dynamic interaction between nested and enclosing apps.
  • Apps on the Newton persisted their data in object stores called soups, which were accessible by multiple apps.
  • The concept of co-designing language and UI existed earlier, exemplified by the Boxer system from the 1980s.
  • Another example of compositionality is Morphic, a graphics system developed in Self and later adapted for Squeak and Lively Kernel, focusing on graphical structure rather than application logic.
  • Inspired by Morphic, the idea of an app store with composable apps was proposed about twenty years ago.
  • These apps would live-update, synchronize automatically, and be local-first, a concept predating Apple's app store.
  • Newspeak language derived partly from this effort.
  • A practical example of app composition is in travel, where a button for weather lookup could be embedded into an itinerary and dynamically interact with surrounding widgets to display relevant weather information.
Dany 2024-07-02 11:28:28

Similar problem statement: Ideal OS

Also Microsoft OLE comes to mind.

brett g porter 2024-07-02 12:57:24

See also the work that Jef Raskin was prevented from doing at Apple that ended up in the doomed Canon Cat system (cf his book 'The Humane Interface')

Konrad Hinsen 2024-07-02 13:27:43

Mariano Guerra The summary looks good. How much did you edit it?

Mariano Guerra 2024-07-02 13:28:48

removed a couple items and trailing sentences that didn't add much

Mariano Guerra 2024-07-02 13:28:59

after reading the article of course 😄

Kartik Agaram 2024-07-02 15:20:51

At the risk of a party foul -- did you mean 'pique' not 'pick'?

Mariano Guerra 2024-07-02 15:21:34

Kartik Agaram probably, not sure about the correct spelling 😄

Kartik Agaram 2024-07-02 15:22:14

Yeah just trying to understand what you meant..

Mariano Guerra 2024-07-02 15:22:40

should I fix it and make your comment stale? 😛

Dany 2024-07-03 07:48:20

In my opinion this is the wrong way going about breaking silos. What we need is a separation of data and apps. If data is always examinable (an open binary format), you can have different apps accessing the same data, transforming it and pass to other apps. (Unix philosophy). This data can be live too and versioned. Apps would need to be stateless. Unfortunatly that goes against companies interests, so we can't have nice things.

Just look at places where we don't have silos. Like image manipulation, some 3d, email.. and of course text.. there we have a strong standardization of data formats.

Konrad Hinsen 2024-07-03 11:54:07

Bracha's Newspeak is part of the Smalltalk family. In Smalltalk, there is no data. There are only objects, and the only way to access objects is by "sending messages", which just means calling methods. Put differently: there's no data, only APIs. Data representation/format is alway an implementation detail.

This view has its good and bad sides, of course. The main disadvantage is the violation of the Rule of Least Power, because the least-power-notation in this framing is a Turing-complete programming language. One consequence is that interoperability requires agreement on the programming language rather than just on a few data formats.

Kartik Agaram 2024-07-03 12:19:47

"take the hardest and most profound thing you need to do, make it great, and then build every easier thing out of it"


Sounds like a philosophical difference with the Rule of Least Power 😂

Dany 2024-07-04 06:46:26

And that's why smalltalk or object oriented programming in general are a terrible idea. I think they work great in the small to abstract away the insides of say a string. Unfortunatly that was so successfull, that we just ran with it. Now we have input fields, inside boxes and panes inside windows, inside apps, inside companies. And all of this defaults having no access to the data.

Konrad Hinsen 2024-07-04 18:26:09

That's not what happens in Smalltalk systems. There's a single memory space in which all objects live. No app boundaries. Tying things together into something new is straightforward. With modern UIs, such as Glamorous Toolkit, that's true even for GUI elements.

The problem is, of course, that all this harmonious co-existence works only for code written not only in Smalltalk, but in the same Smalltalk variant (there are many). It's the 1970s idea of a single ideal computing system that everyone will adopt because it's "best" that hasn't worked out. And once you need interoperability between systems designed with different priorities, you need weak coupling and the Rule of Least Power (which also has advantages inside something like a Smalltalk image, but that's a different story).

📝 Home

Glamorous Toolkit is the Moldable Development environment.

Konrad Hinsen 2024-07-04 18:28:33

I find Gilad Bracha's vision of composable apps in Newspeak very credible. I just doubt that many people would adopt it, even if there were polished implementation. It's just too weird for most people to even look at.

Dany 2024-07-05 05:55:48

The real issue is encapsulation. The authority of ones data is at the mercy of the object or the app.

Konrad Hinsen 2024-07-05 07:10:14

The owner of the data is also supposed to be the owner of the object/class. In the Smalltalk philosophy, generic data structures are always an implementation detail. There's always a class specificallly for your application data, and that's a class you own.

Mariano Guerra 2024-07-02 09:33:02

The Interfaces With Which We Think

The concepts in modern operating systems — apps, windows, desktops, notifications, and so on — have so permeated our understanding of personal computing that it’s hard to imagine anything else, let alone believe there could be anything better.It’s easy to assume that this is, somehow, simply, how computers work .

But this can’t be further from the truth.

📝 The Interfaces With Which We Think

The concepts in modern operating systems — apps, windows, desktops, notifications, and so on — have so permeated our understanding of personal computing, it’s hard to imagine anything else, let alone believe there could be anything better.

Ivan Reese 2024-07-05 14:58:26

Revisited Jeff Lindsay's 2022 thesis video and, yep, it still kicks ass.

Lu Wilson 2024-07-05 23:32:17

Incredible project: "cell thingy" inspired by CellPond and MarkovJunior

Duncan Cragg 2024-07-06 00:09:15

I replied to this point mentioning my unshakeable belief in what I am doing, and it occurred to me that there aren't actually many on this FoC Slack who can equally say that they know exactly what they are certain is right for the Future of (Programming)! We get a lot of speculative and experimental thoughts here which is the reason we all engage, but who amongst you can say you are 110% certain you've found what you believe to be the Future, with the uncertainty only being in "whenever that comes about"? Which of course, as the Twitter thread mentions, is about the seemingly trivial but of course 110% important factor of "memeing" to the Internet. Personally, I'm crap at that bit.

Duncan Cragg 2024-07-06 00:10:19

I started off my reply by disagreeing with this: "If a meme which encases your perspective cannot be replicated to even one other person over the web, then it's done, that won't exist in the future. Failed meme."

Duncan Cragg 2024-07-06 00:11:10

"discovering stuff and explaining stuff are VERY different skills"

Tom Lieber 2024-07-06 02:49:43

I can! 👋 That’s how I’ve had so many interesting conversations here. It’s a lovely reality check that other people who feel this way disagree with my vision. :)

Stefan Lesser 2024-07-06 06:06:18

Image from iOS

Duncan Cragg 2024-07-06 09:22:29

Hi Stefan Lesser can you explain this in this context?

Konrad Hinsen 2024-07-06 10:15:52

Bias statement: I am not good at certainty, no matter which topic.

That said, I am particuarly reluctant to attribute any certainty to ideas about the future of programming because that future will be determined by lots of forces: technical, social, political, environmental, etc. Unless you are considering the very near future (say, five years from now), I find it hard to be certain about anything.

Stefan Lesser 2024-07-06 16:28:06

Duncan Cragg I’m just trying to be funny and thought throwing a reference to Dunning-Kruger (in meme-form!) into this thread would provide some… entertainment.

Konrad Hinsen demonstrates it well. The people I know who are brilliant at what they do and have all the competency to be confident about, would never claim that they are certain about anything. And from my own experience I can only say that I’m beginning to understand how you get more and more uncertain, the deeper you dig and the more you realize how much more there is you don’t know enough about.

Tom Lieber 2024-07-06 18:27:50

I’m not entertained by being made the butt of jokes about Dunning-Kruger and “Peak of Mount Stupid”.

Duncan Cragg 2024-07-06 20:04:51

Tom Lieber don't take it personally, if you're like me with off-the-scale hubris, you'll assume that you're up on that plateau there!

Duncan Cragg 2024-07-06 20:05:59

Actually my own graph is a more-or-less monotonic increase of confidence with competence: the more I know, the more I know I'm right.

Duncan Cragg 2024-07-06 20:09:35

I do actually strongly suspect that my lack of humility explains my 100% failure to convince anyone else that I'm right, but there's nothing I can do about that, sadly...

Stefan Lesser 2024-07-06 21:29:01

Tom Lieber Look, what do I know? I have no idea what you’re working on. Any of us could potentially make some commit to GitHub tomorrow and change the world. If you feel confident that you’re on a good path, then good for you. And I see no reason why you couldn’t have put all the effort in to have made it way past the slope of enlightenment.

Just thought it would be useful to be aware of this effect, not necessarily to place yourself on that diagram (which technically isn’t correctly representing the actual theory; that’s why I called it meme), but to realize how confidence may come across to other people familiar with it.

Could I have gotten this across in a better way? For sure.

I apologize for my tasteless attempt to make this point.

Tom Lieber 2024-07-06 22:12:35

Thanks, it’s all good. 👍 DMs with you were some of the memorable ones I mentioned.

Tom Lieber 2024-07-06 22:59:18

I know that making specific predictions is fraught, but we can say some things for sure. Is the future of programming moldable? Yeah! Accessible? Yeah! More like gaming? Yeah! Etc. This community would be lesser if people didn't notice those big, attractive shapes on the horizon, row out for weeks or years to get a better look, and come back here to compare maps. I love the conversations that feel like ~that.~

Stefan Lesser 2024-07-07 06:37:31

Me too! And I’d like to think that these statements are less about shapes of things to chase for and more about values people here already have and share. No future predictions needed.

You value moldable programming environments? Me too. You believe accessibility is important? Me too. You think games are getting some things right? Me too. We already share those beliefs. Here. Today.

Not everything has to be looked at as ~results~ we want to achieve. Sometimes it’s good to share values and explore from there. Enjoying the ~process~ . Together.

Beni Cherniavsky-Paskin 2024-07-07 07:05:24

There is a project where I know very precisely what I want to build [though it's a good bet that'll shift as I actually work on it...] but very uncertain if >1 are gonna adopt it 🤷‍♂️

I'm pretty certain there are dozens of people who'll find it interesting & provocative :-). I've reached the point where "I have to build this because noone else will".


Konrad Hinsen 2024-07-07 08:03:54

@Beni Cherniavsky-Paskin That's my situation as well. Which is why having fun along the way is an important implementation criterion for me. A bit like a "no regrets" insurance.

Stefan Lesser 2024-07-07 10:14:30

Just finished re-reading John Maeda’s ~The Laws of Simplicity~ . This is the last page in the book. Thought it fit well here, in particular the part about insecurity.

Image from iOS

Don Abrams 2024-07-07 15:34:37

I am pretty good at knowing what I know but pretty terrible at knowing what I don't know and pretty average at evaluating the value of things outside my experience

Walker Griggs 2024-07-07 19:39:39

A CFL (call for links). Does anyone have any other examples of non-academic syllabi like Ashley Blewer's Halt and Catch Fire Syllabus? Specifically a curated, self guided exploration of a topic that references foundational academic works but is itself not created as a formal course. That vast majority of syllabi online are (under)grad syllabi reposted by the department or professor

Walker Griggs 2024-07-07 19:40:23

I’m drawn to this model of content creation, curation, and signal boosting. I don’t find them often though