tag:blogger.com,1999:blog-36768584.post5311616136051518405..comments2024-03-03T18:49:34.382-05:00Comments on Omics! Omics!: Perl: The Bad Habit I Can't Quite KickKeith Robisonhttp://www.blogger.com/profile/04765318239070312590noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-36768584.post-24164710891722424032017-01-30T15:46:05.579-05:002017-01-30T15:46:05.579-05:00I have to agree with Lucas about Python 3. In addi...I have to agree with Lucas about Python 3. In addition to his points, I'd add Unicode handling as well. Python 2 has terrible Unicode support, which is needed for a lot of data science applications. The Unicode handling in Python 3 is drastically improved (UTF-8 is the default encoding).Kyle Lesacknoreply@blogger.comtag:blogger.com,1999:blog-36768584.post-32777139948945840502017-01-30T12:54:26.467-05:002017-01-30T12:54:26.467-05:00What's wrong with Java? Now particularly with ...What's wrong with Java? Now particularly with Java 8.Anonymoushttps://www.blogger.com/profile/04594210387324393538noreply@blogger.comtag:blogger.com,1999:blog-36768584.post-90643680055278282882017-01-28T12:45:44.675-05:002017-01-28T12:45:44.675-05:00First, I must agree with Lucas. Python3, please.
...First, I must agree with Lucas. Python3, please.<br /><br />As someone who knew a bit of Python and R, I would very strongly urge you to at least try Go. Its almost as expressive as Python, but it is simple and very readable. Being statically-typed and compiled actually helps noobs. Standard library, community are great. Plus, once you get into more modern features such as concurrence and easy cross-compiling, you'll be hooked.Anonymoushttps://www.blogger.com/profile/18170933627372345515noreply@blogger.comtag:blogger.com,1999:blog-36768584.post-15611741874115744352017-01-27T16:05:30.199-05:002017-01-27T16:05:30.199-05:00Please, stop recommending to start new projects in...Please, stop recommending to start new projects in Python 2. Python 3 is a better language, with a more organised standard library, which is more iterator based (memory efficient) and with very nice new features as async functions and type hints. There are hardly any libraries without support for Python 3, and more and more libraries will drop support for Python 2 in the coming years, see https://python3statement.org. Python 3 has been released 8 years ago. It's time to make the switch (and it is worth it).Lucas van Dijkhttps://www.blogger.com/profile/15772882429778326943noreply@blogger.comtag:blogger.com,1999:blog-36768584.post-45338689561998054502017-01-27T16:02:01.471-05:002017-01-27T16:02:01.471-05:00I switched from industry to acadamia in 2008 as a ...I switched from industry to acadamia in 2008 as a Java programmer, and it was clear that wasn't going to fly in bioinformatics. So I quickly taught myself perl, which at the time seemed to be synonymous with bioinformatics. I had to hold my nose, but when in Rome...<br /><br />A few years later I looked at the landscape again and fortunately python had come a long way. Additionally, I realized I needed to learn R for statistical analysis and creating publication-worthy figures. I've been very happy with the [data processing in python] --> [data analysis and visualization in R] stack ever since. Python 3 is a huge upgrade in terms of performance and just the overall quality and consistency of the language and libraries. I've written code in Py3 (with Cython extensions) that performs similar to or better than similar tools written in C++ (see https://github.com/jdidion/atropos). The breaking changes from py2 to py3 are frustrating but I think necessary for the long-term health of the language.<br /><br />On the horizon, I think Julia is definitely going to be my next language. It will reach maturity in 2-3 years, and have solid library support within 5 years, such that it can replace both python and R in my stack. The other language I'm very interested in is Rust, specifically as a replacement for C++/Cython for optimizing the slowest bits of my python code. Also, I think Javascript will grow in importance for interactive visualization, but for that purpose it will mostly be accessible via python bindings (e.g. Bokeh). John Didionhttp://john.didion.netnoreply@blogger.comtag:blogger.com,1999:blog-36768584.post-45280283730916707302017-01-27T06:44:28.151-05:002017-01-27T06:44:28.151-05:00In terms of scripting languages, there is also Rub...In terms of scripting languages, there is also Ruby, with its BioRuby. Many people think Ruby is just a web-thing, but it is a general purpose scripting language that just seems cleaner and more consistent than Perl or Python (and doesn't have the silly white-space dependency of the latter). Jonathan Badgerhttps://www.blogger.com/profile/04921990886076027719noreply@blogger.comtag:blogger.com,1999:blog-36768584.post-58555791902626611722017-01-27T00:31:42.133-05:002017-01-27T00:31:42.133-05:00I used to be a C++ programmer (from the very first...I used to be a C++ programmer (from the very first version of C++ at Bell Labs), but I gave up on it a few years ago—old programs would no longer compile and the maintenance work to keep up with the constantly changing language was too much.<br /><br />I try to program in Python in a way that will work in both Python 2.7 and Python 3 (using the frozen "from __future__ import …" statements, but I suggest Python 2.7 as the appropriate language to program in—it is frozen now, so things will continue to work (or not work) the same way no matter what brainstorm the language developers have in Python 3.<br /><br />I find Python an excellent tool for rapid prototyping (which is what most research code is) and for simple user interfaces. The numpy and scipy packages make it suitable for medium-scale scientific programming, and Cython can recover a good chunk of the interpreter overhead. It is not (currently) a good programming language for GUIs, as the GUI packages are all incompatible and mostly arcane.<br /><br />I see no reason to write a new program (even a one-liner) in PERL. You may be stuck with legacy code in PERL, but there is no excuse for creating more of it.Anonymousnoreply@blogger.com