DEV Community

Ben Halpern
Ben Halpern

Posted on

What is your "Coder/Language Fit"

In tech startup jargon you hear this convention a lot:

Product/Market Fit

Founder/Startup Fit

Product/Founder Fit

Etc.

It's basically the idea that a product isn't inherently going to succeed but if it's found the right market fit, things will go well. Or that no founder is inherently great, but with the right project, they can really succeed.

So what is your coder/language fit? The language that works for you because of how you are as a person—not necessarily because of its inherent greatness. No language is without flaw, nor is any language totally terrible. It's about the fit with the project, or in the case of this question—the person.

Latest comments (42)

Collapse
 
wordtracker profile image
Wordtracker Development Team • Edited

After 20 years of developing in PHP I stumbled across Python 2.7.x when I realised you could add udf's to Redshift SQL statements. Then I realised that Python (now working in 3.7.x+) could do everything I wanted in PHP much more quickly because of the extensive library support. Unit tests, Pandas, Numpy, it's all covered. Fits me like a glove. Then I found decorators and generators and ... haven't looked back since.

Collapse
 
kdemetter profile image
De Metter Kenny • Edited

Typescript and Kotlin.
I used to be more a fan of Javascript and Python, but I'm getting to like strong typed languages more.

I also have a weird fascination with languages that compile to binaries (like Rust, which I'm learning now. Though it's more like a cosmic battle with the borrow checker)

Collapse
 
msfjarvis profile image
Harsh Shandilya

I've found my happy place with Kotlin, JetBrains has really created a wonderful language that can be deployed to all platforms I love to work on, namely Android and the Linux command line, often with a codebase that's mostly identical.

Collapse
 
pinotattari profile image
Riccardo Bernardini

Ruby and Ada

Yes, they couldn't be more different: duck typing the former, very strong typing the latter.

Duck typing is not as robust as strong typing, but its flexibility makes it very easy to write some fast-and-dirty code. Typical use case: if I have some text file that I need to process to extract information or if I need to write some networking code for an extemporaneous need.

However, for larger and longer-lived software I prefer the order that Ada can enforce to your code.

Sure, you could do the same with C or Ruby by choosing some coding convention, but having the compiler enforcing it and checking it before you can run the code it is much better. How many times I had to run some code again and again in order to find a bug that would have been spotted at compile time by Ada.

Collapse
 
manlycoffee profile image
Sal Rahman • Edited

TypeScript: you get the syntax and expressiveness of JavaScript, coupled with the type safety of most OOP languages.

That, and also, the fact that TypeScript mostly looks at "shapes" of objects, rather than specific classes and interfaces, allowing us to write expressive code. Who cares where an object came from? As long as the object has the right shape, then we're good to go, something that C# lacks (although somewhat available with LINQ). C++ somewhat implements such an idea, but TypeScript is much easier to get started.

Collapse
 
coreyja profile image
Corey Alexander

This is actually something I've thought about a lot recently when I talk to people about different languages, and for me it's Ruby. And as you said not because Ruby isn't without its flaws, or that Ruby is the right fit for every project. But I have found that Ruby fits really well into my personal mental model of programming. Most things in Ruby work how I expect them to work.

It's syntax is simple enough that it can almost look like pseudo code in simple cases and is easy to visualize, for me personally.

Another thing that makes Ruby fit well into my mental model is it's complete lack of typing, and emphasis on 'duck' typing, or having objects of different types that respond to the same methods, and acting on all of them using this shared interface. This fits well with how I imagine objects working in my head.

Ruby is the language I will probably pick if I just want to knock something out quickly and the language doesn't matter. But for new learning focused projects there are a few other languages like Elixir and Rust that I want to get more into!

Collapse
 
computersmiths profile image
ComputerSmiths

For me it’s not really about the language. Over the years I’ve been variously obsessed with Basic, Z80 assembly, Fortran, C, Perl, and now I tend to write everything in Python and use a lot of Raspberry Pis. Within broad limits you can write any application in any language (*), and you are going to produce the best result in the language you know best and are most comfortable with.

(*) I had a roommate who was trying to write a word processing program in Basic, so there are obviously anomalies by the score.

Collapse
 
