datetime 's exact semantics, precision, and storage costs are opaque and undocumented.Database Toolbox tries to be too smart for its own good, with parsing your SQL and changing behavior based on it, doing probes for server-side structures, etc.Database Toolbox returns empty result sets as instead of a 0-row table with the proper column structure, even if you requested table format.import is kinda useless, because it's function-scoped instead of file-scoped or class-scoped.I focus on building large-ish Matlab programs that integrate with other programming languagesl, data sources, and systems. This is coming from the perspective of someone who's primarily a software engineer, and came to Matlab from a Java/SQL/Perl background. I follow the release notes and bitterly recognize that in the last decade, almost no improvement was made for the core. You are losing hardcore programmers and scientists this way (cf. Honestly, I am deeply disappointed that TMW tries to satisfy novice engineers instead of providing powerful tools. I saw the tendency that computational scientists use MATLAB less and less because they need the features that other languages' rich ecosystems provide. If they concentrated on the core of MATLAB (things that are unrelated to the IDE), all people could profit from it. What I want to point out is that TMW spends its workforce on implementing many things into MATLAB that simply cannot compete with specialized tools (diff tools, git support, etc.). If someone has to solve complex git-related tasks, they will use a feature-rich editor (such as SmartGit) or will use the command line. Yes, they are important, but supporting tensor operations, introducing state-of-the-art ODE solvers (as Julia's wonderful DifferentialEquations.jl ) would be more useful for a scientist. To me, MATLAB's focus should be on computational mathematics (as it originally was) and not polishing the IDE and other secondary issues. The core numerical algorithms changed very little in the past 20 years. TMW's focus on shiny features and the toolboxes.Moreover, the MATLAB runtime is huge, so for a simple application, you have to download hundreds of megabytes. To generate standalone application, you need an additional toolbox.You also cannot debug MEX code with MATLAB Editor. The really powerful MEX commands (see on UndocumentedMATLAB) are not documented and change all the time. Invoking C code, let alone C++, is difficult with the MEX interface.Moreover, launching parallel pools open new MATLAB workers that spend about 700 MB each! I didn't see any efficient massively parallel applications done by MATLAB. The fact that open source tools support many levels of parallelism and MATLAB offers it in a toolbox is a big drawback. Complex problems require fast hash maps, linked lists and other data structures. I would love to have (nearly) costless abstraction as in Julia or in C++ it happened to be that because of speed issues I had to sacrifice readability and turn to built-in types to achieve reasonable speed. To me, it is not a problem (Python also explicitly needs the instance as the first method parameter), but custom types are really slow in MATLAB. Reading the threads, people criticize the OOP syntax of MATLAB. As if the MATLAB linter was available for other editors too! The MATLAB Editor (the classical one, not the Live Editor) is useful but misses some features that others have. MATLAB toolboxes sometimes provide a solution but university clusters often miss many toolboxes. I can only talk about areas I experienced, but Python (and now Julia) has such an extensive ecosystem and an active and responsive community, that one does not have to start reimplementing everything. Being closed-source really hampers the development. There are too many awesome projects that stop because the maintainer a) lost interest or b) left the university and has no access to MATLAB any more. Related: I also feel that the open-source nature of Python produces quality contributors. When Python users raise issues on GitHub/Gitlab, etc., I don't have this feeling. They expect complete solutions without showing any effort. However, the forum is full of people whose posts do not show any research work. There are some heavyweight MATLAB users (Walter Roberson, Image Analyst, John D'Errico, Jan, and I'm sure I missed many of you) who have immense knowledge and are also very active on MATLAB Answers. I do not indend to start a flame war, especially because I see the merits in both languages. I will sometimes refer to Python because that's what I have experience with. I still like MATLAB because I am efficient in it, but here are some things I don't like about it. Before I started using Python this year, I was a happy MATLAB user.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |