veganism.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
Veganism Social is a welcoming space on the internet for vegans to connect and engage with the broader decentralized social media community.

Administered by:

Server stats:

208
active users

#programminglanguage

1 post1 participant0 posts today

I want to write a #ProgrammingLanguage… like a mixture of #C and #Rust like syntax. I call it Osmium, like the periodic table element. I’m developing on #Linux. This will be a #Hobby of mine, not anything serious, maybe never published to the net in the end. It could be aimed at enhancing #OSDev somehow???

Anyone got any ideas and resources they could share with me?

Please #BoostForVisibility so others can see this, thank you!

Replied in thread

What I don’t like:

  • some stuff breaks “everything is a list” model
  • Common Lisp is not minimal, includes overlapping and legacy stuff

does #scheme address this?

@rzeta0 I would say yes, Scheme sort of addresses those issues.

Scheme’s biggest advantage is that it is minimal enough that you can understand the whole language specification top-to-bottom, inside and out. But that is also it’s greatest drawback: is that it is too minimal to be practical. So for a long time, every single Scheme implementation has a it’s own large and unique set of libraries for solving practical programming problems that were incompatible with other Scheme implementations, making the Scheme ecosystem very fragmented. The Scheme Request for Implementation (SRFI) process is meant to address this fragmentation issue. Fragmentation is still (in my opinion) a pretty big problem, though things are much better than they were 20 years ago.

The R6RS standard, as I understand it, tried to make Scheme more practical, but it started to become too Common Lisp-like in complexity so it was mostly rejected by the Scheme community — with a few notable exceptions, like the Chez Scheme compiler.

The next standard, R7RS, split the language into two parts: “R7RS small,” ratified in 2014, which is more like the original minimal core of the Scheme language, but just a few new features, in particular the define-library macro, for modularizing parts of Scheme programs into immutable environment objects. Then they took a collection of “SRFIs” and declared them to be part of the “R7RS large” language standard. The full “large” language specification is not yet fully ratified, even 11 years after the completion of R7RS “small,” but I think the SRFIs they have ratified so far already make the latest Scheme standard a very practical language. The final R7RS standard may end up being larger than Common Lisp, but that is fine with me since it can be almost completely implemented in the R7RS “small” Scheme standard.

R7RS “small” Scheme, in my opinion, is a powerful but minimal language that exists to implement other languages, but is still useful in it’s own right as a progeny of Lisp. The “R7RS large” language then adds the useful features of larger languages like Python or Common Lisp as a layer on top of the “R7RS small” language.

The current chair of the R7RS working group is Daphne Preston Kendal, and is often on Mastodon as @dpk . She can tell you if I got anything in this post wrong.

srfi.schemers.orgScheme Requests for Implementation

Kudos to the #TypeScript team for doing the port to a native language! Truly amazing! 🎉

devblogs.microsoft.com/typescr

Altogether, their choice of using #Go makes perfect sense!

However, there are always trade-offs. One of the biggest trade-offs, IMHO, is:
Not being able to use a _common representation of the AST_ in all language tools - this is an explicit goal for the team behind void(0):

voidzero.dev/

Parse once, use anywhere!

1/2

TypeScript · A 10x Faster TypeScript - TypeScriptEmbarking on a native port of the existing TypeScript compiler and toolset to achieve a 10x performance speed-up.

Randomly thinking about this the other day, still think it's crazy that #Java was this huge important #ProgrammingLanguage when I was first learning to program back in the 2000s, then #SunMicrosystems was bought by #Oracle in the 2010s when I was teaching for the certifications, and now in the 2020s it's become this depreciated legacy language. The success of the less-portable and less-learned copycat .Net and staying power of the older #Python shows there was clearly a market for Java to continue, but the large #corporation was so much more interested in filing lawsuits against people who were doing things with the language than actually developing it further with modern features, they actually managed to push it into obscurity.

And we can't forget that this was a MULTI-BILLION DOLLAR LOSS. BILLIONS OF DOLLARS had been spent to build up infrastructure to support the widespread use of this language across the industry, so when they dropped all support, and all of that became obsolete for no other reason.

Monadic programming in R7RS Scheme

This is my article on how to solve practical programming problems in the Scheme language using monads, a concept originally introduced to the world of software engineering by the Haskell programming language. Because the Scheme language is not purely a Lambda Calculus computer the way Haskell is, and does not do static type checking, monads are not as necessary to Scheme programmers as they are to Haskell programmers, but can still come in handy.

Monads let you code procedures (without using macros) that do not use strictly procedural programming semantics. They let you model alternative semantics like concurrent programming, or lazy evaluation. I go over two examples: of a procedural but monadic pretty printer, and list monad implementation which demonstrate a simple concurrent programming semantics.

https://tilde.town/~ramin_hal9001/articles/scheme-monads.html

tilde.townRamin Honary: Scheme Monads

Nice! My old videos that didn't get any attention last year are being watched now (100 Views! 🎉)! That's awesome! Thanks everyone for the following and for watching! In this video, I am discussing the nuance of calling "suspend" a coroutine #kotlin #jvm #programminglanguage:

youtube.com/watch?v=E0gneJ6gPf