caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: John Max Skaller <skaller@ozemail.com.au>
To: Dave Berry <dave@kal.com>
Cc: Markus Mottl <mottl@miss.wu-wien.ac.at>, OCAML <caml-list@inria.fr>
Subject: Re: JIT-compilation for OCaml?
Date: Thu, 11 Jan 2001 18:00:36 +1100	[thread overview]
Message-ID: <3A5D5A14.8EC2F7AB@ozemail.com.au> (raw)
In-Reply-To: <3145774E67D8D111BE6E00C0DF418B663AA6EC@nt.kal.com>

Dave Berry wrote:
> 
> This view seems extreme to me.  Certainly the Java type system has faults --
> lack of generics being one, lack of enumerated types another, and various
> other points as well.  But surely Unicode is a useful de facto standard?

	No. Unicode was abandoned years ago: there is an 'offical'
ISO Standard: ISO-10646. There are 2^31 code points, unlike
Unicode's 2^16, which is already barely adequate. ISO C and ISO C++
support ISO-10646. Linux runs ISO-10646 (via UTF-8).

> Using C syntax was a strong point -- it made the language familiar to many
> people. 

	This is a selling point: Felix also uses a C like syntax,
but it fixes the worst deficiency in C/C++, namely declarator
syntax, indeed Felix is LR(1) [works with ocamlyacc] and unambiguous 
except for the usual 'dangling else' ambiguity.

	A competent C/C++ programmer had no trouble learning
it in a few minutes. It isn't hard to learn:

	val x: int = 1;
	function f(x:int) { .. }

although I often make the mistake:

	function f(int x) { .. }

myself, being an (ex-)C/C++ programmer :-)

> IMO Java syntax does avoid many of the worst aspects of C syntax
> (e.g. pointers).  

	Really, this is a matter of semantics rather than syntax.
Java uses references and a garbage collector, which I agree can
have advantages over pointers and manual storage control.

	Felix uses pointers, but they cannot be NULL,
and it uses a garbage collector: syntactically you have to
form them by addressing (&variable) and use them with
dereferencing (*pvariable). I don't think the syntax
is that much of an issue -- in Ocaml, you have to dereference
references too.

> It's surely portable: JVMs run on many systems.  

	Sure. With restricted functionality. To get 'many real' programs
to work you need native code extensions.

> It certainly isn't slow to compile, 

	The version of Java I used (1.2) was so slow as to be unusable.
It ran THOUSANDS of times slower than g++. (And ocaml is even faster!)
Perhaps this has changed recently.

> and a previous poster suggested that with
> modern compilers run-time performance is not too bad.  You can access C or
> C++ functions from Java using JNI (although you seem to be in two minds as
> to whether C compatibility is desirable or irrelevant).

	Like I said, there goes portability :-)
 
> And this omits it's plus points, especially its utility in net programming.
> Its security model is not the last word, but it's better than C, C++ or
> Eiffel!  And its use of byte code ensures portability of compiled apps.

	Python and Ocaml also use portable bytecodes. 
Python at least is every bit as good at 'net' programming as Java,
and faster to develop with. I dare say, that with some basic
libraries, Ocaml would be vastly superior at 'net' programming,
simply because it is vastly superior as a programming language :-)

	For example, Ocaml runs on MS's .net platform.

-- 
John (Max) Skaller, mailto:skaller@maxtal.com.au
10/1 Toxteth Rd Glebe NSW 2037 Australia voice: 61-2-9660-0850
checkout Vyper http://Vyper.sourceforge.net
download Interscript http://Interscript.sourceforge.net



  reply	other threads:[~2001-01-11  9:31 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-01-09 17:18 Dave Berry
2001-01-11  7:00 ` John Max Skaller [this message]
2001-01-11 10:01   ` Alain Frisch
2001-01-12  7:55     ` John Max Skaller
  -- strict thread matches above, loose matches on Subject: below --
2001-01-11 12:45 Dave Berry
2001-01-12  8:23 ` John Max Skaller
2001-01-09 17:09 Dave Berry
2001-01-11  6:38 ` John Max Skaller
2001-01-03 15:24 Jerry Jackson
2001-01-04 14:12 ` Alan Schmitt
2001-01-02 16:07 Markus Mottl
2001-01-02 18:16 ` Mattias Waldau
2001-01-02 19:30   ` Markus Mottl
2001-01-03 12:15     ` Alain Frisch
2001-01-04  8:37       ` Fabrice Le Fessant
2001-01-04  9:04         ` Alain Frisch
2001-01-03 13:23     ` Mattias Waldau
2001-01-03 14:25       ` Markus Mottl
2001-01-03 14:40       ` STARYNKEVITCH Basile
2001-01-03 15:51     ` John Max Skaller
2001-01-03 17:50       ` Markus Mottl
2001-01-05  0:30         ` Michael Hicks
2001-01-08  9:59           ` Xavier Leroy
2001-01-09  6:40         ` John Max Skaller
2001-01-03 17:49     ` Joseph R. Kiniry
2001-01-03 18:19       ` Markus Mottl
2001-01-03 18:38         ` Joseph R. Kiniry
2001-01-03 18:58           ` Markus Mottl
2001-01-03 19:06             ` Joseph R. Kiniry
2001-01-04 22:32               ` Jonathan Coupe
2001-01-07  0:16                 ` Chris Hecker
2001-01-05 12:52               ` Sven LUTHER
2001-01-05 20:08                 ` Joseph R. Kiniry
2001-01-09  7:14             ` John Max Skaller
2001-01-09  6:50         ` John Max Skaller
2001-01-05 12:39   ` Sven LUTHER
2001-01-05  5:48 ` Vitaly Lugovsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3A5D5A14.8EC2F7AB@ozemail.com.au \
    --to=skaller@ozemail.com.au \
    --cc=caml-list@inria.fr \
    --cc=dave@kal.com \
    --cc=mottl@miss.wu-wien.ac.at \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).