POV-Ray : Newsgroups : povray.off-topic : Lots of statistics Server Time
29 Jul 2024 04:32:56 EDT (-0400)
  Lots of statistics (Message 168 to 177 of 177)  
<<< Previous 10 Messages Goto Initial 10 Messages
From: Orchid Win7 v1
Subject: Re: C#
Date: 28 Aug 2012 12:01:37
Message: <503ceb61$1@news.povray.org>
On 28/08/2012 04:22 PM, Jim Henderson wrote:
> When I was at uni, we had an 'intelligent' air traffic control program we
> were working on.  The first version was written on a machine that used
> lisp as its shell interface - and you could do weird things like reverse
> the direction the instruction pointer ran using a CLI script written in
> Lisp.
>
> Wish I could remember what the machine was.  It wasn't very fast (this
> was in the 1989-1991 timeframe), but it was pretty amazing tech.

Probably one of the various "Lisp machines", I should think... I gather 
there were similar systems powered by Smalltalk.

At uni, we used Smalltalk VisualWorks(tm). The entire environment is 
written in Smalltalk. Which means that with a few simple variable 
assignments, you could TOTALLY SCREW THE SYSTEM. The canonical example is

   Smalltalk := nil.

This causes all the windows to stop repainting and the mouse pointer to 
disappear. The only solution is to terminate the process via Task Manager.

In a less stupid note, one time I was writing an application, and it had 
various "components". Each component is implemented by a class, and I 
tried to add a #name method to return the name of the component...

...oh dears. Yeah, it turns out that Class already *has* a method named 
#name. And by overriding it, I made the system do some *weird* crap... 
It took me ages to figure out what the hell has happening.

A bit like the time I had a method that returns an array constant. It 
turns out it isn't actually constant. So if you mutate the array, you 
now have a method that /appears/ to return one thing, and /actually/ 
returns something completely different. (Until you reload the source 
code from disk...)

Mutable state is evil. :-P


Post a reply to this message

From: Darren New
Subject: Re: C#
Date: 29 Aug 2012 11:21:51
Message: <503e338f$1@news.povray.org>
On 8/28/2012 1:29, Invisible wrote:
> Is it because it requires people to actually learn new ideas and concepts?

Nope!  Remember, everyone has to learn new ideas and concepts for their 
first language.  People who learned assembler have to learn new ideas for 
Java, as do people who know C already. Javascript has lots of new ideas and 
it's quite popular.

> Or because it isn't backwards compatible with
> the massive legacy codebases that already exist?

Again, no. Remember that LISP predates COBOL and C++ and probably even C. 
All of that predates Java and Javascript.

-- 
Darren New, San Diego CA, USA (PST)
   "Oh no! We're out of code juice!"
   "Don't panic. There's beans and filters
    in the cabinet."


Post a reply to this message

From: Darren New
Subject: Re: C#
Date: 29 Aug 2012 11:23:17
Message: <503e33e5$1@news.povray.org>
On 8/28/2012 1:34, Invisible wrote:
> What I take issue with is the claim that for a language to be useful for
> anything it MUST be complex and badly designed.

Nobody is claiming that.

-- 
Darren New, San Diego CA, USA (PST)
   "Oh no! We're out of code juice!"
   "Don't panic. There's beans and filters
    in the cabinet."


Post a reply to this message

From: Orchid Win7 v1
Subject: Re: C#
Date: 29 Aug 2012 11:29:04
Message: <503e3540$1@news.povray.org>
On 29/08/2012 04:23 PM, Darren New wrote:
> On 8/28/2012 1:34, Invisible wrote:
>> What I take issue with is the claim that for a language to be useful for
>> anything it MUST be complex and badly designed.
>
> Nobody is claiming that.

...and yet, 200-post newsgroup thread... :-P


Post a reply to this message

From: Orchid Win7 v1
Subject: Re: C#
Date: 29 Aug 2012 11:30:05
Message: <503e357d$1@news.povray.org>
On 29/08/2012 04:21 PM, Darren New wrote:
> On 8/28/2012 1:29, Invisible wrote:
>> Is it because it requires people to actually learn new ideas and
>> concepts?
>
> Nope! Remember, everyone has to learn new ideas and concepts for their
> first language.

