• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

What's the most perfectly succinct programming language?

 
author
Posts: 9050
21
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Some people contend that certain languages, like, er, ahem... Java, might be too verbose.

Some people contend that other languages, like Perl, are probably too terse.

What's YOUR favorite language from the perspective of succinctness vs. verbosity?
 
clojure forum advocate
Posts: 3479
Mac Objective C Clojure
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Clojure then Haskell.
 
author and iconoclast
Posts: 24207
46
Mac OS X Eclipse IDE Chrome
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
English.
 
author & internet detective
Posts: 41860
908
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Ernest Friedman-Hill wrote:English.


I don't know. English (requirements) tend to be quite ambiguous.
 
Hussein Baghdadi
clojure forum advocate
Posts: 3479
Mac Objective C Clojure
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Kanji is considered succinct or verbose?
 
Saloon Keeper
Posts: 15484
363
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
AFAIK Kanji is a script.
 
Bert Bates
author
Posts: 9050
21
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
..bunch of wise-acres...

How about 'most perfectly succinct *programming* language'


 
Jeanne Boyarsky
author & internet detective
Posts: 41860
908
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Bert Bates wrote:..bunch of wise-acres...


That's what you get for asking serious question in MD

Bert Bates wrote:How about 'most perfectly succinct *programming* language'


Is picking a DSL cheating? Domain specific languages are designed against the domain so a lot can be abstracted.
 
Rancher
Posts: 4803
7
Mac OS X VI Editor Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Iverson's APL was very succinct. Perl is much more dense that Java, but then again, nearly everything is.

Many folks will argue that LISP is the most expressive language.
 
Bert Bates
author
Posts: 9050
21
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Recently I've had the opportunity to talk with some 20-something, alpha-geek programmers. One recurring theme I hear from them is that they like languages that are less verbose than Java. These languages also *tend* to be dynamic languages (which they sometimes refer to as 'scripting' languages, and I think those definitions aren't precise and are shifting as we speak.) Some examples are CoffeeScript and Ruby.

Some other recurring themes are:

- Perl is TOO succinct
- They're looking for a quality - that's still a little elusive to me - that they call 'expressiveness'.

There are a lot of factors here, but one that we've talked about, and that I'm bringing up here, is that perhaps human brains are naturally 'tuned' to an optimum 'sweet spot' of succinctness. Hence this thread...

One, possibly related, concept that has been endlessly debated here at the ranch is the "proper" formatting of curly braces. At some level, the various styles create differing degrees of succinctness.
 
Pat Farrell
Rancher
Posts: 4803
7
Mac OS X VI Editor Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Bert Bates wrote:They're looking for a quality - that's still a little elusive to me - that they call 'expressiveness'.



I think that expressiveness is when you can apply an operator or method and know what it will do by looking at it. And when you combine chains of operators/methods, they work in intuitive ways.

The functional languages have it, but they look too foreign for most classically trained programmers.

I first saw it not in a language, but in an operating system: Tops-20/Tenex. If you could take a thing A and apply a function to it, say F(A) and get a result, and there is another thing B and another function G that has G(B) work, you can take G(F(A)) and have it work the way you expect, without looking up any manuals. It was liberating.
 
Hussein Baghdadi
clojure forum advocate
Posts: 3479
Mac Objective C Clojure
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Indeed.
After coding in Clojure and Haskell, I feel the functional programming language are really succinct. Composing functions is the first thing comes to my mind.
 
Marshal
Posts: 28177
95
Eclipse IDE Firefox Browser MySQL Database
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I used to program in APL, which was pretty darn succinct. That was 30 years ago; recently I saw an example of APL which was much more succinct than I remember APL being.
 
Pat Farrell
Rancher
Posts: 4803
7
Mac OS X VI Editor Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Paul Clapham wrote:That was 30 years ago; recently I saw an example of APL which was much more succinct than I remember APL being.


You sure it wasn't 40 years ago? I thought it had died out by 30 years ago.

APL programmers used to compete on how short they could make their programs. At least they did in the days when you used an IBM Selectric terminal with overtyping to make up the operators. I remember one was a box with a classic "divide" sign from arithemitic (÷) inside the box.

