💾 Archived View for bbs.geminispace.org › s › programming › 5708 captured on 2023-09-28 at 19:38:50. Gemini links have been rewritten to link to archived content

View Raw

More Information

➡️ Next capture (2023-11-04)

-=-=-=-=-=-=-

Help me find my second language

Background

I am a data analyst/scientist doing spatial and temporal ecology stuff. I only use R because...that is what I..know ? I was never a programmer before I switched from env. engineering and recently was thinking to diversify a bit to Julia. I have quote a lot of freedom in my current job to program in whatever I want. Occasionally I have to do it in python for the GIS people downstream. The people downstream complain a lot about Python being slow in performance, but maybe that is peculiar to this job.

Why are you asking here?

I am only asking here because you gals and guys seem to be decent people, some of which are real pro programmers. People experienced in working with and tinkering with programming languages

Why not Python?

Python is indeed very much in demand in Data jobs. Why? no idea. I studied it for a bit, tried it and occasionally have to use it and I hate it. I don't even know why, really. It just… does not go well with my brain ?

Why Julia? and why not Julia ?

Because R is on the decline in the job market, and so that I could enjoy its supposed speed and adequacy for general purpose programming while it is legible for people like me and most importantly - it already has quite a bit of libraries that fit my _current_ purpose. I tried it a little and it's quite nice from day one. Why not? well, I fear that it might be overhyped. I hate overhyped things.

The Questions

I want to find a language that I like, will be usefgull to me, and hopefully I will not need another during the next 20 years. How do I fund it? CAN I find it?

The thing is, having read more and more into trendy languages of the future, it seems like there's quite a lot of them...could anyone have predicted in let's say 2005 that Python would be so much in demand as it is today ? How would you approach the question of how to take the claims seriously ? Rust ? Zig ? Julia ? Other ? Don't bother ?

Motivations & Limitations

## Initial suggestions by others

On the chat, some people had the following opinions

Mainstream Suggestions

Python

Now the mainstream is Python, [...] do it for survival

JS because the web

Javascript is another good option, the web is not going anywhere soon too.

JS also got a negative vote

do u love yourself enough to not program in js?

Java

You should learn Java, because there are many android phones and it stays so in near future

Less Mainstream but for the job market

? (None so far)

Personal taste votes

Posted in: s/programming

🦥 aRubes

2 hours ago

2 Comments ↓

🚀 ahappydeath

I'll give a 'not so mainstream' option. Elixir. It is making big progress in the data space with it's introduction of LiveBook and it's newer Numerical Computing libraries https://github.com/elixir-nx

1 hour ago

🦀 jeang3nie

I'll comment about a couple of the languages you mentioned in passing.

Rust has the benefits of being ready for productiojn right now, having a significant community behind it, being the up and coming language for writing Python extensions in, and being generally on par with the fastest languages available. I personally love it due to the ease with which you can write parallel executing code while being reasonably sure that it's not going to blow up in your face.

It has the downsides of a fairly obnoxious community and it's famous learning curve. I don't think the latter is as big a problem as people make it out to be, but I'm definitely a bit disillusioned with the former.

Zig is also incredibly fast. I feel like Zig's feature set gets you about 90% of the benefits that Rust gives you with a much smaller learning curve. However, Zig is definitely pre-1.0 software. If you write something of any size in the language, you will absolutely incur extra maintenance overhead just due to how often breaking changes in the language. My opinion on Zig is that you should use it only if you believe that it will be able to deliver on it's promises in the future and are willing to bet on that, particularly if your hope is for learning a bankable skill. It could eventually overtake Rust in popularity, or it could fizzle out and die.

Here's my somewhat controversial opinion now. There is absolutely nothing wrong with learning C and/or C++ at this point, and both languages are likely to be in demand for decades to come even with all of their very real problems. In particular, I think it's good to learn plain C as no other language besides assembly will teach you more about how computers and algorithms work on a low level. Spend some time in C and you will have no choice but to eventually implement data structures that every other language take for granted just because there won't be a ready made solution, or because you will be able to tailor it specifically for your needs. Then, when you inevitably do pick up a task in a higher level language, you'll be making more informed choices about how you use and store your data.