> To change the subject yet again in this
thread...now that most of us
> agree C is not much more than a (possibly bad) high level assembler,
> what does everybody recommend for a general purpose UNIX programming
> language?
What problems do you want to solve?
My inability to identify a good general purpose UNIX programming language
that is compiled to native code and has good library support :-)
I'd like to be able to write apps with a GUI and be able to issue SQL, just
general purpose stuff.
> to me nothing has the library, GUI support etc.
like C and C++ do, but
> those languages seem suboptimal for most things. I write almost no code
> on UNIX because I haven't ever found a traditional compiled language I
> like
What languages DO you like?
On IBM I prefer assembler. PL/I is a good (excellent) general purpose
language. Ada 95 is also a good general purpose langauge, but stiffer than
PL/I and can be annoying especially when working with strings. I'm not
aware of any PL/I for UNIX or Linux, and Ada while available and very good,
lacks SQL and GUI support or quickly runs into GPL contamination issues
just from linking libraries which is not something I'm going to get into.
The ncurses interface for Ada is excellent btw but ncurses has limitations.
> that has enough support to make it usable.
Many languages have a lot of "support" these
days (for example, one can
no longer say that Scheme or CL or Haskell etc lack organised libraries).
The examples you listed aren't general purpose programming languages by any
stretch and Scheme and CL are normally byte code compiled although if you
look hard enough you can find a native code version here or there, but
they all have various quirks. Any language that forces you into a paradigm
like "everything is tail recursion" or "every solution is a functional
program" is (far) too narrow for general use. I could abuse FORTRAN as it
has been for most of its life and force it outside the box, but I don't
want to do that. C is a good model of the generic approach in that you can
write procedural code or write OO code, basically it lets you do what you
want rather than forcing a paradigm on you. In that sense, to me it is
good. But it's too low level for my taste and there are other things I
don't like about it. PL/I would be about perfect if it existed except for
the fact all the UNIX header files are in C. To me that is a problem I
don't know how to get around in all languages other than C/C++.
What support do you specifically need?
GUI and SQL would be on top of the list. Not sure what else I would want
since I don't write code on UNIX yet. Hoping to though.
I used to make a point to choose an appropriate (domain specific) language
for whatever task I had to solve. I wound up being good enough with many
languages and not an expert at any of them back then. There has been so
much language development over the years, I'm hoping there is some
magic bullet language (for me) that's general enough and high level enough
to be easily usable but with interfaces to anything a normal application
could want. Maybe that's not a reasonable goal on UNIX, I don't know enough
to say. I do know on IBM all of the application programming languages offer
more or less the same support for various items like database, UI etc. and
I am used to that model. There are a lot less choices over there so we
aren't as fussy. UNIX has so many choices, it makes it a little harder kind
of like at a restaurant that serves only one thing (pizza, chicken wings)
you don't have much deciding to do but if you go to a place with a phone
book for a menu all of a sudden life is complicated.
I know there is a lot of UNIX knowledge on this list and wanted to bat the
idea around a little and hear what people are using for their main GOTO
language (no pun intended!) and why.