I've been coding for over 20 years now! (WOAH, do I feel old)
I've touched just about every resource imaginable under the Sun (too bad they were bought out by Oracle)
This question comes up a ton, but I personally think it is misdirected.
It shouldn't be based on popularity. It shouldn't be based on what a peer enjoys using.
What should it be based on?
Well, first off, what is the problem domain? Figure that out first and foremost. Understand the problem domain as best as possible. Then and ONLY then, figure out which tools are best served to address that problem domain.
For reference, I'm saying this as someone who's worked with 50+ languages over 20+ years. I have my personal favorites, but they're married very closely to my problem domains, so that makes sense. Others have languages they love/hate too, and its generally related to what is best suited for their problem domains.
I am a professional DevOps Engineer with a demonstrated history of working in the internet industry. I am an avid Linux lover and supporter of the open-source movement philosophy.
Location
Sofia, Bulgaria
Work
Developer Advocate at Materialize | Community Manager at DigitalOcean | Co-Founder at DevDojo
I was about to re-phrase your response into another version of the original question: "What language of the 50 you have used, solved more of the problems than others?"
But then I realised the error of putting things that way because that would be imprinting a solution not appropriate for the task just based on that 50? What do we do for case 51 boss?
When we implement a language we are bringing into being the perceptions of the person that created the language, who did so for a purpose presumably because nothing was in existence at the time.
But has someone else since addressed a core concern of management level types ? and that quite like would included this: "Is this code solution able to be understood by new or replacement staff in the future, with the orginal coder no longer present?" So eventually Language creators try to accommodate that aspect and make their language cover as many cases as possible in an attempt to make it universal in it's ability to solve.
Sometimes I wonder if they are 'universalising' our perceptions instead with smoke and mirrors on the task at hand to accept their offering. The real first tool to reach for might well be some literary work that engages critical thinking in us.
I wouldn't like my mechanic to service my car with just a few tools. They may cite their skill is so high they can fix anything with a roll of barbed wire and pliers. I think you'd be politely saying good by to that workshop.
I love using Forth, the RPN nature of it alone puts my mind into a relaxed state. From there I might see something in the problem that represents my perception of how to use leadership to bring the outside world to effective and productive satisfaction. But I would not foist it upon the people who contracted me, so I have to find a language that translates my perception faithfully into what it does, and submit my account.
And therein the original question rears it's head. "which one"?
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
This question comes up a ton, but I personally think it is misdirected.
It shouldn't be based on popularity. It shouldn't be based on what a peer enjoys using.
What should it be based on?
Well, first off, what is the problem domain? Figure that out first and foremost. Understand the problem domain as best as possible. Then and ONLY then, figure out which tools are best served to address that problem domain.
For reference, I'm saying this as someone who's worked with 50+ languages over 20+ years. I have my personal favorites, but they're married very closely to my problem domains, so that makes sense. Others have languages they love/hate too, and its generally related to what is best suited for their problem domains.
Very well said! I wish more people could read your comment!
I was about to re-phrase your response into another version of the original question: "What language of the 50 you have used, solved more of the problems than others?"
But then I realised the error of putting things that way because that would be imprinting a solution not appropriate for the task just based on that 50? What do we do for case 51 boss?
When we implement a language we are bringing into being the perceptions of the person that created the language, who did so for a purpose presumably because nothing was in existence at the time.
But has someone else since addressed a core concern of management level types ? and that quite like would included this: "Is this code solution able to be understood by new or replacement staff in the future, with the orginal coder no longer present?" So eventually Language creators try to accommodate that aspect and make their language cover as many cases as possible in an attempt to make it universal in it's ability to solve.
Sometimes I wonder if they are 'universalising' our perceptions instead with smoke and mirrors on the task at hand to accept their offering. The real first tool to reach for might well be some literary work that engages critical thinking in us.
I wouldn't like my mechanic to service my car with just a few tools. They may cite their skill is so high they can fix anything with a roll of barbed wire and pliers. I think you'd be politely saying good by to that workshop.
I love using Forth, the RPN nature of it alone puts my mind into a relaxed state. From there I might see something in the problem that represents my perception of how to use leadership to bring the outside world to effective and productive satisfaction. But I would not foist it upon the people who contracted me, so I have to find a language that translates my perception faithfully into what it does, and submit my account.
And therein the original question rears it's head. "which one"?