top | item 17257777

The Emerald Programming Language

60 points| palerdot | 7 years ago |emeraldprogramminglanguage.org

53 comments

order
[+] cross_wiber|7 years ago|reply
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.
[+] jonathanstrange|7 years ago|reply
The code snippet on the page looks incredibly clean and readable, exactly how I wish modern languages would look like. Too bad Algol-style syntax is no longer used that often (except for Delphi).
[+] dmix|7 years ago|reply
> 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.

[+] blueish|7 years ago|reply
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|7 years ago|reply
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)

[+] himom|7 years ago|reply
Garbage collection isn’t absolutely necessary with lifetime/liveness or explicit frees. Furthermore, at scale in production, if a GC were absolutely necessary, then it’s vital to have a concurrent, incremental collector like c4 because GC 30 sec pauses and sharding up app servers with 2 GiB heaps is unacceptable in the real world.
[+] beders|7 years ago|reply
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.

[+] maxfurman|7 years ago|reply
I don't understand the example program at the top right. What does it do?
[+] blueish|7 years ago|reply
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.
[+] rubberbuckaneer|7 years ago|reply
It moves the Kilroy object around all the active nodes in the cluster, and then back to the origin node at the end.
[+] masklinn|7 years ago|reply
It moves the running object/process between nodes (vms/machines) of a cluster, then back to the origin nodes.
[+] gweinberg|7 years ago|reply
Let's hope nobody ever names a language red-on-green.
[+] megaman22|7 years ago|reply
I wish more websites looked like this. And weighed 5kb of HTML.
[+] jhomedall|7 years ago|reply
With even a tiny bit of CSS (which can be inlined in the head tag if you don't want an extra fetch), you end up with this: https://jmn.link/css-example.jpg . That's 152 bytes of non-minified CSS to accomplish that.

Going further, if you drop the table-based layout, then you can get something equally as small, that doesn't break horribly on mobile.

Of course, none of this was really an option when this page was created (look at the age of all the links in it).

[+] overcast|7 years ago|reply
Good god, I hope not. Can we just standardize with black on white?
[+] dangerbird2|7 years ago|reply
Blue text on dark green background is not very colorblind friendly. Even if you don't use fancy javascript or css, a strong colorscheme with proper contrast does wonders.
[+] tcfunk|7 years ago|reply
Preferably with a bit less green.
[+] theyinwhy|7 years ago|reply
The impression the page design had on me was highly different. Does the developer really want me to use the language? If so, why not invest only a bit amount of time in thinking about it's presentation?
[+] akrasuski1|7 years ago|reply
Looks like jewellery is popular in language namimng: we've got Ruby, Crystal, now Emerald...
[+] toasterlovin|7 years ago|reply
Don't forget Perl, who (I think) started this trend.
[+] macjohnmcc|7 years ago|reply
Eventually someone will have to settle for Cubic Zirconia.
[+] DoreenMichele|7 years ago|reply
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|7 years ago|reply
That design has been in place for over 10 years. I don't think modern design is on anyone's radar. At all.
[+] asdsa5325|7 years ago|reply
The color scheme is awful.
[+] dang|7 years ago|reply
Maybe so, but please don't post unsubstantive comments to Hacker News.
[+] hota_mazi|7 years ago|reply
Agreed, really wonder why they picked that bright emerald green.
[+] stesch|7 years ago|reply
This bike shed needs another color.