Those guys code do a ton of work in one line of APL.

The downside was that it was often Kleenex code: too complex to understand by anyone other than the author, and even often not by the author a few days later. So you used it once and threw it away, like a Kleenex.
 
Paul Clapham
Marshal
Posts: 28177
95
Eclipse IDE Firefox Browser MySQL Database
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Pat Farrell wrote:

Paul Clapham wrote:That was 30 years ago; recently I saw an example of APL which was much more succinct than I remember APL being.


You sure it wasn't 40 years ago? I thought it had died out by 30 years ago.



I did some googling and I can say that it was no earlier than 1975.
 
Ranch Hand
Posts: 1283
Netbeans IDE Chrome Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
counting clouds or sheep
 
Bartender
Posts: 1205
22
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Pat Farrell wrote:
APL programmers used to compete on how short they could make their programs. At least they did in the days when you used an IBM Selectric terminal with overtyping to make up the operators. I remember one was a box with a classic "divide" sign from arithemitic (÷) inside the box.



Ah yes... a divide and a box to make the 'domino'. If I recall correctly it did a least square best fit function. One sec... let me Google that. <20 seconds of Muzak/> It can do either the least squares fit or matrix inversion depending on the arguments you give it.

 
Pat Farrell
Rancher
Posts: 4803
7
Mac OS X VI Editor Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Ryan McGuire wrote:Ah yes... a divide and a box to make the 'domino'. It can do either the least squares fit or matrix inversion depending on the arguments you give it.



But how did the inversion code handle the Longley data?

p.s. nice Irish name there.
 
Greenhorn
Posts: 11
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
APL was generally state of the art with respect to matrix computation for the time. The state of the art has progressed a good bit since, then, of course.

 
Greenhorn
Posts: 3
Python Java Google App Engine
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I really like Python. It let you be clear in your coding, it includes lambda expressions and a great way of documenting you code...

Juan

---
Well, I posted this message, but it's clearly nothing about how "succint" python is...

Recently in a some programming quiz there was some text oriented problems to solve, one of them was getting the number of sentences that where 4 characters long, ended with 's','r','n','w',or 'k', and not containing the 'v'..



It's not only succint, but succint enought to be human frienly too...
 
Rancher
Posts: 379
22
Mac OS X Monad Clojure Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Pat Farrell wrote:

Paul Clapham wrote:That was 30 years ago; recently I saw an example of APL which was much more succinct than I remember APL being.


You sure it wasn't 40 years ago? I thought it had died out by 30 years ago.


APL was still very much alive and in use in the mid-80's. I encountered it during my industrial placement year at university and so fascinated by it that my final year special project was to write an APL interpreter (in Pascal). The department even bought an APL "golfball" for the Diablo teleprinter terminal in our lab so that I could do "real" APL programming with symbols :)
 
Greenhorn
Posts: 2
Eclipse IDE Tomcat Server Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Contributing to the original topic.

I don't think there is a definitive answer to the question. The correct "language" depends pretty much on what you are actually doing.

But I'll make a small comparison for PHP and Java (since I have little experience from other languages).
Making yourself a dynamic home page (or even for some company) it is much easier and faster to do it with PHP and/or JavaScript, than with Java. Also it's much easier to find a server for hosting php than java code (unless having your own server).

When you need to do lots of BL and stuff, the PHP will be like stabbing yourself in the face. (I did my share of PHP few years back, and that's how it pretty much felt when you were doing bug fixes and new features to legacy code)
Of course the legacy code was crappy as hell, but the coding wasn't any better even when doing brand new software from the scratch (teams consisted of 5-7 programmers). The maintainability was almost as horrible than before when the first iteration after the release started.

I have seen really crappy Java code also, but in Java you are kind of enforced to do certain things in smarter ways (maybe it's just the primitives). Even when Java code is done crappy, it is more maintainable than PHP.
 
"To do good, you actually have to do something." -- Yvon Chouinard
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com
reply
    Bookmark Topic Watch Topic
  • New Topic