Language recommendation 
Author Message
 Language recommendation

I'm sure this sort of thing gets posted a lot, but I am looking for a language
in which to write a personal project.  The ideal language will:

1. Be cross platform, at least supporting Win95 and Linux on x86 machines.
2. Be interpreted but have a compiler available.  Speed is an issue, but I want
the interpreter for ease of debugging.
3. Have graphics or GUI libraries available for at least W95 and Linux.  The
graphics capabilities don't have to be the greatest, just as long as I'm able to
display 256 colors in 2d.
4. Be able to support dynamic data structures such as trees, lists, etc in an
intuitive manner.  Arrays should also be dynamic.
5. Have a built in associative array or hash-table structure, or a very easy
method of coding one, preferably as a user-defined type with a transparent
interface, like LPC mappings.
6. Have a good IDE and debugging interface.
7. Have a simple syntax.  C-like is best, since I'm most familiar with that, but
if it's simple enough, who cares?
8. Be freeware or cheapware.  Under $50 is good, and free is much better.
9. Be strongly typed.  I like strong typing for the error checking it gives.

So far, I've come across Euphoria, and that seems decent.  One thing that
bothers me is that it does not allow forward declarations and its method for
simulating them is awkward and kludgy.  Lack of a case statement is also a
minus, but not a big one.  LPC is not a bad choice, except that it doesn't do
graphics very well.  I've pondered using Lisp, but the syntax and semantics seem
too convoluted for me.  Are there any other languages that might fully meet my
criteria?

* Sent from RemarQ http://www.*-*-*.com/ * The Internet's Discussion Network *
*  The fastest and easiest way to search and participate in Usenet - Free!   *



Sat, 20 Apr 2002 03:00:00 GMT  
 Language recommendation


Quote:
> I'm sure this sort of thing gets posted a lot, but I am looking for a
language
> in which to write a personal project.  The ideal language will:

> 1. Be cross platform, at least supporting Win95 and Linux on x86 machines.

yes

Quote:
> 2. Be interpreted but have a compiler available.  Speed is an issue, but I
want
> the interpreter for ease of debugging.

yes

Quote:
> 3. Have graphics or GUI libraries available for at least W95 and Linux.
The
> graphics capabilities don't have to be the greatest, just as long as I'm
able to
> display 256 colors in 2d.

yes

Quote:
> 4. Be able to support dynamic data structures such as trees, lists, etc in
an
> intuitive manner.  Arrays should also be dynamic.

yes

Quote:
> 5. Have a built in associative array

yes

or hash-table structure, or a very easy

Quote:
> method of coding one, preferably as a user-defined type with a transparent
> interface, like LPC mappings.
> 6. Have a good IDE and debugging interface.

yes

Quote:
> 7. Have a simple syntax.  C-like is best, since I'm most familiar with
that, but
> if it's simple enough, who cares?

yes (but ...)

Quote:
> 8. Be freeware

yes

or cheapware.  Under $50 is good, and free is much better.

Quote:
> 9. Be strongly typed.  I like strong typing for the error checking it

gives.

oh well ... no!  ;-)

www.kx.com

have fun

Quote:

> So far, I've come across Euphoria, and that seems decent.  One thing that
> bothers me is that it does not allow forward declarations and its method
for
> simulating them is awkward and kludgy.  Lack of a case statement is also a
> minus, but not a big one.  LPC is not a bad choice, except that it doesn't
do
> graphics very well.  I've pondered using Lisp, but the syntax and
semantics seem
> too convoluted for me.  Are there any other languages that might fully
meet my
> criteria?

> * Sent from RemarQ http://www.remarq.com * The Internet's Discussion
Network *
> *  The fastest and easiest way to search and participate in Usenet - Free!

*


Sat, 20 Apr 2002 03:00:00 GMT  
 Language recommendation

Quote:

> www.kx.com

> have fun

If he thought Lisp was hard, this is probably not going to be much
better :)  I guess you have to be willing to invest the time.

Quote:

> > So far, I've come across Euphoria, and that seems decent.  One thing that
> > bothers me is that it does not allow forward declarations and its method
> for

Euphoria also isn't compiled, nor widely used, especially under Unix,
although its users seem very enthusiastic about it.