buphmin profile image
buphmin

Honestly modern object oriented PHP. Along long time ago, in a land far away I tried to learn C and had no idea about programming or anything. Nothing clicked and I got very frustrated with it and I decided programming was not for me.

Eventually I found PHP and figured out how to build things and to make web applications. Eventually I learned lower level concepts that C teaches you but learning PHP well first helped usher in a new Era in my life.

Collapse
 
codingmindfully profile image
Daragh Byrne

After 20 years I have grown to like and sometimes love php, despite really not wanting to!

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

C++ and Python are my all-time favorites.

C++ is one of my favorites because of the complete control it gives me. I adore memory management, so allocation, pointers, and the lack of a garbage collector make me very happy. I'd rather have all the control with the risk of undefined behavior, rather than no undefined behavior with limited control. Anyway, I love debugging undefined behavior. Besides that, C++ offers all the tools to work in every imaginable coding paradigm, or any combination thereof - procedural, object-oriented, generic, functional, you name it. I'm not limited to one possible solution: I can build practically anything well.

I love Python's unique syntax and underlying logic. Immutability is absolutely awesome! I appreciate the Zen of Python, and I'm drawn to the audacious beauty of the language itself. Python as a community and a language places great value on doing things well, which is one of my highest personal values.

I know many other languages, and that list continues to grow, but C++ and Python are my perennial favorites. Each release only strengthens that passion.

Collapse
 
jvanbruegge profile image
Jan van Brügge

Haskell, because I love to write short, concise and elegant code and also am a mere mortal so having the compiler have your back is nice.

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao

I'm gonna pick Python as it's adaptable and allows me to use it for almost everything I need.

Ultimately if I need something specialised for that specific usage I will always focus to get the important things done and out there regardless the tools used.

Collapse
 
madhadron profile image
Fred Ross

I have a somewhat different view. I've shipped code in a lot of languages over the years, ranging from Forth to Haskell. At this point I judge a language by what I loathe in it. In Haskell, for example, monad transformers and error handling were the primary points of loathing back in 2008 or so (though I hear that there are some improvements on the former). Ruby has a lot to loathe. Go fits a particular niche really well, and as long as you don't try to use it for anything but that, it's great. C++...let's just move along. Python has the GIL, but remarkably little else to loathe, especially since they fixed Unicode support and added some type annotation capabilities in Python 3.

Collapse
 
dkamer profile image
David Joseph Kamer

JavaScript/Python

Not what you initially though. I love using Python as a general purpose language. I use JavaScript in the browser, but I really love it server side.

You can do great things with a Node.js sever and a Python client!

Collapse
 
boatnoodles profile image
boatnoodles

I'm rather new, but may I know how would you go about building a Python client?

Collapse
 
dkamer profile image
David Joseph Kamer

It's running as a service on Linux machines.

Thread Thread
 
jbeetz profile image
J Beetz

Mind blown

Collapse
 
stephenafamo profile image
Stephen Afam-Osemene

For me it's Go. Since I picked it up, I haven't been able stop.
All my projects are now almost exclusively written in Go.
Everything just makes sense.

Collapse
 
nepeckman profile image
nepeckman

Nim is that language for me. It has very flexible syntax that lets me write code the way I like. Some people hate conditional expressions, but to me, the statement work around is so much noisier and harder to read. Ditto for implicit returns. If a procedure is a single expression, I think an implicit return on that expression makes the procedure easier to read. It has FP and OOP functionality, but it isn't militant about either (pretty similar to JavaScript in that regard). Its approachable as a language, and none of its semantics have been particularly difficult to understand.

But what really makes Nim a language that fits me as a coder is its fit as a "hacking" language. My other language love is Clojure, which is a fantastic "software engineering" language. Its great for a large, shared, enterprise grade project. The JVM is rock solid, it has the libraries, and Clojure is fantastic on top of all of that. But if I want to sit down and hack, its just not my first choice. I don't want to be concerned with JVM classpaths, jars, Closure compiler (for JS target), AOT compilation, and all of that. I can open a .nim file, throw down some lines, and compile a static binary with no fuss. I've currently got a couple side projects in Nim, and I've only run into issues with the language a couple times.