DEV Community

Discussion on: Which programming languages do you use and why?

Collapse
 
eljayadobe profile image
Eljay-Adobe • Edited

Python (3.x) - swiss army knife scripting language, lovely syntax, approachable... my only gripe: I'm still not a fan of indentation for block structure, I guess I have curly-braces in my DNA

Lua (5.x) - tiny footprint embedded scripting engine, elegant syntax with just the right amount of sugar... my biggest gripe: 1-based indexing

C++ (C++14 these days) - powerful, not a nanny language, dangerous, my day-to-day language (and it pays the bills)... I have a love-hate relationship with C++

D (2.x) - a better C++ than C++, created by Walter (1.x & 2.x) & Andrei (2.x)... I look at this as a "What C++ could have been if it hadn't been backwards-ish compatible with C"

F# (4.x) - functional programming is a game-changer; F# is a mature, pragmatic language with a beautiful syntax (basically it is OCaml for .NET; the ML lineage has been around since the 1970s)... Haskell is a pure language, and can teach the functional programming concepts, but I don't like its syntax and it's not what I'd use for an industrial strength program... attempting to learn functional programming in C++ or Lisp will do much to injure one's understanding of functional programming... another interesting functional programming language is Elm (but it is a rapidly evolving 0.x language, which makes for difficult code maintenance)

JavaScript (ES5, ES6) - only because I have to, because it's the language of the web... I am not a fan of JavaScript, and fortunately I don't have to do a lot of it. (If I had to do a lot of it, I think I'd use CoffeeScript 2.) In Brendan Eich's defense, JavaScript was created to make little snippets of code to glue events to actions. It was not originally designed to write 100+ kLOC applications.

I next want to learn Swift. I've been putting it off, because I had to come up to speed with modern C++ (C++11, C++14 and C++17).

I've used many other languages, but I either don't use them anymore or very little. BASIC (a wide variety of flavors), 6502, 68000, C, Objective-C, Pascal, Object Pascal, FORTRAN, Scheme (an offshoot of LISP), Perl, Rexx, TypeScript, Java, SQL, Prolog, bunch of shell scripts across many platforms, Awk (not sure where to draw the line; I guess Awk is the line as a utility / tool / DSL).

I've learned a few languages just for fun or academically. Never used them for real work. Never learned them deeply. Go, Rust, Ada, Ruby, x86, Spec#, Sing#, Groovy, Boo, MATLAB, COBOL, and many others.

I've tried my hand at making my own general-purpose programming language. I've discovered that it is very hard. Very, very hard. If it is a hobby one is interested in, expect to devote 10+ years to it. Longer if it becomes successful.

I've created several programming languages for shipping products, but since those were domain-specific languages (rather than general-purpose) and had fairly limited and constrained capabilities, they were relatively easy to create.