
The Emerald Programming Language - palerdot
http://www.emeraldprogramminglanguage.org/
======
cross_wiber
Most of the comments seem to be about the page design, for a page that was
probably created in the 90s. Nevertheless, Emerald the language is pretty
fascinating, and way ahead of its time (it was developed in the mid to late
80s). They had strong static typing, including getting co-/contravariance
right a decade before Java got it wrong! It was the first object-oriented
language that I know of to have a statically-typed structural type system. In
fact, the technique that Go uses to implement dynamic dispatch was
independently invented 20 years earlier in Emerald. And its objects were
mobile, which very few languages even today attempt.

~~~
dmix
> And its objects were mobile, which very few languages even today attempt.

Can you explain what you mean by that?

FYI I vouched for your comment, it was [dead] for some reason. But I found it
relevant and interesting.

~~~
cross_wiber
Emerald objects can move from one node to another. So, for example, if an
object on machine X wants to perform computation using data on some remote
machine Y, the object can move to Y and have (fast, local) access to Y's data,
then move back to X when it is done. So the computations themselves are
mobile. This required some cleverness in the implementation, because a
process's stack might even be split between multiple machines (I might be
remembering that wrong).

------
blueish
I recently took a compilers course from Hutchinson, and he talked a bit about
the design behind object passing in Emerald from a compilers point of view,
how once you have garbage collection, it's easy to implement moving objects
between nodes of programs. Interesting concept that I was surprised to find
wasn't as commonplace!

~~~
all2well
One issue is that at scale, communication costs dwarf almost every other cost.
So, sending objects between nodes isn't as critical as you might think it is
for distributed systems.

(I was also in Norm's class! It was awesome, and also got me over the Rust
hype to some degree)

~~~
fjsolwmv
> communication costs dwarf almost every other cost.

That may have been true 10 or 20 years ago when networking was much slower.

~~~
bunderbunder
Everything else was much slower, too.

Oftentimes the biggest cost associated with communication is latency, and the
one thing that _hasn 't_ changed over the past few decades is the speed of
light.

------
beders
I love those older articles.

Among other things, they also show how we keep reinventing the wheels (with
slightly different paint jobs).

Our biggest achievement nowadays seems to be clients asking for data in the
shape preferred by the client - with data being in a primitive tree like
format with anemic types.

Or a bit more complicated neural nets.

We still haven't moved beyond van neumann architectures.

------
TooBrokeToBeg
[https://en.wikipedia.org/wiki/Emerald_(programming_language)](https://en.wikipedia.org/wiki/Emerald_\(programming_language\))

------
maxfurman
I don't understand the example program at the top right. What does it do?

~~~
blueish
From my memory, creates an object, gets all the other active nodes in the
cluster, moves them to that node and then back to the original node,
showcasing the object passing feature of the language.

------
himom
Does anyone know of solid intro/intermediate/advanted compiler
design/implementation MOOC’s?

~~~
dmix
This seems to be a pretty good overview:

[http://www.emeraldprogramminglanguage.org/TSE-1991-paper.pdf](http://www.emeraldprogramminglanguage.org/TSE-1991-paper.pdf)

But it hasn't seen much use outside of the 1980s in academia. I doubt you'll
find much on it.

------
gweinberg
Let's hope nobody ever names a language red-on-green.

~~~
Barrin92
Ever since I've visited Larry Wall's homepage for the first
time([http://www.wall.org/~larry/](http://www.wall.org/~larry/)) I don't think
anything can shock me anymore.

~~~
s_ngularity
This is another gem of weird internet design. Note especially the animations
on hovering over images, and color choices on some of the linked pages. It
somehow sort of works though.
[http://insti.physics.sunysb.edu/~siegel/](http://insti.physics.sunysb.edu/~siegel/)

------
megaman22
I wish more websites looked like this. And weighed 5kb of HTML.

~~~
tcfunk
Preferably with a bit less green.

~~~
teachrdan
Well, that is on-brand for the Emerald programming language.

------
akrasuski1
Looks like jewellery is popular in language namimng: we've got Ruby, Crystal,
now Emerald...

~~~
toasterlovin
Don't forget Perl, who (I think) started this trend.

~~~
ramchip
Emerald is older than Perl by several years, though.

~~~
fjsolwmv
The first rock-pased programming environment was silicon.

------
DoreenMichele
If they want to be thematic, they should make the word _Emerald_ in emerald
green, which this background is not. Readability should not be sacrificed for
some theme or branding dealie.

~~~
codingdave
That design has been in place for over 10 years. I don't think modern design
is on anyone's radar. At all.

~~~
DoreenMichele
Ah. Okay.

------
asdsa5325
The color scheme is awful.

~~~
hota_mazi
Agreed, really wonder why they picked that bright emerald green.

~~~
oh_sigh
Well, the programming language is called Emerald...

But really, they didn't pick emerald, they picked 'screamin green'(#55ff55)

Emerald(#50C878) would have been a much better choice(but still a bad one)

~~~
hota_mazi
That was kind of my joke. Which another responder missed.

------
stesch
This bike shed needs another color.

