Linux Bioinformatics Tool [closed] - c#

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
I am looking to make a data visualization tool that will visualize biological data. I am used to being a C# and .net coder. However, as I understand it, you can run into trouble if you are running a C# app in ubuntu. Any suggestions for a language to use with these specifications in mind? I was thinking Java but am happy to take suggestions.

C# is a solid choice, especially if you already know the language. C# and the .NET framework have a solid cross-platform port with the Mono project and you can create Gnome UIs using the Gtk# bindings.
As an alternative, Java is used for a lot of bioinformatics applications. Though personally I have to say that most of those have horrible user interfaces and Java’s memory management seems ill-suited to deal with the data sizes that are common in bioinformatics – tools routinely run out of memory or become extremely slow. This isn’t necessarily an inherent problem of Java as much as sloppy programming, but Java certainly doesn’t help.
An alternative to Java would also be Python with a suitable GUI library (there are some good ones), especially since Python offers a much nicer, more polished syntax.
Yet another alternative that’s worthwhile especially if you’re really dealing with big data or if performance is important, would be C++ with Qt to build the GUI. Note that this will make development vastly more complicated if you’re not already proficient in C++.

Related

Functional Programming in C# with Language-ext [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
I have recently started working on a new DotNet Core project. I had noticed that someone (developer) used the Language-Ext library in this project. It was a new thing for me so I got to know that it is for Functional programming. It was quite confusing for me to understand it. I googled it and found benefits of it (Functional programming) :
Less Code (main point)
Easier Debugging
Easier testing
For a OO programmer, functional programming is quite different. So, my question is do we really need to use Language-Ext (functional programming) in C#? Are there any other benefits which I am missing?
So, my question is do we really need to use Language-Ext (functional programming) in C#?
If you want to do functional programming in C# you don't need LanguageExt, but IMO this is the best library for this use case.
Are there any other benefits which I am missing?
I'm biased because I use LanguageExt for some years now and it's my favourite library. If I create/edit C# projects without this library it feels a bit like working with an ancient C# version.
What more benefits are there?
Getting rid of (many1) bugs
Getting rid of much boiler plate code
Immutable data types
Avoiding side effects (easier parallel processing)
Easier refactoring
More type safety
Can be combined with non-FP C# code (use where useful)
Better refactoring skills (get another perspective)
LanguageExt creator Paul Louth created a great introduction showing some benefits:
https://github.com/louthy/language-ext
The library now has a lot more features and if you get into this (and functional programming at all) you will find many gems.
(On the premise that you want to stay with C# -- and not use F# or Haskell or ...)
"do we really need to use Language-Ext (functional programming) in C#?"
of course not; it looks like some people choose to do that; this is IMO a tiny minority of C# users. If you wanted to embrace functional style, you'd probably look at F# (while C# does offer some minor nods to functional programming, it isn't the speciality of the language). If language-ext adds just that bit more that you want... great? But this is entirely subjective and contextual.

Using AMD APP SDK with C#? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I have searched everywhere but couldn't find any definite information.
Are there any bindings or a support for using AMD APP SDK with C#?
I have seen that there is APARAPI for Java, does something similar exist for C#?
Main reason why I'm asking this is that I would like to try out HSA and hUMA features, but I don't want to waste time with C++.
Take a look at this option
GpuLinq It compiles LINQ code from C# or F# source to OpenCL. This isn't a generic C# API, but executes LINQ in parallel.,
From their Github Web page
"GpuLinq's main mission is to democratize GPGPU programming through LINQ. The main idea is that we represent the query as an Expression tree and after various transformations-optimizations we compile it into fast OpenCL kernel code. In addition we provide a very easy to work API without the need of messing with the details of the OpenCL API."
F# is a better fit for parallel programming on GPU's than C#, because is has parallel asynchronous patterns.
As of October 2014, HSA and hUMA are still very cutting edge. The Linux Kernel patch was in June 2014, Java support is coming in 2015, There may be problems with a C#/F# to OpenCL layered approach that are untested and untried with HSA. So trying to use a higher-level programming language may lead you to spend more time debugging infrastructure issues, than you would spend coding in C or C++.
I found this: OpenCL.net .NET bindings for OpenCL that are easy-to-use and true to the original API. There is no OOP abstraction, nor will there ever be. OpenCL.Net is meant to be small, fast (with as little explicit marshaling as possible) and .NET friendly at the same time.
https://www.nuget.org/packages/OpenCL.Net/

What is the most efficient method in converting AutoLISP legacy code to C#? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I am engaged in a project that works mainly in AutoCAD to design and manufacture prefabricated building components such as roofing trusses. One of our goals is to redesign a program that was written in LISP that functions in designing roofing trusses. We are to rewrite the LISP code in C# and incrementally implement it into the current libraries that they have set up.
My problem is that I have been tasked with building a rudimentary LISP to C# converter. After some research (as Google results quickly show that such a thing does not readily exist on hand), I have come to the question of which way of converting this legacy code would be more efficient. Would it be better to take chunks of the LISP code to analyze and rewrite in C#, or should I continue on with developing a rudimentary converter for the AutoLISP code?
You should take chunks of the LISP code and rewrite in C#.
Even if it was less effort to write a general purpose LISP interpreter in C# than to rewrite the LISP in c# (which is highly improbable), the LISP is probably running AutoCAD commands like you would type in the AutoCAD command line instead doing things the ObjectARX way. So you would also need to convert the commands to use the ObjectARX API.
C# is a compiled object-oriented programming language whereas AutoLISP is an interpreted expression-oriented language. Therefore there is never going to be a really straightforward way of converting one to the other without a monumental effort.
Its worth noting that AutoLISP has flexibility to be modified quickly without needing to be recompiled. The benefit to using native in-process C# is that it's extremely fast versus a similar LISP approach. I've found there's a nice middle ground for maintaining the flexibility of LISP with the speed and power of C# which leverages the LispFunction command flag and ResultBuffer type in the .NET native API.

MonoGame vs. SDL [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
Whats the main difference between using the MonoGame with C# and SDL with C++?
Which of them is easier to use? Which is recommended for multi-platform support?
Its important for us to have structure and all-pervading OOP. It should be performant but not at the cost of productivity (e.g. not reinventing the wheel or managing memory). We are a small team so we need a structured, simple and clear framework, which allows us to concentrate on the actual work.
C++ with SDL is native and can run on almost any platform (cross-platform), more specifically those with limited system specifications.
C# with MonoGame is great for proto-typing a concept, but you could run into unavoidable bottle necks for large games. Additionally, SDL is just a graphics layer, where MonoGame is a complete API for interactive media. MonoGame could be cross-platform too, but I am unsure of its complete audience.
Is MonoGame really cross-platform?
You will do a little work from scratch when using C++ with SDL, but there are many libraries out there for C++ game development that will make it a breeze. If productivity is an issue, then you could have problems using C++, unless you use an existing framework for your game, which typically handles memory management. But that is the risk you take with C++; write more efficient code in a longer time frame.
Irrlicht is a great library for rendering. Simple and clean.
http://irrlicht.sourceforge.net/

Should I Use Tkinter, C or C# to Make a GUI in Python? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I am building a quiz program which can be personalized but I want to add a GUI to it. I have seen some pieces of software which implement C and C# into Python. Should I use Tkinter to make the GUI or should I use C or C#. Can you also please tell me a good book for beginners which I can use to learn Tkinter/C/C#.
Thanks.
When writing a program, you should avoid using multiple languages unless you really need to, especially for a simple GUI program.
In this case, learning C/C# specifically for the purpose of creating a GUI seems like overkill to me -- not only would you need to learn an entirely new programming language, but you would need to learn how to use whatever GUI library is popular from within C/C#! You'd be right back where you started -- having to learn how to use some library.
Instead, Python has several great GUI libraries that you can use. Tkinter is bundled by default within the Python standard, but there are other GUI libraries that are available, like wxPython or PyQt. Here's a comparison of different Python GUI libraries.
If you want to use .NET GUI components you'll have to switch to IronPython. You cannot use the standard CPython implementation and build a .NET GUI.
With the standard CPython you can use Tkinter, but I would suggest to take a look at PySide (or PyQt4). It's much nicer to work with, and it looks better.
PyQt4 Tutorial

Categories