DEV Community

Muhammed H. Alkan
Muhammed H. Alkan

Posted on

Which programming languages do you use and why?

I'm sure there are many people which know around 3 or only 1. Then why did you learnt these programming language(s)?

Top comments (20)

Collapse
 
avalander profile image
Avalander • Edited
  1. Python: when I first learned programming, I learned Python and it's still one of my favourite languages. I use it for scripts and CLI tools.
  2. Java: I had to use Java at work for about five years. I loved it at first, hated then, kinda liked after and got tired eventually, I don't want to use it at least for a few years.
  3. Javascript: I had to use it at work, but I ended up liking it. I was introduced to functional programming in Javascript watching mpj's youtube videos. It's still my default choice for backend services.
  4. Lisp: I read somewhere that knowing Lisp would make me a better programmer even if I didn't use it, xkcd convinced me to give it a try. I really liked it, but I never got too far. Someday I'll take it up again with the SICP book.
  5. Elm: I wanted to try something different, with a syntax and philosophy that diverged from C. It has great ideas, but I found it rather limiting and moved on.
  6. Ocaml and ReasonML: the new shiny thing I'm into right now. ReasonML has great interoperability with Javascript and Ocaml is reasonably close to Haskell, which I would like to learn next; BuckleScript can compile both.
Collapse
 
fpuffer profile image
Frank Puffer • Edited
  1. BASIC: Nothing else available on my 1st computer.
  2. Pascal: Same reason.
  3. Logo: Turtle graphics and recursion were kinda fun.
  4. C: Performance. Used it at the university, later on the job.
  5. FORTRAN: There was a course at my university and I had to do some numerical math at that time.
  6. Unix Shell scripting (bash): Useful. Still use it sometimes.
  7. C++: Thought that OOP was cool. Still my main language but for other reasons.
  8. Java: Was hot at that time. Still a good choice to get the job done.
  9. Python: Less verbose than Java. Makes many things really easy. Never had a chance to use it professionally though.
  10. C++11,14,17: Huge leaps forward from old style C++.
  11. Scheme (Racket): SICP, wanted to learn something new.
  12. Javascript: Well, few people can avoid it. Actually I think it's not that bad.
  13. C#: Had to use it in a project. Nice to get things done on Windows desktop.
  14. Haskell: Thinking functional is very helpful. Still learning.
  15. Future plans: Don't know. Maybe Go or Rust.

The ones I use regularly are C++ (including 11, 14 etc.), Java, C, Javascript, C# and Bash scripting.

Collapse
 
lyfolos profile image
Muhammed H. Alkan

So which one is your favourite?

Collapse
 
fpuffer profile image
Frank Puffer

I don't have one. All of them have their advantages and drawbacks. Only the first five I listed are probably no longer useful, well, maybe C for embedded systems.

Collapse
 
lyfolos profile image
Muhammed H. Alkan • Edited
  • Python

My first language(!), and it's still my main and favourite.

I started C# and PHP which was really bad, I haven't learnt anything about programming I was just copy-pasting.

  • OCaml

