On 17/10/11 8:07 AM, vintagecoder at
aol.com wrote:
> 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
Why is that important? Is JIT good enough? If not, why not?
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
Java has more usable libraries than C++. But you already ruled out Java.
> 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, ...
> 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
Some would differ. Exactly what makes them "specialised"? (And if so,
for what?)
and Scheme and CL are normally byte code compiled
Many implementations either compile to machine code, or to C.
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.
Well, *your* general use, at least :D
I could abuse FORTRAN as it
has been for most of its life and force it outside the box,
Too much pain. Gah.
but I don't
want to do that. C is a good model of the generic approach
Too much pain.
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.
It forces an imperative paradigm with only the lightest pretence at
abstraction; demands micromanagement and enbodies an execution model
that doesn't map terribly well to real problems (for example, how do you
express relations in C, let alone query them? Yet relations seem to be
fairly useful for modelling common problems given their ubiquity in the
data model of typical applications).
In that sense, to me it is
good. But it's too low level for my taste
Quite.
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.
It's hard to find a Unix based language that doesn't cover these.
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
You had me at "task before tool" because it increasingly seems to me
that the challenge is mostly modelling. The typing-in part and getting
syntax right is not a significant burden.
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.
The trouble is you are going to get 20 different answers. However, most
of them will differ mainly in syntactic decoration and not concepts.
You've already rejected a bunch of conceptually more powerful tools above.
With due respect, it seems you have painted yourself into a bit of a
corner with arbitrary criteria that seem rooted in what was pragmatic in
1980. Oh, but wait, what about Smalltalk-80? Lovely language, and
probably has the libraries you need.
--Toby