💾 Archived View for bbs.geminispace.org › u › ahappydeath › 5714 captured on 2024-02-05 at 14:16:43. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-12-28)
-=-=-=-=-=-=-
Re: "Help me find my second language"
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
2023-09-28 · 4 months ago
🦀 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:
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...