This question is too broad honestly. Let's say I told you C# was my favorite language to program in... Well, that wouldn't be true if I was building a database software which needed the low-level management and control of C. Likewise, C wouldn't be my favorite choice to write a quick script to perform static analysis on a codebase...
It depends entirely on what the project is and what needs to be done. Are we talking my favorite syntax? My favorite language to get things done quick? My favorite language for web development? These questions all matter immensely.
I think we should not encourage such type of discussions especially "love vs hate" based discussions. Every language was designed to serve a particular purpose and was written by human beings when they couldn't find what they were looking for. No one woke up one day and wrote a programming language out of the blue. Just like a computer program is prone to errors so do human beings. It's our job as a community to make a project better. Look as JavaScript on which this platform is built upon. There's no need to remind that it was a poorly designed language written partly to compete with another widely popular language. It was the community who by it's continuous innovation and trust made it one of the most popular languages of today. Now you might say that I'm being too sentimental here but if you look from someone's perspective who is just starting out, these kind of discussions may give him/her a wrong idea about languages and their use cases.
P.S. - I don't write much answers here on Hashnode but I do read a lot. So, I request the community to consider what I've to say.
I hate coding in PHP in 2018.
My current favorite is Go.
The why:
Ooh, tough one.
Favorite right now is probably TypeScript. I like JavaScript. Like PHP, it's a decent language if you stick to "The Good Parts" and ditch a lot of bad ideas that stick around for backwards compatibility. TypeScript adds static typing and decent OO so it feels more like a real programming language to me. I cut my teeth on C and C++ so I love having type annotations checked, and TypeScript has caught silly errors in my code.
I'm learning Python. I think the ecosystem is great but the language is kind of meh. The idea of a "lambda" keyword to designate an anonymous function is a bizarre decision. But that's not enough for me to hate it.
"Hate" is reserved for PickBASIC, a variant of BASIC found on Pick OS/database systems. Pick was originally written for the IBM 360 series mainframes when they came out, but it's still in use today. It pre-dates SQL, so its ENGLISH query syntax was cutting edge at the time. It's an OS, where database tables are treated as directory and records are just text files with Attribute Marks, Value Marks, Sub-Value Marks, and other control characters. Two records in the same table can have a completely different schema, and with value, sub-value, and sub-sub value marks (available in a certain clone of Pick) a record can actually be three dimensions of data -- a customer record, along with every order they ever placed, and every line item of every order. If you wanted to do more than a SELECT query, you needed to write code in the built-in PickBASIC language, which was the BASIC we all know & love with some database functionality bolted on.
There's no "ecosystem" around Pick to speak of. There's no libraries you can pull in. There's no easy way to interface a version control system to it. Fortunately, by the time I was working with it in the early 2000s, the language had the sockets library from C exposed as functions so I was able to write my own version of CURL to connect our Pick server to the modern world outside.
So, a great language & system in its day that way outstayed its welcome.
One of the languages that bring out the most angst in me is SQL. When writing a query, I usually think:
But when writing that in SQL, I have to start at 6, got to 1, then 4, then 3, then 2 and finally 5.
See what I mean?
Favorites
Disliked
I personally prefer snake_case unlike Matt Strom because it's a clearer semantic, but I am more focused on what the language can do rather than how it looks like.
For my least favorite I probably would pick Assembler, not because I don't see the possible elegance on a micro scale but on a macro scale it's hard to maintain. Humans are prone to errors so we probably f*ck it up.
If we go for a favorite I have to admit, I don't really have one anymore. I like almost every language (even the esoteric ones). I'm interested in language design, system architecture and how to build tools to express yourself in a better way, less than in application design.
I think every language is annoying gg esp. if you know another language where things are much easier / comfortable.
Java VS PHP
PHP vs JS
go VS java
FP VS OOP
Python VS Perl
C# vs C
this list can go on for ever .....
Essentially, all models are wrong, but some are useful
Every programming language is based on a computation-model since all models are wrong, I at least assume all languages suck and all languages are cool.
My two favorite languages were both developed by Microsoft and Anders Hejlsberg: TypeScript and C#, in that order (honorable mention to PowerShell). Both are incredibly well-designed languages with these features in particular that I love:
I've been doing more and more programming in Node recently. I've also had to work with a couple of Java programs in there, and I've realized how valuable having first class support for async logic is. C# introduced the world to async-await, and JavaScript/Node excel at async logic probably better than any other platform. And TypeScript adding type support to JavaScript actually makes JavaScript a useful language for large projects. And while TypeScript/JavaScript is not exactly a pure functional language, I do enjoy what parts of FP that I can do with them.
My least favorite language, mostly for superficial reasons, is Python. I think making whitespace meaningful is stupid, and generally I dislike any language that uses snakecase as a language convention (i.e. underscores in variables). It's inconvenient to type and hard to read. And also think dynamic languages are undisciplined and sloppy. TypeScript is the only reason that I enjoy working with a dynamic language; I get all of the flexibility of a dynamic language and all of the safety of a statically typed language.
My go-to language for everything is C#, even though lately I am interested in Javascript a lot.
I had to work with and debug an application written in PERL a few years back. Hated every second of it. Later I discovered that it's jokingly called as a "write-only language", and I agree to it at the fullest.
My favorite is Javascript, not because it is better, it is merely a personal preference. I hate none of the languages. They are all useful in some aspect.
Mark
formerly known as M
Md Ashraful Islam
Software, Games and Full Stack Web Developer
I like programming languages are as following (I didn't sort them in terms of getting jobs, rather in terms of how helpful in production in they are)
Likes:
Hates: