3 ms·
I started out learning programming using Python and gradually came to prefer strongly typed languages. I'm aware of 1 1/2 options for doing this kind of work in
by muraiki 10y ago
I started out learning programming using Python and gradually came to prefer strongly typed languages. I'm aware of 1 1/2 options for doing this kind of work in a strongly typed language that isn't C++:
Option 1: F# or C# with the Deedle[1] library. Deedle provides series and dataframe classes, along with various stats functions. I believe that there are also some vis tools. Type providers in F# allow you to specify a data source, such as a CSV or database, and then not only infer the types but also give you intellisense autocompletion. See the F# guide for data science[2] for more info.
Option 1.5: I hesitate to recommend the following, because there's simply not much here yet, but there is a dataframe library[3] for Nim[4]. Nim is a strongly typed language with a Python-like syntax which compiles to C and is apparently quite fast. It has multiple options for garbage collection but also supports manual memory management. It offers lisp-like macros for implementing DSLs, which the dataframe library I mentioned uses quite a bit. The main problems with Nim are of course the lack of libraries and the need for a notebook-like environment such as Jupyter, which are certainly big problems indeed. But I think that Nim is something to look out for over the next few years.
As much as I like Deedle and F#'s features, I've personally decided to abandon the use of Microsoft technologies due to their many user-unfriendly actions regarding Windows 10 and privacy. I don't fault anyone else for using Deedle, though, because it is a nice tool. This is just a personal decision of mine.
[1] http://bluemountaincapital.github.io/Deedle/ http://bluemountaincapital.github.io/Deedle/
[2] http://fsharp.org/guides/data-science/ http://fsharp.org/guides/data-science/
[3] https://github.com/bluenote10/NimData https://github.com/bluenote10/NimData
[4] https://nim-lang.org https://nim-lang.org
- throwaway_374 10y ago>>I started out learning programming using Python and gradually came to prefer strongly typed languages. Python IS strongly typed. It is also dynamically typed.
- muraiki 10y agoD'oh, I meant statically typed. I blame only getting 3 hours of sleep... :)
- FridgeSeal 10y agoWhilst Nim doesn't have a REPL/jupyter like environment, I've found that it compiles reasonably quickly, and you can setup Vscode to compile and run on save which can make testing things pretty fast and easy. :)