Re: Groovy experience ?



Chris Uppal wrote:
David N. Welton wrote:

I think that there's a problem with various languages designed to run
on a JVM rather cancelling each other's popularity out. [...]

Various languages are designed to run 'on top of C', and that hasn't
hurt their popularity, although I suppose it's not possible to know how
things would have gone had there been only one language... I think that
while having too many choices does confuse people, and takes a little
bit away from everyone, that eventually the "market" is such that the
more popular and useful languages will rise to the top, and have enough
users and support that people will be able to happily use them if they
meet their needs.

I agree up to a point. But there are a number of differences in the situation,
which I think rather make it harder for an alternative JVM language to
establish itself.

One is that languages like Perl or Ruby (still less "real" -- i.e. not
scripting -- languages) don't "run on top of C" in the same way that Groovy,
say, runs on top of the JVM. That largely restricts their potential audience
to Java programmers -- which reduces the size of possible "market". (It
doesn't /have/ to -- it would be possible to create a language which used the
JVM internally as an implementation technology, but didn't advertise the
fact -- I don't know of any examples of that, but I suppose Jython comes
closest.) That may, by pre-selecting the potential audience to only Java
programmers, also discourage diversity amongst the proposed alternative
languages -- and if they are all pretty-much the same, why choose one over
another ?

Sure, it restricts the size of it, but Java's pretty popular, so I think there's still lots of room out there.

As far as 'diversity', speaking for myself, with Hecl I am taking the approach, to some degree, that I want it to be different from Java. I want to make it easier for more people to program cell phones, and make it faster for good programmers. And part of how I want to accomplish that is by making a language that, at times, takes a different road than Java does. So... I think there is some space for people doing stuff that's 'different'. Enough systems are written in Java that providing alternative means to access them is likely to, in some cases, extend the audience.

Secondly, for most languages which run over the JVM, a major point is access to
the very extensive Java class libraries which already exist. Hence
interoperability with Java code is pretty much a requirement -- this limits the
space that such languages can live in, and thus reduces the distinctions
between them (or at least reduces the perceived distinctions). To some extent
this point overlaps with the previous one, in that it maybe explains why
languages with "hidden" JVMs don't seem to exist.

With any "higher level" language that's built on top of/written in another language, you want to provide relatively easy access to the lower layer...

Another potential point is that such languages will always have big brother
Java looming over them. That shouldn't affect languages which are intended to
be pure scripting languages much -- any more than "big brother" C impedes Ruby.
But for languages that purport to be suitable for large scale development (Nice
and Scala, I think are in this space), then they have a problem in establishing
a competitive advantage over Java. Personally I'd rather try to persuade
people that my new pet language was a significant improvement over C (or C++)
than over Java -- especially if nearly all of my library functionality was
implemented in Java.

Agreed - I think that if you were drawing a graph, with assembler being low level, then C, Java would be higher up, which means that the scripting language has less room to breathe in, so to speak. In a system like C/Ruby, one language doesn't have GC, OO, and lots of other handy things.

A contrary point, which has only just occurred to me. We may only now be
seeing a time when there is a significant population of programmers who /only/
know Java, or who learnt Java first, and know that language best. For them,
the C-derived conventions of some existing scripting languages may seem odd,
and more Java-like languages more attractive (especially as they come with the
familiar Java libraries). So perhaps the heyday of JVM-based scripting
languages is soon to be upon us.

Java's going to be with us for a while yet, so I'd say that, yeah, there's still plenty of room to explore.

If I were trying to push my pet scripting language, I would be trying very hard
to persuade the Eclipse, Netbeans, etc people to include my language as the
automation language for their IDEs, and -- ideally -- to rewrite the outermost
"glue" code of those IDEs in my language.

That's a smart strategy. With Hecl, I chose a different niche to write to - mobile phones, but I think you definitely have to have "an angle". Without that, you're stuck simply trying to convince people that your language is 'better', which isn't going to fly with a lot of folks.

Ciao,
--
David N. Welton
- http://www.dedasys.com/davidw/

Linux, Open Source Consulting
- http://www.dedasys.com/
.



Relevant Pages

  • Re: Comparing Lisp conditions to Java Exceptions
    ... All the ISO standards in the world will not make the world ... Nothing keeps you from annotating your program with exceptions based on what ... language should adhere to your theory. ... Curiously, although you don't say it, Java has the opposite problem. ...
    (comp.lang.lisp)
  • Re: casts
    ... This is why most shit programmers refuse to learn languages including ... C Sharp and Java. ... compiler in a later edition of Visual Basic, ... language for processing data. ...
    (comp.lang.c)
  • Re: C, really portable?
    ... > Wait, is Java a modern language superior to C, or is it still ... It is a much better OO language than C++, ... It depends what you are doing, Java aims for rigorous portability - the same ... regardless of platform. ...
    (comp.lang.c)
  • Re: Is anybodys favorite computer programming language not included here?
    ... to talk about getting me some paying work writing Java classes. ... and could be copied to a script (as in Java BeanShell or Lisp PROG). ... >> please post a followup saying what language it is, ... Server: "Mother, ...
    (comp.programming)
  • Re: Basic inheritance question
    ... used 'this' in C++ and Java. ... but in Python it doesn't. ... language, they would write a lot of ten liners that is changed a LOT ... Add three levels of inheritence and a couple globals and you'll find out ...
    (comp.lang.python)