DEV Community

Joe Hobot
Joe Hobot

Posted on

Why did you chose Programing Language XYZ?

Just like the title says, I wonder why people chose Python or Java or GoLang etc.. And also if you say learned Python and you transitioned to xyz language, how easy/hard was it for you?

Top comments (17)

Collapse
 
johannesvollmer profile image
Johannes Vollmer •

I love Rust because it enables me to really express my thoughts. For example, real immutability enables simple designs by allowing you to provide read-only access to fields. Enumerations ("Tagged Unions") are a great alternative to Inheritance. Option types instead of 'everything could be null' really help avoiding mistakes at compile time. Plus, Rust has performance similar to C++. Before learning Rust, I didn't know how important an ergonomic dependency management system is. <3

Collapse
 
lyfolos profile image
Muhammed H. Alkan • • Edited

I love two languages: Python, OCaml (also F#)
I chose Python for simplicity, ecosystem, and popularity. Popularity makes it easier to find a job. Simplicity is awesome. It's so similar to PSEUDO Code so it's easy to learn. The ecosystem is really big, but there are a little bit bad libraries so.
I chose OCaml for because it's functional, advanced, compiled (directly into native code), ML (Metalanguage, not machine learning), functors, generating lexers & parsers & compilers easily (First rust compiler was written in OCaml), and so on. It's perfect, but there are no so many people using it. There is F#, which is really similar. Even I can help F# dev as OCaml dev with 0 F# knowledge!

Collapse
 
lewiscowles1986 profile image
Lewis Cowles •

I've learned many C-style langs, also some lisp style and some esoteric ones. I've only seen a few I don't like, for example haskell, brain-f***.

For professional projects I now try to work within C, C++, Java, Golang, Python or PHP with a handful of DSL's and declaratives. I do like C# (so similar to Java on surface), but don't have time for it in my life, and will probably drop it like I did PERL, various BASIC dialects and the Pascal's.

I Use languages generally because clients are using them, or there is a significant body of work.

Language I'm interested in but cannot get enough time for is Rust. I'm not good enough with rust nor do I have heaps of systems-programming experience so work isn't an option. I've also been updating my C++ so it's not just C with classes and I can use newer language features. It's a journey, but also not something I feel competent in as a full-time programmer.

Whatever people pick, I hope they know that as long as they don't hate the language or it's concepts, they've made a good enough choice for right now.

Collapse
 
jsn1nj4 profile image
Elliot Derhay •

Liked especially for that last statement. People should choose X language because it makes sense to them, they enjoy using it, they see an opportunity to do something cool with it, or because it solves a problem -- not because it's the most popular or other people won't pick on you for using it.

Collapse
 
buphmin profile image
buphmin •

My languages kind of chose me in the beginning. My first job my coworker had used some php to accomplish some tasks so I picked it up to continue automating some things. This eventually led us to build a marketing feed ingestion website which we wrote with Symfony/PHP/Python and gearman for async scaling. The web requires javascript so that came along for the ride.

Eventually I moved jobs and out of the silicon valley area (I mean who can afford that rent!?) and eventually discovered typescript. This was a glorious new way to write javascript. Very recently I had a chance to do something for a one of project and decided to use Go, which is very easy to learn. Then very recently I decided to take a modern C++ udemy class, though I have not yet done anything with C++.

Overall I would say transitioning languages is not that hard. They mostly share the same characteristics and you just need to figure out the exact syntax. I suspect the biggest thing that will make using C++ difficult is the fact that there is just so much syntax to remember.

Collapse
 
adrianodennanni_2 profile image
Adriano Dennanni •

During a normal week, it is very common for me to code in at least 4 different languages, depending on the project.
However, my favorite language is Ruby. I learned it only for using Rails, but it ended up to be my "main" language.
I can transform my toughts into code faster with Ruby.

Collapse
 
kvie profile image
Karyme Virginia •

I'm learning Ruby for the exclusive reason that Flatiron School teaches Ruby. (Later I'll also learn JavaScript for the front end)! Prior to this, I was learning C++ because my college taught C++. So in many ways, my choices were made simply by what resources were available to me.

If I were to choose any language and be able to have great resources for it, that language would be Python. However, I've fallen in love with learning Ruby, and I can't wait to start making applications in Rails!

Collapse
 
fushnisoft profile image
Brahn Partridge •

Bah. A pragramming language chooses you!

Collapse
 
kspeakman profile image
Kasey Speakman • • Edited

Many language choices were thrust upon me.

  • GW Basic, Pascal in high school
  • C, C++, Assembly in college
  • Javascript required for web
  • VB for side work

Others I chose based on information I found about them.

  • DOS Batch scripting, goofing around with a friend
  • Perl for linux scripting
  • PHP because it was easy to make web apps (early 2000s)
  • Java as a brief experiment (early 2000s)
  • C# because I grew tired of VB verbosity
  • Bash for linux scripting
  • Python for linux service dev (mid or late 2000s)
  • F# for the promise of better quality
  • Typescript to add extras to Javascript
  • Elm for the promise of better quality

Most transitions were not difficult, because many of these languages use a C-like syntax and familiar debug/compile cadences. And hardly anything is worse than where I started: DOS batch scripting. :)

All of them require learning a new set of "libraries". But some transitions were notably difficult.

  • Javascript, mainly because of all its weird edge cases -- especially around type coercion and browser support. The language was very brittle and limited in these early days.
  • Java, because of lots of unfamiliar tooling and non-obvious requirements (e.g. package name matching path). I recall using Forte for Java.
  • F#, because expression-based syntax was different from everything else I had used. Immutability is a confusing concept at first. And idiomatic FP code was very different from what I had done up to that point. It took at least 2 tries before I latched on to it.
  • Elm, mostly because all front-end tooling is a hot mess. But also getting used to the Model-View-Update pattern.
Collapse
 
hawkinjs profile image
Josh Hawkins •

Each language has pros and cons!

  • I <3 JavaScript for full stack web work, often with universal rendering
  • Python and R I like for tasks I pair with Scientists on, data science work, etc. They seem to know the languages, and the ecosystems are fantastic for scientific calculation.
  • I choose C++ when it comes to cross-platform high-performance work, and drag Qt in to play if I need a GUI
  • I choose C when I'm feeling feisty and want low level work with utmost control and no framework "magic". I.e., protocol level work
  • I choose Elixir when I need extreme levels of concurrency

That sort of thing! It's fun to learn new languages imo, and I enjoy finding how I can best leverage them for different problems

Collapse
 
rapidnerd profile image
George •

I learnt:

  1. Visual basic: Got bored when I was a kid and this at the time was recommended to learn. I've never liked it.

  2. Python: I wanted something more than Visual basic, my brother had been writing Python since 2009 and suggested it to me.

  3. Java & C#: I originally went into games development and found out that these two were the most popular for game development.

  4. C & C++: Its currently on my university course but back then I wanted to learn something that is involved in almost everything, you'll find them in operating systems, languages, networks etc

  5. Rust: I love the feel of Rust and the C/C++ aspects of it, the cargo package I have found to be very good also.

At university we're being taught web dev (HTML, CSS, JS, TypeScript) in the next year. While I know the first three to a good extent TypeScript is next on my list.