Quote:
> > graphics very well.  I've pondered using Lisp, but the syntax and
> semantics seem
> > too convoluted for me.  Are there any other languages that might fully
> meet my
> > criteria?

Which Lisp?  I assume Common Lisp.  There's also Dylan, which is based
on the same principles as CL, but with a different, more "conventional"
syntax.  See http://www.gwydiondylan.org/

Good luck.

--

http://www.auntfloyd.com/



Sun, 21 Apr 2002 03:00:00 GMT  
 Language recommendation


Quote:
>4. Be able to support dynamic data structures such as trees, lists, etc in an
>intuitive manner.  Arrays should also be dynamic.

One thing I forgot: Arrays of functions would be a Nice Thing to have.  LPC has
this, too, and Euphoria can simulate it acceptably.

* Sent from RemarQ http://www.remarq.com * The Internet's Discussion Network *
*  The fastest and easiest way to search and participate in Usenet - Free!   *



Sun, 21 Apr 2002 03:00:00 GMT  
 Language recommendation

Quote:


>> www.kx.com

>> have fun

>If he thought Lisp was hard, this is probably not going to be much
>better :)  I guess you have to be willing to invest the time.

Well, I said it _looked_ convoluted.  If there's really a simple structure
behind all those parenthesis, then I'd sure be willing to take a real look at
it.  I've never done declarative or functional programming though.

Also, isn't pure Lisp typeless?

Quote:
>> > So far, I've come across Euphoria, and that seems decent.  One thing that
>> > bothers me is that it does not allow forward declarations and its method
>> for

>Euphoria also isn't compiled, nor widely used, especially under Unix,
>although its users seem very enthusiastic about it.

No, it's not, unfortunately. :(

Quote:
>Which Lisp?  I assume Common Lisp.  There's also Dylan, which is based
>on the same principles as CL, but with a different, more "conventional"
>syntax.  See http://www.gwydiondylan.org/

Yes, CL is what I am referring to.

* Sent from RemarQ http://www.remarq.com * The Internet's Discussion Network *
*  The fastest and easiest way to search and participate in Usenet - Free!   *



Sun, 21 Apr 2002 03:00:00 GMT  
 Language recommendation


Quote:

Miller)

> >4. Be able to support dynamic data structures such as trees, lists, etc
in an
> >intuitive manner.  Arrays should also be dynamic.

> One thing I forgot: Arrays of functions would be a Nice Thing to have.
LPC has
> this, too, and Euphoria can simulate it acceptably.

yep

Quote:

> * Sent from RemarQ http://www.remarq.com * The Internet's Discussion
Network *
> *  The fastest and easiest way to search and participate in Usenet - Free!

*


Sun, 21 Apr 2002 03:00:00 GMT  
 Language recommendation


i see that you're at nyu.  dennis shasha over at courant has been working
with k for several years.



Sun, 21 Apr 2002 03:00:00 GMT  
 Language recommendation

Quote:

> Well, I said it _looked_ convoluted.  If there's really a simple structure
> behind all those parenthesis, then I'd sure be willing to take a real look at
> it.  I've never done declarative or functional programming though.

Lisp syntax is very regular, it's just that it's different from most
other languages.  Its more 'free form', and somewhat like a parse tree.

Quote:
> Also, isn't pure Lisp typeless?

No, it's just that you don't have to declare types if you don't want or
need to.  This allows you to create functions that operate on any type
of variable, for example.  CL has a large number of types and OO
classes.

Two other languages you might want to look into are Haskell
(http://www.haskell.org/) and SML.  Both are strongly-typed, have
compilers and interpreters, etc.  I can't comment on GUI support,
however.

You might also want to check out
http://www.tunes.org/Review/Languages.html for some more pointers.

--

http://www.auntfloyd.com/



Mon, 22 Apr 2002 03:00:00 GMT  
 Language recommendation


language.  He wants:

Quote:
> 1. Be cross platform (Win95 and Linux on x86)
> 2. Be interpreted but have a compiler available.
> 3. Have graphics or GUI libraries
> 4. Be able to support dynamic data structures
> 5. Have a built in associative array or hash-table structure
> 6. Have a good IDE and debugging interface.
> 7. Have a simple syntax.
> 8. Be freeware or cheapware.
> 9. Be strongly typed.

Don't we all? ;-)

I'd add to that
10. Have good support (advice and some chance of being permanent)

While I know of quite a few languages, I've not heard of Euphoria (and
LPC rings only vague bells) - I suspect neither meets (10) (but I will
go and look at them when I get a reliable connection - everything seems
very flaky today).