Sure. But the vast majority of programmers already know how to write 
imperative code. Learning a fundamentally new way of structuring stuff 
is no small feat.

>> Or because it isn't backwards compatible with
>> the massive legacy codebases that already exist?
>
> Again, no. Remember that LISP predates COBOL and C++ and probably even
> C. All of that predates Java and Javascript.

Remember also that Lisp never actually became popular...


Post a reply to this message

From: clipka
Subject: Re: C#
Date: 29 Aug 2012 11:34:37
Message: <503e368d$1@news.povray.org>
Am 29.08.2012 17:21, schrieb Darren New:

> Again, no. Remember that LISP predates COBOL and C++ and probably even
> C. All of that predates Java and Javascript.

With COBOL predating C by a dozen years or so, yes - if LISP predates 
COBOL it /obviously/ predates C as well ;-)

(According to Wikipedia, LISP indeed predates COBOL by one year.)


Post a reply to this message

From: Darren New
Subject: Re: C#
Date: 31 Aug 2012 19:53:28
Message: <50414e78$1@news.povray.org>
On 8/29/2012 8:30, Orchid Win7 v1 wrote:
> On 29/08/2012 04:21 PM, Darren New wrote:
>> On 8/28/2012 1:29, Invisible wrote:
>>> Is it because it requires people to actually learn new ideas and
>>> concepts?
>>
>> Nope! Remember, everyone has to learn new ideas and concepts for their
>> first language.
>
> Sure. But the vast majority of programmers already know how to write
> imperative code. Learning a fundamentally new way of structuring stuff is no
> small feat.

True, but irrelevant to the point being made.

>>> Or because it isn't backwards compatible with
>>> the massive legacy codebases that already exist?
>>
>> Again, no. Remember that LISP predates COBOL and C++ and probably even
>> C. All of that predates Java and Javascript.
>
> Remember also that Lisp never actually became popular...

Exactly the point being made, but you seem to have missed that.

-- 
Darren New, San Diego CA, USA (PST)
   "Oh no! We're out of code juice!"
   "Don't panic. There's beans and filters
    in the cabinet."


Post a reply to this message

From: Darren New
Subject: Re: C#
Date: 31 Aug 2012 19:55:53
Message: <50414f09$1@news.povray.org>
On 8/29/2012 8:34, clipka wrote:
> Am 29.08.2012 17:21, schrieb Darren New:
>
>> Again, no. Remember that LISP predates COBOL and C++ and probably even
>> C. All of that predates Java and Javascript.
>
> With COBOL predating C by a dozen years or so, yes - if LISP predates COBOL
> it /obviously/ predates C as well ;-)
>
> (According to Wikipedia, LISP indeed predates COBOL by one year.)

Right. Which means LISP, as elegant as it is, did not fail due to a lack of 
backward compatibility, which is the point I'm making.

-- 
Darren New, San Diego CA, USA (PST)
   "Oh no! We're out of code juice!"
   "Don't panic. There's beans and filters
    in the cabinet."


Post a reply to this message

From: Orchid Win7 v1
Subject: Re: C#
Date: 1 Sep 2012 03:51:09
Message: <5041be6d$1@news.povray.org>
>>>> Or because it isn't backwards compatible with
>>>> the massive legacy codebases that already exist?
>>>
>>> Again, no. Remember that LISP predates COBOL and C++ and probably even
>>> C. All of that predates Java and Javascript.
>>
>> Remember also that Lisp never actually became popular...
>
> Exactly the point being made, but you seem to have missed that.

My point is, for whatever reason, C-like languages became mainstream. 
Thus, these are the languages that everybody is used to, these are the 
languages that legacy code is written in, these are the languages that 
there are books about and courses for, these are the languages that have 
extensive libraries and tool support, etc.

In short, if you design a language which is /not/ C-like, it's going to 
be quite difficult for it to be popular. Regardless of how good the 
actual language design it, all of the factors above work against you.

Now, it depends just /how/ different your new language is. I'm not 
really sure why Lisp never took off; I'm going to go with "historical 
accident". (Back when Lisp was around, computing power was extremely 
scarce, and you couldn't possibly waste it by using a language that is 
even slightly inefficient. That probably put a lot of people off.) The 
various OO languages have done quite well, presumably because once you 
understand imperative and structured programming, OO is reasonably easy 
to assimilate.

