#Programming languages?
38 messages · Page 1 of 1 (latest)
also: one of the best ways to learn a language is to read and modify other people's code (in addition to writing your own)
Python is great for iterating
It’s also never been easier to optimize: i ask an llm to translate into Rust or C if im doing a big job
Scratch to start with (this bit is a joke)
Fr tho, As people said so far, Python
Python for prototyping, Go or Rust for finished product.
Python is basically pseudocode that you can run, it's really easy to get something working but it's horrible to maintain a big Python project and it's slow. It's an interpreted language so you don't have to compile it to run.
Anything to do with web and concurrency, Go is great for. It's much faster than Python, and also still very easy to get something up and running. There are some jagged edges the deeper you go into Go, so it's easy to learn but hard to master. You have to compile Go code to run it.
Rust is a very fast compiled language. I've found it to be really good for analysing large amounts of data. Really nice, clear error messages too. Learning curve is steep as hell though.
I would suggest staying away from making stuff in C because C does not hold your hand at all and lacks memory safety. Good to learn at some point because you get a good insight into how the computer works at a lower level.
As @robust flower suggests, you can always use an LLM to convert your Python prototype into Go / Rust code.
Python is sorta the default data processing language and is mostly pretty straightforward to get up and running.
Any language after that is a mix of what you want to do vs what you're motivated to learn
The JavaScript library for bespoke data visualization
Wait til you try Assembly..
eh, assembly isn't so hard!
ORG $300
:1
LDA $C000
SBC #$A0
JSR $FCA8
LDA $C055
LDA $C054
LDA $C030
JMP :1
You trying to scare OP away?
If I had to do it then everyone has to..
if you're just doing stuff that doesn't require a huge amount of performance or hit other memory/disk/cpu limitations, python is just fine; you wouldn't need to bother with rust/go/C/assembly/whatever
I'd suggest prioritizing your time over the computer's
One vote for Python if you want to get things done fast and with minimum fuss.
In theory any of the Turing complete languages is capable of doing same things, but one should use the language best suited for the task.
Python is well suited for most of the tasks with it extensive libraries.
Whitespace and Mindfuck are suited to jokes. R is suited for statistical tasks, C is suited for extremely resource limited tasks, and so on.
I work mostly in julialang these days. It's userfriendly, it focuses on scientists. I find it flexible and the community is extremely friendly.
Plus Makie.org is extremely good for visualization
Specifically for mapping for example, things like Tyler (under Makie) are very powerful: https://github.com/MakieOrg/Tyler.jl
oh my goodness i haven't seen julia in forever
did it ever get to the other side of the infrastructure curve and become the "language of ML?" lol
I don't do ML (on principle, at least until someone really forces me to) so I have no idea. But it is my absolute favourite as a matlab alternative.
its crazy fast once its up and running
Also the code is super legible. You can literally write equations as they would look on paper.
But Tyler has real potential for being used for the analysis and presentation of open source data and I'd love to see it used more.
For a language that's not bee aroundas long as many of the others I really think it is getting there. So far, I've been able to do pretty much everything, and when something's not native I can read in R and python packages (for me this is only metpy and utide though, everything else I need for my academic work either is native or has a package)
That's pretty dope! I've been procrastinating learning python properly but I'm encountering more ML/big data subjects that interest me so I'm gonna have to bite the bullet lol
Julia is faster (ok, you can tweak python to be faster), in part because it's compiled.
So for large datasets (including satellite) it might be preferable. Also threading is easier
(imo)
But yeah, I think programming is such a personal taste & to what you have access thing
There's also many different plotting packages. My favourite being makie: https://beautiful.makie.org/dev/
A gallery collection
One of my primary language, kotlin at least has an engine in jupyter which is nice
Julia uses something called IJulia for that: https://juliapackages.com/p/ijulia
Also, for the weather people: https://github.com/alstat/Bagyo.jl
I switched to go from python last year for building quick tools. I like completeness of the built in libraries but more importantly it enables me to build tools that anyone can run on Windows, Mac, Linux without having to have python installed. Just a single executable.
Very portable