When I was looking around a few months ago for something simlar, I chose
Lisp.  You say you don't like the strange syntax, which is fair enough,
but it is certainly simple (simpler, from a logical point of view, than
C).  The newsgroup is supportive (there's also www.alu.org), and
although it has probably "peaked" as a language it looks as though it
will be around for a long time (don't post to comp.lang.lisp asking if
Lisp is dead, please!).  It (Common Lisp) is also quite a modern
language - it has very powerful object-oriented features, for example -
and there are free versions and GUI libraries (there's also CLIM, which
is not free but has a certain mythical status).  Best of all, however,
it "feels" nice when you use it - rather like an old tool that has been
rubbed smooth with generations of use :-).

If I had to choose something else, it might be python (but there's still
not really a compiler), or (ignoring point 10) one of the modern
languages trying to bridge the OOP/functional gap like Sather or Cecil,
or even Scheme (Lisp with various chunks, including some of your
requirements, removed, but more elegant, if less useful, as a
consequence), or even one of the "array" languages, just because I
haven't used one, and to keep a certain other comp.lang.misc reader
happy :-).

Of all those, Python meets your list best, I think.  I suspect it will
get a compiler eventually - it seems to be one booming language.

Andrew

PS I survey features from many languages at
http://www.andrewcooke.free-online.co.uk/andrew/lang.html (I will try
and spell-check it and improve punctuation this weekend!)

Sent via Deja.com http://www.deja.com/
Before you buy.



Mon, 22 Apr 2002 03:00:00 GMT  
 Language recommendation


Quote:
> Also, isn't pure Lisp typeless?

Forgive me if you know this, but...

C has weak typing.  That means you can{*filter*}up and you only find out
when strange things happen down the line.  It's hell and keeps the
people who make Purify rich.

Lisp has strong dynamic typing, as does Python (if I remember
correctly).  That means that the type of everything is known by the
system, even though you don't specify it.  The runtime system will
scream in objection as soon as you try to execute code that does
something stupid.

ML has strong, static typing.  That means that the system will scream in
objection as soon as you try to compile code that does something stupid
(in fact, ML helps out and supplies type information for you where it
can - it's quite neat).

Java, which is what many people think of as a "strongly typed" language,
also tries to have strong static typing (it doesn't quite manage so you
can get class cast exceptions) and it's what C programmers tend to think
of as a "nice, safe language".  After having horrible memory problems
with C, strong static typing seems like a Good Thing.

And it is (a Good Thing), but it can be restrictive.  For one-person
projects, you might be happier with strong *dynamic* typing.  You don't
get compile time checks, but you do get more flexibility, and when the
system hits an error you find out precisely where it is (rather than the
system crashing later in the program as happens with C).

I believe Dylan uses strong dynamic typing unless you specify types, in
which case it does static compile time checking (I am not sure about
this - but I am sure I will be corrected if not :-).  In Lisp you can
also declare types, but more as an aid to efficiency than for compile
time checking.

Andrew
http://www.*-*-*.com/

Sent via Deja.com http://www.*-*-*.com/
Before you buy.



Mon, 22 Apr 2002 03:00:00 GMT  
 Language recommendation


Quote:

> > www.kx.com

> > have fun

> If he thought Lisp was hard, this is probably not going to be much
> better :)  I guess you have to be willing to invest the time.

of course.  there are no instant blackbelts.

why is it that no list of criteria for choosing a language ever contains
the following item:

- a reference manual which weighs less than the u.s. annual budget report

the k bytecode interpreter is 90k, and contains native gui, ipc, database,
and on-line help.

the language consists of 20 primitives, 8 datatypes, and 3 syntax
categories.

like APL, the elements of k programming can be acquired in an afternoon,
although learning to combine simple ideas to solve complex problems takes
longer.

here's an example of what i mean.

