Favorite Computer Languages?

#1
I've noticed from other threads that we have a few techies here. And there are a couple threads comparing brains to computers, so it seems people like to think about programming. :) On that topic, I figured I'd ask if you could program in any language, what would it be and why? Pretend that performance did not matter. For example, a constrained embedded system might dictate C/C++ instead of Java, but assume CPU/memory is not a factor and only consider the language's ease of use, conciseness, maintainability, expressiveness, etc.

I much prefer dynamic languages like Python, Ruby, Groovy, or JavaScript. I've used C++ for years, followed by many years of Java. I find Python and Ruby similar, but if I've not used the language for a while, I tend to remember Python better, but its close. I also like JavaScript a lot and find that with backends like MongoDB and Node.js, having a single language end-to-end is nice when building Web applications.

These days, I have a LOT of code that needs to co-exist with the JVM, and use existing Java code, so I've exclusively switched to Groovy. Usage with existing Java code, in each direction, is transparent. And the Groovy code is quicker to write, much more readable with less lines of code, and easier to maintain. I've never used Scala.

Cheers,
Bill
 

Paul C. Anagnostopoulos

Nap, interrupted.
Member
#2
I agree that dynamically typed languages are the cat's pajamas. Python is great except for the whitespace syntax, which is the Devil's work. Ruby appears nice and clean but really isn't. Javascript and Lua are more or less the same. Java is too verbose. The grandfather of all these languages, and still the cleanest in many ways, is, of course, Lisp. I worked in the VAX Common Lisp development group at Digital for four years.

Perl is an absolute horror, as is PHP.

Prior to working with dynamic languages, I wrote lots of code in Fortran, PL/I, Bliss, C, C++, and various assembly languages. I also wrote a large amount of code in DCL, the VMS command language. I wrote a book on it.

I write all my business and personal code in Hearsay, which is my own language. It compiles into an extended version of Thompson AWK (TAWK), which is itself a significantly extended version of AWK. Pat Thompson kindly gave me the source code about four years ago and a friend and I have been extending and optimizing it ever since.

I'll have to give Groovy a try.

~~ Paul
 
#3
Wow, your own language! You certainly can't complain about that one :) Nice to hear we're on agreement with dynamic languages and Python vs. Ruby. The Python syntax is a bit different, but I've never been bothered by it, then again I'm always using an IDE that knows Python.

Cheers,
Bill
 
C

chuck.drake

#4
I only hack on the various *NIX stuff. I'm an Oracle DBA. I don't even write any SQL to speak of. I mainly work on the systems side--installs and upgrades, patching. I used to program in basic on the TRS-80 machines we had in high school back in the 80's. Does anyone remember the TRS-80 machines! We would play that text based "Adventure" game for hours.
 
F

Frank Matera

#5
I'm anti open-source.... well not really ;) I've just always worked in environments where I've had to use commercial languages... and jokingly used to tell my open source mates that if the company can't afford to pay for a real language or operating system then they can't afford to pay for me ;) Used to get them riled up... some people are as patriotic to their software as they are religions or sporting teams. :eek:

Haven't had much experience with Python, Ruby etc so can't compare... but my favourite is C#. Also worked a fair bit with Objective C which was Steve Jobs bastardised attempt at having sex betweena 1970's version of "C" and his own language NeXTSTEP. That took some getting used to... especially the early XCode interface given by Apple was complete crap... and as intuitive as a bundle of string. The latest version of XCode looks a million miles ahead of where it was a few years ago.

I'll always be very fond of Cold Fusion as well... programmed a lot with that in the 1990s and to this day is still a very good language and was ahead of it's time for making web designers into programmers. It is basically the reason that .Net was developed by Microsoft... if memory serves me correct Microsoft tried to buy Cold Fusion at the time when they wanted to get rid of VB6.... but Allaire the company that owned it disliked Microsoft so much that they sold it for less to Macromedia.... so Microsoft just went out and developed .Net instead.
 

Paul C. Anagnostopoulos

Nap, interrupted.
Member
#6
Wow, your own language! You certainly can't complain about that one :) Nice to hear we're on agreement with dynamic languages and Python vs. Ruby. The Python syntax is a bit different, but I've never been bothered by it, then again I'm always using an IDE that knows Python.
I like to put code in columns other than the ones dictated by whitespace indending, so it annoys me. I'm sure if I had to write gobs of Python I'd come up with new conventions and get used to it.

One nice thing about my own language is that if I decide something is missing, I can add it!

~~ Paul
 
#7
I'll have to give Groovy a try.
You'll probably like it.

Code:
// Java

Map<String, String> map = new Map<String,String>();
map.put("key1", "value1");
map.put("key2", "value2");
for (Map.Entry<String, String> entry : map.entrySet()) {
    System.out.println(entry.getKey() + " = " + entry.getValue());
}

