💾 Archived View for bbs.geminispace.org › u › jeang3nie › 5717 captured on 2024-06-16 at 19:15:03. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2024-05-26)

➡️ Next capture (2024-08-18)

🚧 View Differences

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

Comment by 🦀 jeang3nie

Re: "Help me find my second language"

In: s/programming

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.

🦀 jeang3nie

2023-09-28 · 9 months ago

11 Later Comments ↓

☕️ Morgan · 2023-09-29 at 07:02:

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] · 2023-09-30 at 21:11:

@jeang3nie That is an excellent comment ! Thank you for the suggestion

🦥 aRubes [OP] · 2023-09-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 · 2023-10-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] · 2023-10-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 · 2023-10-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.

🐙 norayr · 2023-11-13 at 00:25:

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:

— thoughts in other thread

💀 requiem · Apr 17 at 16:27:

Personally I am quite glad I learned some python, it’s a really rewarding language with a quick learning curve. I wrote a lot of NodeJS before that and honestly it sucked.

I also learned a bit of CPP to work on Arduino stuff but I switched over to micropython instead.

I am only a hobbyist but friends “in the know” seem to go for Rust and Zig. I personally wonder about learning Go and Lua. Both seem interesting: interestingly a lot of Gemini stuff was made in Go, and Lua seems to be popular for retro gaming these days.

🦀 jeang3nie · May 07 at 18:44:

I haven't messed much with Go beyond some basics, but Lua is definitely a nice little language. It's really fast to learn if you've done any other programming. I feel like it's very comparable to Python when it comes to learning curve, but it's hampered by being seen as just something that you embed into something else and doesn't have the massive community behind it that Python does.

🐙 norayr · May 08 at 00:21:

let me also mention pascal, and its implementation: freepascal.

it is a compiler which is independent from gcc or glibc. the code it generates has no dependencies other than kernel. it links statically necessary rtl, and it contains very effigient memory manager which supports cow strings etc.

still the resulting executabre size (static) is about 100k. which is unheard of. statically linked c minimal executabre built by gcc is about 800k in size.

in the compiler benchmark game measurements fpc is always exceptionally good in its memory usage, and the welr known research on energy efficiency also confirmed it is one of the best there.

it has strong community, they developed lots of libraries.

🦀 jeang3nie · May 08 at 01:47:

Pascal is a worthy shout-out. That said, there are other languages that can give it a run for its money on executable sizes if that's something that you're concerned with. Zig has lazy evaluation and only builds the parts of the standard library that you're actually using, giving it the ability to produce nice compact executables. And the figures you mentioned for C are due to Glibc, not C itself. Static linking with Musl on Linux produces much smaller binaries, and the BSD operating systems also have great and efficient libc implementations.

Frankly, Glibc is hot garbage. Nobody seems to be talking about it but Glibc's indirect function call interface was a major component of the XZ backdoor, which couldn't have worked without it. It's part of the reason that Glibc is so bloated to begin with and it's a potential security nightmare as well. That's a tangent for sure, but it's worth saying.

Original Post

🌒 s/programming

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...

💬 aRubes · 13 comments · 2023-09-28 · 9 months ago