💾 Archived View for bbs.geminispace.org › s › programming › 5708 captured on 2024-02-05 at 11:46:51. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-12-28)
-=-=-=-=-=-=-
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.
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
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 ?
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.
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 ?
## Initial suggestions by others
On the chat, some people had the following opinions
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
? (None so far)
2023-09-28 · 4 months ago
🚀 ahappydeath [mod] · Sep 28 at 22:06:
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
🦀 jeang3nie · Sep 28 at 22:33:
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.
I don't think it fits what you're asking for in existing libraries, but I'll mention Dart anyway. Its main setting point is that it gets you web + mobile + server in one language. It's mostly popular for mobile at the moment, see: Flutter.
🦥 aRubes [OP] · Sep 30 at 21:11:
@jeang3nie That is an excellent comment ! Thank you for the suggestion
🦥 aRubes [OP] · Sep 30 at 21:13:
@ahappydeath That's really good to know ! haven't stumbled upon in it in any of my data analysis/stats rss feeds.
🐉 gyaradong · Oct 01 at 02:18:
it's a bit hard to recommend something when you hate python and it's the new language for data science, but you also want pragmatic advice on what's a popular choice for data science. Python is not a bad language. Try and figure out what you don't like about it.
🦥 aRubes [OP] · Oct 02 at 15:55:
@gyaradong I don't really know, to be honest. Something about the syntax (of the base python, not specific packages) just does not work well with my brain. It took me much less time to get used to the same lavel in R, and that was really my first language (not counting a short Pascal and Assembly experience some 15 years prior to this, which I have totally forgot by the time I started with R). Let's assume that syntax is the problem for a second. besides getting used to it, is there anything I could do ? like packages that provide alternative syntax ?
🐉 gyaradong · Oct 14 at 00:28:
Other languages exist, but the job market tends to be a laggard. By the time a language has already got several advantages for a task, the job market only just starts to transition. people in the industry have probably used a new languages for months or even years. It's Very hard to know what will be "next". Generally you'll have you passionately drive for a transition when you already have a job.
in short i would say:
for job, the only acceptable mainstream language for my taste today is go. it is modern, fast, well designed, safe, strongly typed, generates native code, has reasonably small syntax, influenced by languages i like.
for fun: ada, modula-3, oberon. i vote for oberon and feel free to ask me questions about it.
i expressed some thoughts here too: