[#8566] Visions for 2001/1.7.x development? — Robert Feldt <feldt@...>

Hi matz and other Ruby developers,

18 messages 2001/01/03
[#8645] Re: Visions for 2001/1.7.x development? — matz@... (Yukihiro Matsumoto) 2001/01/04

Hi,

[#8580] bug?? — jmichel@... (Jean Michel)

I don't understand the following behaviour:

19 messages 2001/01/03

[#8633] Interesting Language performance comparisons - Ruby, OCAML etc — "g forever" <g24ever@...>

13 messages 2001/01/04

[#8774] No :<, :>, etc. methods for Array — "Brian F. Feldman" <green@...>

So, why not include Comparable in Array by default? It shouldn't have any

28 messages 2001/01/07
[#8779] Re: No :<, :>, etc. methods for Array — matz@... (Yukihiro Matsumoto) 2001/01/07

Hi,

[#8780] Re: No :<, :>, etc. methods for Array — "Brian F. Feldman" <green@...> 2001/01/07

matz@zetabits.com (Yukihiro Matsumoto) wrote:

[#8781] Re: No :<, :>, etc. methods for Array — gotoken@... (GOTO Kentaro) 2001/01/07

In message "[ruby-talk:8780] Re: No :<, :>, etc. methods for Array"

[#8782] Re: No :<, :>, etc. methods for Array — "Brian F. Feldman" <green@...> 2001/01/07

gotoken@math.sci.hokudai.ac.jp (GOTO Kentaro) wrote:

[#8829] Sandbox (again) — wys@... (Clemens Wyss)

Hi,

20 messages 2001/01/08
[#8864] Re: Sandbox (again) — Clemens Hintze <c.hintze@...> 2001/01/08

On 8 Jan, Clemens Wyss wrote:

[#8931] String confusion — Anders Bengtsson <ndrsbngtssn@...>

Hello everyone,

21 messages 2001/01/09
[#8937] Re: String confusion — matz@... (Yukihiro Matsumoto) 2001/01/09

Hi,

[#8953] Please remove account from files — "Thomas Daniels" <westernporter@...>

Please take my e-mail address from your files and "CANCEL" my =

14 messages 2001/01/09
[#8983] Re: Please remove account from files — John Rubinubi <rubinubi@...> 2001/01/10

On Wed, 10 Jan 2001, Thomas Daniels wrote:

[#9020] time to divide -talk? (was: Please remove account from files) — Yasushi Shoji <yashi@...> 2001/01/10

At Wed, 10 Jan 2001 14:23:30 +0900,

[#9047] Re: time to divide -talk? (was: Please remov e account from files) — Aleksi Niemel<aleksi.niemela@...>

Yasushi Shoji:

27 messages 2001/01/10
[#9049] Re: time to divide -talk? — Yasushi Shoji <yashi@...> 2001/01/10

At Thu, 11 Jan 2001 00:20:45 +0900,

[#9153] what about this begin? — Anders Strandl Elkj誡 <ase@...> 2001/01/11

[#9195] Re: Redefining singleton methods — ts <decoux@...>

>>>>> "H" == Horst Duch=EAne?= <iso-8859-1> writes:

10 messages 2001/01/12

[#9242] polymorphism — Maurice Szmurlo <maurice@...>

hello

73 messages 2001/01/13

[#9279] Can ruby replace php? — Jim Freeze <jim@...>

When I read that ruby could be used to replace PHP I got really

15 messages 2001/01/14

[#9411] The Ruby Way — "Conrad Schneiker" <schneiker@...>

As a member of the "Big 8" newsgroups, "The Ruby Way" (of posting) is to

15 messages 2001/01/17

[#9462] Re: reading an entire file as a string — ts <decoux@...>

>>>>> "R" == Raja S <raja@cs.indiana.edu> writes:

35 messages 2001/01/17
[#9465] Re: reading an entire file as a string — Dave Thomas <Dave@...> 2001/01/17

raja@cs.indiana.edu (Raja S.) writes:

[#9521] Larry Wall INterview — ianm74@...

Larry was interviewed at the Perl/Ruby conference in Koyoto:

20 messages 2001/01/18
[#10583] Re: Larry Wall INterview — "greg strockbine" <gstrock@...> 2001/02/08

Larry Wall's interview is how I found out

[#9610] Re: 101 Misconceptions About Dynamic Languages — "Ben Tilly" <ben_tilly@...>

"Christian" <christians@syd.microforte.com.au> wrote:

13 messages 2001/01/20

[#9761] Re: 101 Misconceptions About Dynamic Languages — ts <decoux@...>

>>>>> "C" == Christoph Rippel <crippel@primenet.com> writes:

16 messages 2001/01/23

[#9792] Ruby 162 installer available — Dave Thomas <Dave@...>

15 messages 2001/01/24

[#9958] Re: Vim syntax files again. — "Conrad Schneiker" <schneik@...>

Hugh Sasse wrote:

14 messages 2001/01/26
[#10065] Re: Vim syntax files again. — Hugh Sasse Staff Elec Eng <hgs@...> 2001/01/29

On Sat, 27 Jan 2001, Conrad Schneiker wrote:

[#9975] line continuation — "David Ruby" <ruby_david@...>

can a ruby statement break into multiple lines?

18 messages 2001/01/27
[#9976] Re: line continuation — Michael Neumann <neumann@...> 2001/01/27

On Sat, 27 Jan 2001, David Ruby wrote:

[#9988] Re: line continuation — harryo@... (Harry Ohlsen) 2001/01/28

>A statement break into mutliple lines if it is not complete,

[ruby-talk:9454] Re: 101 Misconceptions About Dynamic Languages

From: Josh Stern <jstern@...>
Date: 2001-01-17 16:04:12 UTC
List: ruby-talk #9454
Note:  the following was posted to the newsgroup comp.lang.ruby
last night, but apparently got lost by the mechanism that
forwards news to the ruby-talk list, or the nntp feed for
netlab.co.jp

So when this gets re-mirrored to comp.lang.ruby, it will
be redundant there.

From jstern@foshay.citilink.com Wed Jan 17 09:57:49 CST 2001
Article: 8270 of comp.lang.ruby
Path: news.citilink.com!newsreader.visi.com!hermes.visi.com!news-out.visi.com!gemini.citilink.com.POSTED!not-for-mail
Newsgroups: comp.lang.ruby
Subject: Re: 101 Misconceptions About Dynamic Languages
References: <3A602471.F4C0EEE4@europia.fr> <01d001c07f08$82e2c720$2e03280a@puma> <3a63590c$0$81172$65a95bcd@news.citilink.com> <028701c07f56$b1bf1960$2e03280a@puma>
From: jstern@foshay.citilink.com (Josh Stern)
Date: 17 Jan 2001 03:50:19 GMT
Lines: 124
Message-ID: <3a65167b$0$81178$65a95bcd@news.citilink.com>
NNTP-Posting-Host: 771495cc.news.citilink.com
X-Trace: 979703419 gemini.citilink.com 81178 jstern@209.98.8.9
X-Complaints-To: abuse@citilink.com
Xref: news.citilink.com comp.lang.ruby:8270

Christian <christians@syd.microforte.com.au> wrote:
><Josh>
>> [ C++ is not type safe because ] it is possible to
>> accidentally dereference invalid objects and write
>> to invalid memory addresses.
></Josh>

>I haven't done that in a long time. Maybe it's because I'm an 'expert'. More
>likely it is because I very rarely need pointers (I use containers), I dont
>use delete (I use smart pointers), and I dont dereference invalid objects (I
>pass arguments by value or reference). 

References and containers can do the trick as well.  For instance, take
the following scenario:

   You create some sort of sorted container that holds 
   complex objects by value.  You lookup one of those objects 
   and you want to do a number of operations involving one of 
   its subparts. For efficiency, get a reference to that
   sub-part, so you don't need to keep asking for it or
   make an extra copy.  Then, in a moment of blindness,
   some result causes you to insert a new item in
   the container.  You may very well now have an
   invalid reference.

Even an "expert" can make such mistakes from time to time
when they are not paying attention and spend a while tracking 
them down.

>[skip rant about access to a parser that can be supplied as a library, or by
>using ANTLR]

Recalling the existence of parser generator tools is a long way from
defining and implemented an interpreted lanaguage, especially one with a syntax
as complex as C++ and an as yet not fully specified semantics.  
I take this flippancy as a sure sign that you have never attempted 
any such thing.

>> Josh> Managed C++ is apparently a new choice for the interpreted domain;
>a
>> choice which looks quite similar to C++.  So it can be evaluated
>> relative to usual set of criteria:
>>
>> a) is it cross platform
>> b) is it open source
>> c) it is fast
>> d) is it flexible
>> e) is it easy to write wrappers for calling compiled code
>> d) is it easy to embed
>>
>> I don't know the answers to these questions.  Perhaps you
>> would like to fill in?


>I am no expert on .NET.
>
>a) No, but it is straight forward to make it so. All you need is a virtual
>machine that understands IL (intermediate language). A worthy cause for all
>the Penguin hax0rs.

Ok, I certainly hope you are right about how straight forward this
is.

>b) No, but see a).
>c) I haven't done any tests yet, but I've dissasembled M-C++ and looked at
>the resultant IL. The JIT compiler produces native code from this IL, and
>the IL looks a lot like a generic assembly language with class extensions
>and type information. I intend to run some real-world performance analysis.
>d) Of course it is flexible -- it is C++ with transparent access to classes,
>methods and data defined in other languages, even across process and machine
>boundaries.

Now we are talking about also the kind of flexibility an interpreter
has, particularly for moving seamlessly between textual and executable
representations.  C++ is an unknown in this area.

>e) You don't need to 'write a wrapper for calling compiled code'. You just
>call it. 

Are you really familiar with Managed C++?  I'm not, but Microsoft seems 
to have a different ideas about it than you do:

http://msdn.microsoft.com/vstudio/nextgen/technology/managedext.asp

(search for wrapper)


>> Templates are cool, but C++ doesn't natively provide much support
>> for meta-programming.  Compare C++ with Ruby or Common Lisp
>> for the  project of listing and/or serializing and later restoring all
>> current system objects.

>There is no direct connection between meta-programming (describing types
>programmatically rather than explicitly) and persistence (object
>serialisation).

a) There is an important indirect connection
b) That's just an example.

>C++ does provide native support for meta-programming -- it's called partial
>specialisation. Partial specialisation allows you to do some quite
>remarkable things. 

I know quite a bit about templates and template 'meta-programming'.  
That's why I mentioned templates in response to your original claim 
that C++ provides good support for metaprogramming.  It doesn't.

The book _Generative Programming: Methods, Tools, and Applications_
by Czarnecki and and Eisenecker has some especially amusing chapters
on the theoretical Turing completeness template meta-programs.
But from a practical point of view, these techniques are mostly
amusing tricks.  They don't address most of the real world
meta-problems that a programmer might face and they don't
transcend the need to be able to define the executable
routines of interest at compile time, before interacting
with the user and their specific input and data.  The
ordinary function object technique is a big improvement
on C, in this regard, but still quite limited compared
to the techniques offered by an interpreted language
with closures, etc.

-= Josh




In This Thread

Prev Next