OSCON 2012 notes

Paulo Pinto pjmlp at progtools.org
Sat Jul 21 05:41:05 PDT 2012


Am 21.07.2012 10:20, schrieb Jonathan M Davis:
> On Saturday, July 21, 2012 08:48:57 Paulo Pinto wrote:
>> After becoming disapointed with Go leaving in the past, I've come to the
>> conclusion that between the two, D is a much better choice.
>
> I still need to study up on Go one of these days (along with a variety of
> other languages which are on my to-learn list), but the more I learn about it,
> the less I understand why Go and D are treated as competitors. I guess it's
> because of the systems language moniker (though Go doesn't mean it in the same
> was as C++ and D, so that skews things already), but Go and D are just so
> radically different in their basic approaches and philosophies, that I would
> expect that the folks who like one would dislike the other in most cases.
> They're just so completely different that I wouldn't expect them to really
> compete with one another save for the fact that developers only have so much
> time to check out new languages, so if one's getting a lot more attention,
> that could reduce how many people check out the other one, even if most people
> who check out the first one don't end up liking it.
>
> - Jonathan M Davis


Go is an evolution of Limbo 
(http://www.vitanuova.com/inferno/limbo.html), where ADTs got replaced 
by interfaces coupled with method declarations syntax from Component 
Pascal (http://www.oberon.ch/pdf/CP-Lang.pdf), an extension to Oberon.

If you spend some time reading Inferno and Limbo documentation after 
learning Go, you'll see how they share so many concepts.

http://doc.cat-v.org/inferno/books/inferno_programming_with_limbo/

Regarding systems programming, Go could actually play in the same league 
as D, since Oberon was used to write the Native Oberon and A2 operating 
systems. Besides the assembly for the GC and boot, everything else is 
written in Oberon.

As a personal workstation the system was used a lot by the ETHZ 
researchers during the 90's. A quite cool environment where you get a 
Smalltalk like environment, with a strong typed language.

Nowadays it is mainly used to teach OS principles at ETHZ, and embedded 
systems development.

You can read more it here,
http://www.ethoberon.ethz.ch/native/WebScreen.html        (screenshots)
http://www.ethoberon.ethz.ch/WirthPubl/ProjectOberon.pdf  (how it was 
implemented)
http://www.astrobe.com/Oberon.htm (embedded systems support)

The trick with Oberon, which Go also uses, is to have a special module
reckognised by the compiler with primitives to do the low tricks C 
offers. Additionaly any function/method without body can be implemented 
in Assembly. This is nothing new, Modula-2 already worked like this.

What I miss from Go, and is what makes me like more of D is,

- enumerations
- exceptions
- metaprogramming
- generics
- dynamic loading
- constness
- operator overloading
- method overloading
- support for FP

Basically everything that has become part of the enterprise world since
the late 90's.

Wirth has a nice paper where we describes the evolution of the languages 
he designed, stating on the chapter 7, that Oberon failed in the 
industry because companies preferred the code bloat of other languages 
instead of Oberon's simplicity.

http://www.inf.ethz.ch/personal/wirth/Articles/Modula-Oberon-June.pdf

This is exactly the same school of thought that Go designers follow. If
language design would be considered art, they would probably be part of
the Minimalism mouvement.

--
Paulo


More information about the Digitalmars-d mailing list