TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Research software code is likely to remain a tangled mess

182 点作者 hacksilver超过 4 年前

40 条评论

svalorzen超过 4 年前
I don&#x27;t really agree with the reasons given, even though my conclusions are the same. The main reason why research code becomes a tangled mess is due to the intrinsic nature of research. It is highly iterative work where assumptions keep being broken and reformed depending on what you are testing and working on at any given time. Moreover, you have no idea on advance where your experiments are going to take you, thus giving no opportunity to structure the code in advance so it is easy to change.<p>To make a concrete example, imagine writing an application where requirements changed unpredictably every day, and where the scope of those changes is unbounded.<p>The closest to &quot;orderly&quot; I think research code can become would be akin to Enterprise style coding, where literally everything is an interface and all implementation details can be changed in all possible ways. We already know how those codebases tend to end..
评论 #26224653 未加载
评论 #26223809 未加载
评论 #26224216 未加载
评论 #26224109 未加载
评论 #26225970 未加载
评论 #26224285 未加载
评论 #26223777 未加载
评论 #26223983 未加载
评论 #26231276 未加载
评论 #26223698 未加载
评论 #26225344 未加载
评论 #26223656 未加载
评论 #26225465 未加载
SavageBeast超过 4 年前
I&#x27;m currently refactoring a fairly large piece of research code myself. It was written with lean startup thinking in that a little code ought to produce some value in its results. If i was able to eeek some usefulness out of this code, then Id put more energy into it. Otherwise I was perfectly happy to Fail Fast and Fail Cheap.<p>How did it become such a mess in the first place? Simple - I didn&#x27;t know my requirements when I started writing it. I built it to do one thing. In running it I learned more things (this is good - why you build stuff like this in the first place). The code changed rapidly to accommodate these lessons.<p>It wasn&#x27;t long before I was running into limitations in the design of the underlying libs I was using etc. Of course I could find a way to make it work but it wasn&#x27;t going to win any Software Design Awards.<p>Im happy to report that despite ending up a tangled mess, it actually helped me to come to understand and conquer a very specific kind of problem. In doing so I learned the limitations of commercially available tooling, the limitations of commercially available data, not to mention a great deal about the problem domain itself.<p>This research software has earned its keep and is now being cleaned up into a more organized, near commercial quality kind of project. Im glad I threw out &quot;architecture&quot; when I first started with this. It could have gone the other way where I had a very well built piece of code that didn&#x27;t in fact perform any useful function.
评论 #26225723 未加载
评论 #26226593 未加载
orange_tee超过 4 年前
Well as somebody who has written research software, I don&#x27;t agree that research software is a &quot;tangled mess&quot;. A couple of points,<p>1. often when I read read software written by profession programmers I find it very hard to read because it is too abstract, almost every time I try to figure out how something works, it turns out I need to learn a new framework and api, by contrast research code tends to be very self contained<p>2. when I first wrote research software I applied all the programming best practices and was told these weren&#x27;t any good; turns out using lots of abstraction to increase modularity makes the code much slower, this is language dependent of course<p>3. you will find it much harder to read research code if you don&#x27;t understand the math+science behind it<p>&gt; many of those writing software know very little about how to do it<p>This is just not true. I found in my experience that people writing research software have a very specific skillset that very very few industry programmers are likely to have. They know how to write good numerics code, and they know how to write fast code for super computers. Not to mention, interpreting the numerics theory correctly in the first place is not a trivial matter either.
评论 #26224799 未加载
评论 #26225963 未加载
评论 #26226618 未加载
评论 #26224793 未加载
评论 #26224299 未加载
milliams超过 4 年前
Disclaimer: I am one of the trustees of the mentioned charity, The Society of Research Software Engineering.<p>You say that you don&#x27;t see it having much &quot;difference with regard status and salary&quot;. The problem here is two-fold. Firstly, salaries at UK universities are set on a band structure and so an RSE will earn a comparable amount to a postdoc or lecturer. These aren&#x27;t positions that are known for high wages and historically the reason that people work in research is not for a higher salary.<p>As for status, I can see that the creation of the Research Software Engineer title (since about 2012) has done great good for improving the status of people with those skills. Before they were &quot;just&quot; postdocs with not many papers but now they can focus on doing what they do best and have career paths which recognise their skills.<p>My role (at the University of Bristol - <a href="https:&#x2F;&#x2F;www.bristol.ac.uk&#x2F;acrc&#x2F;research-software-engineering&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.bristol.ac.uk&#x2F;acrc&#x2F;research-software-engineering...</a>) is focused almost entirely on teaching. I&#x27;m not trying to create a new band of specialists who would identify as RSEs but rather provide technical competency for people working in research so that the code they write is better.<p>There is a spectrum of RSEs from primarily research-focused postcode who write code to support their work along to full-time RSEs whose job is to support others with their research (almost a contractor-type model). We need to have impact all the way along that spectrum, from training at one end to careers and status at the other.<p>For more info on the history of the role, there&#x27;s a great article at <a href="https:&#x2F;&#x2F;www.software.ac.uk&#x2F;blog&#x2F;2016-08-17-not-so-brief-history-research-software-engineers-0" rel="nofollow">https:&#x2F;&#x2F;www.software.ac.uk&#x2F;blog&#x2F;2016-08-17-not-so-brief-hist...</a> written by one of the founding members of the Society of Research Software Engineering.
screye超过 4 年前
&gt; writing software is a low status academic activity<p>Yep, that&#x27;s the one liner right there.<p>The incentives simply do not match the complaints. Researchers already work upwards of 60 hrs&#x2F;wk on most occasions. Alongside writing code, they also have to do actual research, write papers, give talks and write grants.<p>All of the latter tasks are primary aspects of their jobs and are commensurately rewarded. The only situation where a well coded tool is rewarded, is when a package blows up, which is quite rare.<p>Like all fields, the high-level answer to such questions is rather straightforward. The individual contributors align their efforts to the incentives. Find a way to incentivize good research code, and we will see changes overnight.
asdf_snar超过 4 年前
This article seems to cover research software that even can be built. I claim the majority of _code_ written to support research articles is a collection of scripts written to produce figures to put in the paper. Even when the article is about an algorithm, the script that runs this algorithm is just good enough to produce the theoretically expected results; it is never tested, reproduced, or published, never mind being updated after publication.<p>While others here point out that researchers = bad programmers is a lazy excuse, I think it is important to point out just how steep the learning curve of computer environments can be for the layperson that uses Excel or MATLAB for all their computational work. It can be a huge time investment to get started with tools, such as git or Docker, that we take for granted. I think recognizing this dearth of computer skills is a first step towards training researchers to be computer-competent. Currently, I find the attitude among academics (especially theorists) to be dismissive of the importance of such competencies.
评论 #26224080 未加载
评论 #26224252 未加载
评论 #26224196 未加载
hntrader超过 4 年前
These are some concepts that I believe in for research code.<p>Research code shouldn&#x27;t be a monolith. Each hypothesis should be a script that follows a data pipeline pattern. If you have a big research question, think about what the most modular progression of steps would be along the path from raw data to final output, and write small scripts that perform each step (input is the output from the previous step). Glue them all together with the data pipeline, which itself is a standalone, disposable script. If step N has already been run, then running the pipeline script once again shouldn&#x27;t resubmit step N (as long as the input hasn&#x27;t changed since the last run).<p>This &quot;intermediate data&quot; approach is useful because we can check for errors each step on the way and we don&#x27;t need to redo calculations if a particular step is shared by multiple research questions.<p>I was taught this by a good mentor and I&#x27;ve been using this approach for many years for various ML projects and couldn&#x27;t recommend it more highly.
评论 #26231636 未加载
fabian2k超过 4 年前
There is no real incentive to organize and clean up the code, even if the scientists involved have the skills to write well-organized software. And organizing this kind of code that often starts in a more exploratory way is a pretty large amount of additional effort. This kind of effort is simply not appreciated, and if spending time on it means you publish fewer papers it&#x27;s a net negative for your career.<p>I&#x27;d settle for just publishing the code at all, even if it is a tangled mess. This is still not all that common in the natural sciences, though I have a bit of hope this will change.
评论 #26224348 未加载
neffy超过 4 年前
I don&#x27;t think research code in aggregate is any worse than any other source for code. If we had the same kind of visibility into all the commercially written code, it would be the same pattern of some well structured, and some a complete mess, without any correlation with the companies concerned, but with a lot of correlation to the ability of the author.<p>The recent example of Citibank´s loan payment interface comes immediately to mind. So does Imperial&#x27;s Covid model (the one that had timing issues when run on different computers.)
评论 #26223961 未加载
mkl95超过 4 年前
If you want to write good research software, a good way is to have professional developers implement it.<p>I worked closely with an NLP researcher for a while on a project that had received a hefty state grant. She knew more or less what her team needed, but she needed someone to implement it cleanly and in a way that would not make users step on each others toes.<p>The chances of that project being a buggy mess would have been pretty high if it had been written by people who don&#x27;t write software for a living. And maybe that&#x27;s OK.
评论 #26226359 未加载
nirse超过 4 年前
What doesn&#x27;t really get mentioned in the article, is that a lot of academic software was written by a single developer. All bigger software projects, academic or not, that were only built and maintained by a single person tends to become messier and messier with time. Perhaps most software suffers from that, that over time it becomes a mess, but having more developers look at code (and enough time, and many other factors) can certainly help to keep things in better shape.
评论 #26225152 未加载
knuthsat超过 4 年前
I think there&#x27;s not enough researchers that publish code.<p>For example, discrete optimization research (nurse rostering, travelling salesman, vehicle routing problem, etc.) is filled with papers where people are evaluating their methods on public benchmarks but code never sees the day. There&#x27;s a lot of state-of-the-art methods that never have their code released.<p>I&#x27;m pretty sure it&#x27;s like that elsewhere. Machine learning and deep learning for some reason has a lot of code in the open but that&#x27;s not the norm.<p>I&#x27;d prefer the code to be open first. Once that&#x27;s abundant then I might prefer the code to also be well designed.
评论 #26224950 未加载
cryptica超过 4 年前
Math and physics are a tangled mess so it&#x27;s not surprising that mathematicians and physicists write code which looks like a tangled mess. Mathematicians and physicists are trained to handle ambiguous concepts and they can work with weird abstractions which are far detached from reality. Unlike programming languages, the language of math is full of gaps - This requires the reader to make assumptions using past knowledge and conventions. Computers, on the other hand cannot make assumptions so the code must be extremely precise and unambiguous.<p>Writing good code requires a different mindset; firstly, it requires acknowledging that communication is extremely ambiguous and that it takes a great deal of effort to communicate clearly and to choose the right abstractions.<p>A lot of the best coders I&#x27;ve met struggle with math and a lot of the best mathematicians I&#x27;ve met struggle with writing good code.
评论 #26235100 未加载
lmilcin超过 4 年前
So here is simple fact.<p>It does not make sense to judge any piece of code that does not meet &quot;highest standard&quot; to be a tangled mess.<p>There are valid reasons to have varying quality of code and also the idea of quality might be changing from problem to problem and project to project.<p>A quality of code that governs your car&#x27;s ECU should be different from quality of code that some research team threw together to demonstrate an idea.<p>A coding project should achieve some kind of goal or set of goals as efficiently as possible and in many valid cases quality is just not high on the list and for a good reason.<p>Right now I am working on a PoC to verify an idea that will take a longer time to implement. We do this because we don&#x27;t want to spend weeks on development just to see it doesn&#x27;t work or that we want to change something. So spending 2-3 days to avoid significant part of the risk of the rest of the project is fine. It does not need to be spelled out that the code is going to be incomplete, messy and maybe buggy.<p>There is also something to be said for research people to be actually focusing on something else.<p>Professional developers focus their careers on a single problem -- how to write well (or at least they should).<p>But not all people do. Some people actually focus on something else (physics maybe?) and writing code is just a tool to achieve some other goals.<p>If you think about people working on UIs and why UI code tends to be so messy, this is also probably why. Because these guys focus on something else entirely and the code is there just to animate their graphical design.
评论 #26224302 未加载
innerlee大约 4 年前
Checkout the openmmlab project [1], where messy research codes in computer vision are rewritten an reorganized into a coherent whole. If there are more researchers join this, then not only research are fully reproducible, much more accessible to everyone, but also be compared fairly. (I&#x27;m the maintainer of mmpose [2], mmaction2 [3], and mmediting [4])<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;open-mmlab" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;open-mmlab</a> [2] <a href="https:&#x2F;&#x2F;github.com&#x2F;open-mmlab&#x2F;mmpose" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;open-mmlab&#x2F;mmpose</a> [3] <a href="https:&#x2F;&#x2F;github.com&#x2F;open-mmlab&#x2F;mmaction2" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;open-mmlab&#x2F;mmaction2</a> [4] <a href="https:&#x2F;&#x2F;github.com&#x2F;open-mmlab&#x2F;mmediting" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;open-mmlab&#x2F;mmediting</a>
einpoklum超过 4 年前
One of the things which has helped derail my own research career [1] is the tendency to not write tangled-mess code, and to publish and maintain much of my research code after I was supposed to be done with it.<p>Annoyingly, more people now know of me due to those pieces of software than for my research agenda. :-(<p>[1] : Not the only thing mind you.
评论 #26225274 未加载
brakus127超过 4 年前
Structure is great for a well understood problem space, but this is not usually the case when working working something novel. As a researcher your focus should be on learning and problem solving, not creating a beautiful code base. Imposing too many constraints early on can negatively impact your project later on. In the worse case, your code starts to limit the way you think about your research. I agree that there are some general best practices that should be applied to nearly all forms of coding, but beyond that it&#x27;s a balance.<p>The same thinking should be used when adding regulation to an industry. Heavy regulation on a rapid developing industry can stifle innovation. Regulation (if needed), should be applied as our understanding of the industry increases.
评论 #26230416 未加载
ArtWomb超过 4 年前
There&#x27;s a huge digital divide forming as well. Between the hardware a junior software engineer at a well funded research institution such as DeepMind has access to. Compared to the postdoc in Theoretical Physics at Princeton. Who is expected not only to write software. But maintain hardware for a proprietary &quot;supercomputer&quot; that was probably cast off ages ago from a government lab or wall street.<p>We don&#x27;t expect Aerospace &#x2F; Mechanical engineering students to learn metalworking. They typically have access to shop technicians for that work. Why not persuade university administrators to similarly invest in in-house software engineering talent. Generalists who can provide services to any problem domain: from digital humanities to deep reinforcement learning?
评论 #26224415 未加载
评论 #26226414 未加载
ellimilial超过 4 年前
I am actually quite surprised at the figure of 73% research-related code packages not being updated after the publication, was expecting it to be higher.
评论 #26223960 未加载
评论 #26225883 未加载
civilized超过 4 年前
I see people here saying research is like writing software with fast-changing requirements. I can see how that could seem like an adequate analogy to a software engineer, but it&#x27;s not.<p>Researchers use code as a <i>tool of thought</i> to make progress on very ambiguous, high-level problems that lack pre-existing methodology. Like, how could I detect this theoretical astrophysical phenomenon in this dataset? What would it take to predict disease transmission dynamics in a complex environment like a city? Could a neural network leveraging this bag of tricks in some way improve on the state-of-the-art?<p>If you have JIRA tickets like that in your queue, <i>maybe</i> you can compare your job to that of a researcher.
dariosalvi78超过 4 年前
I think that incentives play a big role here. Software has near to zero value in academic evaluation and even less its update and maintenance. The only way to make research software survive is to offer packages that other researchers can also use. Maybe.
评论 #26225004 未加载
jonbronson大约 4 年前
I worked at a productive computing research institute for a number of a years. I cannot count the number of times I found research teams duplicating critical algorithms. Research Scientists not only pay the price of the spaghetti nature of the code, they pay it over and over again by not sharing and improving on what has already been built by previous research groups.<p>The software industry has its own share of problems, but from what I&#x27;ve seen the research community is still largely operating on an outdated software model that shuns open collaboration out of fear of being &quot;scooped&quot;.
bsenftner超过 4 年前
Not all research software is a tangled mass. I have extensively worked as a &quot;quant&quot; (before the term was popular) for math, medical, network, media, and physics researchers as my side gig for decades. I&#x27;d say about 1&#x2F;3 of the home brewed research software is constructed with fairly reasonable assumptions, the authors are scientists after all, and I am able to grow their basic setup into a framework they intimately understand and prefer to use. More than once I&#x27;ve found brilliantly engineered software not unlike what I&#x27;d find at a pro software development firm.
analog31超过 4 年前
&gt;&gt;&gt; writing software is a low status academic activity; it is a low status activity in some companies, but those involved don’t commonly have other higher status tasks available to work on.<p>If measured by compensation, then <i>research</i> is a low status activity. Perhaps more precisely, researchers have low bargaining power. But I don&#x27;t think that academics actually analyze activities in such detail. The PI might not even know how much programming is being done.<p>The researcher is programming, not because they see it as a way to raise (or lower) their status, but because it&#x27;s a force multiplier for making themselves more productive overall. Though I work in industry, I&#x27;m a &quot;research&quot; programmer for all intents and purposes. I program because I need stuff right away, and I do the kind of work that the engineers hate. Reacting to rapidly changing requirements on a moment&#x27;s notice disrupts their long term planning. Communicating requirements to an engineer who doesn&#x27;t possess domain knowledge or math skills is painful. Often, a working piece of spaghetti code that demonstrates a process is the best way to communicate what I need. They can translate it into fully developed software if it threatens to go into a shipping product. That&#x27;s a good use of their time and not of mine.<p>&gt;&gt;&gt; Why would a researcher want to invest in becoming proficient in a low status activity?<p>To get a better job. I sometimes suspect that anybody who is good enough at programming to get paid for it, is already doing so.<p>&gt;&gt;&gt; Why would the principal investigator spend lots of their grant money hiring a proficient developer to work on a low status activity?<p>Because they don&#x27;t know how to manage a developer. Software development is costly in terms of both time and effort, and nobody knows how to manage it. Entire books have been written in this topic, and it has been discussed at length on HN. A software project that becomes an end unto itself or goes entirely off the rails can eat you alive. Finding a developer who can do quantitative engineering is hard, and they&#x27;re already in high demand. It may be that the PI has a better chance managing a researcher who happens to know how to translate their own needs into &quot;good enough&quot; code, than to manage a software project.
f6v超过 4 年前
Keep in mind that there&#x27;re different kinds of research software. Take Seurat[1] as an example. There&#x27;s CI, issue tracking, etc. It might not be the prettiest code you ever seen, but it absolutely has to be maintainable as it&#x27;s being actively developed. Such projects are rare, but the low quality is often an indication of a software that isn&#x27;t used by anyone.<p>1. <a href="https:&#x2F;&#x2F;github.com&#x2F;satijalab&#x2F;seurat" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;satijalab&#x2F;seurat</a>
评论 #26228034 未加载
optiklab超过 4 年前
I’m an engineer from the other side of researches or science, but somehow interested in the topic. Recently, I’ve learned about great work done by Grigori Fursin and entire community of reserach engineers with the goal to make research software more applicable to the industries by doing it with some kind of framework inside. I want to leave some links here, if you don’t mind to watch it – the talk is called ” Reproducing 150 Research Papers and Testing Them in the Real World”:ACM page with webcast <a href="https:&#x2F;&#x2F;event.on24.com&#x2F;wcc&#x2F;r&#x2F;2942043&#x2F;9C904C7AE045B5C92AAB2CF216826732" rel="nofollow">https:&#x2F;&#x2F;event.on24.com&#x2F;wcc&#x2F;r&#x2F;2942043&#x2F;9C904C7AE045B5C92AAB2CF...</a><p>Also, source docs available here: <a href="https:&#x2F;&#x2F;zenodo.org&#x2F;record&#x2F;4005773?fbclid=IwAR1JGaAj4lwCJDrkJdgJQHoWroUR6zqIW1STS0D2BRkeaFf6iD0U-KakZSM#.YDPz_nlRVHZ" rel="nofollow">https:&#x2F;&#x2F;zenodo.org&#x2F;record&#x2F;4005773?fbclid=IwAR1JGaAj4lwCJDrkJ...</a><p>And, their solution product <a href="https:&#x2F;&#x2F;cknowledge.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;cknowledge.io&#x2F;</a> and source code <a href="https:&#x2F;&#x2F;github.com&#x2F;ctuning&#x2F;ck" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ctuning&#x2F;ck</a><p>I guess it should be helpful to the researchers community.
shadowgovt超过 4 年前
One of the biggest eye-openers for me as an undergrad was when, upon getting to the point where I&#x27;d have to decide whether to pursue graduate education or exit academia and join the workforce, I began to look at the process for publishing novel computer science.<p>To be clear, novel computer science is valuable and the lifeblood of the software engineering industries. But the actual product? I discovered of myself that I like quality code more than I like novel discovery, and the output of the academic world ain&#x27;t it. Examples I saw were damn near pessimized... not just a lack of comments, but single-letter variables (attempting to represent the Greek letters in the underlying mathematical formulae) and five-letter abbreviated function names.<p>I walked away and never looked back.<p>If there&#x27;s one thing I wish I could have told freshman-year me, it&#x27;s that software as a discipline is extremely wide. If you find yourself hating it and you&#x27;re surprised you&#x27;re hating it, you may just be doing the kind that doesn&#x27;t mesh with your interests.
yudlejoza超过 4 年前
This topic is near and dear to my heart and at a quick glance, I pretty much agree with all&#x2F;most of this post.<p>I gained multiple years of industry software engineering experience before joining academia (non-CS, graduate-level). And I was flabbergasted at the way software and programming is treated in research setting where the &quot;domain&quot; is not CS or software itself. It took me a few years just to get a hint of what on earth these people (my collaborators who program side-by-side with me) are thinking, and what kind of mindset do they come from.<p>Then I took a short break and went to the industry. Software engineering, hardcore CS; no domain, no BS. I was expecting that it would feel like an oasis. It didn&#x27;t. Apart from a handful of process improvements, like use of version control, issue tracking, deadline-management, the quality of the tangled mess of the code was only slightly better.<p>Initially I took away the lesson that it&#x27;s the same in academia and industry. But on further reflection there are two big differences:<p>- The codebase I worked on in the industry was at least 10x bigger. Despite that, the quality was noticeably better.<p>- More importantly, I could connect with the my coworkers in the industry. If I raised a point about some SwE terminology like test-driven dev, agile, git, whatever, I could have a meaningful discussion. Whereas in academia, not only most domain experts knew jack about 90% of software-engineering concepts and terminology, they were expert at hiding their ignorance, and would steer the conversation in a way that you wouldn&#x27;t know if they really didn&#x27;t know or knew too much. I never got over that deceitful ignorance mixed with elitist arrogance.<p>In the end, I do think that, despite enormous flaws, the industry is doing way better than academia when it comes to writing and collaborating on software and programming, and that the side-by-side comparison of actual codebases is a very small aspect of it.
currymj超过 4 年前
as people are saying, the typical software engineering advice simply wouldn&#x27;t work in a research context.<p>one exception is the most basic stuff - people should use version control, do light unit testing, and explicitly track dependencies. These weren&#x27;t really done in the past but are becoming more and more common, fortunately.<p>I think if software engineering experts actually sat down, looked at how researchers work with computers, and figured out a set of practices to follow that would work well in the research context, they could do a lot of good. This is really needed. But the standard software engineering advice won&#x27;t work as it is, it has to be adapted somehow.
评论 #26225192 未加载
chilukrn超过 4 年前
I agree the post makes valid points, but is there anything new in that? It had been discussed several times here and on other forums as well. &quot;RSE&quot; is just another made-up position with a very average pay structure -- even this is not new.<p>However, RSEs (or just general software training) may help research groups establish a structure on how to format code, put some standards in place, and at least have some basic tests. This way, more people can read&#x2F;modify the code efficiently (more = not necessarily general public, but it at least helps incoming grad students&#x2F;postdocs to pick up the project easily).
cratermoon超过 4 年前
I was reminded that there are research packages like LINPACK, BLAS, and EISPACK for FORTRAN (and some other languages) that have been maintained since the 70s and are still in use.<p>Back in the 70s my dad was working for an organization called UTHERCC, the University of Texas Health, Education, and Research Computer Center, and these libraries were some of the code he worked with.<p>You can find references to UTHERCC in papers from the time, although I don&#x27;t think it exists under that name. Maybe institutions need something like UTHERCC as an ongoing department now.
TomMasz超过 4 年前
I once interviewed for a programming job that was a bit of bait and switch. The hiring manager showed me a foot-high stack of green bar paper that was Fortran code written by optical scientists that I was expected to convert to C. He was somewhat surprised when I declined and ended the interview. I pity whoever got stuck with that task.
nowardic超过 4 年前
A nice counter example of research software code that adheres to general software engineering best practices and is easy to pick up and use is the OSMNX project: <a href="https:&#x2F;&#x2F;github.com&#x2F;gboeing&#x2F;osmnx" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;gboeing&#x2F;osmnx</a><p>Props to Geoff for setting a nice standard.
sumanthvepa超过 4 年前
What I find really surprising about research software, is that even people in Computer Science write poorly designed code as part of their research. I would have imagined that they would be better qualified to create good code. Just goes to show that Software Engineering != Computer Science.
k__超过 4 年前
I did some research projects, but the problem is that they are a mix of regular projects and experiments.<p>Things like Nix worked out great, but other stuff I saw is a tangled mess of Java grown over the last 10 years, written by 30 different students that didn&#x27;t talk or let alone knew each other.
ejz超过 4 年前
This is actually the opportunity for our startup. I think there is generally a great opportunity to be the Databricks of a lot of academic software. We&#x27;re starting in a big research area in biology :)
deeeeplearning超过 4 年前
Why is this surprising? Has anyone been inside a Chemistry or Bio lab? You think that what happens in those labs to get research done is industrial grade?
RocketSyntax超过 4 年前
jupyterlab github issue advocating for documenting research: <a href="https:&#x2F;&#x2F;github.com&#x2F;jupyterlab&#x2F;team-compass&#x2F;issues&#x2F;121" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jupyterlab&#x2F;team-compass&#x2F;issues&#x2F;121</a>
naebother大约 4 年前
Good. Please, keep on writing more spaghetti code. Dumb people like myself need it to make a living &quot;cleaning&quot; it up. Circle of life.
bjarneh超过 4 年前
I agree that academia produces its fare share of spaghetti code, but I don&#x27;t think all of his arguments are correct.<p>&gt; writing software is a low status academic activity<p>This is just not true. People like: Stallman, Knuth, Ritchie, Kernighan, Norvig or Torvalds are not considered as people of low status in the academic world.<p>Writing horrible spaghetti code in academia may be considered &quot;low status&quot;; but that&#x27;s another story.<p>He should compare apples to apples. I.e. do people who work in academia write better or worse code there; compared to when they work for a business? I.e. they should be compared to themselves in different situations, not to some imaginary high coding standard that I&#x27;ve never seen anywhere.<p>In my own experience from academia at least I&#x27;d say that the lack of deadlines; the possibility to do whatever I want, plus the lack of management, creates much higher quality software in academia. When you work commercially, you will churn out embarrassing stuff just to make some stuff work before a deadline.
评论 #26225052 未加载
评论 #26223948 未加载
评论 #26223993 未加载