re: What is your "Coder/Language Fit" VIEW POST

VIEW FULL DISCUSSION
 

Python and Ruby are my two favorites. Honorable mention to Bash because it's fun. :)

I've tried to learn more strict static, compiled languages (and I will keep trying, because I think it's an important skill to have), but I can't be nearly as productive or creative as I can in Python and Ruby. I love that you can just throw some code into a file and run it right away. I love that they're forgiving of little things.

I love that they don't have semicolons, and minimal code braces. #spacesbeforebraces #butalsoendkeywords

They don't have huge, giant, opaque, intimidating build toolchains, and they've got a robust standard library that cuts down on how frequently you have to install a dependency, which means that when you do install a dependency, it doesn't install the entire whole world of other people's dependencies.

It's funny that they're so different in their philosophies:

  • Python: There should be one way — and preferably only one way to do any given thing right.
  • Ruby: There are many good ways to do things (method aliasing, anyone?), and whichever way makes you happy is what you should do.

And both of those things resonate with me, but in different ways and situations.

If Python had blocks and the focus on method chaining that Ruby does:

numbers.filter(&:even?).map(&:to_s).join   # happy sigh

I would be very happy.

The only thing that I really feel myself missing is an easy way to deploy my code repeatably to someone else without having them go through a bunch of steps that make no sense because they don't do Python.

But no matter how often I go off to learn another language, I always find myself coming back to Python and Ruby. They're really the only languages that I've ever written something and then sat back and smiled because the code was so slick and pretty.

So anyways... I ❤️ Python and Ruby.

 

I love that you can just throw some code into a file and run it right away.

Some compiled languages can do that, for example Go and Nim.

I love that they're forgiving of little things.

This is a great example of where I think we deviate in terms of personality - the fact that the language forgives something that could be an error (or might become a problem at a later time) is what drives me crazy.

I dislike languages such as PHP, Ruby, Python and JavaScript because they're too forgiving.

I enjoy languages such as TypeScript, C#, Go and Nim because they knock you over the head when you're doing something that might not be safe.

What's annoying and restrictive to you, to me is a helpful, guiding language that teaches and drives me towards correctness.

I also love the fact that strict languages, in addition to the syntax and idioms, don't have a bunch of rules and what-ifs I have to memorize - when types can be automatically cast, all the rules about casting, and so on. I like the fact that a string is a string, a number is a number, and you can't write code that implicitly converts things without any visible artifacts of my decision-making.

Do you have a great memory?

I have no capacity for rote memorization, and I've always suspected that's one of the main characteristics that separate your kind from my kind.

I simply can't trust myself to remember on monday what I wrote on friday, and so, for me, it's crucial that everything is formally defined and decisions written down; not as a matter of discipline, but simply by letting the language guide me to it.

Working in languages like PHP or JavaScript is tiresome for me because of the discipline it requires to write good code.

I've tried to learn more strict static, compiled languages (and I will keep trying, because I think it's an important skill to have), but I can't be nearly as productive or creative as I can in Python and Ruby.

For me, it's almost the reverse - I can't be nearly as productive in languages like Python and Ruby.

As for being creative, I do enjoy messing around in PHP or JavaScript when I'm experimenting - just that most of my work is production, not experimentation or prototyping, and when it comes to preparing some JavaScript experiment for the real world, I immediately rewrite in TypeScript... and I'd be lost in my own code without it ;-)

code of conduct - report abuse