After learning functional programming what is it (without any programming language), I started to learn every functional programming language (Haskell, Elm, Clojure, ...) and most comfortable one was OCaml. It's more practical compared to other languages. It's mostly functional, but it makes you able to use other concepts. It's really (but really) fast. I'm in love with its syntax (ML syntax). Just using it for fun, solving problems, and frontend (haven't learnt it yet) with Reasonml which is just an alternate syntax for OCaml. I haven't created and projects with it yet.

  • Erlang (Still learning)

I needed a concurrent and good language for web language. I have looked to other languages like Golang, Scala, Clojure. But the best ones were Erlang/Elixir. Its concurrency is really powerful and easy. It can spawn a lot of processes. Also, it's generally used for web servers and sending HTTP requests. There was Elixir, but I became more comfortable with Erlang. Both runs in Erlang VM(s).

Planning

  • Ruby

The syntax is nice, have good frameworks like Ruby on Rails, Sinatra. The usage will be the same with Python.

  • Rust || C++

For systems programming or low level things.

Collapse
 
abhinav profile image
Abhinav Kumar • Edited
  1. BASIC: Language taught in Primary School Grade 2-3

  2. Logo: Language taught in Grade 4-5. Turtle graphics and arithmetic operations only.

  3. C: Learnt as part of Grade 6 coursework.

  4. C++: I didn't want to stop at C. I did a tutor course in the summer holidays. Revisited as part of Standard Grade 10-12 and college coursework. The only use I could extract from it was in competitive programming.

  5. HTML/CSS: I didn't have internet access at that time but my computer guy set up FrontPage and Dreamweaver on it. Learnt the basics from manual and auto-suggestions.

  6. Python: Learning C/C++ again in college was boring. Python was a breath in fresh air. My favorite ❤.

  7. JavaScript: When I started making web pages, I quickly understood that only HTML/CSS is never going to be enough. Node/express stack is also great at quickly fleshing out a back-end.

  8. Bash: Switched to Linux in second year of college. Although zsh is preferred shell, nobody should write their shell scripts in it.

  9. Java: College coursework in 2nd year. Haven't touched it since then.

  10. Go: Learnt to make a multi-threaded filesystem watcher at work and really liked it.

  11. TypeScript: When I was learning React to work on a new project at work, I went with TS. Now, I use it in place of JS wherever I can. Even when working with Node. Type-safety helps a lot when working on large projects.

  12. Rust: Better C++. Currently trying to learn.

Collapse
 
lyfolos profile image
Muhammed H. Alkan

Actually not better C++. It's a better systems programming language.

Collapse
 
abhinav profile image
Abhinav Kumar • Edited

That's what I meant by Better C++. I was actually referring to the primary usecase of C++.

Collapse
 
petarov profile image
Petar G. Petrov • Edited

To answer the Why did you learn these programming languages? question, I offer my Rule of 3 strategy. It has mostly an economics incentive. At any time I'd like to concentrate on practicing 3 languages.

  1. Tier 1 - A language that you use for your main income, i.e., at your workplace.
  2. Tier 2 - A language to fall back to or use for freelancing projects, i.e., additional income.
  3. Tier 3 - A language to experiment with and write side projects. It might jump to Tier 2 or Tier 1 at some point when you become good enough with it.

At the beginning of my career the tiers were:

1. C++
2. PHP
3. Java

Then at some point I switched to.

1. Java
2. PHP
3. JavaScript

Nowadays it looks like that:

1. Java
2. JavaScript
3. Kotlin

So yeah. That's my Rule of 3.

Collapse
 
bgadrian profile image
Adrian B.G.

I presume you mean programming languages?
I learned more then 6 along the years, each served its purpose at a specific time, in my career or for a project. I played around with a few others just to learn.

As for my current and future language I moved to Go, because ... Many reasons, mainly because it suits me, my plans (cloud) and tech challenges (big data, big distributed systems), and I avoid Java ecosystem at all costs.

Collapse
 
lyfolos profile image
Muhammed H. Alkan

Ah yeah, updated the title. Also, I still think to go is young for big things.

Collapse
 
bgadrian profile image
Adrian B.G.

Have you heard of Dropbox? Or kubernetes?

It will be pretty complete after Go 2.0 (with modules, better errors and generics).

I agree that now is in a grey state. But I will take my chances and bet my career on it (actually am) :))

Collapse
 
anwar_nairi profile image
Anwar • Edited

PHP

Built an app using Laravel at my job. Still running. Done PHP for 3 years and Laravel for 1.

Python

Using Odoo for our ERP. Got to love it. Done Python & odoo since 1 year now.

Javascript

My Laravel app works besides Javascript for interactivity (rich text editor,...). Got to love it too. Mostly used for bundling my apps (Gulp.js).

Got some knowledge on C, C++, C#, Java, but not enough!

Collapse
 
tvanantwerp profile image
Tom VanAntwerp

Mostly JavaScript, because web dev.

Next is Python, because scraping/munging/other repetitive tasks.

Sometimes Bash, but not that often.

At least for now, this gets the job done. I've been wanting to play more with game dev in Unity for a while, so I expect to add C# to the list.

Collapse
 
thomasthespacefox profile image
Thomas Leathers • Edited

Python: my second language. started learning it after getting frustrated with BASH shell's speed. Most of my projects to date are written in python.

Ive written everything from a window manager framework of sorts to a point and click adventure engine, to a gopherspace client. in fact, the next language comes from one of my python projects...

  • SSTNPL: A primitive language for SBTCVM, a base 3 virtual computer i designed, inspired by 50s Russian computers. its a fairly static, simplistic goto/label based language with 2D arrays and named integers. the fairly 'old fashioned' structure is due, in part to the virtual computer having enough memory to store roughly the equivalent of 40KB of text, and a clock speed of a whopping 6.5Khz. its worth noting both SSTNPL's compiler, and SBTCVM, are 100% python.

I don't know if anyone else here has written any project-specific languages. but id figure id mention one of mine. At least the most interesting.

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.