nixers
Stance on programming languages - Printable Version
+- nixers (https://nixers.net)
+-- Forum: General (https://nixers.net/Forum-General)
+--- Forum: Psychology, Philosophy, and Licenses (https://nixers.net/Forum-Psychology-Philosophy-and-Licenses)
+--- Thread: Stance on programming languages (/Thread-Stance-on-programming-languages)


Stance on programming languages - robotchaos - 06-04-2017

Hi everyone,

so I am curious what everyone's opinions on programming languages are. role call, time to weigh in


RE: Stance on programming languages - jkl - 06-04-2017

Write in C.

Other than that:
  • Stay away from hipster languages. If the language has a Slack channel, don't use it. If "Hacker" "News" recommends you to use this language, don't even think about it.
  • There is no "best language" (but Common Lisp). There is a whole bunch of "worst languages" though and all of them are used for web applications.
  • If it works, don't replace it.



RE: Stance on programming languages - robotchaos - 06-04-2017

i agree jkl. i am trying to learn c, but due to some conditions, put it off and am looking back at it.


RE: Stance on programming languages - apk - 06-04-2017

what language has a slack channel


RE: Stance on programming languages - robotchaos - 07-04-2017

id guess ruby, python, javascript. though i dont know first hand


RE: Stance on programming languages - jkl - 07-04-2017

Go does, of course.


RE: Stance on programming languages - pyratebeard - 07-04-2017

(06-04-2017, 03:45 PM)jkl Wrote:
  • Stay away from hipster languages. If the language has a Slack channel, don't use it.

B, b, but... Python is sooo easy...


RE: Stance on programming languages - r4ndom - 07-04-2017

(07-04-2017, 06:31 AM)pyratebeard Wrote:
(06-04-2017, 03:45 PM)jkl Wrote:
  • Stay away from hipster languages. If the language has a Slack channel, don't use it.

B, b, but... Python is sooo easy...

Exactly my thought. If I need to script something, which is not trivial in bash, I use python.

Other than that I got a glimpse at Haskell, which I like, and I'm trying to learn C, the real *nix language. And there is of course Java, which is all over the place.


RE: Stance on programming languages - jkl - 07-04-2017

(07-04-2017, 06:31 AM)pyratebeard Wrote: B, b, but... Python is sooo easy...

All languages are easy, depending on your previous knowledge, the openness of your mind and your will to go new ways. Python, however, is not only easy but also simple while still enforcing you to write all of your code with great verbosity.

(07-04-2017, 06:43 AM)r4ndom Wrote: If I need to script something, which is not trivial in bash, I use python.

I used to use Lisp or Perl for scripting.
But I have recently noticed it's actually fun to write things which could be done with a script in C. And yes, I am weird.


RE: Stance on programming languages - venam - 07-04-2017

(07-04-2017, 09:24 AM)jkl Wrote: But I have recently noticed it's actually fun to write things which could be done with a script in C. And yes, I am weird.

Sometimes it also depends on constraints.

Maybe you don't have the time to learn a new language.
Maybe you want to contribute to a big project and it's already in a certain language.
Maybe the language has facilities for the tasks you want to achieve.
Maybe the language doesn't allow you to do what you want to do.
Maybe the resources are low.
etc..

There are many factors that come into play when choosing one language over another.

But if the question is "If you had all the time in the world and no constraints" then it's another story.
I'd go for the *fun* factor then.


RE: Stance on programming languages - jkl - 07-04-2017

(07-04-2017, 11:35 AM)venam Wrote: Maybe the language doesn't allow you to do what you want to do.

Another classic case of "your language sucks" then. If it limits your freedom, don't use it.

I guess the OP had other intentions though, not limited to real-world applications.


RE: Stance on programming languages - darthlukan - 07-04-2017

At work? The best tool for the job. A lot of people say that but never provide their criteria, so here are the major points I consider in order to determine whether or not a language is the best tool to use for a given project:

1. Time to useful knowledge: Do I already know this language or does it look like something I can learn quickly? This is a personal thing which requires honest self-assessment. I can typically learn a programming language to the point of (professional) usefulness within a weekend, sometimes I need a bit longer, but I've gotten pretty good at guesstimating how long it will take me to learn something. If you're a professional software engineer, then you should definitely take the time to self-assess if you're not already doing so.

2. Is runtime performance a concern and if so, to what degree?: If runtime performance is a major concern or if the application requires heavy computation, data manipulation, or parsing of large amounts of text (companies still do this...), then I start comparing task-specific benchmarks online and/or writing my own benchmarks in various languages in order to make an adequate comparison.

3. External dependencies: For each language under consideration, given the tasks, will I require the use of lots of external libraries? Does using those external libraries carry with it additional risks and are those risks acceptable? In general, pulling in a ton of outside dependencies and to a lesser extent, internally maintained dependencies, carries certain risks. For example, if we rely on an external library that all of a sudden ceases to be maintained, or the developer is not very good about keeping up with security fixes. This is a huge problem when required to use a proprietary library or tool, less so in the Free Software and Open Source worlds.

4. Is my team already proficient in the language being considered?: Very similar to #1. It's all well and good if you can learn a language in a matter of hours to the point of usefulness because you're an excellent engineer who knows how to self-assess, but what about your team? If the project requirements don't offer much in the way of prep-time (as is the case in most startups) and your team in general is not quick to pick up languages (or frameworks), then consider placing bonus points on languages they already know.

5. Development time: Is this a time-sensitive project? Is the average speed of development in the considered language acceptable given the project's time constraints? Typically development times are better for languages where I'm "more than just useful", same for my team. This isn't always the case though. Sometimes a language just lends itself to faster dev times, whether it be due to minimal syntax or well designed grammar or ease of understanding the language API docs. For example, Go might have easy to grasp syntax, but the docs, while technically complete, are lacking in the "readable by mere mortals" department. Meanwhile (and I'm probably committing a cardinal sin here), C# has some strange conventions, but the docs are clear as day. If I have a young team and the other criteria point to either Go or C#, as a lead dev, I might lean more toward C# for the benefit of team dev time (and confidence building).


At home? I use what's fun. Typically I'll choose a language that I have less practice in (C, Rust, the lisps, etc) because it's fun to observe self-improvement and I enjoy the puzzles that come up.


RE: Stance on programming languages - apk - 07-04-2017

(07-04-2017, 04:03 AM)jkl Wrote: Go does, of course.

go is a pretty mature and powerful language. why does having a slack channel have a negative connotation on a language's appeal?


RE: Stance on programming languages - jkl - 07-04-2017

Go is an explicitly simplistic language, designed for people who are too dumb for C++. (Paraphrasing Rob Pike here.)
Slack is the hipster version of the IRC and there is no good reason to use Slack for any project unless you want to attract people who are not deeply into tech.


RE: Stance on programming languages - xero - 07-04-2017

you dont always get to choose. many times the technologies used for a project are based upon requirements like hardware, contracts, existing software, etc. being a versatile programmer means doing what you need to to get the job done. sure a program might be better served written in c vs python, but the client might have other reasons for why they want it in one lang over another.

also, as a polygot programmer/scripter i can honestly say i dont have a favorite language. they all have their faults.


RE: Stance on programming languages - robotchaos - 07-04-2017

my main interests lie in c and d. for scripting, i prefer shell scripts ( rc and if i must, bash ) and where that fails, i think i'm likely to use python.


RE: Stance on programming languages - apk - 07-04-2017

(07-04-2017, 02:46 PM)jkl Wrote: Go is an explicitly simplistic language, designed for people who are too dumb for C++. (Paraphrasing Rob Pike here.)
Slack is the hipster version of the IRC and there is no good reason to use Slack for any project unless you want to attract people who are not deeply into tech.

that is quite the paraphrase, yea. it was created not for people who are "too dumb for c++" but because pike was annoyed by the buildtime of an internal google c++ program. my cs colleagues and i use slack daily for collaboration, does that mean all of us are not deeply interested in technology?


RE: Stance on programming languages - robotchaos - 07-04-2017

perhaps using slack for internal communication is an exemption


RE: Stance on programming languages - rocx - 07-04-2017

How dare you question the all-powerful Lisp!


RE: Stance on programming languages - apk - 08-04-2017

lisp sucks dude it only abstracts the things that shouldnt be abstracted so have fun with ur overweighted and under-efficient applications dude


RE: Stance on programming languages - jkl - 08-04-2017

Lisp easily outperforms C though.