7 ms·
I have done both complex and trivial stuff in both languages and Julia isn't more inconvenient for trivial things.
by freilanzer 3y ago
I have done both complex and trivial stuff in both languages and Julia isn't more inconvenient for trivial things.
- cookieperson 3y agoJust make sure you find the appropriate documentation because the package changes it's syntax an awful lot over the past four years or so and there are lots of tutorials, videos, and blogs that don't apply anymore. Similarly make sure you research the ecosystem because everything in Julia is very fragmented, IE pandas.loadcsv will require two or more packages in it's Julia equivalent.
- affinepplan 3y agoI notice you coming into every single thread about Julia to criticize the language and the community. Do you have a vendetta or something?
- patrick451 3y agoThe Rust Evangalism Strike force normalized the practice. This is what we do now.
- cookieperson 3y ago??? What's evangelical about pointing out that anyone interested in using dataframes jl should be aware that there is a lot of out dated content on how to use it and to be mindful of that??? It's honest and helpful.
- hpcjoe 3y agoBack in my more perl-ish days, I recall pythonistas doing this. Sad to see little has changed.
- cookieperson 3y agoIs it that I have done something wrong here, or is it possible the Julia community can't handle its own reality. If you reread what I wrote here... You'd actually see it's advice. It's advice from someone who has helped people learn Julia for years. Common stumbling points.
- cookieperson 3y agoNot a vendetta, just sick of people talking about Julia like it's this flawless thing to bring in users to make $ off of the community, only for the new comers to enter find problems and get gas lit over their existence. It's a gross cycle and someone has to say something about it.
- Nilshg 3y agoTo be clear on this: DataFrames, like most of the Julia ecosystem, follows SemVer. DataFrames 1.0 was released over two years ago (March 2021), and the API has been stable ever since. Furthermore, Bogumil Kaminski, one of the main developers behind DataFrames, makes sure that the DataFrames tutorials he has created here (https://github.com/bkamins/Julia-DataFrames-Tutorial https://github.com/bkamins/Julia-DataFrames-Tutorial) are updated on every new release.
- cookieperson 3y agoBeside the point. Old information on the internet abounds with the old syntax. It's a common hiccup for beginners in Julia. Ie they'd google something, try the syntax it errored out, they google it another way found it was updated try that nope that's outdated now too, etc. So it's worth mentioning.
- chaxor 3y agoThis is definitely clouded by personal preferences far too much. Acting as if python is void of issues in change over time? We all know the incredible pain of trying to get some ML package running written 3 months ago (let alone 3 years ago) and how much time is spent remaking some conda env inside a docker inside qemu inside... just to get the stupid thing to load. So don't act like python doesn't have it's problems in change over time.
- cookieperson 3y agoNo clue why python was even mentioned here. I hardly if ever use python. Strawman arguments are logical fallacies.
- hpcjoe 3y ago> Julia is very fragmented No, it isn't. I'm using Pandas, DF.jl, and even polars at work. DF.jl is by far the best/easiest/quickest to use, as its syntax is consistent. Polars is a bit more annoying as its syntax is further along the learning curve that I have gotten yet. Pandas ... what to say about a library that will happily return a pd.Series in one moment, and a pd.DataFrame in another, for the same function call. This means you need extra code like if type(ret_thing) = pd.Series: # then do something to coax it back to a df. lest your actual code break. This is of course the same language that has API differences that make no sense in, say, re.match vs re.findall vs re.search. I've been burned by all of those. So, look, we get you hate Julia. That's fine. Go live your python life to its best. But really, stop with the misinformation/FUD. This speaks volumes about you, and tends to make the case precisely the opposite of what you think. And yes, I use Python, Julia, C++, and many other languages in the $day_job.
- cookieperson 3y agoWould it surprise you to know I don't use python almost ever? Yes the ecosystem is very fragmented. It's done so by design. One of the major contributors to the language wrote a paper about it.
- Nanana909 3y agoAny examples? I've found Julia far easier for simple things than python. Most modern problems are mathematical and nature and I think it's pretty objective that julia looks closer to the mathematics. ----Some tests of very simple tasks in both languages. At its most basic the obviouses becomes different: Let's try to get a very simple object: a 3,3 matrix of random booleans in both languages: Julia: A = rand(Bool,3,3) Python: No standard support for Matrices. I could really do it a disservsice and comapre the "core language", but that''s obivously stupid so we'll bring in some external libraries to make it easier. Of many ways to skin the cat here's one.. Python import numpy.numpy as np gen = np.random.default.default_rng() B = gen.choice([True,False],(3,3)) BTW julia has this choice function built into the command as well, so rand(["Which", "Word", "Will", "I", "get?"]) produces exactly what you'd expect. ---- Acutally I can't think of any cases at all off the top of my head. Sorry, I mean my np.somenamespace.another.namespace.sparce head :) I mean just going down the list of things that make code easier in Julia.. * Python requires a third party library for any kind of linear algebra. and matrix multiplication:* A =[1 4;6 7"; B = [2 ;3]; A*B doesn't work, i.e. you literally even multiply a matrix! This is madness.you'll need yet again a third partly library Python doesnt have broadcasting. let's apply sin(x) to a matrix a Pythonic(+ required third party libraries) import numpy as np import math #sigh x = np.array([1, 2, 3, 4, 5]) f = lambda x: sin(x) Now in Julia (notice the . after sin) x=1:5 sin.(x) or more explicity we could write broadcast(sin, x) Even basic string interpolation in Julia is a much nicer "trivial task" than in python alone No special brackets, just clean "$myvar" # Reading files is easier Julia readlines("my_test.txt") Python open("my_test.txt").readlines() What a stupid option in 2? if I call readlines on a filename, 99% of people, 99% of the time, want to read the lines on the file at that path. Why require two function calls?
- mrtranscendence 3y agoIt’s funny that people used to get on Python’s case for not being object oriented enough, and now we’ve come around to folks thinking Python should just throw a function for everything into the default namespace …
- _0w8t 3y ago