Of course, there are factors other than language design in play. Java is 
a very mainstream language. Eiffel is an OO language like Java, but with 
a vastly superior design. In my limited experience, nobody has even 
/heard/ of Eiffel. Maybe it's because there isn't a huge multi-billion 
dollar corporation behind it. Maybe it's because there are really only 
two extant Eiffel compilers, one of which is commercial and extremely 
expensive. I don't know. What I /do/ know is that if you want a C 
compiler, you can find one for almost every platform on Earth which 
could be described as a "personal computer", and many others besides. 
How many of these platforms have Java compilers? Quite a few. How many 
have Eiffel compilers? Uh... not many.

(How many have a Haskell compiler? Well, let's see... MS Windows, Apple 
Mac OS X and later, hypothetically anything that runs Linux... but only 
hypothetically...)

Of course, in the case of Haskell, if you already know how to write C, 
the learning curve is pretty vertical, and there is minimal written 
material to help you on your journey. (And what exists is mostly out of 
date now.) I guess it's a bit like Linux 10 years ago. Only the hardcore 
need apply. Only time will tell if that ever changes...

I still do not agree that a language must be badly designed to be 
popular. Rather, it seems to me that all the languages that turned out 
to be popular are so for reasons other than just language design.


Post a reply to this message

From: Darren New
Subject: Re: C#
Date: 1 Sep 2012 14:11:48
Message: <50424fe4$1@news.povray.org>
On 9/1/2012 0:51, Orchid Win7 v1 wrote:
> My point is, for whatever reason, C-like languages became mainstream.

Right. And you should be asking yourself, given that the competition was C, 
COBOL, Fortran, Assembler, and Lisp, why it is that Lisp is the only 
language that never really persisted.

> In short, if you design a language which is /not/ C-like, it's going to be
> quite difficult for it to be popular. Regardless of how good the actual
> language design it, all of the factors above work against you.

Unless it's so orthogonal in capabilities to what C offers, yes.

> Now, it depends just /how/ different your new language is. I'm not really
> sure why Lisp never took off; I'm going to go with "historical accident".

There are other arguments. For example, LISP is so powerful that nobody ever 
really needed to build up a standard library like you see in Java and C#, 
and therefore everybody wound up reinventing events, OOP, complex data 
structures, etc etc etc.  Kind of like the same reason nobody programs to 
raw X-Windows, even though it's much more flexible than using widget sets.

> imperative and structured programming, OO is reasonably easy to assimilate.

I'd say more because it's an excellent fit for some kinds of very popular 
problems, while putting little in the way of those who need a different 
paradigm.

> Of course, there are factors other than language design in play. Java is a
> very mainstream language. Eiffel is an OO language like Java, but with a
> vastly superior design. In my limited experience, nobody has even /heard/ of
> Eiffel. Maybe it's because there isn't a huge multi-billion dollar
> corporation behind it. Maybe it's because there are really only two extant
> Eiffel compilers, one of which is commercial and extremely expensive. I
> don't know.

The lack of libraries is a killer too. You can no longer create a language 
that expects to be in its own little world without even a GUI language and 
expect it to fly.

> I still do not agree that a language must be badly designed to be popular.
> Rather, it seems to me that all the languages that turned out to be popular
> are so for reasons other than just language design.

Exactly. Yet if you create a brand new language that's not tremendously 
*more* productive in your chosen niche(*), then you've tossed away all the 
libraries, including conceptual library designs(+), that everyone else has 
already proven works.

(*) See, for example, Erlang, which succeeded because it's tremendously more 
productive in its niche (high-reliability computing) than its competitors. 
Or SQL.

(+) Conceptual library designs like threads, networking, data structures, 
GUI design, etc. You have to reimplement them for every language, but if you 
see a Thread class with a run() method and a wait() method and a notify() 
method, you pretty much don't have to read the documentation to know how to 
use threads.

-- 
Darren New, San Diego CA, USA (PST)
   "Oh no! We're out of code juice!"
   "Don't panic. There's beans and filters
    in the cabinet."


Post a reply to this message

<<< Previous 10 Messages Goto Initial 10 Messages

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.