// Groovy

def map = [key1: "value1", key2: "value2"]
map.each { k, v ->
    println "$k = $v"
}
When you have hundreds of thousands of lines of code to maintain, the difference adds up :)

Cheers,
Bill
 
#8
Have been working with Scala recently as a faster, less-verbose prototyping language for the JVM.
It's also pretty good for production and it's easy to interoperate between the two.

Interesting language, very simple to learn from a Java background. It's got all of the fancy things and conveniences lacking in Java (including 8). It's like Java meets Python without loosing static typing and grabbing all functional goodies :)

If pushed to the extreme the syntax can become quite esoteric:
http://www.cakesolutions.net/teamblogs/2011/12/22/merry-christmas/
 

Paul C. Anagnostopoulos

Nap, interrupted.
Member
#9
You'll probably like it.

Code:
// Groovy

def map = [key1: "value1", key2: "value2"]
map.each { k, v ->
    println "$k = $v"
}
Oh yes, I do believe I would like it.

Code:
// Hearsay

constant map = ['key1: "value1", 'key2: "value2"];

foreach k, v in ascii_order map do
  format("~S = ~S\n", k, v, standard_output);
end
Hearsay is not object-oriented. I don't like braces. I'm not a fan of string interpolation, though I would probably come to like it. The format() function is like printf() on steroids, similar to the Common Lisp format() function.

http://en.wikipedia.org/wiki/Format_(Common_Lisp)

~~ Paul
 
#10
Haven't had much experience with Python, Ruby etc so can't compare... but my favourite is C#
I agree, Coming from C-based languages if I had to choose one among all I'd go with C#. MS did a very good job at creating the "Java of the next millenium".

Unfortunately (or fortunately) I don't use MS platforms so much, most of my work targets Linux and Mac as well, so Java is my choice. Mono is not bad for running C# on other platforms, but it's a subset of .Net. I've been using it extensively to build APIs.

cheers
 
#12
Have been working with Scala recently as a faster, less-verbose prototyping language for the JVM.
It's also pretty good for production and it's easy to interoperate between the two.

Interesting language, very simple to learn from a Java background. It's got all of the fancy things and conveniences lacking in Java (including 8). It's like Java meets Python without loosing static typing and grabbing all functional goodies :)

If pushed to the extreme the syntax can become quite esoteric:
http://www.cakesolutions.net/teamblogs/2011/12/22/merry-christmas/
Scala was on my TODO list at one point. If I ever need more performance than I get out of Groovy and need to run in the JVM, I'll definitely give it a look.

Cheers,
Bill
 
#13
Scala was on my TODO list at one point. If I ever need more performance than I get out of Groovy and need to run in the JVM, I'll definitely give it a look.
Isn't there also a statically typed version of Groovy that's supposed to be much faster? I haven't played much with Groovy. When I need dynamic languages in the JVM it's usually Python (or JS).
 
#15
Isn't there also a statically typed version of Groovy that's supposed to be much faster? I haven't played much with Groovy. When I need dynamic languages in the JVM it's usually Python (or JS).
It all gets compiled into static class files, and interoperates with Java seamlessly, calling in both directions. If any of the code is written in Groovy, the only requirement is that the Groovy run-time JARs need to be included in the class path. It handles all the dynamic stuff, and although it's gotten better, overall performance was not great last I checked.

Cheers,
Bill
 

Paul C. Anagnostopoulos

Nap, interrupted.
Member
#17
A few times post-processing and parsing a ton of complex data, Perl made life wonderful compared to some other tools I had available at the time.
I don't think I could overcome my revulsion in order to experience the wonder. Plus, I think evaluating programming languages by quantity of typing is putting the arse before the horse. I'm not saying that's what you're doing, but I've certainly see many keystroke-count wars.

~~ Paul
 
#19
I don't think I could overcome my revulsion in order to experience the wonder. Plus, I think evaluating programming languages by quantity of typing is putting the arse before the horse. I'm not saying that's what you're doing, but I've certainly see many keystroke-count wars.

~~ Paul
I'm not really a programmer, even though I have to use a couple languanges and scripting languages all the time. They're just another tool I have to use to get a job done. That was my persective I was coming from on Perl - a few times it was a great tool that had some powerful data parsing capabilities I couldn't figure out without it.

That said, when I would go back to my script months later ... all the regular expressions made it look like an alien language and I had no idea what the heck my script did anymore, lol.
 
#20
Yeah, they were pretty popular... Basic, Scheme, PHP, Scheme.
Ruby and Objective-C to some extent too :eek:
So far I've successfully avoided Objective-C. If I ever need to build an iPhone app, I might try something like Titanium first.

Cheers,
Bill
 
Top