I am exhausted by some of the so-called open people in my field being hostile to my ideas — although the people who work with software are way more positive thankfully!
I feel really strongly about how science needs to dump closed source and bad programming habits, like Matlab. Often this blog post gets exposure that's positive but now it's being treated a bit negatively.
What do you all think?
@jimi yup and thanks! 😀
@olivia This entire network is open source, isn't it? Seems it would be hypocritical for someone to be here and not be a fan of things being open source TBH.
I'm with you regarding matlab, not so much because "bad programming practice" but because it is a closed language and quite expensive.
I am very curious where the scientific community will go in the next years and I am looking forward to finding it out.
@gepasi Also no BNF so very scary.
@olivia in my experience working as a TA in a programming course for students whose only official previous programming course was with matlab, I would agree that it probably is not a good tool for teaching programming, but I think the whole argument of openness is the more important one. Also, side note, MiniZinc, a very serious constraint modelling language, also starts arrays at 1.
@albin I've never heard of minizinc... What kind of modelling? Cognitive?
@olivia Constraint modelling! It's really cool, but not incredibly well known. Its arrays (like Matlab's i suspect) are based on mathematical arrays, which is why they start at 1. I love how it upsets very hardware-oriented people, because I see arrays as functions mapping values to values, which is decidedly not how eg C programmers normally treat them.
@olivia I am a baby Applied Linguist. I may never need Matlab. I know I will need R later and I have a very basic knowledge of Python, which will help. I totally see the point you are getting at. It's like using Wizards to make a web page rather than learning some simple HTML and CSS. The latter gives you more freedom to do things *your* way, which should be the best way.
In my experience, the fediverse has a vibrant & pleasant open source software segment. Despite occasional cranks/randos (less common in my experience here than twitter), even unpopular positions generally have productive discussions.
I can't really address open science, since I'm not part of that community, but I know some of my mutuals are.
@olivia @olivia @olivia I share the idea that all software used in public research should be OS. Although the analogy with the manual shift I find inaccurate, whether you learn using manual or auto you only care about getting from A to B. In research you care about getting to B but it is also important, for reproducibility and reliability on the results, to know how you got to B and what might have gone wrong there. That is the key point that should push all depts to embrace OS.
@olivia I definitely share your thoughts on MATLAB. My physics department uses it, and for the majority of students, it's their first exposure to programming.
By their third year or so, most of my fellow students are under the impression that they're good at programming in general, while also:
- Not understanding the difference between the MATLAB language and the MATLAB IDE
- Using single-letter variables always, and being proud of it, as though it's good practice
- Thinking they understand everything they need to know about how to write fast code because their prof taught them some basic (and, in MATLAB, completely unnecessary) optimization strategies and the MATLAB interpreter's built-in magic takes care of the rest
- Knowing next to nothing about types, especially numeric types
When we started into embedded stuff in the electronics course for physics majors, the method of choice for writing code that talks to the GPIO was using Octave, with system calls to another utility that talks to the GPIO. SPI I/O involved system calls to a C program, separately compiled for each transmitted message. As both a student and later a TA, I ended up being a part-time Python teacher for most of the class when their systems got so tangled and slow that they couldn't figure out how to proceed.
@olivia When I voiced my frustration about how we're not just using Python to begin with these days, my prof largely agreed with me, but also said that one big thing with Python is that it's often very easy to just find someone else's code on Stack Overflow to do pretty much anything, which makes homework tricky to grade - MATLAB has this problem less because fewer people use it outside academia, and Stack Overflow is wary of doing people's homework for them.
Which, yikes, tbh. There's a lot to unpack there.
@ellied that's really disturbing! Really! Thanks for sharing all this. I'm sorry to hear about these reactions though. Ugh.
@olivia My pleasure! And yes, it is disturbing. As far as I can tell, this all ends up benefiting MathWorks a great deal because students all get out of undergrad and only know a language that costs $2000/seat to use in an industrial context. I sure hope there's no shady deals with the universities involved!
@olivia I 100% agree with you but it's hard to find a really great language—I live in Julia+Python+C++ these days and while life is better than Matlab, it could be better—so, as you know, it's not easy convincing people to drop Matlab.
I personally find the IDE argument a bit weak since I know many C gurus who learned & live in Visual Studio or Xcode and wouldn't know what to do with Makefiles or command-line.
Julia arrays start at 1 (configurable). Fortran too. This isn't a big deal…?
@olivia My preferred two-pronged attack against Matlab is (1) that it's a poorly-designed language with awful semantics and (2) good libraries machine learning don't exist for it (thank goodness for TensorFlow/Torch/et al.!).
Nowadays I get to supervise Julia-vs-Python wars in my group 🙌!
@22 nice! 💯
@olivia Proprietary software is fundamentally unscientific. Using a "black box" as a method violates basic replicability.
The widespread use of STATA, SPSS, and ArcGIS, for example, makes me angry, especially since there is R and QGIS.
@therealraccoon yes! 👏
@olivia agree, I've been trying to push more in my department towards using python instead of Matlab. It's been a difficult task.
@olivia i completely agree with your point! there are just too many tools that have none of matlab’s drawbacks for it to be a sound general choice.
regarding the argument of ‘i am not a programmer i must never see programming looking stuff!’, i present design legend erik spiekermann:
‘You have to learn if not to code at least to appreciate code, to understand code. Because code is what nuts and bolts were a hundred years ago.’ (src: https://pi.co/erik-spiekermann/)
@gekitsu interesting quote and thank you! 😊
@olivia Interesting that this has so many boosts but no replies yet. Is that because it's easy to support openness—but it's hard to act on that support, outside of the intent?
What kind of negative response have you had of late?
@ryanjamurphy so there's some replies on the blog itself so there's those. But mostly in Twitter they come in two forms these days: a) "I can't believe you're saying my work in Matlab is bad" so a strawman and/or "Matlab is open science, stop making up the rules" and b) I can't switch because it's too difficult.
@ryanjamurphy there's also a lot of replies in my notifications... So I'm confused — also new to mastodon!
@olivia Weird. I see them now, on iOS (Tootdon). Couldn't on MacOS (Whalebird). Sorry for the confusion! I wish there was a good desktop client, ha.
@ryanjamurphy no worries! 😅
@olivia GNU Octave and PSPP 💪 > MatLab and SPSS.
@olivia I don't think people should put mental energy into learning proprietary tools (matlab included, even if I've never used it)
@ksteimel it's on my list of languages to try out! 😊
Now's a good time since they released 1.0 a couple weeks ago. (Although most packages will take a couple more weeks to catch up).
@ksteimel @olivia Feel free to reach out to ask Julia questions. Julia is a lot more of a language than Python: the type system is more advanced, like ML, than Java/C++, the ecosystem is patchier than Python, the community is a bit more insular than JS/Python, and LLVM JIT is a whole new can of performance worms. Often asking someone is much easier than trying to figure it out—I'm super-grateful to have two IRL Julia senpai who patiently answer all my questions and I'd be happy to help others.
@olivia I can't agree more. I'm an engineer and I'm forced to use Matlab because is the standard in my field. It promotes people writing random scripts impossible to share or mantain. It's a nightmare. Let alone the closeness...
Glad to see how many people are pushing for a different model!
Scholar Social is a microblogging platform for researchers, grad students, librarians, archivists, undergrads, academically inclined high schoolers, educators of all levels, journal editors, research assistants, professors, administrators—anyone involved in academia who is willing to engage with others respectfully. Read more ...