Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

The title is a bit long, but the question is all there. Let me bring more precision on what the title exactly means.

I'm having this idea for a program which will be:

  • Quite complex (not exactly just duct taping)
    • Will contain many levels of abstraction
    • Will have to interact with databases
    • Will have to interact with the host OS
    • Will have to be scriptable to some extent
    • Would probably benefit from functional (and object-oriented?) programming paradigm facilities
  • Intense on shell interactions
    • Not necessarily very intense in term of interaction by unit of time (though it would peak high enough)
    • Intense in term of quantity of other tools and applications on which it will depend
    • The application's good behavior will depend entirely on its capability to interact with what's available in the OS shell
    • Must be able to use the application's return value as well as what's printed to STDOUT/STDERR
  • Portable
    • The application doesn't really make any sense if it doesn't run on Mac/Lin/Win

So I've been thinking about languages I know, languages I've only heard of... And I didn't come up with one which totally shines over the others as a great language to use for this project. Obviously, this reflection is very biased by my own experience/knowledge. You really don't have to read the following... I'm thinking out loud. I'm looking for suggestions and good arguments about them.

Any input is really appreciated.

  • My main language is currently Java. I know that calling shell applications from Java and gathering detailed results is not something to build upon. So I'm leaving aside some more interesting JVM languages as well (like Clojure and Scala). I know some people came up with methods to run shell commands, but it seems buggy and I don't think they get the output of the shell programs entirely...
  • I've thought of Perl, obviously, for its greatness at interacting with shell applications. The backtick quote operator, for example. But I'm no too sure if building a big application in Perl is a particularly good idea.
  • I've thought of Python too, but I didn't enjoy my experience with it much. Still not ruling it out. I have a little something against such verbose languages like it and Java... That philosophy which states that programmers are idiots and the languages must leave them as little choices as possible...
  • I know C++ to some good extent... but I believe it would be too low level.
  • There is more, but there's no use to discuss Pascal, assembly, brainfxxk and other such dying/low-level/esoteric languages.
share|improve this question
1  
Why the votes for closing? And which SE site would be fit for this question instead? – M. Joanis Jan 6 at 21:59
No, C++ is exactly right. Always. .-) – Bo Persson Jan 6 at 22:41
Building a big application in Perl may be a good idea, as long as the programmer is not idiot. I would favor Python though. My experience with it shows me that the programmer still has much freedom with it. – mouviciel Jan 6 at 22:42
2  
This is a perfectly reasonable question to ask. For myself, Python was the answer, but then I do about 90% of my work in Python. I have several routines I use to make subprocess launch/read/write simpler, but they are just syntactic sugar on top of standard Python 2.7. – Peter Rowell Jan 7 at 0:25
1  
I knew that would be the reason for closing... I understand, but I'm wondering what this site is doing with a "language-choice" tag at all. It's always going to bring up some amount some amount of subjective debate, no? The presence of subjective arguments doesn't mean there won't be any valuable objective and constructive point made. Anyway... Where do you guys go for such discussions? It's really not helping anything or anyone to silently close the thread. – M. Joanis Jan 7 at 2:25
show 6 more comments

closed as not constructive by World Engineer, gnat, Jim G., mattnz, Dynamic Jan 7 at 1:18

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, see the FAQ for guidance.