[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Nexus Programming Language

Avatar

2/21/2009 11:38:00 PM

A new object-oriented programming language has been unofficially
released. There are some interesting details already published at the
in-progress website (www.nexuslang.org). The language is a marriage
between concepts introduced by Lua and Ruby. Strong influences from
both languages with an eye towards simplification. The language itself
introduces rarely seen strict left-to-right expression evaluation.
There is no implicit operator precedence, the programmer is forced to
be explicit with parenthetical expression, which has the added benefit
of readability. Another form of this strict left-to-right evaluation
is the assignment operator (^), rather then using the traditional
<variable> = <value> syntax, a value is put on the stack and then
assigned to one or more named memory location on the right (i.e.
1+2^a^b, a*b^c). Another interesting feature is the inclusion method
overloading.
101 Answers

Ken Bloom

2/22/2009 5:10:00 AM

0

On Sat, 21 Feb 2009 15:37:34 -0800, Avatar wrote:

> A new object-oriented programming language has been unofficially
> released. There are some interesting details already published at the
> in-progress website (www.nexuslang.org). The language is a marriage
> between concepts introduced by Lua and Ruby. Strong influences from both
> languages with an eye towards simplification. The language itself
> introduces rarely seen strict left-to-right expression evaluation. There
> is no implicit operator precedence, the programmer is forced to be
> explicit with parenthetical expression, which has the added benefit of
> readability. Another form of this strict left-to-right evaluation is the
> assignment operator (^), rather then using the traditional <variable> =
> <value> syntax, a value is put on the stack and then assigned to one or
> more named memory location on the right (i.e. 1+2^a^b, a*b^c). Another
> interesting feature is the inclusion method overloading.

"There are no precedence rules applied to operators, they are simply
evaluated from left to right. Operator precedence is explicity applied
with the use of parenthetical expressions. The following example
demonstrates explicit operator precedence."

Looks like a cross between Ruby and INTERCAL. When 1.0+2.0/3.0+4.0=5.0,
that's not a good thing, and will confuse most mathemeticians to no end.
And the use of ^ for assignment will also be very unintuitive.

At the same time, I don't see *any* conceptual advantages over Ruby. Just
different, unintutitive, syntax.

--Ken

--
Chanoch (Ken) Bloom. PhD candidate. Linguistic Cognition Laboratory.
Department of Computer Science. Illinois Institute of Technology.
http://www.iit.edu...

pjb

2/22/2009 4:27:00 PM

0

Ken Bloom <kbloom@gmail.com> writes:

> On Sat, 21 Feb 2009 15:37:34 -0800, Avatar wrote:
>
>> A new object-oriented programming language has been unofficially
>> released. There are some interesting details already published at the
>> in-progress website (www.nexuslang.org). The language is a marriage
>> between concepts introduced by Lua and Ruby. Strong influences from both
>> languages with an eye towards simplification. The language itself
>> introduces rarely seen strict left-to-right expression evaluation. There
>> is no implicit operator precedence, the programmer is forced to be
>> explicit with parenthetical expression, which has the added benefit of
>> readability. Another form of this strict left-to-right evaluation is the
>> assignment operator (^), rather then using the traditional <variable> =
>> <value> syntax, a value is put on the stack and then assigned to one or
>> more named memory location on the right (i.e. 1+2^a^b, a*b^c). Another
>> interesting feature is the inclusion method overloading.
>
> "There are no precedence rules applied to operators, they are simply
> evaluated from left to right. Operator precedence is explicity applied
> with the use of parenthetical expressions. The following example
> demonstrates explicit operator precedence."
>
> Looks like a cross between Ruby and INTERCAL. When 1.0+2.0/3.0+4.0=5.0,
> that's not a good thing, and will confuse most mathemeticians to no end.
> And the use of ^ for assignment will also be very unintuitive.
>
> At the same time, I don't see *any* conceptual advantages over Ruby. Just
> different, unintutitive, syntax.

Well if you need to talk about no conceptual advantage and just
different unintuitive syntax, you can say the same of Ruby vs. Lisp.

Once you start creating gratuituous languages such as Ruby, why not go
on and change everything every years with a new gratuituously
different language. This year, let's all switch all to Nexus. Next
year, I've got already another variant in preparation...


Just stop the sillyness, let's all use Common Lisp, the ultimate
programming language!

--
__Pascal Bourguignon__

Robert Dober

2/22/2009 5:07:00 PM

0

On Sun, Feb 22, 2009 at 5:29 PM, Pascal J. Bourguignon
<pjb@informatimago.com> wrote:

>
> Well if you need to talk about no conceptual advantage and just
> different unintuitive syntax, you can say the same of Ruby vs. Lisp.
>
> Once you start creating gratuituous languages such as Ruby, why not go
> on and change everything every years with a new gratuituously
> different language. This year, let's all switch all to Nexus. Next
> year, I've got already another variant in preparation...
>
>
> Just stop the sillyness, let's all use Common Lisp, the ultimate
> programming language!
What does Common Lisp have that the Turing Machine does not have? As
you said yourself, let us stop being silly, Lisp is just a hype
because McCarthy could not stand Turing having invented a programming
language first.

Hopefully this helps a lot!!!!!!

BTW
I rather share Ken's point of view.

R.
--
There are some people who begin the Zoo at the beginning, called
WAYIN, and walk as quickly as they can past every cage until they get
to the one called WAYOUT, but the nicest people go straight to the
animal they love the most, and stay there. ~ A.A. Milne (from
Winnie-the-Pooh)

t4l

2/22/2009 5:28:00 PM

0

> "There are no precedence rules applied to operators
>
> Looks like a cross between Ruby and INTERCAL. When 1.0+2.0/3.0+4.0=5.0,
> that's not a good thing, and will confuse most mathemeticians to no end.

My first association would have been Smalltalk. Anyway, I personally
do not think the world needs yet another esoteric programming language
unless that language introduces novel concepts unseen before.

t4l

Phlip

2/22/2009 6:42:00 PM

0

t4l wrote:
>> "There are no precedence rules applied to operators
>>
>> Looks like a cross between Ruby and INTERCAL. When 1.0+2.0/3.0+4.0=5.0,
>> that's not a good thing, and will confuse most mathemeticians to no end.
>
> My first association would have been Smalltalk. Anyway, I personally
> do not think the world needs yet another esoteric programming language
> unless that language introduces novel concepts unseen before.

Like cucumber?

Seriously - the best way to introduce novel concepts is add them to an existing
(and >cough< popular) language. Then you don't need to burn up time re-inventing
all the non-novel concepts.

Examples: Qt adding signals and slots to C++, or Groovy adding templates (IIRC)
to Java, or PHP adding a secure sandbox to Perl, or me adding RubyReflector to Ruby.

Brand new languages succeed primarily when they arrive at the same time as the
industry needs them. The industry _thought_ it needed Java for dynamic web
pages. It needed Ruby when Perl projects went mega-line. But (unfortunately for
some languages, and some novel concepts) the industry has to perceive the need, too!

--
Phlip
http://assert2.ruby...

Eleanor McHugh

2/22/2009 7:22:00 PM

0

On 22 Feb 2009, at 17:29, t4l wrote:
>> "There are no precedence rules applied to operators
>>
>> Looks like a cross between Ruby and INTERCAL. When
>> 1.0+2.0/3.0+4.0=5.0,
>> that's not a good thing, and will confuse most mathemeticians to no
>> end.
>
> My first association would have been Smalltalk. Anyway, I personally
> do not think the world needs yet another esoteric programming language
> unless that language introduces novel concepts unseen before.

You might as well say the world doesn't need another painting or
concept album unless it passes the same criterion. Personally I love
to see new languages even when I've no intention of using them and I
wish the Nexus team all the best with their baby: who knows where it
will lead?


Ellie

Eleanor McHugh
Games With Brains
http://slides.games-with-...
----
raise ArgumentError unless @reality.responds_to? :reason



Robert Klemme

2/22/2009 7:24:00 PM

0

On 22.02.2009 17:26, Pascal J. Bourguignon wrote:

> Just stop the sillyness, let's all use Common Lisp, the ultimate
> programming language!

Frankly, Pascal you're doing a bit too much Lisp advocacy recently. Not
that I have anything against Lisp or you advocating it. But I find it
impolite to do that in forum dedicated to a different programming language.

Cheers

robert


PS: Yes, I know you probably did not mean it that serious but you're
bringing up that topic a bit too often for my taste.

pjb

2/22/2009 10:08:00 PM

0

Robert Klemme <shortcutter@googlemail.com> writes:

> On 22.02.2009 17:26, Pascal J. Bourguignon wrote:
>
>> Just stop the sillyness, let's all use Common Lisp, the ultimate
>> programming language!
>
> Frankly, Pascal you're doing a bit too much Lisp advocacy recently.
> Not that I have anything against Lisp or you advocating it. But I
> find it impolite to do that in forum dedicated to a different
> programming language.
>
> Cheers
>
> robert
>
>
> PS: Yes, I know you probably did not mean it that serious but you're
> bringing up that topic a bit too often for my taste.

I understand. But in a thread in clr consacred to another programming
language, I though it was worthwhile to mention it. I see all these
younglings searching and searching, trying to invent yet another
language, and not seeing that what they're tending to is just Lisp.

If you specify a language with silly precedence rules, it just gives
the definitive incentive to put PARENTHESES around each subexpression.

--
__Pascal Bourguignon__

Jason Roelofs

2/23/2009 12:07:00 AM

0

From the Documentation:

------------------

3.3 - Arrays

{} // an empty array (with no elements)
{1,2,3} // an array of three elements
{1,{2,3}} // a nested array

3.4 - Tables

_{} // an empty table (with no entries)
_{"a";1, "b";2, "c";3} // a table of three entries

3.5 - Maps

#{} // an empty map (with no entries)
#{"a";1, "b";2, "c";3} // a map with three entries

4 - Variables

name // local variable
$name // global variable
@name // object field
Name // class field

----------------

*COUGH* People HATE Perl's crazy confusing symbol variable designation
rules. What's the difference between a Table and a Map? Why does it
use the semi-colon as a map operator?

And as what other people said previously: ^ for assignment operator?
wow, that's insanely difficult to read.

I'd rather go learn OCaml than this, sorry. There's a reason languages
use a lot of the same syntax, ideas, and operators: people are used to
them. [] is an array / list, {} is a hash / map / table, = is
assignment (can be := if you want = to be comparison). I see nothing
here but backwards steps.

And no operator precedence? The reason this is rarely seen is because
it's *wrong*. 1 + 2 / 4 is ALWAYS 3. That's math. Building a language
that calculates this expression to 3/4 is a bug and will cause nothing
but rampant confusion and frustration.

Jason

znmeb

2/23/2009 3:12:00 AM

0

Jason Roelofs wrote:
> And no operator precedence? The reason this is rarely seen is because
> it's *wrong*. 1 + 2 / 4 is ALWAYS 3. That's math. Building a language
> that calculates this expression to 3/4 is a bug and will cause nothing
> but rampant confusion and frustration.

APL\360 was amazingly popular and it had no operator precedence either.
However, the default was right-to-left, not left-to-right as Nexus has
chosen.

But yeah, who the heck needs another language that's poorly thought out,
when Factor, Joy, Eiffel, Dylan, and dozens of other well-thought-out
languages burst on the scene and drifted into oblivion? And why not
Fortress?

--
M. Edward (Ed) Borasky
http://www.linkedin.com/in...

I've never met a happy clam. In fact, most of them were pretty steamed.