given a financial statement with line-items a,b,c,d,e,f,g,h, arranged
hierarchically

a
 b
 c
  d
  e
   g
   h
  f

and leaf values

b = 10 11 12 ...
d = 20 21 22 ...
g = 30 31 32 ...
h = 40 41 42 ...
f = 50 51 52 ...

how do you compute the subtotals for a, c, and e?

let's make this problem a little more realistic.

you're given the structure of the statement in relational form, as a parent-
child table:

p  c
-  -
a  b
a  c
c  d
c  e
c  f
e  g
e  h

and you're given data for the leaves as an item-data table:

i  d
-  -
b  20
b  21
b  22
:   :
h  40
h  41
h  32
:   :

write the code to produce a summary table:

i  d
-  -
a  <grand total>
b  <b subtotal>
:
h  <h subtotal>

how many lines of code in the result?
how large is the executable?
how many primitives are used?
how fast does it run?
how large can the data table be?



Mon, 22 Apr 2002 03:00:00 GMT  
 Language recommendation


Quote:
>Lisp syntax is very regular

I've seen this claim made lots of times, but from the little Lisp
(mostly Scheme) programming I've done, I don't think it's true.

Every special form has its own syntax.  I suspect that the fact that
they all *look* very similar is one of the reasons people find Lisp
confusing.  As a trivial example, consider these two snippets of code.

    (if (> n 10) (< n 20) (> n 5))

    (list (> n 10) (< n 20) (> n 5))

The surface syntax is identical.  Yet one evaluates only two of the
subexpressions, and returns a Boolean; the other evaluates all three
subexpressions, and returns a list.

On a similar note, `((' always throws me.  On the rare occasions it
appears in "normal" code, it indicates that you are calling the function
returned by another function: `((lambda (x) (+ 1 x)) 5)'.  But usually
it appears in special forms like `cond' and `let', where it means
nothing of the sort.

As I've gained more experience with Lisp, these syntactic issues have
become less confusing for me; as they do when learning any language.
But I maintain that Lisp has just as much syntax as the next language,
and the fact that it's less visually obvious doesn't make it any
simpler.

Tim.
--
Tim Goodwin   | "People think [ W. Gibson is ] hi-tech because his prose
Leicester, UK | is as pleasant to read as a C++ program." -- JT



Mon, 22 Apr 2002 03:00:00 GMT  
 Language recommendation
/ >Lisp syntax is very regular
/
/ I've seen this claim made lots of times, but from the little Lisp
/ (mostly Scheme) programming I've done, I don't think it's true.

The syntax of Lisp is very simple.

The protocol for a particular call is as complicated as the writer wants
it to be.

The same thing happens in a script language like Tcl.

--
CACS - Special Halloween Edition
v0.12 all pages done. http://www.angelfire.com/ca3/cacs
For a free CACS T-shirt send $42 shipping and handling.
pretty?     http://www.geocities.com/SoHo/Studios/5079/



Mon, 22 Apr 2002 03:00:00 GMT  
 Language recommendation


Quote:
>/ >Lisp syntax is very regular
>/
>/ I've seen this claim made lots of times, but from the little Lisp
>/ (mostly Scheme) programming I've done, I don't think it's true.

>The syntax of Lisp is very simple.

>The protocol for a particular call is as complicated as the writer wants
>it to be.

Let's face it, though, these 'particular calls' include the day-to-day
useful stuff like 'do' that appear in the Common Lisp ANSI spec. which
are used in pretty much every useful program! And each of them tend to
have their own idiosyncratic syntax.

-- Mark



Mon, 22 Apr 2002 03:00:00 GMT  
 
 [ 29 post ]  Go to page: [1] [2]

 Relevant Pages 

1. Language recommendation wanted

2. HTML parsing - language recommendation

3. Language recommendation, a summary

4. Language recommendations wanted

5. Language recommendations wanted

6. Software test language recommendations needed

7. OT: Functional Language Recommendation

8. Textbook Recommendation Needed For Course on Programming Languages

9. Good recommendation for book on assembly language linux and windows

10. _BOOKS recommendation (ASSEMBLY language)

11. Any Assembly language book recommendations?

12. Recommendation of websites for Fortran language self-study

 

 
Powered by phpBB® Forum Software